Agent Loop(智能体循环) 核心概念
别名:
Agent 循环 · Agent 主循环
驱动 Agent 反复执行的核心循环:把「一轮工具调用」升级成「多轮循环」,让程序自己决定「要不要再来一轮、再来该做什么」。最小形态是约 50 行的 `while` 循环——把 `messages + tools` 发给模型,有 `tool_calls` 就逐个执行并回填后继续,否则把文本作为最终答案返回。agent = 循环 + 状态。见[第 07 章](/chapters/07-minimal-agent-loop/)。
它是什么
Agent Loop(智能体循环)是驱动 Agent 反复执行的核心骨架:把第 06 章的「一轮工具调用」升级成「多轮循环」,让程序自己决定「要不要再来一轮、再来该做什么」。最小形态是约 50 行的 while 循环——把 messages + tools 发给模型,有 tool_calls 就逐个执行并回填后继续,否则把文本作为最终答案返回。业界常说的 agent = 循环 + 状态:循环让行为可以多步,状态(messages)让步骤之间能衔接。
循环的三件事
- think:把完整消息历史与工具清单交给模型做决策(决定权在模型);
- act:harness(我们的循环代码)执行模型要的工具(模型只决定、不执行);
- observe:把工具结果作为
tool消息回填进 messages,让下一轮模型「看到」自己做了什么。
关键设计
最小循环里 messages 是唯一的状态、只追加不修改;callLlm 是注入的依赖(循环不认识 HTTP、不认识厂商,第 04 章的 Provider 就是它的一个实现);循环必须有停止条件(模型不再要工具 + maxIterations 保险丝,见 stop-condition),否则模型持续要工具就是死循环。Claude Code 那个 1700 多行的主循环,内核就是它,其余全是保护机制。
小结
Agent 与普通程序的分水岭就在这里:下一步做什么,从头到尾是模型根据不断增长的上下文自主决定的,而不是你硬编码的 if/else——这也是「agent 与 workflow」的本质区别(第 01 章)。