定义 Tools
前文已经描述
创建 Tools
在 smolagents 框架中,两种方式创建 Tools:
- 使用
@tool装饰器,定义相对简单的工具 - 设计
Tool类 实现相对复杂的工具
两类创建的方式实例见 这里
其中使用 Python 类定义的 Tools 必须要定义 forward(),它包含推理逻辑以执行的方法。并且是这个工具的交互接口,并且 Agent 无需关心工具的具体实现,只需知道如何调用 forward 函数即可。
默认工具
smolagents 附带了一套预构建的工具
PythonInterpreterToolFinalAnswerToolUserInputToolDuckDuckGoSearchToolGoogleSearchToolVisitWebpageTool
分享工具和导入工具
通过 load_tool() 功能轻松导入其他用户创建的工具。通过 Tool.from_space() 将一个 HF Space 作为工具导入。甚至可以重用其他框架(非 smolagents)中的 Tools,比如使用 LangChain 框架中的 Tools: Tool.from_langchain()。
smolagents 也允许从 glama.ai 或 smithery.ai 上可用的数百个 MCP 服务器导入工具。
KAQ: 什么是 MCP
LLM 通常受限于其训练数据,无法获取实时信息或使用专业工具。这种局限性阻碍了 AI 系统在许多场景中提供真正相关、准确和有用的响应的潜力。
这就是模型上下文协议(MCP)的作用所在。MCP 使 AI 大模型能够连接到外部数据源、工具和环境,从而实现 AI 系统与更广泛的数字世界之间信息和能力的无缝传输。这种互操作性对于真正有用的 AI 应用的成长和采用至关重要。
更多关于 MCP learn MCP