Loop Engineering入门:Better Harness教你把AI的重复劳动变成Skill、Hook或自动化的选型指南
【免费下载链接】better-harnessAn open-source Harness Engineering platform for coding agents—define harnesses as code, run controlled experiments, inspect evidence, and compare outcomes. Turn task evidence into actionable team and organization insights.项目地址: https://gitcode.com/gh_mirrors/be/better-harness
你有没有发现,AI 编码助手虽然快,但总有一些活它每次都"重新发明一遍":重复的提示词、反复的验证步骤、一遍遍人工确认?Better Harness 开源项目中的Loop Engineering(循环工程)领域,正是帮你把 AI 的重复劳动识别出来,并按需沉淀为Skill、Hook 或自动化的完整方法论。本文用最短的路线讲清楚:如何发现重复劳动、如何做"三选一"的选型决策,以及怎样用一张卡片把选型落成可执行的契约,让你的 AI 工作流越跑越省事。
1️⃣ 什么是 Loop Engineering?
一句话定义:Loop Engineering 就是给 AI 的重复工作"选对承载形式"的工程实践——判断一段重复劳动应该由谁长期负责:一段可复用的操作手册(Skill)、一个生命周期卡点(Hook)、还是定时/事件触发的自动化(Automation)。
它来自 Better Harness 的 references/loop-engineering/README.md,核心运营法则只有一条:
优先选择能解决问题的最小可控工作流,只有当循环的运行时契约(触发、状态、可观测、评估、护栏、停止条件)明确时,才升级成自主 Agent 循环或定时任务。
换句话说:"Agent 能一直调工具"不等于"该让它自动循环"。选型的前提是证据,而不是感觉。
2️⃣ 先发现:AI 的重复劳动藏在哪里?
Loop Discovery 要求你带着"有边界的证据"来判断,而不是翻完整会话日志。四类信号最值得看(见 references/loop-engineering/loop-discovery.md):
- 重复的用户意图:同一类提示词出现至少两次;
- 已有的覆盖缺口:现有 Skills、Hooks、脚本、CI 并没有覆盖这件事;
- 稳定的输入:每次都能从同一类 diff、日志、报告里启动;
- 本地熵信号:文档过时、文件热点、验证缺失等结构性摩擦。
Better Harness 的 Harness Inspector 就是为这类"证据考古"设计的:它把用户提示、工具调用、文件编辑、提交串成一条时间线,重复劳动一眼可见。
上面这个示例里,同一目标"重新生成 feature-tree.md"被反复提示了四轮——这正是 Loop Discovery 所说的Repeated intent(重复意图):一个典型的"该沉淀了"的信号。
3️⃣ 选型决策:Skill、Hook 还是自动化?
3.1 第一步:判断循环的"运行时形态"
在选载体之前,先回答"这是什么类型的循环"(loop-discovery.md 中的 Runtime-Fit Check):
| 形态 | 特征 | 倾向的承载 |
|---|---|---|
| Workflow loop(工作流循环) | 步骤基本已知、路径可预测 | 命令、脚本、Hook、规则、Skill 支撑的剧本 |
| Agent loop(Agent 循环) | 需要灵活规划、工具调用、从变化证据中恢复 | 定制 Agent / 子代理 + 轮次与工具边界 |
| Evaluator-optimizer(评估-优化) | 有明确评估标准,多跑一遍可量化变好 | 评估器 + 优化器成对出现 |
| Scheduled / Background(定时/后台) | 有节奏或事件触发、输入非交互 | 自动化 |
| Human-gated(人工闸门) | 涉及敏感编辑、外部写入、密钥 | 人工审批点前置 |
| Skill-shaped(技能形态) | 沉淀物是"给 Agent 加载的过程性知识" | Skill |
关键判据:能用确定性工作流、静态规则或人工清单 tighter control 的,就不要升级成自主 Agent。
3.2 三种承载物的"分工"
Better Harness 把 Skill 与 Hook 的边界讲得非常干净(agent-hooks.md):
- Rules / AGENTS.md负责"陈述项目事实与软约束";
- Hooks是确定性卡点层:在生命周期事件上拦截、审批、记录、校验,返回 allow / deny / feedback;
- Skills负责"描述安全工作流、补救路径与例外处理"——它是打包的过程性知识,不是调度器、不是审批系统、也不是运行时状态;
- Scripts拥有解析、策略检查、格式化、校验逻辑;
- CI / 策略服务是最后的兜底。
由此得出实用的选型直觉:
- 🧩选 Skill:当你沉淀的是"怎么做"——步骤、示例、参考、验证路径,且需要 Agent 在合适的时机自己加载判断。参考 references/agent-customize/skill-discovery.md。
- 🪝选 Hook:当你需要"每次都强制执行"的确定性卡点——拦破坏性命令、保护敏感路径、编辑后自动 lint、停止前校验测试。不要把大段工作流描述塞进 Hook,Hook 应调用稳定脚本并返回窄结果。
- ⏰选自动化:当触发器稳定(定时/事件)、输入非交互、动作可逆或有闸门、且有明确的验证与停止条件。automation-readiness.md 给了 10 项就绪门槛(目标、触发、沙箱、验证、分级路径、风险边界、停止条件……),缺任何一项就只建议"一次性人工跟进"。
3.3 选型速查表
| 你的场景 | 推荐承载 | 理由 |
|---|---|---|
| 每次修 Bug 都先手工跑一遍"复现→假设→最小修复→补回归" | Skill | 可复用过程 + 需要判断,Skill 是最小主人 |
| AI 经常想改受保护目录 / 执行危险 shell | Hook | 需要确定性拦截,不能靠提示词"劝导" |
| 每晚检查依赖漂移并产出报告 | 自动化 | 稳定节奏 + 非交互输入 + 输出进分级队列 |
| 一个步骤固定、无人需要判断的格式化 | 脚本/命令 | 确定性提取/转换,别上 Agent |
| 需要独立评审、maker/checker 分离 | 子代理(Subagent) | 独立上下文提升证据质量 |
| 跨天、跨运行、需要记住进度 | 状态账本(State) | 见 loop-state-ledger.md |
更多"原料级"的组合规则(Automation / Worktree / Skill / Plugin / Subagent / State)在 references/loop-engineering/loop-primitives.md:只用一个主要主人 + 让它可靠的辅助原语,不要一上来就全家桶。
4️⃣ 用 Loop Spec Card 把选型写成契约
选完承载物,用一张六格卡片把循环说死(references/loop-engineering/loop-spec-card.md):
WHEN -> SEE -> DO -> CHECK -> STOP -> LEAVE| 格子 | 要写清什么 |
|---|---|
| When | 真实触发器:CI 失败、某报告行、某提示词簇 |
| See | 行动前必须查看的具体证据(文件、命令、会话、日志) |
| Do | 最小允许动作,以及明确"不许做什么" |
| Check | 证明动作有效的验证信号;没有就写"缺失",不许编造 |
| Stop | 成功条件 + 至少一个"不成功"边界(不可复现、需产品决策、两轮无新证据) |
| Leave | 留给下一轮的持久产物:补丁、报告、运行日志、风险备注 |
参考文档里给出的完整示例"Test-Driven Repair Loop"就长这样:When 是"CI 出现可复现的失败测试",Do 限定"只做一个最小安全修复,禁止因命名相似扩大修复范围",Check 是"重跑原失败测试"。如果一件事填不进这张卡,它大概率太宽泛或缺证据——先别沉淀。
5️⃣ 五种运行模式:循环跑起来之后
循环被证实、主人选定后,patterns/README.md 提供五种可组合的运营模式:
- 📅定时巡检:目标应何时再被观察一次?产出分级队列、摘要或"无变化"记录;
- ⚡事件响应:发生了什么、该路由到哪里?先验证来源、权限、幂等;
- 🎯目标完成:已批准的目标如何走到"可验证的终点"?产出补丁、测试、完成报告;
- 🔍主动发现:观察到的证据是否足以干预?允许输出"沉默"也是一种结果;
- 🧬系统改进:从运行结果反哺 Agent / Harness 自身,产出评估用例与版本化变更。
它们可以组合:定时巡检 → 主动发现 → 人工确认 → 目标完成,是团队最常见的起步链路。
6️⃣ 上手:让 Better Harness 替你跑一次 Loop Discovery
不需要自己从头翻证据。在支持的主机(Claude Code、Codex、Qoder、Cursor、GitHub Copilot 等,见 README.md 的 Quick start)里执行报告提示词,Better Harness 会收集项目与会话证据,评估 Agent Work Loop 五个维度,并给出带证据、带预期产出、带验收检查的分级发现——其中就包括"这段重复劳动该由 Skill / Hook / 自动化谁来做"的判断:
报告里每条 Finding 都遵循 Loop Engineering 的"证据边界"原则:证据缺失就明说缺失,不做无支撑的推断——这一点正是新手最容易忽略、也最值得借鉴的。
7️⃣ 收尾:让"改进"本身变成可验证的循环
沉淀不是终点。Better Harness 的历史视图会记录多次报告之间五个维度(Task Understanding → Learning Capture)的变化,其中Learning Capture(学习沉淀)维度回答的正是本文主题:"下一次任务是否受益于这一次":
注意它的诚实声明:历史记录展示的是趋势,不是因果证明——只有通过可比较的后续运行,才能证明循环真的改进了。这也呼应了选型指南的最后一课:Skill、Hook、自动化都是一种假设,验证与停止条件才是让它们成立的契约。
📚 延伸阅读(仓库内路径)
- 领域总览:references/loop-engineering/README.md
- 发现与选型门:references/loop-engineering/loop-discovery.md
- 原语地图:references/loop-engineering/loop-primitives.md
- 契约卡片:references/loop-engineering/loop-spec-card.md
- 自动化就绪门槛:references/loop-engineering/automation-readiness.md
- 五种运行模式:references/loop-engineering/patterns/
- Skill 发现:references/agent-customize/skill-discovery.md
- Hook 设计:references/agent-customize/agent-hooks.md
记住黄金法则:先证据,后选型;先最小主人,再谈自动化。把 AI 的重复劳动一次次变成 Skill、Hook 或自动化,你的编码循环就会从"每次重新发明"变成"越用越省"。
【免费下载链接】better-harnessAn open-source Harness Engineering platform for coding agents—define harnesses as code, run controlled experiments, inspect evidence, and compare outcomes. Turn task evidence into actionable team and organization insights.项目地址: https://gitcode.com/gh_mirrors/be/better-harness
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考