01 · AI的"记忆"是一个容器,装满了就会溢出
回到Ch05,我们讨论过上下文窗口的概念。但这一次,我们要从"概念"变成"实操"。
上下文窗口是什么
简单说,上下文窗口就是AI能"一次性看到"的信息量。Claude能看5-200万个tokens(不同版本不同),GPT-4能看12万个tokens。一旦你的对话超过这个限制,早期的内容就会被"遗忘"。
实际影响:三种症状
⚠️
前后矛盾
你在第1条消息说了A,到第50条消息时,AI好像忘了A,给了个违反A的答案
🔄
忘记早期要求
开始时你给了详细的约束和要求,到了对话后期,AI好像不记得这些约束了
📉
输出质量下降
对话越往后,答案越来越肤浅、越来越泛泛而谈
为什么会这样?AI的注意力机制会随着上下文长度的增加而减弱。在非常长的对话中,它对早期信息的"关注度"就会下降。
警惕信号:如果你的对话已经超过50条消息,而且内容跨越多个话题或任务,就该考虑换个新对话了。
02 · 三种长对话管理策略
策略1:分段法 - 把大任务拆成独立的小对话
这是最简单粗暴的方法:不在一个对话里处理整个项目,而是分成几个独立的对话。
适用场景:任务本身有明显的阶段性。比如"写一本书"可以分解成"每章一个对话";"准备一个工程项目"可以分解成"需求、设计、实现、测试各一个对话"。
如何做:
- 识别任务的自然分界点(章节、阶段、模块)
- 每个分界点开启一个新对话
- 在新对话的开头,贴上必要的背景信息(这个章节要干什么、参考前面章节的哪些决策)
- 完成后,把结果保存到文件或笔记里,供下一个对话参考
优点:每个对话都很短、很专注,AI的注意力始终在线,质量很高。
缺点:需要你主动管理不同对话之间的连贯性。
策略2:摘要法 - 让AI主动总结进度
不是立刻开启新对话,而是在同一个对话中,每隔一段时间,让AI总结一下进度。
触发点:通常在以下情况触发摘要:
- 对话已经超过30-40条消息
- 完成了一个重要阶段
- 你感觉对话开始变得重复或混乱了
摘要提示词示例:
摘要请求
请用200-300字总结我们到目前为止讨论的内容和已确认的要求:
1. 我们的总体目标是什么?
2. 已经完成了哪些工作?
3. 还剩下什么要做?
4. 关键的约束或决策是什么(要重复遵守的)?
然后你可以:
- 在同一对话继续(保留摘要以强化AI的记忆)
- 复制摘要到文件保存,然后开启新对话,新对话开头贴上摘要作为背景
策略3:锚点法 - 设置"存档点"
在关键节点设置"存档点"——用一个或几个专门的文件来追踪项目的核心信息,每次开启新对话都先贴上这些文件。
三个锚点文件的结构:
📁 项目文件夹
├─ PROJECT_GOALS.md (目标和约束)
├─ PROGRESS.md (进度和决策)
└─ ISSUES.md (遗留问题和TODO)
每个文件的内容:
- PROJECT_GOALS.md:项目的最终目标、核心约束、不能改变的决策。这是"法律条款",每次对话都要遵守。
- PROGRESS.md:已经完成了什么、做过什么决策、现在的状态。这是"历史记录"。
- ISSUES.md:还有什么问题没解决、还要做什么、有什么风险或待定的选项。这是"待办清单"。
使用方式:
- 启动新对话时,在开头贴上这三个文件的内容
- 这样AI就像"继续上一个环节"一样,而不是从零开始
- 每次对话完成后,更新这三个文件,记录新的进度和问题
锚点法的威力:即使你的项目跨越10个对话,只要锚点文件保持更新,每个新对话都能迅速进入状态,不会有"忘记历史"的问题。
03 · 文件系统即持久化记忆
这一节讲一个关键的思维转变:上下文窗口 = 内存(临时的),文件 = 硬盘(永久的)。
为什么要用文件系统
对话的内容关闭就没了(或者在历史里,但找起来麻烦)。而文件可以永久存在、随时查阅、传给别人、版本控制。
对于长期项目,建立"重要信息立即写入文件"的习惯至关重要。
.plans/ 目录模式
建议为每个长期项目建立一个 `.plans/` 目录,用几个简单文件追踪项目的进度、发现和计划。
.plans/
├─ 00_overview.md 项目概览和目标
├─ 01_research.md 研究发现和背景信息
├─ 02_design.md 设计决策和架构
├─ 03_progress.log 逐日的进度日志
├─ 04_blockers.md 当前遇到的问题
└─ 05_next_steps.md 下一步的计划
好处:
- 连贯性:看一眼 `.plans/` 就能快速进入项目状态
- 可搜索:用文件搜索而不是翻对话记录
- 可版本化:如果用Git,可以追踪项目的演变
- 可分享:给同事或AI助手看这几个文件,比讲一遍快多了
启动新对话的标准模板
这是关于「[项目名]」的工作。
[粘贴 overview.md 的内容]
[粘贴 progress.log 的最新几条]
[粘贴 blockers.md 或 next_steps.md 的相关内容]
我现在要继续处理:[具体的这一步的任务]
04 · 给AI一张地图,而不是一本手册
很多人犯一个错误:把所有的详细信息都放进每个新对话。结果是对话的开头有一大堆冗余的背景说明,真正的工作反而被挤到后面。
上下文压缩的原则
在给AI提供背景信息时,遵循这个原则:
- 保留:架构决策("为什么选了这个方向")和关键约束("必须满足这些条件")
- 删除:执行细节("第一步怎么做、第二步怎么做"——除非AI即将做这些步骤)
- 总结:已完成的工作不需要全部列出,只需"已完成X%,关键成果是Y"
例子:
- ✗ 不必要的冗长:"我们的项目分5个阶段:第1阶段做需求,在第1阶段中我们采访了10个用户,记录了这些需求…"(共3000字)
- ✓ 足够的精简:"项目分5个阶段,目前完成需求阶段,核心发现:用户最在意的是X和Y。"(共1行)
上下文的投资回报率:给AI 200 token 的关键信息,比给 2000 token 的细节更有用。因为AI用少量 token 理解关键信息后,剩下的 token 可以用来做更深入的思考。
05 · 长期项目的上下文工程
如果你的项目要跨越几周甚至几个月,怎样才能保持长期的连贯性?
三个文件保持任意项目的连贯性
不管项目多复杂,这三个文件就够了:
文件1:目标文件(GOALS.md)
示例内容
# 项目:个人品牌建设
## 最终目标
在6个月内建立行业内的知识领袖形象
## 核心约束
- 内容必须100%原创(不能转载)
- 必须关于AI+写作的交集
- 每周发布2篇
## 不可改变的决策
- 平台优先级:博客 > LinkedIn > Twitter
- 内容形式:深度文章,不要短视频
- 目标受众:中文互联网的AI从业者
文件2:进度文件(PROGRESS.md)
示例内容
## 进度追踪
第1周:完成5篇稿件草稿
第2周:完成编辑和发布 (已发3篇)
第3周:分析读者反馈,调整选题方向
## 关键发现
- AI+写作+教育 的交集文章反应最好
- 深度对比类文章的转发率高
## 当前里程碑
已发布 8 篇,获得平均 200+ 浏览
文件3:问题文件(ISSUES.md)
示例内容
## 待解决的问题
【优先级】问题 / 解决方案
- 【高】文章写得太快,缺乏打磨 / 需要引入编辑环节
- 【中】选题灵感不足 / 建立月度选题规划
- 【低】LinkedIn转发率低 / 考虑调整发布时间
## 下一步计划
1. 本周:完成选题库建设(30个选题)
2. 下周:实施新的编辑流程
3. 后周:数据分析和优化
使用流程
- 每次启动新对话:贴上这三个文件,AI立刻进入项目状态
- 完成一个阶段后:更新这三个文件。进度变了、遇到新问题、发现新方向,都记下来
- 遇到重大决策:决策完成后,立即记到GOALS或PROGRESS里,确保下次对话不会推翻这个决策
- 每周回顾:抽15分钟整理这三个文件,确保它们始终是最新的
为什么这个方法有效:AI 每次看到这三个文件,都能快速理解"我们在做什么、已经做到哪、下一步是什么"。这种清晰度让 AI 的输出质量很高。
Exercise · 实战演练
设计你自己的长对话管理系统
-
识别一个长期项目
选择一个你正在进行或计划进行的项目(可以是工作项目、学习计划、创意写作等),确认它需要跨越多个AI对话。
-
选择管理策略
根据你项目的特性,选择三种策略中的一个或混合:(1)分段法合适吗?(2)摘要法合适吗?(3)锚点法合适吗?解释为什么。
-
创建你的文件系统
为这个项目建立 `.plans/` 目录,创建至少3个文件(overview, progress, issues)。即使项目还没开始,也先把目标和初步计划写下来。
-
做第一次对话
用你的文件系统,启动第一个对话。在第一条消息贴上文件内容,然后提出第一个具体的工作。记录:是否感受到AI对项目的理解深度?
-
规划下一次对话
完成第一个对话后,更新你的三个文件。然后设计第二个对话的开头,看看如何用这些文件快速让AI进入状态。