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 章)。

相关词条

出现在这些章节