Better Harness:Agent 的交付过程,现在可以像录像一样回放

Better Harness:Agent 的交付过程,现在可以像录像一样回放

Better Harness 是我们开源的一套工具,用来检查 Coding Agent 的工作方式,并把有效经验沉淀成可复用的 SKILL。上线以来,我们一直在做一件事:从 Agent 的会话中识别重复出现的工作路径,判断哪些值得进一步沉淀。做起来以后发现,这件事远比“分析会话”复杂。

对于一次软件开发任务来说,Agent 的行为并不是孤立发生的。它从一个需求或者用户故事开始,经过对需求的理解、上下文探索、代码修改和验证,最终才形成一次可以被评审的代码贡献。只看中间的 Session,我们能看到 Agent 做了什么,却很难判断这些行为为什么发生,又有哪些行为最终进入了交付。

因此,我们开始把一次 Agent 的交付理解成一条连续的链路。现在,只需要在项目目录执行:

npx @qoder-ai/better-harness inspector

就可以生成一个本地、只读的 Harness Inspector 页面,把当前项目中的 Agent Session、文件活动和 Commit 放到同一个交互界面里。

GitHub:https://github.com/QoderAI/better-harness

Better Harness:Agent 的交付过程,现在可以像录像一样回放

从 Session 到一次完整的交付过程

Harness Inspector 最初只是一个会话调试工具:帮助我们查看 Agent 说了什么、调用了哪些工具,以及修改了哪些文件。但随着 Session、文件活动和 Git 历史逐渐被连接起来,我们发现,值得观察的是一个更完整的问题:

一次软件变更如何从一个意图出发,经过 Agent 的执行,最终形成可以进入工程系统的产出。

Session 只是这条链路的中间部分。

从意图到产出的交付链

我们将一次 Coding Agent 的交付拆成三个连续、但边界不同的部分:

Better Harness:Agent 的交付过程,现在可以像录像一样回放

  • 意图(Intent)是一次变化的语义化起点,例如用户的需求、Issue、Spec 或者是架构约束等,它们都是 Intent 的具体形态。
  • 过程(Process)体现的是这次变化发生的过程,对于 Agent 来说,主要体现为 Session 记录以及其中的搜索、读取、修改和验证
  • 产出(Output)则是 Agent 交付到工程系统的最终结果,现阶段最清晰的锚点就是代码 Commit。

所以,Spec、Session 和 Commit 并不是三个并列的抽象概念,它们分别是 Intent、Process 和 Output 在当前软件开发工具链中的可观察对象。Harness Inspector 要做的,是重新建立这条从需求到提交的可追溯的交付链路。

从叙述上看,它是一条连续的交付链;但在真实项目中,它更接近一张证据图。一个 Story 可能经历多个 Session,一段 Session 也可能涉及多个 Commit。

一个简单的示例:从 Spec 到 Commit

我们在 Better Harness 文档页创建了一个只读的公开样本(英文示例数据,不读取本地内容):https://qoderai.github.io/better-harness/inspector,其中最完整的一条是:

Better Harness:Agent 的交付过程,现在可以像录像一样回放

只看 Session,我们只能看到它是一串搜索、读取、修改和测试活动。很难确定它是否一直围绕最初的需求展开,也不知道其中哪些修改最终进入了代码库。单独看 Commit,我们虽然可以看到最终修改了哪些文件,却无法知道 Agent 在提交之前如何理解问题、建立上下文和完成验证。

当 Story、Session 和 Commit 被放到同一个界面后,这次变化才成为一段相对完整的交付过程:Story 说明为什么要修改,Session 展示修改是怎样发生的,Commit 则记录最后留下了什么。

把需求、Agent 行为和代码提交连接起来,让我们第一次能够从整体上检查一次交付。但打开一些包含数百次 Tool Call 的实际 Session 后,另一个问题很快出现了:能够把一次交付连接起来,并不意味着我们已经能够读懂它。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

Harness Inspector 如何读懂一次 Agent 交付?

围绕 Better Harness 的 Harness 模型,我们将 Harness Inspector 定义为:

Harness Inspector 是一个面向 Agent 交付过程的本地、只读工作台。它将需求、Agent Session、文件活动和 Commit 放在同一个交互界面中,用来检查一次软件变化为什么发生、怎样发生,以及最终留下了什么。

Harness Inspector 以一次完整交付为中心,围绕从需求到提交的链路,提供了三种观察方式:

  • Workbench:查看需求、Session 与 Commit 之间的关系;
  • Trace:查看 Session 内部的工作结构;
  • Replay:按照事件顺序重新观察任务如何展开。

简单来说,Workbench 看关系,Trace 看结构,Replay 看顺序。三者共同帮助我们还原一个需求如何经过 Agent 的理解、探索、修改和验证,最终形成一次可以被评审的代码提交。

Workbench:连接需求、过程与产出

Workbench 是一次交付的整体视图。在左侧,我们可以看到触发这段 Session 的用户需求,以及执行过程中对目标的补充和调整;中间展示 Agent 在 Session 中发生的搜索、读取、工具调用和 Git 操作;右侧则是当前范围内观察到的 Commit,以及它最终修改的文件。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

它的重点在于展示需求、过程和产出之间已经观察到的关系。关系证据不足时,Inspector 会保留为候选或未映射,不会自动拼出一条看起来完整的交付路径。

Trace:把 Session 读成一条工作轨迹

Workbench 帮助我们找到一次交付,Trace 则进一步展开其中的 Session。

进入 Session 后,Trace 会按照 Turn 组织用户输入、中间回复、Tool Call 和文件活动,并通过顶部的时间轴连接事件在时间上的位置。点击某个区段可以跳转到对应调用,连续重复的活动也会被折叠,避免大量相似操作淹没关键变化。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

Trace 只处理已经记录下来的行为,将它们重新组织成一条可以阅读的工作轨迹,帮助我们检查 Agent 如何搜索上下文、修改代码和执行验证。

Replay:沿事件顺序回看一次交付

Replay 则沿着已经保留的事件逐步回看任务如何展开。Reviewer 可以依次查看用户输入、Agent 回复、Tool Call、文件和 Commit,观察 Agent 在什么上下文中形成方向,又在什么时候进行了修改和验证。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

它只是一次只读的证据回放,不会重新运行工具、恢复工作区或者继续原来的 Session;没有精确时间的内容,也只保留顺序,不会补充没有被记录的过程。Workbench 建立交付上下文,Trace 展开 Session 的工作轨迹,Replay 补充事件发生的顺序。三者共同把一次从需求到提交的 Agent 交付,变成可以逐层进入和检查的过程。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

从交付过程中提炼可复用经验

看清一次交付,只是第一步。我们更关心的是:一段 Session 里,哪些做法值得进一步沉淀成 SKILL?

判断标准不在于某个 Tool Call 出现了多少次。Agent 反复读取同一个文件,可能只是没有获得足够的上下文;不断重试一条命令,也可能只是因为执行失败。这些高频动作未必是值得复用的经验,很多时候反而意味着 Agent 走了弯路。

更值得关注的,是那些在相似任务中反复出现,并且最终带来有效产出的工作路径。例如,Agent 如何从需求中划定修改范围,如何找到必要的上下文,又如何完成修改、执行验证并检查最终结果。把这些行为与对应的 Story、Session 和 Commit 对照起来,我们才能分辨哪些只是某次任务中的临时选择,哪些已经形成了相对稳定、可以迁移到其他任务中的做法。

因此,SKILL 自动沉淀的核心工作,是从多次交付中提炼共性,补充适用条件、执行步骤和验证方式。Inspector 首先要做的,就是把每次交付的来龙去脉保留下来,为后续的比较、提炼和验证提供依据。

Better Harness:Agent 的交付过程,现在可以像录像一样回放

结语:从看清交付开始

我们最初关注的是 Session,希望从中找到可以复用的工作路径。但 Session 只记录了交付过程的一部分:它能告诉我们 Agent 做了什么,却很难单独说明为什么这样做,以及这些行为最终留下了什么。

Harness Inspector 将需求、Session、文件活动和 Commit 串联起来,让一次 Agent 交付有迹可循。看清任务的来由、执行过程和最终结果,我们才可能从中分辨偶然行为与稳定经验,并把经过验证的做法沉淀成 SKILL。

对 Better Harness 来说,这只是 SKILL 自动演进的起点。

试一下:

npx @qoder-ai/better-harness inspector

GitHub:

https://github.com/QoderAI/better-harness

本文作者@Qoder,原文链接:https://mp.weixin.qq.com/s/Yy5WNeBjXwH-TduAaY3a5g

开源项目

Prime Agent:一个会改自己脚手架的编码 Agent

2026-8-17 12:01:47

开源项目

Anydoc:把 Office 文档转 Markdown 这件事,Firecrawl 直接开源了一个引擎

2026-8-17 16:24:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧