Trace Learning for Self-Improving Agents
来源: Tony Gentilcore (Glean VP Engineering) / X 长文 | 日期: 2026-04-02 原文: Trace Learning for Self-Improving Agents 解读: 你的Agent还在每次从零开始? 精读日期: 2026-04-07
一句话总结
Glean 提出从 Agent 真实执行轨迹(trace)中自动提炼可复用策略,让 Agent 越用越强——不改模型权重,只改上下文里的策略指引。
核心内容
问题:Agent 永远在 Day 1
当前 Agent 每次执行都是 stateless 的——重复探索、重走弯路、踩已知的坑。RAG / system prompt / few-shot 本质是人工预设,扩展不了也跟不上变化。需要的是 Agent 从自己的执行中积累经验。
Trace 是什么
一条 trace = 完整的执行记录:用了哪些工具、什么顺序、什么参数、什么结果。不是日志或 metric,是执行路径的完整还原。在企业环境里尤其有价值,因为最难的部分不是调用工具,而是理解工作流——哪个系统是权威源、工具怎么组合、隐含规则和顺序。这些只有在真实执行中才会浮现。
离线学习:师生制
| 角色 | 设定 | 目的 |
|---|---|---|
| Teacher Agent | 最高推理预算 + 最宽工具权限 | 做”好的执行”参考基线 |
| Student Agents(多个) | 生产约束:紧预算、严工具集、短延迟 | 模拟真实条件下的执行 |
流程:采样真实 trace → Teacher 跑一遍 → 多个 Student 跑 → 按正确性/效率/用户反馈对比打分 → 把最优策略蒸馏成自然语言 memory。
关键设计:不靠单条 teacher trace(不够可靠),用多条 trace 交叉验证。成功和失败都学——只看 golden path 的系统不知道悬崖在哪。
在线应用
查询进来 → 理解目标 → 检索相关 memory → 注入上下文调整计划 → 带着 memory 执行。
Salesforce 实例中学到的 memory 举例:
- MEDDICC 字段空或只有 “TBD” 时不动 StageName
- 更新 MEDDIC 字段先单独写入,再改 StageName
- 长文本字段追加带日期段落,不覆盖
- <10 条用 Glean Search,大量数据用 SOQL
- 选自定义字段
ARR__c,TechStack__c,Partner__c,SeatCount__c
这些规则没有一条在官方文档里——全从踩坑中来。
准确性:宁缺毋滥
验证流程四步:
- 从多条响应中提取事实性断言(assertions)
- 检查断言间一致性
- 用 Glean Search 验证冲突断言
- 矛盾无法解决 → 不学
选择高质量、有代表性、可能复现的查询来学,多分类器 + 高置信度意图检查,不”什么都学”。结果:策略更小、更干净、更可信。
工具策略:工作流级别
刻意做得窄而具体——不是”Salesforce 最佳实践”,而是”这个情境下优先用这个策略”。
核心升级:从”调用哪个工具” → “怎么跨工具完成任务”。什么时候并行/串行、哪个系统权威、多工具怎么组合成完整工作流。
额外好处:把工具聚合成更高层原语,减少运行时 action space。Agent 在”更新 release notes”这种工作流层面操作,而不是在几十个工具里逐个导航。
对 MCP 工具同样适用——MCP 工具通常描述有限,从执行 trace 中学习更有价值。
两层记忆 + 安全
| 层级 | 范围 | 内容 | 排除 |
|---|---|---|---|
| 部署级(Deployment) | 公司内共享 | 工具名、调用顺序、参数模板、查询类型 | 用户 prompt、文档内容、原始输出、标题、ID、邮箱 |
| 用户级(User) | 仅个人可见 | 内容模板偏好、PR 格式、沟通风格 | — |
安全措施:
- 写操作在 shadow path 回放,不碰生产数据
- 记忆永远不跨企业泛化
- 所有学习存储在模型外部,不进模型训练
教训:早期只做部署级记忆,后来发现用户级记忆对性能影响巨大。
前沿工作梳理
| 工作 | 解决什么问题 | 核心思路 |
|---|---|---|
| Dynamic Cheatsheet | 记什么 | 记忆作为自维护适应层,自行决定留/丢 |
| ACE (Agentic Context Engineering) | 怎么组织 | 跨 trace 聚合成结构化 playbook |
| ReasoningBank | 怎么对比学习 | 成功 vs 失败的对比学习,找关键分歧点 |
| Glean | 企业级落地 | 多执行聚合 + 严格验证 + 安全层 |
下一步:Context Graph
不只学 Agent 自己的执行 trace,还要学整个企业里”工作怎么被完成”的 trace——跨文档、跨操作、跨系统。Agent trace + Enterprise trace → 更深的工作流理解。
金句摘录
- “It’s a lot like a new employee learning a process for the first time. Even when the agent eventually succeeds, the path it took and the mistakes along the way are not retained.”
- “We also learn from both successes and failures, not just from the runs that happened to end well.”
- “The challenge is not just finding the right tool, but knowing how to use tools together effectively.”
- “Trace learning shifts the focus from ‘which tool to call’ to ‘how to accomplish a task across tools.’”
- “If the inconsistency cannot be resolved, we generate no learning at all.”
Justin 视角
- 与 Claude Code 记忆机制的对照:我们在 CC 里用的 CLAUDE.md + memory 文件 + vec-search 本质上是手动版 trace learning——人工捕捉信号、写入记忆、检索应用。Glean 做的是把这个循环自动化了。值得思考:能否在 CC 的 session-end 流程中加入更结构化的 trace 提炼?
- 投资视角:Glean 46B 估值,这篇文章展示了他们在 Agent 方向的技术深度。Trace learning 是企业 AI Agent 的关键壁垒——数据飞轮效应,用得越多越强,后来者很难追赶。这个 moat 比模型能力本身更持久。
- “不学错”的设计哲学:在企业场景尤其重要。错误的 memory 比没有 memory 更危险——Agent 会信心满满地执行错误策略。这个原则也适用于我们自己的记忆系统。
- MCP + Trace Learning 的组合:随着 MCP 生态扩张,工具描述质量参差不齐。Trace learning 能补上 MCP tool description 的不足,从实际使用中学到每个工具的”脾气”。这对做 MCP 中间层的创业公司有启发。
- 可行动 takeaway:(1) 任何做 Agent 产品的团队现在就该开始记录 trace,数据是未来进化的燃料;(2) 两层记忆(共享策略 + 个人偏好)的架构设计值得借鉴;(3) Context graph 方向值得跟踪。
延伸阅读
- Dynamic Cheatsheet — Agent 自维护记忆层
- ACE (Agentic Context Engineering) — 结构化 playbook 聚合
- ReasoningBank — 对比学习改进 Agent 策略
- Tony Gentilcore @tonygentilcore — Glean VP Engineering,持续关注
- Glean — 企业搜索 + AI Agent,估值 $4.6B