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 编程工具来说,一个干净、准确、聚焦的上下文,往往比一个积累了数百条消息的超长会话更有价值。
更多推荐
所有评论(0)