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

更多推荐