smolagents · 第 2 章 第一阶:ToolCallingAgent 与 ReAct 循环


smolagents · 第 2 章 第一阶:ToolCallingAgent 与 ReAct 循环

章节摘要:本章攀爬第一阶(☆☆)——ToolCallingAgent,传统 agent 范式的规范实现。先精读 MultiStepAgent 抽象基类(run/step/write_memory_to_messages 的完整生命周期),再看 ToolCallingAgent 怎么让 LLM 输出 JSON 动作、解析、执行工具、观察结果、循环。这是理解第 3 章 CodeAgent"为什么代码更强"的对照组。本章共 2 节,前置依赖为第 1 章。

阶梯坐标

阶梯坐标

学习目标

  1. 精读 MultiStepAgent 基类(agents.py 1813行)。
  2. 说清 run→step 循环与 max_steps。
  3. 理解 ToolCallingAgent 的 JSON 动作解析。
  4. 读懂 toolcalling_agent.yaml 提示词模板。
  5. 理解 ReAct(推理→行动→观察)循环。

子章节导航

01 MultiStepAgent 基类与 run/step 生命周期

agents.py核心;MultiStepAgent(ABC)抽象基类;init(tools/model/max_steps/executor_type);run(任务入口:初始化memory→循环step→FinalAnswer);step(单步:组装消息→LLM生成→解析动作→执行→观察);write_memory_to_messages(记忆转消息列表);错误体系(AgentError/AgentParsingError/AgentExecutionError/AgentMaxStepsError)。

02 ToolCallingAgent 与 ReAct 循环

ToolCallingAgent(LLM输出JSON动作blob);parse_json_blob解析;工具调用执行;观察结果回填memory;ReAct循环(Thought→Action→Observation);toolcalling_agent.yaml提示词模板(Jinja2渲染);结构化输出;与LangChain ReAct agent的对比(轻量无链抽象)。

前置知识与后续延伸

前置:第1章。后续:第3章攀第二阶CodeAgent(JSON换成代码,少30%步)。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U