---
title: "3.5.5 知道何时开始新对话"
---


![03-technique_3.5-iterative-dialogue_3.5.5-start-new-chat.png](/images/Basic/03-technique_3.5-iterative-dialogue_3.5.5-start-new-chat.png)
# 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——如何诊断问题并修正。
