ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Better Harness 02 · 第二层:评估模型(agent-work-loop)

Better Harness 02 · 第二层:评估模型(agent-work-loop) 02 · 第二层评估模型agent-work-loopBetter Harness 的宪法层。Agent Work Loop 模型定义了评审单元是什么、证据有哪些状态、检查怎么判、分数怎么封顶、finding 怎么立。所有评分和结论的合法性都来自这一层。解决什么问题“AI 工作流健康度是个模糊话题——如果让 AI 自己评它会刷分如果让人拍脑袋没有可复核性。Better Harness 把它变成可复核的评审协议每个分数能回答你凭什么”每个 finding 能回答证据在哪、谁修、怎么验。它从根上拒绝了两种行业通病——配置刷分装了一堆 hooks 就高分和自证改进自己修自己打分说有效。怎么工作评审单元Task Episode模型拒绝给仓库打分评审单元是Task Episode——一个用户目标 一条验收边界。它可以跨多轮对话、多个会话但每条结论必须绑定同一个 goal、target、action、result。两条纪律不因恰好在一个会话里就合并无关工作不把聚合计数跑了多少次测试、用了几个 Skill冒充任务行为。会话证据不可得时行为保持Unobserved只用项目证据支撑机制层面的结论——这叫session-limited评审不切换模型也不伪造已完成的行为。会话可得性决定证据丰富度不决定模型选择默认模型永远是 Agent Work Loop。五维 × 十五检查五个维度是稳定的评审身份每维三个检查check id 机器稳定读者标签只解释能力Task Understanding任务理解——代理理解预期结果、应用相关权威上下文、并把工作保持在显式范围与影响边界内吗三个检查目标与验收边界是否作为可恢复记录保存goal-understanding、决策用上下文是否来自权威源而非宽泛无关relevant-context、预期影响范围是否显式可追溯且扩容有批准scope-boundary。Controlled Execution受控执行——代理能通过受支持的路径启动和操作项目同时留在强制权限边界内吗三个检查干净初始态能通过项目自有非交互路径变可用instruction-led-start、目标行为可通过项目自有工作流发现并调用supported-operation、文件系统/网络/凭据/外部写留在强制授权与清理边界内permission-boundary。Change Validation变更验证——代理对最终变更跑了相关验证、用可用可观测性诊断修复失败、并复验了修复结果吗三个检查每个实质性修改映射到直接覆盖其行为的最小目标自有检查且在最后一次编辑后运行relevant-check、要求有序链failure → reproduction → diagnosis → bounded repair且重试通过不算修复证据failure-repair、修复后在最终状态重跑同一检查validate-again。Reliable Delivery可靠交付——当前结果在真实交付边界被接受、有风险相称的审批、有可用的回滚/恢复路径吗三个检查真实评审/CI/合并/发布决策绑定到当前 revision 且本地测试和代理说完成了不算交付acceptance-evidence、破坏性/特权/不可逆动作在生效前拿到必需决策high-risk-approval、实际副作用有回滚/恢复路径且不得为提高证据强度而真跑破坏性回滚rollback-recovery。Learning Capture学习沉淀——Harness 能检测重复/维护机会、变成可复用改进、并长期保持有效吗三个检查区分当前能力缺口/受支持的重复机会/熵驱动的维护机会/证据不足lifecycle-repeat-detection、机会经覆盖梯子 Loop Discovery 路由到最小持久 ownerloop-engineering、改进通过可比的后续结果评估或对照规范真理的周期性维护检查保持问责later-validation。证据状态阶梯模型的心脏七个状态描述一个机制被证据支撑到什么程度Present存在 有 owner 的机制或评审契约存在 Wired接线 相关任务/触发器/owner 路由能够到它 Exercised演练过 有链接的 episode 或检查用过它并留下了结果 Outcome-supported 可比的后续结果支持所声称的效果 Missing 检查过的证据确认必需机制/结果缺失 Unobserved 可用观测边界无法判定 Not applicable 检查过的任务和项目证据证明不适用证据状态 ≠ 通过/失败。演练过的操作可能暴露缺陷安全拒绝可能是正确行为不可达的外部边界是Unobserved而非Missing。静态配置最多证明它包含的机制。评分规则证据封顶制前四个维度用证据上限限制分数置信度——这是防配置刷分的关键设计最高受支持证据分数绝对上限Missing / Unobserved / Not applicable59Present74Wired84Exercised94Outcome-supported100这是上限不是公式必需/已触发的检查缺失、未解决、被阻塞 → 该维度压在 59 以下。超过 75 分还要求检查过的源码或测试 ownership 已执行或显式提供的验证路径。每维独立打分绝不从 finding 数量推导分数。Learning Capture 特殊Agent 给出 35–100 的整数35 仅表示完成了一次有界评审。未覆盖的重复程序/知识需求压 ≤59有 owner ≤74接线 ≤84当前任务演练但无后续对比 ≤74后续演练对比 ≤94只有后续可比且改善的结果才允许 100。一个评审充分、确无候选的干净窗口可以到 94且不强制造 Memory 或 Skill。Finding 纪律证据进证据出分数永不创造或压制 finding。finding 需要四要件检查过的缺口、有界影响、最小 owner 对齐的修复、验证路径。四要件齐了就发不管报告好不好看。一个 finding 只映射一个主检查ownership 规则不是数量上限不同原因/owner/验证路径必须分开。计数、文件名、资产存在、严重度、年龄、churn、分数本身都不是 finding。每个检查的 “Typical findings” 给出发射条件Emit only when例如任务没有可恢复的验收边界只有当打开的请求/修正/issue/Spec 证据显示冲突或缺失的完成标准实质影响了结果时才能发——模糊 prompt 本身不够。严重度三档 High / Medium / Low代码校验器强制此枚举。修复进度与 Loop Effectiveness 的分离模型里最精妙也最诚实的部分finding 绑定的修复通过目标检查后由一个独立评审者从锁定的修复前报告、实际输出、修复后验证判定verified / partial / blocked——只更新 Repair Progress。五个维度分数对读者叫Loop Effectiveness不变除非一个可比的后续 Task Episode证明修复的机制被路由了、被应用了、改善了结果、且没有护栏回归。同一窗口的验证只证明修复状态不证明后续有效性。换句话说改了 AGENTS.md 并通过检查 ≠ 工作循环变好了只有下一次同类任务真的更顺才有资格动 Loop Effectiveness 分数。投影边界什么证据能支撑什么结论模型给出一条硬边界链防止证据越权打开的项目和代理资产 → repositoryEvidence机制存在 有界的相关任务事件 → taskEpisodes行为 相关变更 最终验证 → Change Validation 验收/批准/回滚/恢复结果 → Reliable Delivery 受支持的重复机会 → Loop Discovery → 持久 owner 评审过的持久 owner 演练路径 → 可复用的 Learning Capture 证据 后续可比结果 → outcome-supported 证据归属或链接缺失时保留Unobserved / Missing / Not applicable不用聚合计数或散文填空。为什么这么设计为什么证据状态 ≠ 通过/失败演练过的操作可能暴露缺陷Exercised 但 fail安全拒绝可能是正确行为fail 但对不可达的外部边界是 Unobserved 而非 Missing。如果把演练过等于通过就会把暴露问题的证据变成掩盖问题的分数。为什么用上限而不是公式公式可以被刷——多配几个 hooks 就凑够分数项。上限是从天花板往下压静态配置最多 74因为存在只证明机制在那不证明被用过。只有 Exercised演练过有结果才到 94只有后续可比改善结果才到 100。为什么修复完分数不能动这是防自证改进的命门。改了配置通过检查只能说修复状态变了工作循环是否真变好要等下一个可比任务证明。同一窗口的验证只证明修复状态不证明后续有效性。为什么 Learning Capture 只有后续可比结果才到 100学习沉淀的本质是下次能用上。如果只有当前任务演练过、没有后续对比最多 94——因为你还没证明它真的复用了。强制要求后续可比结果就是逼学习这个词名副其实。模型的理论来源模型公开了五维各自的第一性来源Task Understanding 和 Controlled Execution 借鉴 OpenAI《Harness Engineering》规约意图、隔离启动、agent 可及工具、机械强制边界Change Validation 借鉴 Google SWE Book 测试章 OpenTelemetry Logs 规范行为导向测试、跨执行上下文关联Reliable Delivery 借鉴 GitHub Protected Branches 契约当前 revision 的必需检查、评审门、受控绕过Learning Capture 借鉴 Google SRE Postmortem Culture复发证据、贡献原因、有 owner 的预防行动、后续有效性。这些来源解释模型的形状不冻结术语、运行时、厂商特性或数字分数。模型的所有权地图模型末尾显式声明分工五张定义表拥有读者问题和能力含义Look for/Typical findings拥有适用性和判定条件证据怎么采集归 references 各域。Overlay 可以增加证据源或更严的本地闸门但不得改五维名称、加第十六个检查、把已配置资产冒充行为、或弱化任何判定条件。面试表述Q证据上限怎么防配置刷分这是整个设计最关键的一招。分数不靠公式累加而是被证据状态从天花板往下压静态配置Present最多 74 分因为配置存在只证明机制在那不证明被用过只有 Exercised演练过有结果才到 94只有 Outcome-supported后续可比改善结果才到 100。你装了 100 个 hooks分数天花板还是 74——想上 94 必须拿出演练证据想上 100 必须拿出后续同类任务真的变好了的证据。Q证据状态为什么不等于通过/失败因为它们回答的是不同的问题。证据状态回答这个机制被证据支撑到什么程度通过/失败回答这次操作的结果是什么。演练过的操作可能暴露缺陷Exercised 但 fail安全拒绝可能是正确行为fail 但对。如果把演练过等于通过就把暴露问题的证据变成了掩盖问题的分数。Q修完一个 finding分数为什么不能立即涨因为修复状态和后续有效性是两件事。改了 AGENTS.md 并通过检查只证明修复状态变了——Repair Progress 更新为 verified。但工作循环是否真变好Loop Effectiveness要等下一个可比的同类任务证明修复的机制被路由了、被应用了、改善了结果、且没有护栏回归。同一窗口的验证只证明修复状态不证明后续有效性。这就是防自证改进的命门。QUnobserved 和 Missing 有什么区别Unobserved 是可用观测边界无法判定——证据不够什么也没证明Missing 是检查过的证据确认必需机制/结果缺失——有证据证明它确实缺。前者不证明任何事后者证明缺了东西。把 Unobserved 当 pass 是铁律禁止的。记忆点评估模型的本质是——分数被证据状态从天花板往下压配置存在最多 74 分演练过最多 94只有后续可比改善结果才到 100修完只动修复进度维度分数要等下一个可比任务才有资格动。上一篇01 · 工程实践层 下一篇03 · 可运行实现层
返回列表