smolagents · 第 3 章 第二阶:CodeAgent 代码即 Action ★


smolagents · 第 3 章 第二阶:CodeAgent 代码即 Action ★

章节摘要:本章攀爬第二阶(☆☆☆)——CodeAgent,全书第一个高潮(★),smolagents 的灵魂。CodeAgent 让 LLM 把 action 写成 Python 代码片段:代码里可以调用工具(工具就是被注入解释器的 Python 函数)、可以声明变量复用中间结果、可以写循环和条件——一步代码等价 JSON 范式好几步,论文验证少 30% 步数。本章精读 CodeAgent 的完整执行链:code_agent.yaml 四段提示词→LLM 生成代码→parse_code_blobs 解析→解释器执行→观察回填。本章共 3 节,前置依赖为第 1-2 章。

阶梯坐标

阶梯坐标

学习目标

  1. 说清"代码即 action"范式的本质优势。
  2. 精读 CodeAgent 类(继承 MultiStepAgent)。
  3. 读懂 parse_code_blobs 解析逻辑。
  4. 理解工具如何作为 Python 函数注入解释器。
  5. 读懂 code_agent.yaml 四段提示词模板。

子章节导航

01 CodeAgent 与代码执行循环 ★

CodeAgent类结构(step覆写);LLM生成```python代码块;parse_code_blobs提取代码;代码送local_python_executor执行;工具=解释器命名空间里的Python函数(send_tools注入);最终answer变量;final_answer(FinalAnswerTool);代码执行循环完整链路。

02 为什么代码比 JSON 少 30% 步 ★

论文结论(代码action比JSON tool-calling少30%步);四个本质优势:①组合函数一步顶多步 ②变量复用中间结果(JSON每步重传) ③循环/条件控制流 ④代码是LLM预训练分布内的自然形式;JSON范式的痛点(结构僵硬/每步序列化开销/难组合);CodeAgent vs ToolCallingAgent完整对照表。

03 code_agent.yaml 四段提示词与结构化输出

prompts/code_agent.yaml四段模板(system_prompt系统提示/planning规划步/managed_agent子agent/final_answer最终答案);Jinja2渲染变量(tools/managed_agents/authorized_imports);authorized_imports白名单;structured_code_agent.yaml结构化输出变体;提示词工程的克制(不堆角色扮演,聚焦可执行性)。

前置知识与后续延伸

前置:第1-2章。后续:第4章讲攀爬装备——记忆与规划。


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