Loop Engineering 入门介绍:Agent 循环工程
边学边练请访问 7 天学会 Loop Engineering 子站。子站提供课表、可视化实验室与社区;本文档站的教学核心是 Agent Loop Engineering——在 Harness / 运行时语境下,把「智能体如何跑循环」工程化。子站实验可作为直觉练习,概念映射请以本文为准。
本文要解决什么问题
学完 Agent Harness(如 DeepSeek Harness / Hermes 路径)之后,常见下一问是:
模型会调工具了,角色也不飘了——为什么任务还是跑飞、烧钱、死循环、或永远「再试一次」?
答案几乎总在 循环(Loop) 上:ReAct 转了几圈、计划何时重写、反思是否真的改行为、评估器与优化器如何仲裁、多 Agent 如何交接、记忆写回是否污染下一轮、迭代预算与停止条件谁说了算。
Loop Engineering(循环工程)在本站语境下,是 Agent Harness Engineering 的下一层深化:研究智能体在运行时如何 开环/闭环地迭代——不是把控制论教材换皮,而是把 Agent Loop 变成可设计、可观测、可限幅、可回滚的一等工程对象。你可以短暂借用「反馈 / 增益 / 饱和」作隐喻,但教学主线必须是:
| 对象 | 在 Agent 里是什么 | 常见失败 |
|---|---|---|
| 感知 | Observation / tool_result / 评测分数 | 观测不全、假成功 |
| 决策 | LLM 选动作、重规划、反思结论 | 幻觉动作、策略振荡 |
| 执行 | Tool / MCP / 代码沙箱 / 子 Agent | 副作用、超时、权限越界 |
| 反馈写回 | 消息历史、记忆、轨迹、指标 | 污染上下文、正反馈放大错误 |
| 预算与停止 | max_steps、token、墙钟、验收门禁 | 无限循环、过早停止 |
读完本文,你应能回答:Loop Engineering 与 Harness 的边界;六类主流 Agent 循环各自解决什么;迭代预算与停止条件如何设计;为何「再给模型多轮」常常是负反馈伪装的正反馈。
一、定位:Harness 之上的 Loop 层
1.1 三层心智模型
- Model:提供下一步文本或 tool_call 的似然。
- Harness:保证「这一次调用」安全、可审计、可恢复(DeepSeek Harness 的 Cordis、Hermes 的 Tool Graph / Persona)。
- Loop:决定「还要不要再调一次、换什么策略、何时宣布成功/失败」。
没有 Loop 工程,Harness 再稳也只是「很安全的单轮工具机」;没有 Harness,Loop 再漂亮也会在副作用与权限上翻车。二者互补,不是替代。
1.2 与「经典控制循环」的关系(刻意划界)
经典控制里:设定值 → 误差 → PID → 执行器 → Plant → 传感器。Agent 世界里 Plant 是半随机的工具环境 + 不可微的 LLM,传感器是 Observation 与评测脚本,控制器往往是「另一段 Prompt / 另一个模型 / 一段确定性策略」。
| 控制隐喻 | 可用之处 | 不可硬套之处 |
|---|---|---|
| 负反馈 | Observation 纠正下一步 | 没有稳定的传递函数可辨识 |
| 饱和 | max_steps、tool 限流 | 「拧增益」≠ 加大 temperature |
| 延迟 | 工具时延、上下文膨胀 | Bode 图不能直接画在 LLM 上 |
| 振荡 | 计划↔执行来回推翻 | 需用轨迹指纹检测,非相位裕度 |
本系列允许用隐喻加速直觉,禁止用 PID 整定冒充 Agent 调参。 真要学温控 PID,请去控制教材;这里要学的是:ReAct 为何死循环、Evaluator 为何被骗、记忆写回为何让第二轮更蠢。
1.3 一条公式
Agent 任务成功 ≈ Model 能力 × Harness 可靠性 × Loop 设计质量
Loop 设计质量可进一步拆解:
Loop 质量 = 拓扑适配度 × 停止条件清晰度 × 写回卫生度 × 预算经济性 × 可观测完备度
二、六类核心 Agent 循环(教学主轴)
2.1 总览对比
| 循环类型 | 一句话 | 典型拓扑 | 适合 | 不适合 |
|---|---|---|---|---|
| ReAct / Tool Loop | 想→动→看→再想 | 单环紧耦合 | 工具链短、目标清晰 | 长程规划、强约束验收 |
| Plan–Execute | 先计划再逐步执行 | 外环计划 + 内环执行 | 多步骤任务 | 环境剧烈变化且不重规划 |
| Reflection | 做完自评再改 | 执行后挂反思节点 | 质量敏感文案/代码 | 无可靠自评标准时 |
| Evaluator–Optimizer | 评测打分驱动改写 | 双角色对抗/协作 | 有可自动评测的目标 | 评测器可被投机取巧 |
| Multi-Agent Orchestration | 多角色交接循环 | 图 / 黑板 / 主管 | 分工明确的复杂任务 | 角色重叠导致扯皮环 |
| Memory Write-back | 把本轮洞见写入记忆 | 环外持久化再读入 | 跨会话学习 | 未过滤噪声写库 |
2.2 ReAct / Tool Loop:最常见也最容易失控
是什么:每一轮 LLM 输出 Thought(可选)+ Action(tool_call),Harness 执行工具,把 Observation 拼回消息,直到模型输出 Final Answer 或撞预算。
为什么重要:几乎所有「能用工具的 Agent」底层都是这个环;Harness 文档讲的是单次 tool 安全,Loop 文档讲的是 多轮收敛。
怎么做(最小契约):
- 消息角色严格:system / user / assistant / tool。
- 每轮只允许「一个主动作」或显式并行工具策略(需 Harness 支持)。
max_iterations、单工具超时、总 token 上限三者同时存在。- 对相同
(tool, args_hash)连续失败做熔断。
常见坑:
- Observation 太长,上下文被噪声淹没 → 模型「忘记」目标。
- 无循环指纹 → 搜索词微调后反复搜同一主题。
- 把「请继续」塞进 user,伪装成有进度。
2.3 Plan–Execute Loop:把「想清楚」与「做出来」拆环
是什么:外环产出结构化计划(步骤列表 / DAG),内环对当前步骤跑 ReAct;失败时触发 Replan 而不是盲目重试同一步。
为什么:长任务若每步都让模型「重新理解全局」,成本高且易漂移;计划提供设定值,执行环负责局部误差。
怎么做:
- 计划必须可机读(JSON steps),每步有
done_when。 - 执行失败分类:可重试 / 需改计划 / 需人审。
- Replan 次数单独预算(例如最多 2 次),防止计划振荡。
常见坑:计划写得过细(变成伪代码)或过粗(一步「搞定所有」);环境已变仍死磕旧计划。