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

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)。
ToolCallingAgent(LLM输出JSON动作blob);parse_json_blob解析;工具调用执行;观察结果回填memory;ReAct循环(Thought→Action→Observation);toolcalling_agent.yaml提示词模板(Jinja2渲染);结构化输出;与LangChain ReAct agent的对比(轻量无链抽象)。
前置:第1章。后续:第3章攀第二阶CodeAgent(JSON换成代码,少30%步)。