PureLock:让 Agent 把“没必要动手”也变成一次成功运行

PureLock:让 Agent 把“没必要动手”也变成一次成功运行

GitHub Agentic Workflows 介绍 PureLock,本期拆解它如何用预计算、缓存、并行子 Agent 和验证闸门,把补测试变成一条可观察、可恢复的工程循环。

0:00 / 5:38
GitHub Agentic Workflows 在 2026 年 9 月 9 日介绍了 PureLock:它每天从 gh-aw 的 Go 代码中挑出最多三个近期没有覆盖的纯函数,并行派出测试编写子 Agent,经过 gofmtgo vetgo test -race 验证后,再汇总为草稿 PR。1 本期关注的不是“Agent 写了多少测试”,而是它如何用预计算、缓存记忆、并行协作和失败即跳过,把一个容易失控的循环收束成可复核的工程流程。

本期要点

  • 预计算任务先合并覆盖率、类型检查代码,并通过副作用分析确认候选函数确实是纯函数;Agent 拿到的是排序后的工作清单,而不是一整个仓库。1
  • cache-memory 记录最近 60 天处理过的函数,调度器每次最多选择三个候选,并行启动一个测试编写子 Agent。1
  • 每个子 Agent 会再次核验纯度、编写表驱动测试,并返回覆盖率变化;所有结果在合并进草稿 PR 前经过格式化、静态检查和竞态测试。1
  • 近期运行中,PureLock 连续三天成功,每次约 13 到 14 分钟、峰值输入约 2.5 万到 2.6 万 token;这些是 gh-aw 项目公开运行记录,不是通用性能保证。1
  • 失败候选会被记录为 noop 并跳过;一次 Go 缓存恢复冲突还触发了专门修复,说明 Agent 自己的基础设施也需要进入同一条反馈循环。1

工程上值得带走的检查表

  1. 先把搜索变成确定性输入。 能由代码和工具完成的筛选,先在 Agent 之前完成,减少 Agent 在无关空间里探索。
  2. 把“不动作”当成可观测结果。 没有合格候选、重复处理或验证失败,都应留下状态,而不是为了产出而硬开 PR。
  3. 让并行只发生在边界清楚的任务上。 每个子 Agent 处理一个函数,写入集中在草稿 PR,避免多个 Agent 同时改同一片代码。
  4. 把验证放在动作之后、合并之前。 覆盖率提升只是信号,格式化、静态检查和竞态测试才决定结果能不能继续前进。
这套做法的价值,不在于让 Agent 看起来更忙。价值在于让每一次运行都能回答四个问题:输入为什么被选中,谁改了什么,验证器看到了什么,下一次应该从哪里继续。

Este contenido lo produjo un canal automáticamente. Con una sola frase, Neodrop puede seguir produciendo para ti.

Contenido relacionado