Loop Engineering 和 Agent 有什么关系?
Loop Engineering 和 Agent 有什么关系?
一句话核心:Loop Engineering 是一种围绕 Agent Loop 展开的系统设计方法论,解决的是「如何让 Agent 持续、稳定、可控地完成任务」,而非仅仅让它「转起来」。
核心概念(术语表)
- Agent Loop:Agent 工具里的递归执行原语(primitive),定义一个目的后让 Agent 按固定节奏反复执行:读状态 → 行动 → 写回结果 → 下一轮,直到满足停止条件或升级给人。
- Loop Engineering:围绕 Agent Loop 的系统设计方法论,关注如何发现任务、分配任务、验证结果、持久化状态,并在该交还时交还给人。
- Harness Engineering:Agent 的「运行外壳」,包括工具、权限、沙箱、日志、测试、状态和人类接管,决定 Agent 能做什么、不能做什么。
- Context Engineering:给 Agent 提供什么上下文,包括项目背景、代码结构、历史决策,让 Agent 更容易做对。
- Prompt Engineering:如何组织指令让模型更准确理解任务,适合边界清晰的小任务如写文案、总结文章。
- Skills:持久化的项目知识包,把任务经验、脚本、模板、坑点放在一起让 Agent 复用,降低 intent debt。
- Worktrees:并行执行时的文件隔离策略,避免多 Agent 同时操作同一代码库导致 merge 灾难。
- MCP(Model Context Protocol):Plugins & Connectors 的实现协议,连接 GitHub、Linear、Slack 等真实系统。
历史背景 / 来源
Loop Engineering 概念在 2026 年由 AI 编程工具链社区提出。Claude Code 负责人 Boris Cherny 说「我不再给 Claude 写 prompt,我的工作是为它写 loop」;OpenClaw 作者 Peter Steinberger 说「你不该再亲自 prompt coding agent,而该设计 loop 来 prompt 它们」。Addy Osmani 的概括被广泛引用:「Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead」。开源参考库 cobusgreyling/loop-engineering 提供了完整的模式、构件与落地路径。
工作原理 / 核心机制
整体思路
Loop Engineering 将「人驱动 Agent」转变为「系统驱动 Agent」,杠杆点从「打磨单条 prompt」移到「设计编排 Agent 的控制系统」。
输入/输出
- 输入:业务目标、任务定义、验证规则、成本预算
- 输出:自动化执行循环、状态记录、成本日志、可观测报告
核心流程(三层架构)
第一层:Harness(单次运行环境)
- 定义 Agent 能用什么工具、能访问什么权限、在什么环境执行
- 具体输入:MCP 配置文件、权限白名单、工具列表
- 具体输出:受限的 Agent 执行上下文
- 数字参考:Claude Code 通过 skills 配置实现 7 种不同运行模式
第二层:Loop(重复执行编排)
- Harness + 调度 + 状态 + 验证链
- 具体输入:定时触发(cron)、事件触发(webhook)、手动触发
- 具体输出:每轮执行结果、状态变更、验证报告
- 关键机制:失败反馈循环 → 再次修改 → 必要时升级给人
第三层:Loop Engineering(系统设计与运营)
- 设计并运营上述 Loop 系统的工程实践
- 具体输入:团队规范、验收标准、成本约束
- 具体输出:可持续运行的无人值守系统
关键知识点
- Agent Loop 是「零件」,Loop Engineering 是「用零件造能跑的生产机器」
- 裸 Loop 缺少:分诊规则、外部记忆(跨 session 状态)、Maker/Checker 分离、人工闸门、成本上限、可观测性
- Loop Engineering 的六大构件:Automations/Scheduling(心跳)+ Worktrees(隔离)+ Skills(知识)+ MCP(连接)+ Sub-agents(分工)+ Memory/State(脊柱)
- 成功标准从「它又在跑了」升级为「它跑得对、跑得省、出事能停、人能看懂它干了什么」
- 典型产物从
/loop 1d一条命令变成 STATE.md + Skills + Worktree 策略 + Verifier + Checklist - 模式选型:Daily Triage(每日分诊)、PR Babysitter(PR 保姆)、CI Sweeper(CI 清洁工)、Dependency Sweeper(依赖清洁工)
- 分阶段上线:L1 只报告 → L2 小步自动修复 → L3 无人值守
- 安全策略:denylist、禁止盲目 auto-merge、MCP 权限最小化
- 成本工具:loop-budget.md、loop-run-log.md、loop-cost 估算
- 「修 bug loop」示例:读 issue → 找代码 → 修改 → 运行测试 → 失败则读取报错继续修 → 通过则生成修改总结 → 创建 PR 或交给人 review
- 内容生产 loop:收集资料 → 总结要点 → 检查事实 → 生成大纲 → 写正文 → 检查夸张表达 → 交人润色
- 四个工程关键词回答四个问题:怎么问(Prompt)、给它看什么(Context)、怎么持续推进(Loop)、在哪里安全运行(Harness)
- 腾讯《2026年AI人才报告》指出 AI 编程提效 50%,Skills 让 AI 从「聊天助手」升级为「生产力工具」
- Loop 跑得越久,越需要清晰的边界、可靠的验证和明确的停止条件,否则错误会被循环放大
应用场景
- Claude Code 大型代码库:通过 CLAUDE.md 分层文档、LSP 符号导航、hooks 自动维护、skills 按需加载、MCP 接入内部系统,让 Claude 高效理解复杂项目(含 C/C++/Java 等)
- OpenClaw 工作流:用 validate-patterns + audit workflow 维护仓库,根目录用 LOOP.md 记录「这个参考库自己跑哪些 loop」,典型「吃自己狗粮」实践
- CI Sweeper 场景:定时检查 CI 失败原因,自动分类、可修复的自动提 PR、需人工介入的发 Slack 通知,将「每天早上该查 CI」变成系统行为
- PR Babysitter 场景:监听新 PR,检查代码规范、测试覆盖、依赖变更,自动添加 reviewer、设置标签,复杂 PR 升级给人处理
- Bug Fix Loop 场景:Agent 读 issue → 找相关代码 → 尝试修改 → 运行测试 → 失败读报错继续修 → 通过生成总结 → 创建 PR,循环直到人工 review
常见误区 / 踩坑
❌ 误区 1:以为在终端敲
/loop 1d就算「做 loop 工程」
✅ 正解:这只是启动了 Agent Loop,真正的 Loop Engineering 包括 STATE.md、Skills、Worktree 策略、Verifier、Checklist 等一整套系统设计❌ 误区 2:认为有了
/loop命令就能无人值守
✅ 正解:裸 Loop 缺分诊规则(什么该做/忽略)、跨 session 状态、外部记忆,没有这些「跑久了会闯祸」❌ 误区 3:Agent 自己写代码自己验证
✅ 正解:必须 Maker/Checker 分离,禁止自评,用 Sub-agents 分工,一个负责改,一个负责验证❌ 误区 4:Loop 设计好就不用管了
✅ 正解:需要可观测性(loop-run-log.md)、成本上限(loop-budget.md)、人工闸门,高风险路径必须升级❌ 误区 5:把 Loop Engineering 和 Harness Engineering 混为一谈
✅ 正解:Harness 管单次运行(工具箱),Loop 管重复编排(传送带),Loop Engineering 管整套系统设计与 SOP(工厂设计)
性能 / 复杂度
- Token 消耗:Agent Loop 每轮迭代消耗 token,没有 Loop Engineering 约束可能「烧穿」预算
- 响应延迟:单次 Loop 包含 Agent 执行 + 验证 + 状态写回,延迟 = 单次 Agent 延迟 × 迭代次数
- 规模化边界:
- 方案 A(裸 Loop):n ≤ 10 任务/天时可行
- 方案 B(Loop Engineering):n > 10 任务/天必须,系统化后边际成本趋近 0
- 人工介入频率:无 Loop Engineering 时每 2-3 轮需人工介入,有完整系统后降至每 50-100 轮介入一次(L3 阶段)
- 参考库数字:cobusgreyling/loop-engineering 仓库自身通过 validate-patterns + audit workflow 自动化维护
与相关概念的区别
vs Prompt Engineering
- 维度 1(粒度):Prompt Engineering 优化单次问答,Loop Engineering 设计任务编排
- 维度 2(适用):Prompt 适合边界清晰的小任务(写文案、总结),Loop 适合长流程、跨 session 的复杂任务
- 维度 3(演进):Prompt → Context → Loop → Harness 是递进关系,后者包含前者而非替代
- 怎么选:明确任务边界用 Prompt,涉及「明天还继续做」用 Loop Engineering
vs Harness Engineering
- 维度 1(层次):Harness 是「工位工具箱」,Loop Engineering 是「工厂设计与 SOP」
- 维度 2(关注):Harness 关注单次运行的安全可控,Loop Engineering 关注持续运营的系统性
- 维度 3(产物):Harness 产出受限的 Agent 执行上下文,Loop Engineering 产出 STATE.md + Skills + Checklists
- 怎么选:先搭 Harness 保证安全,再加 Loop Engineering 实现自动化
vs Context Engineering
- 维度 1(问题):Context 回答「给 Agent 看什么」,Loop 回答「怎么让它持续推进」
- 维度 2(时机):Context 在每次 Agent 调用前生效,Loop 在多轮调用间维护状态
- 维度 3(关系):Context 是 Loop 的输入来源之一,Loop 是 Context 的消费方
- 怎么选:Context 解决单轮决策质量,Loop 解决多轮协作效率
进阶 / 面试加分项
- 最新趋势:2026 年 Loop Engineering 正从「单 Agent Loop」向「多 Loop 协调」演进,解决多个 loop 同时跑时的优先级与冲突处理问题
- 业界争议:是否需要「无人值守」的终极目标 vs 始终保留「人工闸门」的保守派观点,Peter Steinberger 持后者立场
- 一句话送给候选人:Boris Cherny 说得精辟——你的工作不再是给 Agent 写 prompt,而是给它设计 loop;从「运动员」变成「教练」甚至「裁判」
面试如何回答
🟢 什么是 Loop Engineering?它和 Agent Loop 有什么区别?
回答要点:
Loop Engineering 是围绕 Agent Loop 展开的系统设计方法论,关注如何发现任务、分配任务、验证结果、持久化状态,并在该交还时交还给人。Agent Loop 是 Agent 工具里的递归执行原语,是你启动一个会重复的 Agent 任务(敲 /loop 1d);而 Loop Engineering 是设计发现→执行→验证→交接的完整系统。简单说:Agent Loop 是零件,Loop Engineering 是用零件造能跑的生产机器。Claude Code 负责人 Boris Cherny 说「我不再给 Claude 写 prompt,我的工作是为它写 loop」,OpenClaw 作者 Peter Steinberger 说「你不该再亲自 prompt coding agent,而该设计 loop 来 prompt 它们」。Addy Osmani 的概括更直接:「你设计 prompt agent 的系统,而不是亲自 prompt」。
🟢 裸 Agent Loop 存在哪些不足?为什么需要 Loop Engineering?
回答要点:
仅有 /loop 不等于一套可上线的工程系统。一个裸 loop 往往缺:1)分诊规则(什么该做、什么该忽略);2)外部记忆(跨 session 的状态);3)Maker/Checker 分离(写代码的自己验自己);4)人工闸门(高风险路径必须升级);5)成本上限与可观测性。举例:让 Agent 每天查 CI 失败原因,它可能修了 5 轮都没修对,每轮烧 token;或者修错了主干代码没人拦着;或者跑了一周后 context 爆了。没有 Loop Engineering,「它又在跑了」只是安慰奖,真正的成功标准是「跑得对、跑得省、出事能停、人能看懂它干了什么」。
🟡 Loop Engineering 的六大构件是什么?每个构件的职责是什么?
回答要点:
一个能「无人值守」地跑起来的 loop,通常包含六个部分:1)Automations / Scheduling:心跳,按 cadence 发现与分诊任务;2)Worktrees:并行执行时文件隔离,避免 merge 灾难;3)Skills:持久项目知识,偿还 intent debt,把经验脚本模板放在一起让 Agent 复用;4)Plugins & Connectors (MCP):连 GitHub、Linear、Slack 等真实系统;5)Sub-agents:Maker/Checker 分工,禁止自己写代码自己验证;6)Memory / State:STATE.md 等外部状态,跨 session 的脊柱。这六者加在一起,才构成完整的 Loop 流水线,缺任何一个都会在某个环节出问题——比如没 Worktree 两个 Agent 同时改同一个文件就灾难了。
🟡 如何用 Loop Engineering 修一个 Bug?请描述完整流程。
回答要点:
以「修 bug loop」为例,完整流程是:1)Agent 读取 issue,找到相关代码并尝试修改;2)运行测试,如果测试失败,读取报错继续修复;3)如果测试通过,生成修改总结;4)最后创建 PR,或者把结果交给人 review。这里关键是「失败反馈循环」机制:Agent 不只改完告诉你,而是循环直到通过验证或升级给人。与传统方式对比:以前你打开终端 prompt「帮我修这个 bug」,Agent 改一版,你跑测试,失败再 prompt,循环靠人推动;Loop Engineering 把这个过程系统化——分诊规则决定这是不是该 Agent 修的,Skills 提供历史修复经验,Verifier 检查修复质量,State 记录当前进度,最后人工闸门决定是否合并。
🟡 Loop Engineering 和 Harness Engineering、Context Engineering 的关系是什么?
回答要点:
三个概念回答四个问题,呈递进关系:Prompt Engineering 回答「怎么问」,Context Engineering 回答「给它看什么」,Harness Engineering 回答「在哪里安全运行」,Loop Engineering 回答「怎么持续推进」。从层次上看:Harness = 单次 Agent 运行的环境(工具箱),决定 Agent 能用什么工具、什么权限、在什么环境;Loop = Harness + 调度 + 状态 + 验证链(传送带的运转);Loop Engineering = 设计并运营上述 Loop 系统的工程实践(工厂设计与 SOP)。类比:一辆车的发动机是模型,Harness 是车身仪表盘刹车方向盘安全带,Loop 是让车按设定路线反复跑,Loop Engineering 是设计这条路、制定交规、安排维修保养。
🟡 Loop Engineering 有哪些常见模式和落地路径?
回答要点:
模式选型方面,常见四类:1)Daily Triage(每日分诊):每天定时扫描待处理任务,分类后分配;2)PR Babysitter(PR 保姆):监听新 PR,自动检查规范、添加 reviewer、设置标签;3)CI Sweeper(CI 清洁工):定时检查 CI 失败原因,可修复的自动提 PR,需人工的通知 Slack;4)Dependency Sweeper(依赖清洁工):定期检查过时依赖,自动升级并跑测试。落地路径建议分三阶段:L1 只报告(Agent 发现问题叫人)→ L2 小步自动修复(低风险自动处理)→ L3 无人值守(完全自动化但保留闸门)。参考库 cobusgreyling/loop-engineering 提供 validate-patterns + audit workflow 维护自己的实践。
🔴 如何设计 Loop Engineering 的成本控制和可观测性?
回答要点:
成本控制是 Loop Engineering 区别于「玩一玩」的关键。必须有的三个文件:1)loop-budget.md:设定每次 Loop、每天、每月的 token 预算上限;2)loop-run-log.md:记录每次运行消耗、迭代次数、成功率;3)loop-cost 估算工具:运行前预估本次消耗,超预算自动停止。可观测性方面,需要:每轮执行记录(Agent 做了什么决策)、状态快照(当前进度存在 STATE.md)、人工介入记录(何时因何原因升级给人)。举例:CI Sweeper 如果每小时跑一次,每次消耗 5000 tokens,每天 12 万 token 消耗需要被追踪,否则月底账单会爆。没有可观测性的 Loop 就像没有仪表盘开车——跑着跑着不知道油还剩多少、发动机温度多少。
🔴 多 Agent 场景下 Loop Engineering 如何处理并行与协调问题?
回答要点:
多个 Agent 同时跑时,Loop Engineering 要处理三个问题:1)Worktree 隔离:并行执行时文件隔离,避免两个 Agent 同时改同一个文件导致 merge 灾难;每个 Agent 在独立工作目录操作,完成后通过 PR 合并。2)优先级与冲突:多个 Loop 同时触发时的执行顺序,比如 CI Sweeper 发现依赖更新和 PR Review 同时触发,需要明确优先级规则。3)Sub-agents 分工:复杂任务拆成 Maker/Checker,Makers 负责写代码,Checkers 负责验证,禁止自评。典型踩坑:没做 Worktree 隔离,两个 Agent 同时修同一个 bug,各自提交,最终 merge 冲突要人救火。正确做法是按模块或按文件类型分配 Worktree,用 State 记录每个 Worktree 当前任务状态。
