AI编程技巧-什么时候改切新会话
在 AI 编程时代,会话(Chat)不再是项目记忆本身。
会话只是完成当前任务的工作台(Workspace)。
当工作台堆满了废弃方案、历史讨论和错误尝试时,最好的办法往往不是继续聊,而是重新开一个干净的会话。
很多开发者刚开始使用 Cursor、Claude Code、Codex 时,会天然认为:
一个会话越长,AI 对项目理解越深。
实际上,在复杂项目里,这个结论往往是错的。
为什么长会话会越来越笨
假设你正在重构认证系统。
最开始:
消息1: 设计 JWT 方案 消息20: 实现 Refresh Token 消息50: 发现设计缺陷 消息80: 改成 Session 消息120: 决定继续使用 JWT 消息180: 修复 Token 过期逻辑 消息240: Review 提出新的安全问题 消息300: 开始实现 Refresh Token Rotation对于人类来说,我们知道:
最终采用的是消息 300 之后的方案。
但对于 AI 来说,它看到的是:
JWT Session JWT Refresh Token 旧方案 新方案 Review Bug 修复大量已经被废弃的信息仍然存在于上下文中。
于是开始出现:
- 重复讨论已经决定的问题
- 把废弃方案重新写回来
- 修改 A 时破坏 B
- 来回绕圈
很多开发者都见过这种情况:
你不是刚刚改过这个吗?为什么又回到之前那个方案了?我们不是已经讨论过了吗?这通常不是模型变笨了。
而是上下文污染了。
会话越长,不代表上下文越好
很多人把上下文理解成:
更多信息 = 更聪明实际上更接近:
相关信息 = 更聪明例如:
当前任务是:
实现 Refresh Token Rotation真正需要的信息可能只有:
AuthService.ts TokenStore.ts JWT设计文档 最近一次Review意见而长会话里还包含:
登录页UI讨论 Docker配置 CI脚本 实验方案 废弃设计这些内容不仅没帮助。
反而会干扰模型判断。
什么情况下应该新开会话
1. Agent 开始绕圈子
最典型的信号:
明明讨论过的问题又重新讨论修好的东西又被改坏不停重复同样建议此时不要继续追加消息:
你认真看看前面说过什么!效果通常不好。
更好的方式:
新开会话。
然后告诉它:
继续 Auth Refactor。 当前状态: - JWT 过期逻辑已修复 - Review 已处理 - Refresh Token Rotation 未完成 目标: Refresh Token 使用后立即失效 相关文件: AuthService.ts TokenStore.ts很多时候质量会立刻提升。
2. 一个需求已经完成
例如:
会话A: 实现用户登录已经完成。
接下来要做:
支付系统接入不要继续在同一个会话里聊。
因为:
登录系统上下文和
支付系统上下文关联度很低。
推荐:
Chat A: Auth Refactor Chat B: Payment Integration一个任务一个会话。
3. 方案发生重大变化
例如原来:
JWT后来变成:
OAuth或者:
Monolith变成:
Microservice此时大量历史讨论已经失效。
继续保留只会增加噪音。
重新开会话通常更有效。
4. 你发现自己也找不到重点了
有时候不仅 AI 混乱。
连开发者自己都混乱:
前面到底讨论过什么?哪个方案最终采用了?这个 TODO 做没做?这其实是一个危险信号。
说明当前会话已经超出了人的认知负荷。
此时应该:
先整理状态。
然后开启新会话。
新开会话会丢失上下文吗?
很多人的担忧是:
好不容易聊了三小时 重新开会话不是全忘了吗?这取决于你使用的工具。
现代 AI IDE 已经越来越不像传统聊天机器人。
例如:
- Cursor
- Claude Code
- Codex
都有能力:
- 搜索代码
- 搜索文档
- 搜索历史对话
- 搜索 Git 记录
它们的工作方式更像:
用户问题 ↓ Agent ↓ 检索相关信息 ↓ 构建上下文 ↓ 模型回答而不是:
全部依赖当前聊天记录因此:
Continue the auth refactor并不意味着:
把300条历史消息全部塞进Prompt而更像:
搜索: - Auth相关文件 - JWT设计 - 历史讨论 - Review意见 提取相关内容 重新构建上下文为什么现代 Agent 不怕开新会话
因为它们越来越依赖:
代码 文档 Git Issue PR这些真实信息源。
而不是:
聊天记录聊天记录本质上只是:
推理过程代码和文档才是:
最终事实例如:
Access Token有效期15分钟最可靠的来源应该是:
config.ts而不是:
第127条聊天记录一个重要认知:保留状态,而不是保留历史
很多开发者习惯保留整个历史。
实际上更应该保留:
当前状态例如:
不要这样:
继续前面300条消息而是:
当前状态: - JWT已完成 - Refresh Token已完成 - Rotation未完成 待解决: - Token使用后失效 - 防止重放攻击 相关文件: AuthService.ts TokenStore.ts这就是:
状态(State)而不是:
历史(History)AI 编程时代的新工作流
过去:
一个项目 ↓ 一个超长聊天窗口未来:
一个项目 ↓ 多个任务 ↓ 多个独立会话例如:
Auth Refactor一个会话
Payment Refactor一个会话
Notification System一个会话
Redis Performance Optimization一个会话
每个会话只关注一个目标。
上下文更纯净。
Agent 检索更准确。
结果通常也更好。
总结
很多开发者以为:
AI 编程最重要的是积累越来越长的上下文。
实际上恰恰相反。
随着 Agent、RAG 和代码检索能力的发展,真正重要的已经不是:
让 AI 记住所有历史而是:
让 AI 快速获得当前最相关的事实因此,当你发现:
- Agent 开始绕圈子
- 需求已经切换
- 架构发生变化
- 上下文越来越混乱
不要犹豫。
直接开一个新会话。
对于现代 AI 编程工具来说,一个干净、准确、聚焦的上下文,往往比一个积累了数百条消息的超长会话更有价值。
