AI优先|不要把所有信息都塞给AI:学会上下文隔离
用了AI一段时间以后,我越来越觉得,一个很容易被低估的问题是:
上下文太多,也会降低AI的工作质量。
很多人担心AI“知道得不够多”。
于是会不断往一个对话里塞:
- 历史聊天;
- 项目资料;
- 各种文件;
- 以前的结论;
- 新的任务;
- 临时想法;
- 无关背景。
最后一个对话越来越长。
看起来AI“什么都知道”。
但实际效果未必更好。
因为真正高质量的AI工作,不是让AI看到最多的信息,而是:
让它在当前任务里,只看到真正相关的信息。
这就是我越来越重视的:
上下文隔离。
一、上下文不是越长越好
现在很多模型都在强调长上下文。
几十万Token,甚至更长。
这当然是很重要的能力。
但“能放进去”和“应该放进去”,不是一回事。
一个AI理论上可以同时读取:
- 100份合同;
- 几十篇法规;
- 大量聊天记录;
- 几百页项目资料。
但如果当前任务只是:
“检查付款条款有没有风险”,
那么让它同时处理所有其他信息,未必有帮助。
反而可能出现几个问题:
- 重点被稀释;
- 不同项目的信息互相干扰;
- 旧结论影响新判断;
- 已经废弃的方案被重新引用;
- 相似公司、相似合同之间发生混淆。
所以我现在越来越认同一个原则:
上下文不是仓库。
不是把所有可能有用的信息全部塞进去。
而是应该像工作桌面一样:
当前做什么,就只摆什么。
二、一个对话,尽量只做一个专项任务
这是我现在很喜欢的一种工作方式。
不要一个对话里什么都做。
比如同一个法律项目,可以分别建立不同任务:
- 一个对话专门做合同审查;
- 一个对话专门做法律法规检索;
- 一个对话专门做案例研究;
- 一个对话专门整理尽调问题;
- 一个对话负责最终报告整合。
这样做看起来好像“多开了几个对话”。
但实际上更清晰。
因为每个智能体进入任务以后,都知道:
我现在只负责这一件事。
这会明显减少跑题和混淆。
尤其是复杂项目。
如果一个对话从:
项目背景讨论;到合同修改;再到商业谈判;再到法规检索;再到Word排版;
全部混在一起,
后面AI很容易不知道:
- 哪些规则仍然有效;
- 哪些只是当时的临时讨论;
- 现在到底应该优先哪个目标。
所以:
专项任务,尽量专项对话。
三、长期记忆和当前上下文,不是一回事
前面我一直强调:
要养好一个长期智能体,让AI越来越懂你。
这和上下文隔离并不冲突。
因为这其实是两个层级。
长期记忆保存的是:
- 你是谁;
- 你习惯怎么工作;
- 长期规则是什么;
- 稳定偏好是什么;
- 常用工具是什么。
这些信息应该长期存在。
但当前上下文保存的是:
这一次任务真正需要什么。
例如:
- 当前是哪一个客户;
- 当前是哪一份合同;
- 代表哪一方;
- 本次修改重点是什么;
- 有哪些特殊商业安排。
所以更合理的结构应该是:
长期记忆保持稳定,任务上下文保持精简。
AI可以长期认识你。
但没有必要让它每次都背着你过去所有项目一起工作。
四、项目之间尤其要隔离
法律工作里这一点尤其重要。
不同客户、不同项目之间,本来就应该严格区分。
AI工作也一样。
比如A项目里:
客户接受某个风险。
B项目里:
客户完全不能接受。
如果两个项目长期混在同一个上下文里,AI可能会错误迁移以前的判断。
再比如:
一个项目代表甲方;
另一个项目代表乙方。
一个项目要求强势修改;
另一个项目要求尽量促成交易。
这些要求完全可能相反。
所以不同项目最好:
- 不同对话;
- 不同项目文件夹;
- 不同项目指令;
- 必要时不同知识范围。
这样AI才能真正做到:
项目归项目,规则归规则。
五、Subagent的一个重要价值,就是隔离上下文
上一篇讲到Subagent。
我觉得Subagent一个特别有价值的用途,就是:
把局部复杂任务隔离出去。
比如主Agent正在做一个大型法律研究。
其中有一个问题需要查几十个案例。
如果主Agent自己完成整个检索过程,那么大量:
搜索结果;无效网页;错误案例;中间判断;
会全部进入主上下文。
这会让主任务越来越重。
更好的方式是:
让一个子代理专门处理案例检索。
它自己去查;自己筛选;自己验证;
最后只返回:
- 结论;
- 关键案例;
- 来源;
- 需要注意的问题。
主Agent不需要看到全部搜索过程。
这样就实现了:
局部任务局部处理,关键结果回传。
这其实就是上下文隔离最典型的应用。
六、不是所有原始材料都要一直留在主上下文
还有一个很重要的习惯:
原始材料和结论要区分。
比如一个Agent已经读完50份文件。
接下来做综合分析时,不一定要让50份文件的全部内容一直占据上下文。
可以先让AI生成一个结构化中间结果:
- 公司名称;
- 文件类型;
- 关键事实;
- 风险点;
- 引用位置;
- 待核验事项。
然后后续分析主要围绕这份结构化结果进行。
真正需要核验时,再回到原始文件。
这其实和人做项目很像。
律师不会每次写报告都把整个底稿全部摊在桌上。
通常会先形成:
- 底稿索引;
- 问题清单;
- 事实摘要;
- 工作记录。
AI也应该这样。
所以一个好的AI系统应该逐渐建立:
原始材料 → 结构化摘要 → 分析 → 最终结论
而不是每一步都重新把所有原始资料扔进去。
七、上下文里最危险的,是“已经过时但还存在的信息”
长对话还有一个很常见的问题。
早期可能讨论过一个方案。
后来方案已经变了。
但旧方案仍然留在上下文里。
例如一开始说:
交易价格是1亿元。
后来改成8,000万元。
如果对话很长,AI后面某一次仍然可能引用旧数据。
再比如:
原本代表甲方;
后来说改为站在乙方立场重新分析。
旧的甲方分析仍然存在。
这类问题在复杂项目里很常见。
所以我现在越来越倾向于:
发生重大方向变化时,宁可开一个新的任务上下文。
然后把当前有效信息重新整理一遍。
这比让AI在几万字历史聊天里自己判断“哪个版本才是最新”,稳定得多。
八、不要把“记忆”当成“无限堆积”
很多人会觉得:
AI既然能记住更多,那就应该记住全部。
我觉得不是。
好的记忆系统应该具备两个能力:
记住重要的。
以及:
忘掉不重要的。
长期稳定偏好值得记。
一次性临时安排不一定值得记。
已经废弃的方案更不应该继续影响未来任务。
所以未来AI真正重要的记忆能力,不只是“存储”。
而应该包括:
- 分类;
- 更新;
- 覆盖;
- 遗忘;
- 优先级。
否则记忆越多,噪音也会越多。
九、可以建立三层上下文
我觉得比较实用的方式,可以把AI上下文分成三层。
第一层:个人长期上下文。
例如职业、语言、输出习惯、稳定工作规则。
第二层:项目上下文。
例如当前客户、项目目标、交易结构、项目文件、特殊要求。
第三层:任务上下文。
例如:
“今天只审知识产权条款。”
或者:
“这次只查劳务派遣超比例案例。”
任务做完以后,第三层可以结束。
项目结束以后,第二层可以归档。
真正长期保留的,主要是第一层,以及少量经过筛选的项目经验。
这个结构会比“一个无限长的大对话”清晰很多。
十、上下文隔离的目标,是让AI更专注
所以我理解的上下文隔离,并不是故意减少AI的信息。
而是:
控制当前任务真正需要的信息边界。
AI不是知道得越多越好。
而是当前这一步:
- 知道什么;
- 不知道什么;
- 需要调用什么;
- 应该忽略什么;
都应该尽量清楚。
这也是为什么我越来越喜欢:
- 专项对话;
- 专项Agent;
- Subagent;
- 独立项目文件夹;
- 明确的项目指令;
- 结构化中间结果。
这些东西表面上是在“拆”。
实际上是在降低AI的认知负担。
十一、好的AI工作系统,既要会积累,也要会隔离
前面我一直讲:
要让AI形成长期记忆;
要建立知识库;
要积累项目经验;
要让智能体越来越懂你。
但另一面同样重要:
不是所有积累,都应该同时出现在当前任务里。
真正成熟的AI工作系统,应该同时具备两个能力:
长期积累。
以及:
按需调用。
需要的时候,AI能找到以前的经验。
不需要的时候,那些信息不要干扰当前工作。
这和人的工作其实非常像。
一个有十年经验的律师,不会在审每一份合同时同时思考自己过去十年所有项目。
真正成熟的经验,是:
需要的时候能够调出来,不需要的时候不会干扰当前判断。
所以AI也一样。
不要追求:
“让AI永远记住所有东西。”
更应该追求:
“让AI在正确的时候看到正确的信息。”
这可能比单纯追求更长的上下文,更重要。
