上下文工程
上下文工程是一门艺术,也是一门科学——其核心在于:在智能体执行轨迹的每一步,将恰当的信息填入上下文窗口。随着智能体处理的任务越来越长、工具调用反馈不断积累,如何管理进入上下文窗口的内容,已成为首要的工程挑战,而非模型本身的问题。
"上下文工程实际上是构建 AI 智能体的工程师的第一要务。" — Cognition
"智能体往往需要进行数百轮对话,这要求精心设计的上下文管理策略。" — Anthropic
为什么重要
LLM 的注意力预算是有限的。Transformer 架构对 n 个 Token 会构建 n² 个两两关系——随着上下文增长,模型捕捉这些关系的能力逐渐被稀释。上下文必须被视为宝贵且有限的资源,其边际收益递减。
"上下文工程"这一概念脱胎于"提示词工程",其背后是从一次性任务向长时运行智能体的范式转变。Andrej Karpathy 的类比:LLM 是 CPU,上下文窗口是 RAM,而上下文工程就是操作系统负责决定"什么内容能装入内存"的工作。
本节内容
1.1 上下文管理的核心挑战 → challenges.md
随着上下文增长,智能体性能退化的五种失效模式:
- 上下文腐化(Context Rot) — Token 数量增加导致整体性能下降
- 上下文污染(Context Poisoning) — 幻觉或错误进入上下文后不断累积放大
- 上下文干扰(Context Distraction) — 模型过度关注历史积累,忽略训练知识
- 上下文混乱(Context Confusion) — 冗余信息(如过多工具)导致响应质量下降
- 上下文冲突(Context Clash) — 上下文各部分之间存在相互矛盾的信息或决策
1.2 上下文管理的常用策略 → strategies.md
生产环境智能体中常用的五种策略:
| 策略 | 核心思路 | 典型示例 |
|---|---|---|
| 卸载(Offload / Write) | 保存至文件系统,按需检索 | Manus todo.md、Anthropic 记忆工具、Claude Code CLAUDE.md |
| 压缩(Reduce / Compaction) | 对累积上下文进行摘要或裁剪 | Claude Code auto-compact、LangGraph DeepAgent、Cognition 微调摘要器 |
| 检索(Retrieve / RAG) | 即时拉取相关上下文 | Claude Code glob/grep、Tool RAG、Windsurf 多方法检索 |
| 隔离(Isolate / Multi-agent) | 将上下文分散到子智能体 | Anthropic researcher、open-deep-research |
| 缓存(Cache) | 稳定前缀缓存,降低成本与延迟 | Manus KV-cache、Gemini Context Caching |
1.3 上下文实现参考案例
Manus
构建 Manus 总结出的六条生产原则:以 KV-cache 命中率作为首要指标、对工具采用"遮蔽而非删除"策略、以文件系统作为终极上下文存储、通过 todo.md 进行注意力回溯、在上下文中保留错误信息,以及防止少样本漂移。
Anthropic
来自两个来源:多智能体研究系统(编排者-工作者模式,相比单智能体提升 90.2%,子智能体输出写入文件系统)和有效上下文工程指南(注意力预算框架、即时检索、上下文压缩、结构化笔记)。
LangGraph
Lance Martin 提出的四策略框架(写入、选择、压缩、隔离),以及同时展示全部四种策略的 open-deep-research 参考实现,还有 DeepAgent 以摘要作为中间件的模式。
Devin / Cognition
两条核心原则:共享完整的智能体轨迹(而不仅仅是消息),以及动作隐含决策。该方案反对将多智能体并行用于存在相互依赖关系的任务,推荐对长时任务使用单线程智能体结合微调压缩。
Letta
延伸资源
- Context Engineering by Human Layer — 上下文工程原则演示文稿
- How to Fix Your Context — Drew Breunig — 上下文管理的六种策略
- how_to_fix_your_context — LangChain GitHub — 代码示例
参见
- 智能体记忆管理 — 持久化记忆策略
- 多智能体系统 — 多智能体环境中的上下文协调
- RAG 架构 — 基于检索的上下文管理
- 生产最佳实践:上下文工程 — 生产环境指南