跳转到内容

10 Agent:模型驱动的工具调用循环

  • 理解 Agent 不等于模型本身。
  • 会实现最小 ReAct loop。
  • 知道工具调用为什么需要 schema 和错误处理。

Agent 是一个循环:模型决定下一步,程序执行工具,把结果写回上下文,模型再继续决定。它像“会调用工具的控制器”。

while not done:
thought = llm(context)
action = parse(thought)
observation = tool(action)
context += observation

这就是 ReAct 的核心:Reasoning + Acting。

OpenAI Swarm 用很少代码展示 Agent 和 handoff。smolagentstiny-agentPocketFlow 都适合观察轻量 Agent 如何组织工具和状态。

源码:labs/10-agent/index.mjs

这个实验用 mock model 触发 calculator 工具,再把 observation 写回 trace。

运行:

Terminal window
npm run lab:10

预期你会看到 ActionObservationFinal 三段 trace。

  • Agent 需要可靠边界,否则会无限循环或调用危险工具。
  • 工具返回值要结构化,不能只靠自由文本猜。
  • Agent 的失败常常来自状态管理,而不是模型“不聪明”。