smolagents 代码优先 AI Agent 库
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/smolagents-code-first-ai-agent-library。
技能介绍
它解决什么问题
主流 Agent 框架大多沿用 ReAct 范式:LLM 输出结构化的 JSON 动作,模型只能在「JSON 能表达什么」的框里推理。这个约束在三个地方暴露问题:多步推理时 schema 写得僵硬、一次动作通常只能调一个工具、稍复杂的流程被强行拆碎后推理链反而变长。smolagents 的选择是直接替换动作空间——让 Agent 写 Python。
核心机制
- 动作即代码:
CodeAgent的每一步动作都是一段 Python 代码片段,LLM 引擎负责产出代码而非 JSON。工具调用随之退化为普通的 Python 函数调用。 - 一次动作编排多个工具:由于动作是完整的代码块,Agent 可以在一段代码里连续调用多个工具、处理中间结果。例如一次动作即可在多个站点上完成搜索并汇总。
- 沙箱执行:生成的代码不会在当前进程里裸跑,后端可选 E2B、Docker(自托管容器隔离)或 WebAssembly。
怎么用起来
流程很轻:把工具封装成 Python 函数 → 定义 CodeAgent → 交给它任务 → 运行。几行代码就能拉起一个会写代码来推理的 Agent。
适用边界与注意点
- 它是极简库(barebones),不含平台级能力:编排、监控、持久化都要自己接。
CodeAgent的心智模型仍接近经典 ReAct 循环,只是动作表示从 JSON 换成了代码——别指望换表示法就能补上模型推理能力的短板。- 模型直接产出可执行代码,沙箱隔离是硬前提,不是可选配置。
- 工具需要以 Python 函数形式提供,非 Python 生态的工具要自己封装。
使用场景
- LLM Agent 的 JSON schema 太僵硬,想要模型直接输出可执行的 Python 代码动作来提升推理灵活性
- ReAct 循环一次只能调一个工具,希望一段代码里串起多个工具调用并处理中间结果
- Agent 会生成并执行代码,需要 E2B、Docker 或 WebAssembly 沙箱隔离运行环境
- 想把内部脚本封装成 Python 函数,让 Agent 以函数调用的方式自动组合完成复杂任务
适合人员
- 在做自定义 Agent 框架的工程师,想用代码而非 JSON 作为动作空间,需要评估 smolagents 的 `CodeAgent`
- 负责把内部工具接入 LLM 的后端开发者,要把 API 封装成 Python 函数供 Agent 以函数调用方式使用
- 关注代码执行安全性的技术负责人,需要为 Agent 生成的代码选择并配置 Docker 或 E2B 沙箱后端
- 研究 Agent 推理范式的开发者,想对比经典 ReAct JSON 动作与 smolagents 代码动作的表达能力差异