Skip to content

【实现】 Agent Loop 重构 Phase 0:建立任务质量评测基线与迁移护栏 #722

Description

@wynxing

关联 RFC / 架构

目标问题

Agent Loop 重构的首要目标是提高任务完成质量,但当前缺少可重复的真实任务基线。若只以单元测试和代码拆分验收,无法证明多阶段编排优于现有 Run,也无法识别 token、延迟和人工介入方面的退化。

实现设计(How)

  • 建立版本化 Agent 任务评测清单,覆盖纯问答、只读分析、单文件修复、多模块修改、测试失败修复、架构规划、权限等待、compact、取消和恢复。
  • 每个案例定义固定仓库状态、用户输入、允许工具、验收命令、预期工作区 diff 范围和最大预算。
  • 评测 runner 通过 Gateway/Runtime 公开入口驱动任务,不绕过主链直接调用内部 provider。
  • 输出机器可读报告:完成状态、验收结果、轮数、provider calls、tool calls、input/output tokens、TTFT、耗时、人工介入、stop reason 和错误分类。
  • 固化当前实现基线,并为后续 phase 提供同口径对比。
  • 补充迁移护栏测试,锁定用户消息持久化、tool result 回灌、预算/compact、权限、checkpoint、acceptance 和 stop reason 的现有关键契约。

影响模块:评测工具、测试夹具、测试文档和 CI;不修改 Agent Loop 行为。

边界与非目标:不追求一次覆盖所有语言生态;不使用主观文本相似度替代可执行验收;不把真实 API key 或用户仓库数据提交到仓库。

任务拆解

  • 定义评测案例 schema、结果 schema 和版本字段。
  • 建立最小代表性任务集及可重复的仓库 fixture。
  • 实现通过正式入口执行任务、收集事件和生成报告的 runner。
  • 为工作区 diff、命令结果和最终状态实现确定性判定。
  • 记录当前主分支基线并保存汇总,不提交敏感 provider 响应正文。
  • 增加主链契约护栏测试和事件顺序断言。
  • 在 CI 中提供可离线执行的 deterministic suite;需要真实模型的 suite 明确为独立任务。
  • 编写基线复现、结果解释和回归判定文档。

测试与验证(Done)

  • 正常路径:同一 fixture 重复运行得到结构一致、指标字段完整的报告。
  • 边界条件:空输出、无 tool call、达到 max turns、usage 缺失和零 diff 能正确记录。
  • 异常分支:provider、tool、permission、persistence 和验收失败被归入稳定错误分类。
  • 隔离性:每个案例运行前后工作区状态可恢复,案例之间不共享 Session 或 checkpoint 污染。
  • 安全性:报告和 fixture 不包含 API key、本地绝对密钥路径或真实用户数据。
  • go test ./... 通过,新增修改逻辑达到 100% 覆盖目标。

风险与回滚

  • 风险:真实模型评测存在随机性。使用固定任务、明确验收、重复次数和 deterministic suite 分离降低噪声。
  • 风险:评测 runner 绕过真实链路导致指标失真。强制从 Gateway/Runtime 正式入口执行。
  • 回滚:评测代码与生产运行路径隔离,可独立移除,不影响当前 Agent Loop。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions