2026-06-28 / 图片资料归档
Loop Engineering:从“人追着 Agent 跑”到“系统驱动 Agent 跑”
基于 15 张 Loop Engineering 图片资料,结合 Addy Osmani 原文、OpenAI Codex、LangChain/LangGraph、Claude Code 与 loop-engineering 开源仓库,整理给技术同事和领导都能读的工程报告。
结论
Loop Engineering 不是一个新模型,也不是某家厂商的新协议。它更像一层“任务运行时”:系统定期或被事件触发,读取状态,判断下一步,调用 Agent 或工具,验证结果,写回记录,并在需要时交给人。
对技术同事
它的落点不是 prompt,而是 state、scheduler、queue、tool allowlist、worktree、skill、subagent、verifier、run log 和 human gate。
对领导
它的价值不是“让 AI 自己干活”这么粗,而是把可重复的工程运营动作做成有证据、有预算、有停机条件、有责任边界的自动化流程。
和 Harness 的关系
Harness 管一次 Agent run 怎么可靠执行;Loop 管多次 run 怎么跨时间持续推进。没有 Harness,Loop 会重复放大错误;没有 Loop,Harness 很难变成持续运营能力。
建议起步方式
从 L1 report-only 开始:只扫描、归类、写报告和提醒,不直接改代码。稳定后再进入 L2 低风险 PR,最后才考虑 L3 半无人值守。
图片归档
本批次共 15 张图,主题可以合并成 8 个信息簇。第 8/10 张是 worktrees 近重复,第 9/11 张是 skills 近重复,报告中合并处理。
| 01-05 | 概念定义:Loop Engineering 不是模型、协议或神奇框架,而是“发现、计划、执行、验证、记录”的系统循环。 |
|---|---|
| 06 | 递归目标:给定目标后持续迭代,直到完成、阻塞、超预算、越权或需要人补充输入。 |
| 07 | Automations:定期或后台重复任务,把结果进入 triage,无结果自动归档,并可接 skills。 |
| 08 / 10 | Worktrees:多个任务并行推进时,用独立 checkout 隔离文件、状态、diff 和测试结果。 |
| 09 / 11 | Skills:把项目知识、流程、脚本和资产写下来,防止 Agent 每次从头猜。 |
| 12 | Subagents:把研究、写作、验证拆给不同上下文和权限的子任务。 |
| 13 | Memory / State:状态不能只放在对话框里,要放到外部文件、数据库、队列或 run log。 |
| 14-15 | 生态信号:OpenAI、Claude Code、LangChain 和开源仓库都在补 loop plumbing,npm 工具也已出现。 |
概念边界
图片里最关键的一句话是:不是你去 prompt agent,而是你设计那个会 prompt agent 的 loop。这句话把设计对象从“单条指令”移到了“循环系统”。
这也解释了它和 prompt engineering、context engineering、harness engineering 的区别:prompt 负责表达意图,context 负责给模型正确上下文,harness 负责一次运行的工具和沙箱,loop 负责跨时间的调度、状态、验证和交接。
工程积木
| 积木 | 它解决什么问题 | 工程要求 |
|---|---|---|
| Automations | 让任务按时间或事件重复运行,而不是等人想起来再问。 | 调度周期、空结果归档、结果进入 triage、失败告警。 |
| Worktrees | 让多个后台任务并行,不互相污染文件、依赖和测试输出。 | 每个任务独立 checkout、独立 diff、独立测试、合并前 review。 |
| Skills | 把项目规则和重复流程沉淀成可复用知识。 | SKILL.md、脚本、参考资料、资产、触发条件和维护 owner。 |
| Subagents | 让研究、实现、验证分开,降低上下文污染和权限混杂。 | 角色边界、工具权限、输入输出契约、maker/checker 分离。 |
| Memory / State | 让下一轮知道上一轮做了什么,而不是依赖聊天窗口记忆。 | STATE.md、数据库、队列、run log、artifact、失败原因和下一步。 |
| Budget / Gate | 防止无人值守任务持续花钱或持续犯错。 | token 上限、重试上限、写操作审批、发布 gate、kill switch。 |
具体实现
可以把实现拆成两层:外层用 CLI 或调度器把 loop 跑起来,内层用 LangGraph 这类状态图框架定义任务流。二者不冲突,反而适合组合。
方案 A:CLI 定期跑任务
0 */2 * * * cd /repo && loop run --task ci-triage --write-report
# 或用 GitHub Actions / OpenClaw cron:
# 1. 拉取 repo 和远端状态
# 2. 读取 CI / issue / PR / STATE.md
# 3. 调用 Agent 或脚本做归类
# 4. 输出 run-log、报告、必要时发通知
这种方式适合第一阶段落地,因为简单、可审计、可回滚。把输出限制为报告、评论草稿和 issue 标注,先不直接合并代码。
方案 B:用 LangGraph 定义任务流
State = {
goal,
phase,
evidence,
attempts,
budget,
owner,
next_action
}
collect -> classify -> draft -> verify -> {
commit_if_safe,
ask_human,
stop
}
LangGraph 的核心抽象是 State、Node、Edge:State 保存当前快照,Node 执行计算或副作用,Edge 决定下一步。对 Loop Engineering 来说,它刚好对应“状态决定下一步”的控制逻辑。需要人工审批时,可以在高风险节点触发 interrupt,保存状态并等待人恢复。
关键设计原则
- 读和写分级:读日志、读 PR、读 issue 可以自动;写评论、开 PR、改文件要进审批或 allowlist。
- 副作用后置:先 collect、classify、draft、verify,最后才做 commit/comment/deploy。
- 验证独立:实现者和检查者分开,至少在 L2 之后引入独立 verifier。
- 状态外置:每轮都写 run log,包括输入、判断、证据、成本、失败原因和下一步。
- 停止条件显式:done、blocked、over budget、needs approval、low confidence 都要能停。
落地路线
| 阶段 | 开放能力 | 适合任务 | 验收指标 |
|---|---|---|---|
| L1 | 只读、归类、写报告、提醒。 | CI 失败日报、issue triage、依赖风险扫描、PR 等待状态汇总。 | 误报率、遗漏率、人工节省时间、报告可读性。 |
| L2 | 可开低风险 PR,但不自动合并。 | 文档修正、测试补充、依赖小版本升级、lint 修复。 | PR 通过率、review 修改次数、回滚次数、平均恢复时间。 |
| L3 | allowlist 内半无人值守,强 gate。 | 固定模板变更、可逆脚本、低风险配置同步。 | 自动完成率、人工接管率、成本上限命中率、事故数。 |
对组织来说,最重要的不是一开始就追求无人值守,而是让 loop 先产生可信记录。只要记录稳定,后续每开放一个动作都有证据支撑。
案例:CI 失败分流 Loop
- 每 30 分钟由 cron 或 GitHub Actions 触发一次。
- 读取最近失败的 CI run、相关 PR、diff、owner 和历史 run log。
- 分类为环境问题、测试不稳定、真实回归、依赖问题、未知问题。
- 对环境问题和 flaky test 生成报告或 issue comment 草稿。
- 对低风险文档/测试修复,在独立 worktree 开 PR,并附上证据。
- 对真实回归或未知问题,交给 owner,并带上日志、复现命令和失败分类理由。
- verifier 单独检查 PR diff、测试结果和成本,再决定继续、停止或升级。
- 把本轮输入、判断、产物、失败原因、花费和下一步写回 STATE.md / run log。
这个案例的业务价值很清楚:它不是替代工程师判断,而是把重复的收集、归类、证据整理和低风险修复前置处理掉,让工程师只处理真正需要判断的部分。
验证来源
- Addy Osmani: Loop Engineering。原文提出“设计会 prompt agent 的 loop”,并把 loop 描述为围绕目标持续迭代直到完成的系统。
- OpenAI Codex Automations。官方说明 recurring/background tasks、inbox triage、无结果归档和 skills 组合。
- OpenAI Codex Worktrees。官方说明多任务并行和 background worktree 隔离。
- OpenAI Codex App Features 与 Codex Commands。用于核对 skills、parallel threads 和 /goal。
- LangChain Agents 与 LangGraph Graph API。用于核对 agent loop、State、Node、Edge 模型。
- LangGraph Interrupts 与 LangChain Human-in-the-loop。用于核对人工审批和暂停恢复机制。
- Claude Code Hooks 与 Claude Code Skills。用于核对 hooks、skills、subagent context 等机制。
- cobusgreyling/loop-engineering。开源实践仓库,包含 patterns、starters、skills、templates、tools 等目录。
- npm 验证:@cobusgreyling/loop-audit 1.4.2,@cobusgreyling/loop-init 1.2.2,@cobusgreyling/loop-cost 1.0.3。