第 9 篇|如何解决系统上下文爆炸问题:从 Prompt 管理到 Context Orchestrator
在前几篇里,我们已经逐步搭建起了 Harness 的核心框架:
- 用 Code Graph 让 AI 理解代码
- 用 Flow Graph 让 AI 理解系统
- 用 Constraint Engine 避免错误
- 用 Risk Engine 提前识别风险
但当很多团队真正把 AI 用进复杂项目后,很快会遇到一个新的瓶颈:
上下文爆炸(Context Explosion)
它不是偶发问题,而是 AI Coding 走向企业落地时,迟早会碰到的一堵墙。
这一篇,我们专门讲清楚:
系统上下文为什么会爆?以及企业里该怎么真正解决。
一、为什么上下文一定会爆?
很多团队第一次遇到这个问题时,直觉是:
“是不是模型上下文不够大?”
比如:
- 128k
- 200k
- 甚至更大的窗口
看起来已经很大。
但问题是:
上下文爆炸,本质不是窗口不够,而是“记忆管理方式错误”。
一个真实的工程场景
当 AI 参与一个真实需求时,上下文会自然增长:
需求说明
↓
读取代码
↓
分析调用链
↓
讨论方案
↓
修改代码
↓
补充约束
↓
回滚重试
↓
再次修改
最后你会发现:
每一轮对话都在把新信息继续往上下文里堆。
结果就是:
- Token 越来越多
- 注意力越来越分散
- 推理越来越不稳定
二、真正的问题:把“系统认知”塞进了“聊天窗口”
很多团队默认认为:
上下文 = 记忆
于是会把:
- 项目说明
- 架构文档
- 业务规则
- 会话历史
- 代码片段
全部塞进 prompt。
但实际上:
上下文不是仓库,而是工作记忆。
就像人脑一样:
你不会在解决一个问题时,把整个职业生涯都同时想一遍。
三、正确思路:记忆分层
解决这个问题的第一步,是把上下文拆成不同层次。
1️⃣ Working Memory(工作记忆)
只保留当前任务最小信息:
- 当前需求
- 当前代码
- 当前决策
👉 这是本轮推理真正需要的东西
2️⃣ Structural Memory(结构记忆)
由系统保存:
- Code Graph
- Flow Graph
- Registry
👉 不常驻,只在需要时检索
3️⃣ Semantic Memory(语义记忆)
长期知识:
- constraints
- incidents
- 隐性约定
👉 只按需加载
4️⃣ Episodic Memory(会话记忆)
保存:
- 关键决策
- 被否决方案
- 本轮状态
👉 不是保留整段聊天
四、方案一:按需加载,替代“全量记忆”
这是最基础,也最有效的方法。
核心原则
不要把信息放进上下文,除非它当前真的需要。
实现方式
在 CLAUDE.md 中明确:
涉及 API → 读取 api-registry
涉及数据库 → 读取 db-schema
涉及核心业务 → 读取 constraints
再通过:
- code-map
- flow-graph
- skill 调度
动态检索。
实战经验
在一个:
- 5万行代码
- 200k context window
的项目里:
memory-file 仅占 5%
这完全正常。
因为:
好的系统不是用满上下文,而是精准使用上下文。
五、方案二:把一个需求拆成多个上下文
很多上下文爆炸,来自一个误区:
想让 AI 一次完成整个需求
但复杂需求应该拆成多个阶段:
需求分析
↓
影响范围分析
↓
方案设计
↓
代码修改
↓
测试验证
每个阶段:
- 独立上下文
- 独立输入
- 独立输出
好处
AI 每次只处理一件事:
推理质量会明显提升
六、方案三:用多 Agent 隔离上下文
当项目继续变大时,仅靠拆步骤还不够。
需要进一步:
按职责拆分上下文
示例
主 Agent(Planner)
负责:
- 理解需求
- 拆任务
- 汇总结果
开发 Agent
只看:
- 代码
- 约束
测试 Agent
只看:
- flow
- 测试场景
Review Agent
只看:
- diff
- risk
- incidents
本质
不是让一个模型记住一切,而是:
让不同 Agent 各自只记住自己该记住的事。
七、方案四:按领域拆分知识
当系统进一步复杂后,还会遇到新的问题:
即使检索,也会召回太多信息
于是需要:
领域级上下文隔离
做法
增加一个:
👉 Domain Agent
它先判断:
这个需求属于:
- 订单
- 库存
- 支付
然后只加载对应领域知识。
这样做的意义
避免:
订单需求加载营销系统上下文 支付需求加载会员系统规则
八、最容易踩的三个坑
❌ 坑一:把大上下文当优势
很多团队误以为:
“200k 就应该用满”
实际上:
上下文越多,模型越容易失焦。
❌ 坑二:把聊天记录直接继承
结果:
- 信息重复
- 噪音累积
- 推理变差
❌ 坑三:只做摘要,不做状态管理
很多人会让 AI:
“帮我总结一下刚才对话”
但真正需要的是:
{
"goal": "",
"decisions": [],
"constraints": []
}
👉 不是摘要,而是状态。
九、真正的解决方案:Context Orchestrator
走到最后,你会发现:
真正需要的不是:
更大的上下文
而是:
👉 Context Orchestrator(上下文编排器)
它负责:
- 判断当前任务类型
- 选择需要的知识
- 控制 token 预算
- 动态构建 prompt
让上下文从:
“不断累积”
变成:
“每轮重新构建”
十、一句话总结
这篇文章最重要的一句话是:
上下文爆炸的根本原因,是把“系统认知”错误地塞进“单轮对话”;真正的解决方案,是把认知外部化,让上下文只承载当前推理。
结尾
很多团队在 AI Coding 上卡住,不是因为模型不够强,而是因为:
还在用 Chat 模式,做系统工程。
而企业级 Harness 的本质,是让 AI 从:
“记住很多”
升级到:
“只在正确的时候知道正确的信息”
下一篇,我们继续深入:
👉 如何设计 Context Orchestrator,让上下文真正变成系统能力,而不是 Prompt 技巧。