开始我一直想做的长期项目,Trace。
 Apodex | Self-Evolving Heavy-Duty Solver
  apodex将一个困难问题的探索拆解为以下几个阶段:
ambition → formulation → action → observation → verification → repair
  apodex将开放目标转化为问题清单(problem manifest)和有状态的可执行环境。
  问题清单规定目标、任务分解、可用数据和工具、资源预算、成功标准及隐藏验证路径。
  环境负责承载求解器的行动,并返回新的观察,包括工具输出、执行错误、检索证据、模拟结果、实验测量和验证器反馈。
  prompt提供固定上下文;环境会随着行动改变状态。
  他们对开放问题提出了一个验证原则: 今天可以没有答案,但必须预先说明哪些证据能够确立答案。
  Traces将评估分为两种:outcome verifier 和 process verifier。
  他们提出了HDS6:

  • Tools,工具:选择、调用并正确解释合适的工具;
  • Repair,修复:定位真实故障、修正原因并确认修复有效;
  • Alternatives,备选解释:保留相互竞争的假设,并随着证据变化更新判断;
  • Coherence,连贯性:在长时间运行中维持状态、约束与逻辑一致;
  • Evidence,证据:让重要结论可以追溯到观察、数据、实验、工具输出或来源;
  • Scope,适用边界:说明结论成立的条件与可能失效的范围。

虽然不见得每一个部分都是必要或者关键,但是总体的思路我是非常同意的,对于复杂问题,需要从trace的角度去进行评估,而且达到成功结果的完整trace会非常有价值,后续复现直接从trace的粒度去复现,成功率将会远大于将经验凝结成skill。
  因此我将会关注以下几个问题:

  1. 轨迹的形式,格式应该是什么样的,如何展示
  2. 轨迹如何采集,使用什么工具,是一个基础的infra还是skill
  3. 轨迹如何回放
  4. 轨迹如何评测,如何利用

关于轨迹的格式,NVIDIA已经给出一套规范:ATIF-NVIDIA
  但关于ATIF的细节,我还没有阅读。
  还有一篇待阅读的文章是美团发布的Agent评测漫谈 —— 由浅入深讲解Agent评测  
  关于这两个技术报告的博客后续放在这里:

  轨迹的采集最理想的方式就是Agentic Infra,但skill也可以作为轻量化的采集方式。这里的难点在于轨迹如何回放以及评测。回放指的是当agent发现自己走错,或者监督agent发现执行agent走错,如何回退到上一个state。基于这个基础,我们甚至可以从一个state出发,让不同的线程探寻不同方向,找到下一个state,这就像VMware的快照一样。注意这和同时开多个subagent执行有本质的区别,Trace将更适合复杂,困难任务,且更有助于回放归因。
  Trace_Infra     Trace_Skill
  Trace_Infra我准备先以Apodex的agent仓库为基础,先复现他们的实验,研究trace的组成部分,有一定的思考后构建底层架构,由于agentic infra非常复杂,而agentic infra的关键就是trace。因此这需要扎实的基础,我也需要高强度和ai合作,学习这方面。
  但是实际在做的过程中,会感到非常迷茫,不知道什么粒度的trace是合适的,不知道如何区分trace的节点,也不知道如何分析,更不知道究竟如何调整trace,能让agent走向正确的方向。因此基础的调研工作还是需要深入进行的。
  目前我想针对这三层做一个mvp:

  • 轨迹采集:  使用skill,hook拿到完整的轨迹
  • 状态恢复:文件、依赖、进程与上下文能否一致回退(infra)
  • 节点识别:哪里形成了可验证的阶段成果,值得标记为 milestone(过程中的自回顾)
  • 轨迹评价:这个成果是否推动最终目标,后续失败应归因于哪次决策(结果评测)

第一个需要规范的是,轨迹最少要采集哪些部分?

  • 所有阶段的耗时,token消耗(费用)
  • 模型读到的内容(历史消息,代码,报错等)
  • 模型输出
  • 工具的调用,返回
  • 过程如何衔接,先后顺序,上下文压缩前后的情况
  • 异常事件(人工介入,超时,重试等其他事件)

将一次完整的运行:Trace  而每一步称为:Span