Skip to content

3.5.5 知道何时开始新对话

经过本节学习,你将掌握

  • 识别「该开新对话」的三个信号
  • 理解为什么「清新开始」有时比「继续修补」更高效
  • 学会「搬家」:把关键信息从旧对话带到新对话
  • 获得一个可复制的新对话启动模板

旧对话太长会怎样?

在 3.5.4 中,我们讲了上下文窗口的概念。当对话太长时,早期内容会被挤出窗口,导致 AI「失忆」。

但问题不止于此。即使内容没被挤出,太长的对话也会降低 AI 的表现

问题原因
回复变慢需要处理更多历史信息
容易遗漏指令关键信息淹没在大量对话中
更容易出错历史中的矛盾信息会干扰判断
难以调试你也很难回溯问题出在哪一轮

有时候,开一个新对话比在旧对话里继续挣扎更有效。

三个「该开新对话」的信号

信号一:对话超过 20 轮

这是一个经验值。当对话轮次超过 20 轮(你发一条、AI 回一条算一轮),就应该考虑开新对话了。

为什么是 20 轮?
- 每轮对话平均 500-1000 tokens
- 20 轮 ≈ 10K-20K tokens
- 已经占用了相当比例的上下文窗口

例外情况:如果你用的是大上下文窗口模型(如 Claude 200K),可以适当放宽到 30-40 轮。

信号二:AI 开始「忘记」早期约定

当你发现以下情况时,说明上下文管理已经失效:

❌ 你第 1 轮说用 TypeScript,AI 第 18 轮给你 JavaScript
❌ 你第 3 轮说不要用 any,AI 第 15 轮代码里全是 any
❌ 你问"按照之前的格式",AI 问你"什么格式?"

判断方法:如果你发现自己需要反复重申同一个约定(超过 3 次),就该开新对话了。

信号三:话题发生根本转变

当你从一个任务转向另一个完全不同的任务时,旧对话的历史反而会干扰。

旧话题:实现用户登录功能
新话题:设计数据库表结构

两个话题关系不大,旧对话中的登录代码会占用上下文空间,
却对设计数据库没有帮助。

经验法则:如果新任务和之前的对话内容没有直接关联,开新对话。

三个信号的速查表

信号判断标准行动
轮次过多超过 20 轮考虑开新对话
AI 失忆反复重申约定超过 3 次立即开新对话
话题转变新任务与历史无关开新对话

如何「搬家」:把关键信息带到新对话

开新对话不意味着从零开始。你需要把关键信息「搬」到新对话中。

第一步:从旧对话中提取关键信息

在旧对话结束前,让 AI 帮你总结:

markdown
请总结我们这次对话的关键信息,包括:
1. 项目的技术栈和约定
2. 已完成的功能列表
3. 当前的代码结构
4. 遗留的问题或待办事项

请用简洁的 Markdown 格式输出,方便我复制到新对话中。

第二步:保存总结

把 AI 的总结保存下来。可以:

  • 复制到一个文本文件
  • 保存到项目的 README 或 NOTES.md
  • 直接记在脑子里(如果内容不多)

第三步:在新对话中重建上下文

用提取的信息开始新对话:

markdown
我要继续开发一个待办清单项目。以下是项目背景:

**技术栈**
- React 18 + TypeScript
- Tailwind CSS
- Zustand 状态管理

**已完成功能**
1. 添加任务(带空输入验证)
2. 删除任务(带确认提示)
3. 任务列表展示

**代码结构**
- src/components/AddTaskForm.tsx
- src/components/TaskList.tsx
- src/components/TaskItem.tsx
- src/store/taskStore.ts

**当前任务**
实现任务编辑功能——点击任务可以修改标题

请基于以上背景,帮我实现任务编辑功能。

可复制模板:新对话启动 Prompt

通用模板

markdown
我要继续开发 [项目名称]。以下是项目背景:

## 技术栈
- [技术1]
- [技术2]
- [技术3]

## 编码约定
- [约定1]
- [约定2]
- [约定3]

## 已完成功能
1. [功能1]
2. [功能2]
3. [功能3]

## 代码结构
- [目录/文件1]:[用途]
- [目录/文件2]:[用途]

## 本次任务
[详细描述你要做的事情]

请基于以上背景开始。

简化模板(适用于简单项目)

markdown
继续开发 [项目名称],技术栈:[技术栈]。

已完成:[简要列举]
现在要做:[本次任务]

注意事项:
1. [约定1]
2. [约定2]

带代码上下文的模板

markdown
我要继续开发一个功能。以下是相关的现有代码:

**现有组件**(TaskList.tsx):
```tsx
// 这里粘贴相关代码片段

现在需要: [描述你需要 AI 做的事情]

请注意

  • 保持和现有代码风格一致
  • [其他约定]

## 什么时候不需要开新对话?

有时候旧对话还是更好的选择:

| 情况 | 建议 | 原因 |
|-----|------|------|
| 对话还在 10 轮以内 | 继续旧对话 | 历史信息仍然有价值 |
| 正在调试一个 bug | 继续旧对话 | 错误上下文很重要 |
| 功能实现到一半 | 继续旧对话 | 避免重新解释 |
| 需要引用之前的代码 | 继续旧对话 | 代码在历史中可直接引用 |

**核心原则**:如果旧对话的历史对当前任务仍然有帮助,继续用;如果已经变成负担,果断开新的。

## 「清新开始」的心理优势

除了技术原因,开新对话还有心理上的好处:

旧对话: "之前改了这么多轮还没改好,是不是我的问题..."

新对话: "这是一个全新的开始,这次一定可以"


有时候,一个干净的起点能帮助你更清晰地思考问题。

## 实战技巧:对话命名

很多 AI 工具支持给对话命名。善用这个功能:

❌ 默认命名:"New Chat"、"Untitled" ✅ 有意义的命名:"待办清单-添加功能"、"待办清单-删除功能"


好的命名能帮你:
- 快速找到历史对话
- 知道每个对话在做什么
- 决定是继续旧对话还是开新对话

## 本节要点

✓ **三个信号**:超过 20 轮、AI 反复失忆、话题根本转变

✓ **清新开始的价值**:有时比继续修补更高效

✓ **搬家流程**:让 AI 总结 → 保存 → 新对话中重建上下文

✓ **启动模板**:用结构化的 Prompt 开始新对话,快速重建上下文

✓ **对话命名**:给对话起有意义的名字,便于管理

## 本章总结

恭喜你完成了 3.5 节「迭代对话的艺术」的学习。

回顾一下你学到了什么:

| 小节 | 核心收获 |
|-----|---------|
| 3.5.1 | 一次搞定是幻觉,迭代是常态 |
| 3.5.2 | 三阶段模型:看方向 → 改问题 → 磨细节 |
| 3.5.3 | SBI 反馈框架,让 AI 精准理解你的修改需求 |
| 3.5.4 | 四个上下文管理技巧 + 工具级配置 |
| 3.5.5 | 知道何时「搬家」,如何「搬家」 |

**一句话总结**:迭代不是失败,而是通往成功的必经之路。

下一节(3.6),我们将学习当 AI「不听话」时——输出错误、产生幻觉、代码有 bug——如何诊断问题并修正。