Skip to content

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

@wynxing

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions