smolagents · 第 5 章 工具体系


smolagents · 第 5 章 工具体系

章节摘要:本章是装备区第二站——工具体系(tools.py 1422 行 + default_tools.py 698 行)。Tool 基类极简(name/description/inputs/output_type + forward 四件套);@tool 装饰器把普通函数一键变工具(类型提示自动生成 JSON schema);tool_validation 用 AST 静态校验;ToolCollection 批量管理;生态集成四件套(from_hub/from_space/from_mcp/from_langchain)让 HF Hub、Gradio Space、MCP server、LangChain 工具直接复用。内置工具开箱即用(DuckDuckGo 搜索/Wikipedia/访问网页)。本章共 3 节,前置依赖为第 1-4 章。

阶梯坐标

阶梯坐标

学习目标

  1. 精读 Tool 基类与 PipelineTool。
  2. 掌握 @tool 装饰器与类型提示→schema。
  3. 理解 tool_validation AST 校验。
  4. 掌握生态集成四件套(from_hub/space/mcp/langchain)。
  5. 认识内置工具(default_tools)。

子章节导航

01 Tool 基类与 @tool 装饰器

Tool基类四件套(name/description/inputs/output_type+forward);PipelineTool(transformers pipeline包装成工具);@tool装饰器(普通函数→工具,docstring当description);_function_type_hints_utils.py(431行)类型提示→JSON schema自动生成(工具参数schema的核心);tool_validation.py(263行)AST静态校验工具类定义合法性(防引用未定义名)。

02 生态集成四件套与 ToolCollection

ToolCollection批量管理;from_hub(HF Hub加载工具/ToolCollection.push_to_hub分享);from_space(Gradio Space直接当工具,复用HF生态数千Space);from_mcp(MCP server工具,mcp_client.py 171行MCPClient);from_langchain(LangChain工具互转);工具生态战略(一次编写处处复用)。

03 内置工具与默认行为

default_tools.py(698行);FinalAnswerTool(终止信号);UserInputTool(人工干预);DuckDuckGoSearchTool(免费搜索);GoogleSearchTool/ApiWebSearchTool;WebSearchTool;VisitWebpageTool(markdownify转markdown);WikipediaSearchTool;SpeechToTextTool;gradio_ui.py GradioUI(把agent包装成交互界面)。

前置知识与后续延伸

前置:第1-4章。后续:第6章沙箱(CodeAgent执行工具代码的安全边界)。


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