工具包
工具包是智能体可以用来执行操作的相关工具的集合。它们是扩展智能体功能的主要方式。
主要有三种类型的工具包: - builtin:框架默认提供的工具包。 - mcp:通过 Model Context Protocol (MCP) 访问的工具包。 - customized:用户创建的工具包。
内置工具包
所有内置工具包都继承自 AsyncBaseToolkit 抽象基类。该类提供了用于创建和管理工具的标准化接口。
以下是框架中一些关键工具包的摘要:
| 工具包类 | 提供的工具(函数) | 核心功能和机制 |
|---|---|---|
| SearchToolkit | search, web_qa |
使用 Serper API 执行网络搜索,并使用 Jina API 读取网页内容。它可以使用 LLM 根据页面内容回答问题。 |
| DocumentToolkit | document_qa |
处理本地或远程文档(PDF、DOCX 等)。它使用 chunkr.ai 服务解析文档,并使用 LLM 回答问题或提供摘要。 |
| PythonExecutorToolkit | execute_python_code |
在隔离环境中使用 IPython.core.interactiveshell 执行 Python 代码片段。它在单独的线程中运行以防止阻塞,并可以捕获输出、错误甚至 matplotlib 图表。 |
| BashToolkit | run_bash |
使用 pexpect 库提供持久的本地 shell 会话。这允许智能体运行一系列保持状态的命令(例如,当前目录)。 |
| ImageToolkit | image_qa |
回答有关图像的问题或提供详细描述。它使用具有视觉功能的 LLM 来分析图像内容。 |
| AudioToolkit | audio_qa |
使用音频模型转录音频文件,然后使用 LLM 根据转录内容回答问题。 |
| CodesnipToolkit | run_code |
通过将代码发送到远程沙盒服务(如 SandboxFusion)并返回结果来执行各种语言(Python、C++、JS 等)的代码。 |
如果你不熟悉 MCP,请参阅 MCP 文档。
如何检查工具包
我们提供了两个有用的脚本来检查和测试工具包:
导出工具模式
此脚本将 TOOLKIT_MAP 中注册的所有工具导出到 .xlsx 文件中。默认输出文件是 tools.xlsx。
python scripts/utils/dump_tool_schemas.py
检查和测试工具
你可以启动一个通过 HTTP 公开工具的本地 MCP 服务器。这允许你使用 MCP 客户端交互式地测试工具。例如 MCP Inspector。
# 启动 MCP 服务器
python scripts/utils/start_tools_mcp.py --toolkits search image github
# 启动 MCP 检查器
npx @modelcontextprotocol/inspector
# ... 使用 Streamable HTTP 传输 URL http://localhost:3005/mcp 连接到 MCP 服务器