2026 年 3 月,在 Terminal Bench 2.0 基准测试中,Claude Opus 4.6——当时公认的最强编码模型——在 Claude Code 官方工具里跑,得分排名 第 33。同一个模型,被放到一个第三方团队定制的工具链里,直接冲到第 5 名。
Viv Trivedy——Harness Engineering 概念的提出者——公开说过,自己的团队把 Agent 表现从 Top 30 提升到 Top 5,靠的仅仅是重建了模型外部的那层系统。他指的,正是 2026 年上半年 AI Agent 开发领域最值得关注的认知转向——Loop Engineering 和 Hook 机制。
核心公式
Agent = Model + Harness
Addy Osmani 2026 年 4 月:一个不错的模型配上优秀的 Harness,击败了一个优秀模型配上糟糕的 Harness。
这篇文章将系统性地拆解 Hook 与 Loop 两大核心范式——从原理到架构,从量化对比到实战设计。
2026 年 6 月,Kilo.ai 给出了 Loop Engineering 最清晰的定义:“设计、运行并持续改进 AI 编码 Agent 内部反馈循环的工程实践”。
这不是一个新算法,也不是一个新模型。它是一种运行范式——一种让现有 AI 模型从”一次性对话”升级为”持续迭代工作者”的方法论。
维度 | Prompt Engineering | Loop Engineering |
|---|---|---|
思维模式 | 单次交互思维 | 系统工程思维 |
核心问题 | 怎么让模型第一次就输出好结果 | 怎么让模型在一轮轮反馈中持续纠偏直到任务完成 |
基本单元 | 一条 Prompt | 一个循环流程 |
评估标准 | 第一次回答的质量 | 最终结果的正确性 |
可靠性来源 | 模型能力 | 工程化保障机制 |
Scaling 方式 | 更好的 Prompt | 更好的系统设计 |
核心洞察
Loop Engineering 技术理念:测试失败不是错误,是新的上下文。类型错误不是阻塞,是关于某个假设被推翻的信号。 一次代码审查不是反馈,是驱动下一轮行动的观察。
第一代:ReAct Loop(2023)
最早的 Agent 循环遵循 ReAct(Reasoning + Acting) 范式:观察 → 推理 → 行动 → 观察执行结果 → 继续推理。这是所有现代 Agent 的基础骨架。
核心问题:LLM 的自我评估不可靠。模型说”我完成了”,循环就停了,但任务可能远未达标。AI 会在主观认为”差不多”时主动退出,而非达到客观可验证的标准。
第二代:Plan & Execute(2024)
OpenAI 和 LangChain 推动了这一范式:先由 Planner 拆解任务为步骤清单,再由 Executor 逐个执行。但问题在于——计划是静态的,执行过程中遇到环境变化或计划外情况,Agent 直接崩溃。
第三代:Ralph Loop(2025-2026)
2025 年底,Claude Code 社区诞生了一种革命性范式——Ralph Loop(以《辛普森一家》中”永不放弃”的角色命名)。
Ralph Loop 的核心创新:不信任模型的自我评估,用一个外部机制(Stop Hook)来强制判断任务是否真正完成。当 LLM 尝试输出”完成”时,Stop Hook 拦截并检查可验证的完成条件——不满足就重新注入 Prompt,开启新一轮迭代。

AWS 专家 Greg Coquillo 提出的 6 种 LLM 编排模式中,有 5 种直接对应 Loop 场景下的反馈循环。不同场景需要不同的反馈信号:
模式 | 反馈信号 | 适合场景 | 信号特征 |
|---|---|---|---|
测试驱动循环 | 测试通过/失败 | Bug 修复、解析器行为、数据转换 | 二元清晰,自动判定 |
编译器驱动循环 | 类型检查错误 | 迁移、依赖升级、大规模重构 | 精确到行号,天然修复清单 |
审查驱动循环 | 人类审查评论 | 需人工判断质量的任务 | 丰富但需解析,非结构化 |
运行时调试循环 | 日志、堆栈跟踪、HTTP 响应 | 复杂 Bug 定位、生产问题排查 | 最接近真相,但也最嘈杂 |
产品迭代循环 | 设计规范、用户验收标准 | UI 设计、交互优化 | 部分需人类判断 |
实战要点
选择哪种循环模式,取决于你的任务是否有可自动验证的成功标准。测试通过率提升 → 适合 Loop;代码可读性优化 → 不适合 Loop,因为结果好坏全靠人看 diff。
如果你只告诉 Agent “这样做更好”,Agent 可能在 90% 的情况下照做,但剩下 10% 会忘掉、忽略或在压力下妥协。这就是 Prompt 的局限性——Prompt 是建议,Hook 是法律。
在 Agent 工程中,Hook 是预定义的拦截点,在 Agent 运行的关键时刻自动执行检查逻辑。成功则静默通过,失败则注入错误信息迫使 Agent 修正。
Hook 的设计原则
成功静默,失败详细。 类型检查通过 → Agent 什么也听不到。类型检查失败 → 错误文本注入循环让 Agent 做自修正。这确保了 Agent 不会因为"一切正常"的通知而分心,也不会因为缺乏反馈而迷失方向。

Hook 类型 | 触发时机 | 典型逻辑 | 失败处理 |
|---|---|---|---|
Session Hook | 会话启动时 | 加载 AGENTS.md、初始化沙盒、注入环境变量 | 终止启动,返回错误 |
Before Tool Hook | 工具调用前 | 拦截 rm -rf、git push --force、DROP TABLE | 拒绝执行,注入警告 |
After Tool Hook | 工具调用后 | 检查文件变更格式、验证输出完整性、记录审计日志 | 注入错误信息到循环 |
Commit Hook | 代码提交前 | 运行 Lint、类型检查、单元测试、覆盖率检查 | 阻止提交,返回错误清单 |
Stop Hook | Agent 声称完成时 | 检查可验证的完成条件 | 重置上下文,强制继续 |
Stop Hook 是五种 Hook 中最特殊的一种。它不参与工具调用的拦截,而是在 Agent 认为”我做完了”的瞬间,用客观标准推翻 Agent 的主观判断。
一个 Stop Hook 的伪代码逻辑:
# Stop Hook 核心逻辑
def stop_hook(agent_output, completion_criteria):
if contains_completion_marker(agent_output):
test_coverage = run_coverage_check()
build_status = run_build()
lint_errors = run_lint()
if (test_coverage >= criteria.target_coverage
and build_status <mark class="ww-mark"> "SUCCESS"
and lint_errors </mark> 0):
return Action.ALLOW_EXIT
return Action.REJECT_AND_CONTINUE
return Action.CONTINUE
关键设计决策
Stop Hook 不依赖模型的能力,而是依赖外部可验证的自动化检查。测试覆盖率 82% 就是 82%,不需要任何人(包括 AI)来"判断"——代码跑出来的数字就是最终答案。
如果说 Loop 定义了 Agent 怎么动,Hook 定义了 Agent 不能做什么,那么 Harness 就是定义 Agent 在什么里面动的完整运行时环境。
Viv Trivedy 将 Harness 拆解为八大组件:

棘轮机制:Harness 最核心的工程习惯
普通人看到 Agent 犯错:"哈,AI 真蠢。"
Harness 工程师的反应:"这个错误可以变成一条规则。"
每条好的 Harness 规则都应该能溯源到一次真实发生的失败。不能凭空拍脑袋加。等到模型变强到不再犯这个错了,就可以删掉这条规则。规则越用越精,Agent 越用越好。
2026 年 3 月 24 日,Anthropic 工程师 Prithvi Rajasekaran 发表了一份 Harness 设计报告,是公开领域里对完整 Harness 架构最透彻的产出。
他发现了两个核心瓶颈:上下文焦虑(模型在接近上下文窗口上限时提前收尾)和自我评估偏差(Agent 对自己产出的评价显著偏正面,即使质量明显平庸)。
解法是一个受 GAN 启发的三 Agent 架构:

Planner 将一两句话需求展开为完整产品规格。Generator 按 Sprint 逐个实现功能。Evaluator 用 Playwright 真正点击运行中的应用,按四个维度评分——产品深度、功能完整性、视觉设计、代码质量。每个维度有硬阈值,任何一项不达标,Sprint 就算失败。
单 Agent 版本开销
20 分钟 / $9
核心功能无法运行
:::
三 Agent 版本开销
6 小时 / $200
16 个功能全部实现
:::
实验结论
单 Agent 版本(20 分钟,$9):应用能打开但核心功能无法运行。实体出现在屏幕上但没有响应任何输入。布线是坏的。
三 Agent 版本(6 小时,$200):16 个功能全部实现——精灵动画、行为模板、音效、AI 辅助精灵生成器、关卡设计师、可分享链接的游戏导出。20 倍的 Token 成本,换来的是从"不能运行"到"可以玩"的质变。
Context Rot(上下文腐烂)是当前 Agent 系统工程中最棘手的瓶颈——随着上下文窗口填满,模型的推理和完成任务能力显著下降。
Anthropic 的解法是 Context Reset——把当前会话完全拆除,从一份结构化的交接文件重建新会话。不是压缩旧上下文,而是彻底清空,给新 Agent 一个”干净的白板”。
机制 | Compaction(压缩) | Context Reset(重置) |
|---|---|---|
上下文状态 | 在同一 Agent 内压缩保留 | 彻底清空,新 Agent 接手 |
上下文焦虑 | 无法消除 | 完全消除 |
状态连续性 | 自然保持 | 依赖 handoff artifact 传递 |
Token 开销 | 渐进累积 | 每次 Reset 有固定开销 |
适用场景 | 短会话、信息密度低 | 长时间运行、多会话任务 |
维度 | ReAct Loop | Plan & Execute | Ralph Loop |
|---|---|---|---|
循环控制 | LLM 自我评估 | 静态计划驱动 | 外部 Stop Hook + 完成条件验证 |
终止条件 | 模型说”完成”(主观) | 计划执行完毕 | 可验证的客观标准 |
状态管理 | 对话上下文窗口 | 对话上下文窗口 | 文件系统 + Git(持久化) |
上下文处理 | 越来越长 → 截断/腐烂 | 计划外 → 崩溃 | 每轮刷新,无衰减 |
自主完成率 | ~60% | ~75% | ~90% |
平均迭代轮数 | 3-5 轮 | 5-10 轮 | 5-15 轮 |
单任务成本 | $5-15 | $15-50 | $50-200 |
适合场景 | 简单问答、单步工具调用 | 结构化分解任务 | 长时间自主编程、大规模重构 |
核心风险 | 易过早退出 | 环境变化不适应 | 成本较高,需设置迭代上限 |


根据 Anthropic、HumanLayer 和开源社区的最佳实践,生产级 Agent Loop 必须覆盖以下八个设计维度:
自主完成率目标
≥ 80%
无人工干预下的独立完成比例
:::
平均迭代次数
≤ 8 轮
反映 Loop 决策效率和方向感
:::
无进展终止准确率
100%
连续 3 轮无变化必须强制终止
:::
决策 1:硬终止条件(必须设置)
loop_config = {
"max_iterations": 20,
"max_token_budget": 500000,
"max_no_progress_rounds": 3,
"timeout_minutes": 30,
}
没有任何任务是”无上限”的。上线不带终止条件等于开车不装刹车。五种终止条件必须全部配置:达到最大迭代次数、连续 3 轮状态无变化、Token 预算耗尽、目标达成、人工干预。
决策 2:结果可自动验证(前置条件)
上 Loop 的前提:结果好坏必须能自动判断。如果结果的好坏全靠人看 diff,循环只是把 review 的压力往后推了,并没有真正解放生产力。
✅ 适合做 Loop | ❌ 不适合做 Loop |
|---|---|
测试通过率提升 | 代码可读性优化 |
TypeScript 类型错误修复 | 架构设计改进 |
构建耗时降低 | 代码风格美化 |
安全漏洞扫描修复 | 业务逻辑重构 |
决策 3:上下文动态修剪
不是把所有历史对话全部塞进上下文。正确做法:压缩历史(只保留每轮关键结论)、优先级排序(状态文件 > 最新工具输出 > 历史尝试摘要)、窗口监控(每轮检查剩余 Token,逼近上限时自动裁剪)。
决策 4:分层模型策略
自动化循环是 Token 烧钱机。不加管控会产生惊人账单。简单任务用小模型,复杂审查用大模型。每轮限制最大工具调用次数。相同输入的工具调用结果缓存复用。单任务成本超过阈值自动暂停并通知人工。
决策 5:安全护栏
AI 自主运行的风险必须前置防控:文件白名单(限制 Agent 只能修改指定目录)、危险操作审批(删除文件、执行外部命令需人工确认)、权限最小化(Agent 运行账号只授予必要权限)、操作审计(所有写操作完整记录,支持回滚)。
决策 6:可观测性
每轮迭代必须记录:输入/输出 Token 数、工具调用明细、耗时、状态变化、决策依据。支持单步重放任意迭代、回滚到任意状态点、人工介入修改状态后继续。
决策 7:费用控制
单任务成本上限、每日/每周预算上限、成本告警(超过阈值自动暂停)、成本归因(每个任务、每个阶段、每个 Agent 的成本明细)。
决策 8:棘轮机制
每次 Agent 犯错 → 转化为 AGENTS.md 规则或 Hook 逻辑 → 下次运行时自动生效。规则越用越精,Agent 越用越好。但规则必须能溯源到一次真实失败——不能凭空拍脑袋加。

不要一开始就追求"全自动"
从一个简单、高频、可验证的小场景开始,先跑通一个最小可用的 Loop,然后在运行中持续迭代优化。这才是 Loop Engineering 的正确打开方式。先用人机协作(HITL)模式观察 2-4 周,确认 Agent 行为稳定后再切换到无人值守。
Anthropic 团队在 Opus 4.6 发布后,发现了一个关键规律:
Sonnet 4.5 时代,Harness 需要复杂的上下文重置和交接机制来应对上下文焦虑。Opus 4.6 来了,上下文焦虑几乎消失——那套焦虑缓解的脚手架成了死代码,可以删了。但随之而来的是新的问题:模型能跑更长时间了,但多天范围内的记忆策略呢?多个专业 Agent 之间的协调呢?生成式 UI 的设计质量评估呢?
Harness 的演化规律
每个 Harness 组件都编码了一个"模型自己不会做"的假设。模型变强了,那个假设就可能不再成立,那个组件就该被移除。但模型变强后,之前不可能完成的任务变成了可以挑战的。新任务有新失败模式,新失败模式需要新的 Harness 组件。旧的组件被移除,新的组件被添加。Harness 不会缩小,它只是移动了。
完整的 Agent 工程方法论
Loop + Hook + Harness = 下一代 Agent 工程的完整方法论
Loop 定义"怎么动",Hook 定义"不能做什么",Harness 定义"在什么里面动"。
2026 年,AI Agent 工程化的重心正在从”怎么让模型更聪明”转向”怎么让模型被更聪明地使用”。从 Prompt Engineering 到 Loop Engineering,从”建议”到”强制”,从单 Agent 到多 Agent 编排——这不是一个技术迭代,而是一次根本性的范式转移。
模型仍然是核心引擎,而 Harness 是驾驶系统——方向盘、刹车、悬挂——将引擎的动力转化为实际表现。一个不错的模型配上优秀的 Harness,击败了一个优秀模型配上糟糕的 Harness。
天花板随着模型的能力上移,但天花板本身不会消失。而 Hook 和 Loop,正是我们够到天花板的那把梯子。
AI AgentLoop EngineeringHookHarnessRalph LoopAnthropic技术深度解析
:::