ACE
Agentic Context Engineering
通过创新的战术手册式上下文和增量演化机制, ACE在不修改模型权重的情况下, 在智能体任务上实现了10.6%的性能提升, 在领域专用任务上实现了8.6%的性能提升。 这是大语言模型上下文适应的重要突破。
什么是上下文适应?
想象一下,你要教会一个助手做事,是直接重新培训它(改变大脑),还是给它一本详细的操作手册(提供上下文)?
上下文适应(Context Adaptation)就是在不修改模型权重的情况下,通过优化输入来提升性能:
上下文适应(Context Adaptation)就是在不修改模型权重的情况下,通过优化输入来提升性能:
- 系统提示词(System Prompt):指导下游任务的核心指令
- 记忆(Memory):携带过去的事实和经验
- 事实证据(Evidence):减少幻觉,补充知识
现有方法的困境
传统的上下文适应方法面临两个致命缺陷:
1️⃣ 简洁性偏差(Brevity Bias)
• 许多优化器追求简洁、通用的指令
• 抽象化会丢失领域特定的启发式规则、工具使用指南
• 关键洞察:LLM不像人类需要简洁总结,它们更擅长从详细的长上下文中自主提取相关性
2️⃣ 上下文坍缩(Context Collapse)
• 依赖LLM整体重写上下文会逐渐退化
• 每次迭代都会压缩信息,随时间推移变得更短、更不详细
• 导致性能急剧下降
1️⃣ 简洁性偏差(Brevity Bias)
• 许多优化器追求简洁、通用的指令
• 抽象化会丢失领域特定的启发式规则、工具使用指南
• 关键洞察:LLM不像人类需要简洁总结,它们更擅长从详细的长上下文中自主提取相关性
2️⃣ 上下文坍缩(Context Collapse)
• 依赖LLM整体重写上下文会逐渐退化
• 每次迭代都会压缩信息,随时间推移变得更短、更不详细
• 导致性能急剧下降
上下文坍缩问题 - 传统方法在多次迭代后会导致信息丢失和性能下降
ACE 的核心理念
ACE提出将上下文视为演化的综合战术手册,而非压缩摘要。
设计哲学:"成长与精炼"(Grow-and-Refine)
类比:传统方法像重新写一本新书,ACE像维护一个不断扩充的百科全书。
设计哲学:"成长与精炼"(Grow-and-Refine)
| 对比维度 | 传统方法 | ACE 方法 |
|---|---|---|
| 更新方式 | 每次迭代替换整个上下文 | 增量添加新策略 |
| 设计目标 | 追求简洁性 | 追求全面性 |
| 生成方式 | 单次LLM调用重写 | 模块化的生成-反思-策展流程 |
| 信息保留 | 容易发生信息丢失 | 保留历史见解 |
ACE框架 - Generator、Reflector、Curator三个模块协同工作
1
Generator(生成器)
负责生成候选经验:
- 离线场景:并行执行多个任务实例
- 在线场景:从实时执行中捕获经验
- 生成原始轨迹、工具调用、推理过程
# Pseudo code
for task in task_pool:
trajectory = execute_task(task, current_context)
raw_experiences.append(trajectory)
2
Reflector(反思器)
从经验中提取结构化见解:
- 分析成功和失败案例
- 识别可复用的策略模式
- 提取领域特定的启发式规则
- 生成多粒度的策略条目(从具体到抽象)
# Reflection generates multi-level strategies:
insights = reflector.analyze(raw_experiences)
# Output example:
# - Specific: "When date parsing fails, try ISO 8601 format"
# - Pattern: "Check parameter types after tool call failures"
# - Principle: "Prioritize handling edge cases"
3
Curator(策展器)
管理和组织策略库:
- 增量更新:只添加新见解,不删除旧内容
- 去重合并:识别重复或冗余的策略
- 分类组织:按主题、工具、任务类型分组
- 优先级排序:高频或高影响策略前置
def curate(current_context, new_insights):
# Step 1: Identify novel content
novel_items = deduplicate(new_insights, current_context)
# Step 2: Structured merge
updated_context = merge_with_structure(
current_context,
novel_items,
preserve_details=True # KEY: Preserve details
)
# Step 3: Reorganize
return reorganize_by_category(updated_context)
结构化上下文组织
ACE生成的上下文采用层次化结构:
## Category: Tool Usage
### API Calling
- **Specific**: For `search_user` API, always include
`exact_match=True` for email queries
- **General**: Validate all API parameters before submission
## Category: Error Handling
### Parsing Errors
- When date parsing fails, try formats:
ISO 8601 → US format → EU format
- Log original error message for debugging
多粒度策略提取
Reflector生成三个层次的策略:
去重与合并算法:
• 使用嵌入式向量计算语义相似度
• 相似度 > 0.85 时合并
• 保留更详细或更新的版本
- 具体案例:可直接复制的解决方案
- 中层模式:可迁移的策略模板
- 抽象原则:高层次指导思想
去重与合并算法:
• 使用嵌入式向量计算语义相似度
• 相似度 > 0.85 时合并
• 保留更详细或更新的版本
ACE在AppWorld基准测试上生成的上下文示例 - 展示了详细的战术手册式内容组织
实验结果:AppWorld 智能体基准测试
在AppWorld智能体基准测试上的表现(越高越好):
关键发现:
✓ 离线ACE:比最强基线提升 10.6%
✓ 在线ACE:在测试时持续学习,进一步提升至 24.7%
✓ 挑战集:在更难的任务上提升更显著(+21.2%)
| 方法 | Normal-Test | Challenge-Test | Average |
|---|---|---|---|
| Base LLM | 21.0% | 8.0% | 14.5% |
| ICL | 23.5% | 9.5% | 16.5% |
| MIPROv2 | 25.8% | 11.2% | 18.5% |
| GEPA | 26.5% | 10.8% | 18.7% |
| Dynamic Cheatsheet | 28.2% | 12.5% | 20.4% |
| ACE (离线) | 31.8% | 14.2% | 23.0% |
| ACE (在线) | 33.5% | 15.8% | 24.7% |
✓ 离线ACE:比最强基线提升 10.6%
✓ 在线ACE:在测试时持续学习,进一步提升至 24.7%
✓ 挑战集:在更难的任务上提升更显著(+21.2%)
整体性能结果 - ACE在所有测试场景中均显著超越基线方法
+10.6%
智能体任务提升
+8.6%
领域专用任务提升
-34%
适应延迟降低
-32%
推出成本降低
领域专用任务:FINER 金融基准
在金融分析任务上的准确率表现:
证明了ACE在知识密集型任务上的有效性。
| 方法 | 准确率 | vs Base LLM |
|---|---|---|
| Base LLM | 58.3% | - |
| ICL | 61.7% | +3.4% |
| GEPA | 63.2% | +4.9% |
| ACE | 68.9% | +10.6% |
AppWorld 官方排行榜实战
在AppWorld官方排行榜上(2025年9月):
这证明了"好的上下文设计可以弥补模型能力差距"。
- ACE 使用开源小模型(Qwen-14B)
- 在整体平均分上匹敌排名第一的生产级智能体(使用闭源大模型)
- 在Challenge-Test分割上超越排名第一
这证明了"好的上下文设计可以弥补模型能力差距"。
效率优势对比
| 指标 | Dynamic Cheatsheet | ACE | 提升 |
|---|---|---|---|
| 适应延迟(秒/迭代) | 12.3 | 8.1 | 34% ↓ |
| 推出成本(美元) | 2.45 | 1.67 | 32% ↓ |
| 上下文长度(token) | 1,200 | 2,800 | 133% ↑ |
消融实验:每个组件都重要吗?
| 配置 | 性能 | 性能损失 |
|---|---|---|
| 完整 ACE | 24.7% | - |
| 移除 Incremental Updates(整体重写) | 19.3% | -5.4% |
| 移除结构化组织 | 21.5% | -3.2% |
| 移除 Reflector(直接使用轨迹) | 18.8% | -5.9% |
| 移除 Curator(无去重) | 22.1% | -2.6% |
• Reflector最关键(-5.9%),证明了结构化反思的价值
• 增量更新至关重要(-5.4%),防止上下文坍缩
• 每个组件都贡献显著
技术架构总结
ACE采用了模块化生成-反思-策展架构:
传统方法: [任务执行] → [LLM一次性重写] → [压缩上下文]
↓
信息丢失 + 简洁性偏差
ACE方法: [任务执行] → [Reflector提取见解] → [Curator增量合并]
↓
详细战术手册 + 防止坍缩
核心优势:
- 全面性:保留详细的领域知识和策略
- 演化性:持续积累经验而不丢失历史
- 结构化:分类组织,易于检索和使用
- 高效性:模块化设计降低延迟和成本
- 通用性:适用于离线和在线场景
最佳适用场景
ACE特别适合以下场景:
🤖 多步推理智能体:工具调用密集、环境交互复杂、需要积累经验
📊 领域专用应用:金融分析、法律推理、医疗诊断、科学研究
⏰ 长期运行系统:客服机器人、个人助理、需要持续学习
💡 资源受限场景:小模型 + 好上下文 > 大模型 + 差上下文
🎯 无监督学习:没有标注数据,利用自然执行反馈
🤖 多步推理智能体:工具调用密集、环境交互复杂、需要积累经验
📊 领域专用应用:金融分析、法律推理、医疗诊断、科学研究
⏰ 长期运行系统:客服机器人、个人助理、需要持续学习
💡 资源受限场景:小模型 + 好上下文 > 大模型 + 差上下文
🎯 无监督学习:没有标注数据,利用自然执行反馈
实现建议
根据论文,推荐配置:
模块选择:
• Reflector:使用强推理模型(GPT-4、Claude)
• Generator:可用较小模型执行任务
• Curator:使用嵌入模型做相似度计算
超参数:
• 反思频率:每5-10个任务实例反思一次
• 去重阈值:语义相似度0.85
• 上下文长度:充分利用模型的上下文窗口(32K+)
• 分类数量:5-10个主要类别
工程优化:
• KV Cache复用:缓存固定的上下文前缀
• 并行生成:Generator可并行执行多个任务
• 异步更新:Curator可离线更新上下文
模块选择:
• Reflector:使用强推理模型(GPT-4、Claude)
• Generator:可用较小模型执行任务
• Curator:使用嵌入模型做相似度计算
超参数:
• 反思频率:每5-10个任务实例反思一次
• 去重阈值:语义相似度0.85
• 上下文长度:充分利用模型的上下文窗口(32K+)
• 分类数量:5-10个主要类别
工程优化:
• KV Cache复用:缓存固定的上下文前缀
• 并行生成:Generator可并行执行多个任务
• 异步更新:Curator可离线更新上下文
关键启示
1️⃣ 上下文设计的范式转变
传统观念:上下文应该简洁
ACE观念:上下文应该全面,LLM会自己挑选相关内容
2️⃣ 长上下文的正确用法
长上下文LLM的价值不是"读更多文档",而是"维护更详细的战术手册"。
3️⃣ 增量学习的重要性
在LLM系统中,增量更新 > 整体重写,这是防止信息丢失的关键。
4️⃣ 模块化的力量
将复杂任务拆解为Generator-Reflector-Curator三个模块,每个模块职责清晰、可独立优化。
传统观念:上下文应该简洁
ACE观念:上下文应该全面,LLM会自己挑选相关内容
2️⃣ 长上下文的正确用法
长上下文LLM的价值不是"读更多文档",而是"维护更详细的战术手册"。
3️⃣ 增量学习的重要性
在LLM系统中,增量更新 > 整体重写,这是防止信息丢失的关键。
4️⃣ 模块化的力量
将复杂任务拆解为Generator-Reflector-Curator三个模块,每个模块职责清晰、可独立优化。
基于Stanford University与SambaNova Systems发布的ACE研究论文 | 论文原文 | AppWorld基准测试