Agent Loop
中文建议: Agent 循环 / 智能体循环
常见别名: Agentic Loop / Tool Loop(更窄)
成熟度: 🟢
词条状态: ✅ Atlas-quality
重要程度: ★★★★★
学习阶段: 入门必懂
最后更新: 2026-08-17
30 秒理解
Agent Loop 是让 Agent 能够连续工作的核心循环。
它通常会反复做几件事:
如果说 Model 是“大脑”,那么 Agent Loop 就像:
让大脑不断看结果、做决定、再继续行动的工作节奏。
先建立一个直觉
想象你在修一个坏掉的水龙头。
你不会:
看一眼 → 一口气把所有动作都提前决定好 → 闭着眼执行到底。
真实过程更像:
Agent 处理复杂任务也是这样。
它最重要的能力之一不是“一开始就把整个计划猜对”,而是:
执行一步以后,看到真实反馈,再重新决定下一步。
为什么需要 Agent Loop?
很多现实任务都有不确定性。
例如:
“帮我把这个项目跑起来并修掉启动错误。”
Agent 一开始并不知道真正错误是什么。
它必须:
如果没有 Loop,模型最多只能根据第一次输入预测接下来可能发生什么。
而 Agent Loop 让模型能够利用真实环境反馈继续工作。
技术定义
在工程上,Agent Loop 通常指:
一个运行控制过程,它反复调用当前 Agent 的模型,检查模型输出,并根据输出执行工具调用、handoff 或其他动作,再把行动结果加入 Context / State,直到得到最终输出或触发停止条件。
不同框架的实现细节会不同,但核心结构非常接近。
OpenAI Agents SDK 当前就把 built-in agent loop 作为核心能力:处理 tool invocation,把结果送回模型,并继续运行直到任务完成。Anthropic 对 agent 的描述也强调 self-directed loop:plan、act、observe、adjust、repeat。
你可能是在这句话里遇到它
“After the tool result is returned, the harness enters another iteration of the agent loop.”
这句话真正说的是:
这里的 “another iteration” 就是又进入一轮模型—环境交互。
不是模型单纯“继续想”,而是系统中已经出现了新的外部结果。
一个最小 Loop 长什么样?
可以先记住这个简化版本:
context = [user_request]
while True:
response = model(context, tools=tools)
if response.is_final:
return response.output
if response.tool_calls:
tool_results = run_tools(response.tool_calls)
context.extend(tool_results)
真正的生产系统通常还会多很多东西:
Agent Loop
├── Model Call
├── Tool Execution
├── Context Update
├── State Update
├── Handoff
├── Guardrails
├── Retry / Error Handling
├── Approval
├── Tracing
└── Stop Conditions
Loop 中到底“循环”的是什么?
初学者经常以为:
“Agent Loop = 模型一直在自己思考。”
更准确地说,循环的是整个模型—环境交互过程。
典型一轮可以写成:
然后进入下一轮。
这里:
Context_t:模型当前能看到的信息;Action_t:模型决定采取的动作;Observation_t:执行动作以后得到的新反馈。
这也是为什么 Action / Observation 是理解 Agent 的一组核心概念。
一个具体例子
任务:
“帮我找出这个 Python 项目为什么测试失败,并修复。”
可能的 Agent Loop:
Round 1
Model: 先运行 pytest
Action: pytest
Observation: 3 tests failed
Round 2
Model: 错误集中在 parser.py,先读文件
Action: read parser.py
Observation: 得到源码
Round 3
Model: 发现边界条件错误,修改代码
Action: edit parser.py
Observation: 修改成功
Round 4
Model: 再跑测试
Action: pytest
Observation: 1 test failed
Round 5
Model: 继续检查剩余失败
...
Round N
Observation: all tests passed
Model: 输出最终结果
Loop: stop
这里真正体现 Agent 能力的不是“它会写代码”,而是:
执行 → 看结果 → 改变策略 → 再执行。
一轮 Agent Loop ≠ 一个 Shell 命令
这在 Coding Agent 里很容易误解。
OpenAI Sandbox Agent 文档明确指出:
一个 turn 仍然是一次模型步骤,而不是一个 shell command 或 sandbox action。
也就是说一轮模型调用之后,执行层内部可能完成多个操作;只有需要模型再次根据新结果做决定时,才真正进入下一轮模型 turn。
所以:
这帮助我们区分:
Agent Loop 的轮次 和 执行环境里的动作次数。
Loop 为什么不能无限跑?
如果没有停止机制,Agent 可能:
- 重复调用同一个工具;
- 陷入错误重试;
- 不断搜索但不收敛;
- 消耗大量 token 和 API 成本;
- 对外部系统执行过多操作。
因此成熟的 Harness 一定要考虑 Stop Condition。
常见停止条件包括:
1. 模型给出最终输出
2. 达到最大轮数
3. 达到时间或成本预算
4. Guardrail 被触发
例如高风险操作被拦截。
5. 需要 Human-in-the-loop
Agent 暂停,等待人类批准后继续。
Agent Loop ≠ 无限循环
名字里虽然有 Loop,但目标不是“一直循环”。
好的 Agent Loop 应该是:
任务未完成时继续,已经完成或不应该继续时可靠停止。
所以 Loop 设计实际上同时包含两个问题:
Agent Loop 和 Chain-of-Thought 有什么区别?
| 概念 | 核心是什么 |
|---|---|
| Chain-of-Thought | 模型推理过程相关概念 |
| Agent Loop | 模型与工具、环境之间的多轮执行控制 |
| Conversation Loop | 用户和模型多轮聊天 |
| Retry Loop | 某一步失败后重复尝试 |
最简单的判断方式:
有没有新的 Action / Observation 改变系统状态,再让模型重新决策?
如果有,它更接近 Agent Loop。
Agent Loop 和 Workflow 是什么关系?
Workflow 也可以有循环。
区别不在“有没有 while”,而在于:
谁决定下一步?
固定 Workflow:
Agent Loop:
很多真实系统其实是混合形式:
外层 Workflow 固定,内部某些节点运行 Agent Loop。
Loop Engineering 和 Agent Loop 是一回事吗?
不是。
Agent Loop 是系统里的循环机制。
Loop Engineering 更接近一种工程实践:
如何设计目标、反馈、验证、停止条件和环境,让 Agent 在循环中越来越接近正确结果。
可以理解为:
Agent Loop 和 Harness 是什么关系?
Agent Loop 通常是 Harness 的核心控制结构之一。
可以简单记:
不同生态怎么表达这个概念?
OpenAI Agents SDK
直接使用 agent loop,Runner 负责工具调用、handoff 和继续运行。
Anthropic
经常用 loop / agentic loop / self-directed loop 描述 plan → act → observe → adjust 的过程。
Coding Agent 文档
也常看到:
- tool loop;
- execution loop;
- feedback loop;
- run loop。
这些词可能强调不同层次,因此要看具体语境,不要看到 loop 就自动认为完全同义。
Concept Graph Relations
Harness ─contains──────→ Agent Loop
Runtime ─runs──────────→ Agent Loop
Context ─feeds─────────→ Agent Loop / Model
Agent Loop ─uses───────→ Planning
Agent Loop ─produces───→ Action
Action ─produces───────→ Observation
Observation ─feeds─────→ Context
Agent Loop ─governed-by→ Stop Condition
这条链是 Agent Atlas 核心地图最重要的一条:
常见误解
❌ Agent Loop 就是模型一直自言自语
不是。核心是模型与环境之间不断发生新的交互。
❌ 循环次数越多,Agent 越强
不是。无效循环只会增加成本和错误概率。
❌ 只要写一个 while True 就有 Agent 了
不是。还需要工具协议、Context 更新、停止条件、异常处理等完整机制。
❌ 模型必须先生成完整计划才能进入 Loop
不一定。很多 Agent 会边执行、边观察、边重新规划。
❌ 一个 Tool Call 就等于一轮 Loop
也不一定。具体 SDK / Runtime 对“turn”的定义可能不同。
Terminology Observatory
成熟度:🟢 稳定基础概念。
“观察—行动—反馈—再决策”的闭环思想远早于 LLM Agent。
LLM 时代的新变化是:
- Model Call 成为决策核心;
- Tool Calling 成为主要 Action 接口;
- Context 管理成为 Loop 的关键资源问题;
- Harness / Runtime 负责把这个循环工程化。
因此 Agent Loop 的核心含义已经很稳定,但具体框架对 turn、tool execution、handoff 的实现仍会不同。
下一步应该学什么?
- Agent —— 谁在这个 Loop 里工作;
- Action / Observation —— 每轮最关键的反馈关系;
- Stop Condition —— Loop 什么时候结束;
- Harness —— 谁负责真正运行这个 Loop;
- Runtime —— Loop 的实际生命周期;
- Loop Engineering —— 如何设计更好的反馈循环。
一手资料
- OpenAI Agents SDK, SDK overview
- OpenAI Agents SDK, Sandbox concepts
- OpenAI, The next evolution of the Agents SDK
- Anthropic, Building Effective Agents
- Anthropic, Trustworthy agents in practice