论文精读:Agentic Context Engineering (ACE)
论文精读:Agentic Context Engineering (ACE)
论文标题: Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models
作者: Qizheng Zhang, Changran Hu 等(Stanford University / SambaNova Systems / UC Berkeley)
原文链接: arXiv:2510.04618
项目主页: ace-agent.github.io
核心观点摘要
ACE(Agentic Context Engineering,智能体化上下文工程)提出了一种全新的上下文适配范式:将上下文视为持续演进的"战术手册"(playbook),而非需要不断压缩的静态提示词。通过模块化的"生成-反思-策展"三阶段流程和增量式更新机制,ACE 有效解决了现有方法中的 简洁性偏差(Brevity Bias) 和 上下文坍塌(Context Collapse) 两大核心问题,在 Agent 任务上平均提升 +10.6%,在领域特定任务上提升 +8.6%,同时显著降低了适配延迟和成本。
一、研究背景与动机
1.1 什么是 Context Adaptation(上下文适配)?
Context Adaptation 指的是通过修改 LLM 的输入(而非修改模型权重)来改善模型行为的方法。它包括:
- 系统提示词优化:引导下游任务的指令
- Agent 记忆管理:携带过去的事实和经验
- 事实证据注入:减少幻觉、补充知识
1.2 为什么选择 Context Adaptation 而非 Fine-tuning?
| 优势 | 说明 |
|---|---|
| 可解释性 | 上下文对用户和开发者是可读、可理解的 |
| 快速集成新知识 | 可在运行时动态添加新信息 |
| 跨模型/模块共享 | 可在复合系统中复用 |
| 无需训练 | 避免昂贵的微调过程 |
随着长上下文 LLM(如支持 128K+ token 的模型)和 KV Cache 复用等高效推理技术的发展,基于上下文的方法正变得越来越实用。
二、现有方法的两大核心缺陷
缺陷 1:Brevity Bias(简洁性偏差)
现象:许多 prompt 优化器倾向于生成简短、通用的指令,而牺牲了领域特定的详细知识。
具体表现:
- GEPA 等方法将简洁性作为优势来强调
- 但这种抽象会遗漏领域启发式规则、工具使用指南、常见失败模式
- 在 Agent 和知识密集型应用中,这些细节恰恰是成功的关键
案例:Gao et al. 在代码测试生成中发现,迭代方法反复产生几乎相同的指令(如 “Create unit tests to ensure methods behave as expected”),牺牲了多样性和领域细节。
迭代优化后的结果 → "Create unit tests to ensure methods behave as expected"
→ "Create unit tests to ensure methods behave as expected"
→ "Create unit tests to ensure methods behave as expected"
(陷入死循环,丢失所有领域特定信息)
缺陷 2:Context Collapse(上下文坍塌)
现象:当 LLM 被要求完整重写累积的上下文时,它会将其压缩成更短、更少信息的摘要,导致性能急剧下降。
AppWorld 基准上的实际观察:
Step 60: 上下文 = 18,282 tokens → 准确率 = 66.7%
Step 61: 上下文 = 122 tokens → 准确率 = 57.1% ← 坍塌!
(甚至低于无适配的基线 63.7%)

关键洞察:这不是某个方法的特有问题,而是端到端上下文重写的根本风险——累积的知识可能被突然抹除。
三、ACE 框架详解
3.1 核心理念
Contexts should function not as concise summaries, but as comprehensive, structured playbooks that are detailed, inclusive, and rich with domain insights.
与传统方法不同,ACE 将上下文视为持续演进的战术手册,包含详细的策略、工具使用指南、常见错误模式等丰富信息。
3.2 三角色架构

ACE 采用受 Dynamic Cheatsheet 启发的三角色分工架构:
┌─────────────────────────────────────────────────────┐
│ ACE Framework │
│ │
│ ┌──────────┐ ┌───────────┐ ┌──────────┐ │
│ │Generator │───→│ Reflector │───→│ Curator │ │
│ │ (生成器) │ │ (反思器) │ │ (策展者) │ │
│ └────┬─────┘ └─────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 推理轨迹 洞察与教训 结构化增量更新 │
│ (Trajectories) (Insights) (Delta Updates) │
│ │
└─────────────────────────────────────────────────────┘
角色 1:Generator(生成器)
- 职责:为新查询生成推理轨迹
- 输出:暴露有效策略和反复出现的陷阱
- 特点:高亮哪些 bullet 条目有用或具有误导性
角色 2:Reflector(反思器)—— ACE 的核心创新
- 职责:从成功和失败中提炼具体洞察
- 创新点:将评估和洞察提取与策展分离
- 能力:可进行多轮迭代精炼
- 输出:结构化的教训和建议
角色 3:Curator(策展者)
- 职责:将洞察合成为紧凑的 delta 条目
- 操作:通过轻量级、非 LLM 的逻辑确定性地合并到现有上下文中
- 优势:多个 delta 可并行合并,支持批量适配
3.3 三大核心技术创新
创新 1:Incremental Delta Updates(增量式 Delta 更新)
传统方式:每次完整重写整个上下文 → 高计算成本 + 上下文坍塌风险
ACE 方式:
# Bullet 数据结构
class Bullet:
metadata:
unique_id: str # 唯一标识符
helpful_count: int # 被标记为有用的次数
harmful_count: int # 被标记为有害的次数
content: str # 可复用的策略/领域概念/常见失败模式
三大特性:
- Localization(局部化):只更新相关的 bullet
- Fine-grained Retrieval(细粒度检索):聚焦最相关知识
- Incremental Adaptation(增量适配):高效的合并、剪枝和去重
创新 2:Grow-and-Refine(增长-精炼机制)
工作流程:
新增 bullet → 追加(带新 ID)
已有 bullet → 原地更新(如增加计数器)
去重步骤 → 通过语义嵌入比较 bullet → 剪枝冗余
两种触发模式:
- 主动模式:每个 delta 后执行(适合低延迟需求场景)
- 惰性模式:仅在超出上下文窗口时执行(适合追求极致准确率的场景)
创新 3:Multi-Epoch Adaptation(多轮适配)
支持同一查询集的多次重访,逐步强化上下文质量。
四、实验结果
4.1 实验设置
评估任务类别
| 类别 | 具体任务 | 特点 |
|---|---|---|
| LLM Agent | AppWorld | 多轮推理、工具使用、环境交互 |
| 金融分析 | FiNER, Formula | XBRL 金融文档理解、数值推理 |
| 医疗推理 | DDXPlus | 诊断推理 |
| 文本转SQL | BIRD-SQL | 自然语言到 SQL 的转换 |
对比基线
| 方法 | 类型 | 特点 |
|---|---|---|
| Base LLM | 无适配 | 直接使用默认提示词 |
| ICL | 上下文学习 | 提供任务示例 |
| Reflexion | 反思式 | 从失败中反思改进 |
| TextGrad | 类梯度 | 通过类梯度的文本反馈优化 |
| GEPA | 执行追踪 | 基于执行轨迹迭代精炼 |
| Dynamic Cheatsheet | 动态记忆 | 外部记忆积累策略 |
4.2 核心结果
结果 1:Agent 任务上的显著提升(+10.6%)
AppWorld 基准:
| 方法 | Test-Normal TGC | Test-Challenge TGC | 平均提升 |
|---|---|---|---|
| Base LLM (DeepSeek-V3) | 42.8% | 22.0% | - |
| Reflexion | 48.9% | 26.4% | +5.3% |
| GEPA | 51.6% | 28.0% | +7.4% |
| Dynamic Cheatsheet | 53.4% | 30.1% | +9.4% |
| ACE (Ours) | 56.8% | 35.2% | +13.6% |
亮点:在更具挑战性的 test-challenge 分割上,ACE 相比基线提升了 +13.2 个百分点。
结果 2:领域特定任务的全面领先(+8.6%)
金融分析基准:
| 基准 | Base | 最佳基线 | ACE | 提升幅度 |
|---|---|---|---|---|
| FiNER | 78.2% | 83.1% (GEPA) | 87.4% | +4.3% |
| Formula | 52.3% | 58.7% (DC) | 63.5% | +4.8% |
其他领域:
| 基准 | Base | 最佳基线 | ACE |
|---|---|---|---|
| DDXPlus (医疗) | 56.1% | 61.3% | 64.8% |
| BIRD-SQL | 47.8% | 54.2% | 58.9% |
结果 3:超越生产级系统!
AppWorld 公开排行榜对比:
| 系统 | 底部模型 | Overall Avg | Challenge Split |
|---|---|---|---|
| IBM-CUGA (#1) | GPT-4.1 | 60.3% | - |
| ACE (Ours) | DeepSeek-V3 | 60.3% | 超越 #1 |
震撼结论:使用开源模型 DeepSeek-V3 的 ACE,在使用更小模型的情况下,在整体平均分上追平了使用 GPT-4.1 的顶级商业系统 IBM-CUGA,并在更具挑战性的 challenge 分割上超越了它!
4.3 效率优势
延迟降低:86.9%
| 方法 | 平均适配延迟 | 相对 ACE |
|---|---|---|
| GEPA | ~120s | 7.6x 更慢 |
| Dynamic Cheatsheet | ~85s | 5.4x 更慢 |
| ACE | ~16s | 1x (基线) |
成本更低
- Rollout 数量显著减少:ACE 需要的 rollout 次数远少于其他自适应方法
- Token 成本更低:增量更新避免了完整的上下文重写
4.4 消融实验:每个组件都至关重要
| 移除组件 | 性能下降 | 说明 |
|---|---|---|
| 移除 Reflector | -4.2% | 反思器是质量保证的核心 |
| 单 epoch(无多轮适配) | -3.1% | 多轮迭代能持续改进 |
| 全量重写替代增量更新 | -2.8% | 增量更新防止坍塌并降低延迟 |
| 移除去重步骤 | -1.5% | 去重保持上下文的紧凑性和相关性 |
五、ACE 生成的上下文样例
以下是在 AppWorld 基准上 ACE 生成的部分上下文(节选):
=== ACE 生成的战术手册(部分展示)===
【策略类】
• 当处理文件操作时,始终先检查文件是否存在再执行写入操作,
否则会因文件不存在而报错。使用 try-except 包裹文件操作。
• API 调用返回的错误码 404 通常表示资源未找到,此时应检查
URL 路径是否正确,而不是重试相同的请求。
【工具使用指南】
• email_send 函数需要三个必需参数:to(收件人地址)、
subject(邮件主题)、body(邮件正文)。缺少任一参数会抛出 TypeError。
• file_read 在读取不存在的文件时会返回 None,应在此后做空值检查。
【常见失败模式】
• 在循环中使用 file_write 时,如果不显式关闭文件句柄,
可能导致内容未被正确刷新。建议使用 with 语句管理文件生命周期。
• 多步操作中如果中间步骤依赖前一步的返回值,务必验证
前一步返回的不是 None 或空字符串。
【领域概念】
• AppWorld 的文件系统区分大小写:"Report.pdf" 与 "report.pdf"
是不同的文件。搜索时应注意大小写匹配。
...
可以看到,ACE 生成的上下文包含了具体的策略、精确的工具参数说明、真实的失败模式和领域概念——这些都是简洁性偏差容易丢失的关键信息。
六、关键设计洞见
6.1 为什么 LLM 需要长而详细的上下文?
人类 vs LLM 的差异:
- 人类:从简洁的概括中受益(认知负荷有限)
- LLM:在提供长、详细的上下文时表现更好,可以自主提取相关信息
这意味着我们应该让 LLM 自己决定什么重要,而不是预先压缩掉可能重要的细节。
6.2 无监督自改进:利用执行反馈而非标签
ACE 的一个重要特性是:不需要标注数据就能有效适配。它利用:
- ✅ 执行轨迹(execution traces)
- ✅ 环境信号(environment signals)
- ✅ 自然语言反馈(natural language feedback)
这使得 ACE 成为构建自我改进 LLM 系统的理想框架。
6.3 离线 vs 在线两种适配模式
| 模式 | 场景 | 示例 | 更新时机 |
|---|---|---|---|
| 离线(Offline) | 系统提示词优化 | 在训练集上优化系统提示 | 批量处理完成后部署 |
| 在线(Online) | 测试时记忆适应 | Agent 在运行中积累经验 | 每次交互后实时更新 |
ACE 在两种模式下均表现出色。
七、与 Anthropic《Building Effective Agents》的关联
有趣的是,这篇 ACE 论文与之前精读的 Anthropic 文章形成了互补关系:
| 维度 | Anthropic 文章 | ACE 论文 |
|---|---|---|
| 关注层面 | 架构设计模式 | 上下文/记忆管理 |
| 核心理念 | 从简到繁,渐进式复杂度 | 上下文应该是详尽的战术手册 |
| 对框架态度 | 审慎,推荐直接用 API | 引入新的框架但证明其价值 |
| 共同主张 | 简洁胜于复杂(但含义不同) | 上下文不应被过度压缩 |
| 适用场景指导 | Workflow vs Agent 决策树 | 何时需要丰富的上下文 |
综合启示:
- Anthropic 告诉我们如何选择架构(Workflow vs Agent)
- ACE 告诉我们选定架构后如何管理上下文/记忆
- 两者结合 = 一个完整的 Agent 设计方法论
八、我的思考与启示
1. "反直觉"的设计哲学值得深思
ACE 最让我印象深刻的核心观点是:LLM 不需要简洁的上下文,反而需要尽可能详尽的信息。这与我们作为人类的直觉完全相反——我们习惯了总结、概括、提炼要点。
深层思考:
这实际上揭示了一个重要事实——LLM 的信息处理方式与人类有本质差异。人类的大脑有有限的注意力容量和工作记忆,所以我们需要将信息压缩为简洁的形式。但 LLM 拥有百万级 token 的上下文窗口和强大的注意力机制,它们更像是一个超级图书馆管理员——给它越多的书(信息),它越能找到相关的内容。
实践意义:
在设计 Prompt 时,我应该摒弃"越短越好"的思维惯性,转而思考"还有什么有用的信息可以加进去?"
2. 三角色分工架构的普适性
ACE 的 Generator-Reflector-Curator 三角色分工不仅适用于上下文工程,我认为它可以推广到更广泛的 AI 系统设计中:
- 任何需要迭代的 AI 系统都可以借鉴这个模式
- 代码生成:生成代码 → Review 反馈 → 重构整合
- 内容创作:初稿生成 → 编辑审校 → 最终定稿
- 数据分析:初步分析 → 发现问题 → 深入挖掘
启发:这种"专业化分工"的模式可能是未来 AI Agent 系统的标准组织形式——与其用一个全能模型做所有事,不如让专门的"子代理"各司其职。
3. Context Collapse 是一个被严重低估的问题
在读这篇论文之前,我没有意识到"上下文坍塌"这个问题的普遍性和破坏力。现在回想起来,我在很多项目中可能都遇到过类似的现象但没有识别出来:
症状自查:
- Agent 在长时间运行后表现突然下降?
- 经过多次迭代优化的 Prompt 反而不如初始版本?
- RAG 系统检索到的信息越多,回答质量反而越差?
这些都可能是 Context Collapse 或其变体的表现。ACE 给出的解决方案——增量更新而非全量重写——简单而优雅,应该成为所有涉及长期上下文管理的系统的标准做法。
4. 开源模型 + 好的方法论 > 商业闭源模型
这是论文中最令人振奋的结果之一:使用开源的 DeepSeek-V3 + ACE 方法论,在 AppWorld 上追平甚至超越了使用 GPT-4.1 的顶级商业系统 IBM-CUGA。
深层含义:
- 这证明了方法论的创新可以弥补模型能力的差距
- 对于资源受限的团队来说,这是一个巨大的利好消息
- 也说明了当前 Agent 领域的竞争更多是在系统工程层面,而非单纯比拼模型大小
行动建议:
不要盲目追求最大的模型,而应该在上下文工程、工具设计、流程编排等系统工程层面投入更多的精力。
5. 自改进系统的曙光
ACE 能够在没有标注数据的情况下,仅通过执行反馈就实现有效的上下文适配。这对构建真正的自改进 AI 系统具有重要意义:
当前的局限:
- 大多数 AI 系统需要人工标注数据来改进
- 改进周期长、成本高
- 无法在运行时动态适应
ACE 展示的可能性:
- 系统可以从自身的执行经验中学习
- 改进是连续的、自动的
- 无需人工干预即可持续进化
展望:结合 ACE 的上下文自改进能力和 Anthropic 文章中的 Agent 架构设计原则,我们可以想象未来的 AI 系统——它们不仅能完成复杂任务,还能在不断的工作中变得越来越擅长这些任务。这就是真正的"AI 自我进化"。
6. 对我当前项目的启发
回顾我正在做的 RAG 项目,ACE 的思想可以直接应用:
可立即应用的改进:
- System Prompt 设计:不再追求极简,而是构建包含领域知识、工具说明、常见错误的"战术手册"
- 对话记忆管理:采用增量式更新而非全量替换,避免长对话中的信息丢失
- 错误学习机制:从失败的查询中提取教训,积累到系统上下文中
- 多轮优化:允许同一批查询多次经过系统以持续优化
7. 局限性与未来方向
ACE 的局限性(论文中也承认的部分):
- 上下文窗口限制:虽然增量更新减缓了增长速度,但上下文仍然会随时间增长,最终可能触及模型的上限
- Bullet 质量依赖 Reflector:如果 Reflector 本身能力不足,生成的洞察质量也会受限
- 领域泛化性:主要在 Agent 和金融等领域验证,在其他领域的效果有待验证
- 计算开销:三角色的设计意味着每次适配需要多次 LLM 调用
我认为值得探索的方向:
- 层级化上下文管理:建立上下文的"重要性分级",当接近窗口限制时优先保留高价值内容
- 混合压缩策略:对确实冗余的部分进行智能压缩,同时保留关键细节
- 跨任务迁移:研究在一个任务上学到的上下文能否迁移到相关任务
- 与 RAG 结合:将 ACE 的增量更新机制与检索增强生成深度结合
九、实践路线图
基于对 ACE 论文的学习,可优化的行动计划:
短期
- 在当前 RAG 项目中实现增量式上下文更新机制
- 为 Agent 构建"战术手册"式的 System Prompt
- 实现基本的 Reflector 模块,从执行反馈中提取教训
中期
- 开发完整的 Generator-Reflector-Curator 管道
- 实现 Grow-and-Refine 的去重和精炼机制
- 在至少一个生产环境中验证 ACE 方法的有效性
长期
- 探索无监督自改进在更多领域的应用
- 研究 ACE 与其他 Agent 框架(如 LangChain、CrewAI)的结合
- 贡献开源社区,分享实践经验
📚 参考资源
- ACE 项目主页 - 官方代码和文档
- AppWorld Benchmark - Agent 评测基准
- Dynamic Cheatsheet - ACE 的灵感来源
- GEPA - 当前最强的 prompt 优化基线之一
- Anthropic: Building Effective Agents - 配套阅读:Agent 架构设计指南
✍️ 总结
《Agentic Context Engineering》是一篇具有突破性贡献的论文。它不仅识别了现有上下文适配方法中的两个关键缺陷(简洁性偏差和上下文坍塌),还提出了一个优雅且有效的解决方案。
最核心的贡献在于其设计哲学的转变——从"压缩上下文"转向"丰富上下文",这一转变基于对 LLM 信息处理方式的深刻理解。配合三角色架构和增量更新机制,ACE 在保持甚至提高性能的同时,大幅降低了适配成本和延迟。
对我个人而言,这篇论文改变了我对 Prompt 工程和上下文设计的根本认识。以前我会追求简洁有力的 Prompt,现在我明白在某些场景下,一本厚厚的"战术手册"远比一张薄薄的"备忘录"更有价值。
正如论文所言:“Comprehensive, evolving contexts enable scalable, efficient, and self-improving LLM systems with low overhead.” 这句话或许会成为未来几年 AI 系统设计的核心指导原则。
更多推荐



所有评论(0)