mirror of
https://github.com/OpenBMB/ChatDev.git
synced 2026-04-25 11:18:06 +00:00
2.5 KiB
Executable File
2.5 KiB
Executable File
Tooling 模块总览
DevAll 目前支持两类工具绑定到 Agent 节点:
- Function Tooling:调用仓库内的 Python 函数(
functions/function_calling/),通过 JSON Schema 自动生成工具签名。 - MCP Tooling:连接符合 Model Context Protocol 的外部服务,可直接复用 FastMCP、Claude Desktop 等工具生态。
所有 Tooling 配置都挂载在 AgentConfig.tooling:
nodes:
- id: solve
type: agent
config:
provider: openai
model: gpt-4o-mini
prompt_template: solver
tooling:
type: function
config:
tools:
- name: describe_available_files
- name: load_file
auto_load: true
timeout: 20
1. 生命周期
- 解析阶段:
ToolingConfig根据type选择FunctionToolConfig、McpRemoteConfig或McpLocalConfig,字段定义来自entity/configs/tooling.py。 - 运行阶段:Agent 节点根据响应启用工具调用;当 LLM 选择某工具时,执行器会将
_context(附件仓库、workspace 路径等)注入函数或通过 MCP 发送请求。 - 结束阶段:工具输出写入 Agent 消息流,必要时注册为附件(如
load_file)。
2. 文档结构
- function.md:Function Tooling 配置、上下文注入、最佳实践。
- function_catalog.md:仓库内置函数清单与示例。
- mcp.md:MCP 工具配置、自动启动、FastMCP 示例、安全提示。
3. 快速对比
| 维度 | Function | MCP |
|---|---|---|
| 部署 | 同进程调用本地 Python 函数 | Remote:直连 HTTP 服务;Local:拉起本地进程并通过 stdio 连接 |
| Schemas | 自动从类型注解 + ParamMeta 生成 |
由 MCP JSON Schema 提供 |
| 上下文 | 自动注入 _context(附件/workspace) |
取决于 MCP 服务器实现 |
| 典型用途 | 文件操作、本地脚本、内部 API | 第三方工具合集、浏览器、数据库代理 |
4. 安全提示
- Function Tooling 运行在后端进程中,应确保函数遵循最小权限原则;不要在函数中执行不受控的命令。
- MCP Tooling 分为 Remote (HTTP) 与 Local (stdio)。Remote 仅配置已有服务器地址;Local 会拉起进程,请使用受控脚本并限制环境变量,必要时通过
wait_for_log等字段判断进程是否就绪。 - 若工具可能修改附件或 workspace,请结合 附件指南 了解生命周期与清理策略。