Context Engineering 上下文工程:从信息过载到高信号 Token的精确管理
2026-07-28 Context Engineering 上下文工程:从”信息过载”到”高信号 Token”的精确管理
学习日期:2026-07-28 主题:Context Engineering 上下文工程 综合文章:5 篇(Anthropic 工程实践、实战指南、Anthropic 革命、腾讯云 Mermaid 案例、ACE 自进化机制)
一、为什么选这个主题?
回顾近几天的学习脉络:
- 07-23 架构演进:解决”Agent 由什么组成”的问题
- 07-24 记忆系统:解决”Agent 如何积累知识”的问题
- 07-27 技能系统:解决”Agent 如何封装能力”的问题
- 07-28 上下文工程:解决”Agent 如何在每一轮推理中看到最该看的东西”的问题
前几篇笔记中,我们都直接或间接触及了”上下文”这个概念:
- 07-24 记忆系统提到的”信息过载”现象
- 07-27 技能系统的”三层懒加载”机制,本质上就是 Context Engineering 中”选择策略”的具体实现
- 07-27 笔记里讲”工具是 Skill 的依赖”,但工具臃肿本身就是上下文污染的根源
Context Engineering 是把这些散点串起来的主线——它既是提示工程(Prompt Engineering)的自然进化,也是 LLM 时代最被低估、最具杠杆效应的工程能力。Anthropic 的实测数据显示,单纯做上下文优化就能让 Agent 性能提升 54%、Token 消耗降低 84%。
今天这篇,把这条主线讲透。
二、核心要点
要点 1:上下文腐蚀(Context Rot)——为什么不能”塞更多”
LLM 上下文窗口已经普遍达到 128K 甚至 100 万 Token(Claude Sonnet 4)。但 Anthropic 的实验揭示了一个反直觉的事实:更长的上下文,不一定带来更好的结果。
| 现象 | 原因 | 后果 |
|---|---|---|
| 注意力稀释 | Transformer 的 O(n²) 成对关系,token 越多相互干扰越大 | 关键信息被淹没 |
| 训练偏差 | 训练数据中短序列占比远高于长序列 | 模型”经验”不足 |
| 位置衰减 | 模型对上下文窗口中间位置的信息关注度显著低于首尾 | 信息放置不当 = 浪费 |
| 多轮叠加 | 单次微小偏差会随推理轮次”滚雪球”放大 | 长任务中”南辕北辙” |
Anthropic 给出的核心原则:
“找到最小的、高信号 token 集合,最大化期望结果的概率。” 不要问”怎么把更多信息塞进上下文”,而要问”怎么让上下文中的每个 token 都值得模型注意”。
每多一个 token 都在消耗”注意力预算”。上下文是边际收益递减的有限资源,必须像管理内存一样精细管理。
要点 2:四大策略 —— Write / Select / Compress / Isolate
Anthropic 与 LangChain 联合提出的四大核心策略,是上下文工程的方法论骨架:
| 策略 | 核心思想 | 解决什么问题 | 典型工具/方法 |
|---|---|---|---|
| Write(写入/卸载) | 不把所有东西塞进上下文,完整内容外置 | 上下文过载 | 文件系统、Scratchpad、Memory |
| Select(选择/检索) | 不是所有信息都相关,按需精准加载 | 信息过载 | RAG、向量数据库、Reranking |
| Compress(压缩) | 裁剪 Token,只保留完成任务所需 | Token 爆满 | 总结、滑动窗口、结构化笔记 |
| Isolate(隔离) | 任务太复杂就拆分,让子 Agent 各管一摊 | 任务过复杂 | 多 Agent 架构 |
四大策略的协同关系:
完整信息 → [Write 外置] → 轻量指针进入上下文 ↓ [Select 按需检索] → 相关片段加载 ↓ [Compress 压缩] → 高密度信号 Token ↓ [Isolate 隔离] → 独立上下文窗口并行处理关键洞察:四大策略不是二选一,而是组合拳。比如一个长任务研究 Agent 通常是:Write 外置原始数据 → Select 检索相关文献 → Compress 摘要成结构化笔记 → Isolate 用子 Agent 并行探索多个方向。
要点 3:四大维度的工程实践 —— Anthropic 工程师视角
四大策略是”做什么”,那”具体怎么做”?Anthropic 工程师总结了 4 个落地维度:
维度 A:系统提示 —— 找到”刚刚好”的抽象层级
两种典型失败:
- ❌ 过度硬编码:塞满 if-else 逻辑试图覆盖所有情况,脆弱且维护成本高
- ❌ 过度模糊:笼统的角色描述,缺乏具体信号
最佳实践:
- 用 XML 标签或 Markdown 标题组织分区(如
<background_information>、## Tool guidance) - 追求”最小信息集”(注意:最小≠简短,复杂业务规则该写还得写)
- 迭代流程:最小提示 → 测试 → 发现失败模式 → 添加针对性指令 → 再测试
维度 B:工具 —— 定义 Agent 与世界的契约
最常见失败模式:工具集臃肿(功能重叠、边界模糊)
反面教材:search_database / query_database / find_in_database 三个功能重叠的工具 → Agent 每次都要”纠结”该用哪个。
好工具的四要素:
- 自包含:职责清晰、功能不重叠
- 健壮:优雅处理错误,返回有意义信息
- 描述清晰:名称自解释、参数无歧义
- 返回高效:不塞入无关数据(一个 10KB JSON 中可能 80% 字段用不到)
维度 C:示例 —— 价值千言万语的”图片”
常见错误:堆砌边缘案例试图用规则穷举。
Anthropic 的策展三原则:
- 多样性优先:覆盖不同类型常见场景,而非同一类反复变体
- 典型性优先:选择最能代表”正常工作模式”的案例
- 质量优先:每个示例都是完整的”行为画像”
“对 LLM 来说,一个好示例胜过十条规则。“
维度 D:消息历史 —— 容易被忽视的上下文大户
核心问题:几十轮交互后,消息历史可能占据 80% 以上的上下文窗口,大部分是早已过时的中间结果。
自检方法:审视每段信息,问”如果去掉这段,模型输出质量会下降吗?“如果”不会”或”不确定”,它就不该出现在上下文里。
要点 4:量化效果 —— 实测数据说话
光讲方法不够,看真实数据:
Anthropic 官方数据(2025-09 发布)
| 方案 | 性能提升 | Token 节省 |
|---|---|---|
| 基线(无优化) | 0% | 0% |
| 仅上下文编辑(Context Editing) | +29% | -84% |
| 上下文编辑 + 记忆工具(Memory Tool) | +39% | -84% |
| 完整上下文工程 | +54% | -84% |
Anthropic 推出的两项新功能(Claude Developer Platform Public Beta):
- Context Editing:当接近 Token 限制时,自动清除过时的工具调用和结果
- Memory Tool:让 Claude 通过基于文件的系统在上下文窗口外存储和查阅信息
腾讯云 Agent Memory 方案(基于”上下文卸载 + Mermaid 无限画布”)
| 评测集 | 任务类型 | 通过率/准确率提升 | Token 节省 |
|---|---|---|---|
| WideSearch | 网页搜索任务 | 相对**+51.52%**(33% → 50%) | 最高61.38% |
| SWEbench | 代码修复任务 | 相对 +9.93%(58.4% → 64.2%) | 最高 33.09% |
| Toolathlon | 复杂长任务 | 绝对 +15pp(20% → 35%) | 最高 26.18% |
| AA-LCR | 长文总结分析 | 准确率 44.0% → 47.5% | 总节省 30.98% |
核心启示:
- 性能提升和 Token 节省可以同时获得(不是零和博弈)
- 效果在长任务、多任务场景下尤为显著(任务越复杂,收益越大)
- 工程优化(Context Engineering)能比模型微调带来更大杠杆
要点 5:腾讯云 Mermaid 无限画布 —— 工业级案例拆解
腾讯云 TencentDB Agent Memory 的方案是 Context Engineering 的一次教科书级实践。
核心思想
“压缩不是让 Agent 少知道,而是让 Agent 少背负;信息可以离开上下文窗口,但不能离开 Agent 的可达范围。“
四层折叠存储架构
每次工具调用结束后,信息被拆成四种形态分别存放:
| 层级 | 存储位置 | 内容 | 作用 |
|---|---|---|---|
| Level 0:原文 | refs/*.md | 完整 tool result | 保存原始证据 |
| Level 1:工具摘要 | offload-<sessionId>.jsonl | 工具调用级 summary | 快速检索工具调用 |
| Level 2:任务画布 | mmds/<task>.mmd | 任务步骤级 summary(带状态、时间戳) | 让 Agent 理解任务进度 |
| Level 3:元信息 | metadata | taskGoal、status、updatedTime、mmdFilePath | 历史任务入口 |
信息流向:完整 tool result → refs/.md → offload-.jsonl → mmds/*.mmd → 当前上下文
为什么选 Mermaid?
- 通用知识:所有主流 LLM 预训练数据中广泛存在
- 语法简单:节点 + 箭头 + 标签,生成和理解认知负担一致
- 表达自由:任意形状、方向、长度、嵌套、分支
Mermaid 节点示例(一张可读的任务卡片):
003-N4["timeseries-module-structurestatus: donesummary: 列出 timeseries 目录,发现 core.py/sampled.py/binned.pyTimestamp: 2026-04-16T22:19:53.895+08:00"]实验对比:Flowchart 比 StateDiagram 效果好 15%(长任务中 Agent 需要表达并行分支、汇聚节点、回退路径,Flowchart 更适合开放探索式执行)。
层次化注意力机制(找回信息的三个步骤)
- 鸟瞰(Overview):看任务级概览,判断方向
- 聚焦(Focus):打开对应任务画布,查看结构
- 下钻(Drill-down):必要时追溯到 JSONL 摘要或原始材料
消融实验结论(SWEbench):
- 仅上下文卸载:+5% 成绩,约 15% Token 节省
- 上下文卸载 + MMD:+9.93% 成绩,31%-33% Token 节省
MMD(Mermaid Diagram)解决了”结构丢失”问题,与上下文卸载形成互补,组合方案效果显著。
适用场景
该方案尤其适合办公提效、创作、研究和编程等长任务和多任务场景——这些场景有三个共同特点:资料多、步骤长、反复改。
要点 6:ACE(Agentic Context Engineering)—— 让 Agent 自我进化
前 5 个要点都是”外部工程”——由开发者设计上下文策略。但如果 Agent 能自己学会优化上下文呢?斯坦福 + SambaNova + UC Berkeley 团队提出的 ACE 框架给出了答案。
核心思想
不用微调,不改变模型参数,让智能体自己成长。
ACE 的目标不是”训练一个更聪明的 LLM”来让 Agent 更聪明,而是让 Agent 学会”训练自己”——通过不断调整和丰富它的上下文,实现类似”自我学习”的能力。
四大组件
Playbook 策略知识库 ↓ 提供策略Generator 生成器(行动者) ↓ 执行结果Reflector 反思器(复盘者) ↓ 提炼经验Curator 策划器(策略管家) ↓ 更新策略Playbook 策略知识库(循环)| 组件 | 角色 | 职责 |
|---|---|---|
| Playbook | 记忆中枢 | 存储和管理所有学到的策略,含生命周期管理 |
| Generator | 行动者 | 执行任务,产生动作、推理轨迹和结果 |
| Reflector | 复盘者 | 复盘轨迹,提炼”这一步我为什么错了?下次该注意什么?“ |
| Curator | 策略管家 | 把反思转化为可复用策略,做去重、修剪、评分、优先级排序 |
完整循环
生成 → 反思 → 策划 → 再执行客服智能体案例:
- 第一次任务:回答”退款到账时间”时给出笼统答案”1-7 个工作日”
- Reflector 反思:“我没区分支付渠道(支付宝/微信/信用卡),导致回答模糊”
- Curator 策划:“当回答退款周期时,需根据支付方式提供具体时间范围”(注入 Playbook)
- 第二次任务:智能体参考这条经验,回答变为”支付宝 1-2 个工作日,信用卡 3-7 个工作日”
ACE 的本质创新:让上下文从”静态配置”变成”可演化资产”——这与昨天(07-27)技能系统讲到的”可进化资产”是同一思想在不同层级的体现。
三、与前几篇笔记的关联
把 4 篇笔记放一起看,会发现一个清晰的”信息流治理”图谱:
| 笔记 | 主题 | 解决的问题 | 在信息流中的位置 |
|---|---|---|---|
| 07-23 架构演进 | Agent 架构 | 由什么组成? | 静态骨架 |
| 07-24 记忆系统 | 记忆系统 | 如何积累知识? | 纵向时间维度 |
| 07-27 技能系统 | 技能封装 | 如何封装能力? | 横向能力维度 |
| 07-28 上下文工程 | Context Engineering | 每轮推理看到什么? | 实时信息流 |
Context Engineering 是连接三者的”血液循环系统”:
- 技能系统的”三层懒加载” = Context Engineering 中 Select 策略的具体实现
- 记忆系统的”分层记忆” = Context Engineering 中 Write/Compress 策略的延伸
- 架构演进的”Harness” = Context Engineering + 流程治理的统称
四、思考题
- 如果你正在设计一个 7×24 运行的客服 Agent,你会如何组合四大策略(Write/Select/Compress/Isolate)?哪些信息应该预加载,哪些应该按需检索?
- ACE 的”自我进化”听起来很美好,但反思器(Reflector)本身的判断质量如果不可靠,会不会导致”垃圾进、垃圾出”?如何设计机制防止 Playbook 变成错误经验的堆积?
- Mermaid 画布方案在长任务中表现优异(-61% Token、+52% 成功率),但它本质上是”开发者替 Agent 画地图”。如果把这个画图能力交给 Agent 自己,效果会更好还是更差?
- Anthropic 数据显示完整上下文工程能带来 54% 性能提升和 84% Token 节省,但 80% 的 Agent 项目仍然不做上下文工程。这是为什么?是认知问题、技术问题还是优先级问题?
- Context Engineering 和 Prompt Engineering 是替代关系吗?还是 Context Engineering 把 Prompt Engineering 收编为子集?两者的边界在哪里?
五、行动项
🔬 立即可做(1-2 天内)
- 审查自己当前 Agent 项目的系统提示:删除冗余描述,识别 if-else 硬编码的脆弱逻辑,改为结构化分区
- 精简工具集:找出功能重叠的工具(比如
search_database/query_database),合并或删除 - 实施消息历史自检:在每轮对话后问”这段信息如果去掉,输出质量会下降吗?”
- 添加 RAG 替代预加载:把”塞文档进上下文”改为”按需检索相关片段”
🛠 进阶优化(1-2 周内)
- 构建结构化笔记机制:让 Agent 在长任务中定期把关键信息写入外部存储,需要时再读取(参考 Claude 玩宝可梦案例)
- 尝试子 Agent 架构:把复杂任务拆分为主 Agent + 多个专门化子 Agent,避免单一 Agent 背负全部上下文
- 关键信息前置原则:把最重要的信息放在上下文窗口的开头或结尾(避开中间衰减区)
- 监控 Token 使用模式:识别哪些环节消耗最多上下文,针对性优化
🚀 前沿探索(长期)
- 尝试 Mermaid 画布模式:在长任务 Agent 中引入结构化任务地图,让 Agent “少背负但都知道”
- 设计 Playbook 机制:参考 ACE 框架,让 Agent 在执行中积累可复用的策略手册
- 建立上下文预算体系:为系统提示、工具定义、消息历史、检索结果各分配 Token 预算,避免单一部分挤占其他部分
- 关注 Anthropic Context Editing & Memory Tool:Claude Developer Platform 上的新功能已开放 Public Beta,可直接集成
六、参考文章
- Anthropic 工程实践:为 AI Agent 进行高效上下文工程(四大维度:系统提示/工具/示例/消息历史)
- 史上最详细的上下文工程实战指南(七大组件 + 四大策略 + 上下文腐蚀)
- Anthropic 重磅发布:AI 代理的上下文工程革命(性能+54%、Token-84%)
- 腾讯云 Agent Memory 节省 61% Token 提升 52% 成功率:Mermaid 无限画布×上下文卸载
- Agentic 上下文工程(上):无需微调,让智能体自我学习与进化(ACE 框架)
学习心得:Context Engineering 可能是当前 LLM 应用工程化中被严重低估的杠杆点。与其花精力做模型微调,不如先把这”看不见的 80% 上下文”管好——这是一条投入产出比极高的路径。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













