工具系统概述
智能体之所以能做事,是因为它拥有工具(Tool)。工具就是智能体的"手和脚"——对话能力让智能体可以理解你的需求,工具则让它可以付诸行动。
什么是工具
工具是智能体执行具体操作的能力单元。每个工具做一件事:
- "读取文件"是一个工具
- "搜索网页"是一个工具
- "发送邮件"也是一个工具
当你对智能体说"帮我查一下这份文件的内容",智能体会:
- 理解你的意图
- 从可用工具中选择"读取文件"工具
- 调用工具执行操作
- 把结果用自然语言告诉你
整个过程你不需要关心智能体用了哪个工具——它会自动选择合适的工具完成任务。
三层能力体系
DesireCore 的工具系统分为三层,由内到外,能力逐步扩展:
第一层:内置工具
DesireCore 自带的基础能力,开箱即用,无需额外配置。包括文件读写、目录浏览、内容搜索、命令执行、网页获取、PDF 读取、用户提问、智能体协作、工作流、调度、文档导出、媒体生成和任务管理等核心功能。
工具是否进入智能体上下文取决于当前平台、权限和运行环境。例如 PowerShell 只在 Windows 环境注册;当某个工具不可用时,对应能力声明也不会注入给智能体。
Skill-scoped 工具
有些工具只在对应技能启用后才会暴露给智能体。这类工具称为 Skill-scoped tools。
例如 Web Access v2 启用后,智能体才会看到浏览器控制、CDP 代理、站点经验和本地书签相关工具。这样可以避免普通任务误用重型或高权限工具,也能让能力说明和实际可用工具保持一致。
常见模式:
| 技能 | 激活后可用的能力 |
|---|---|
| Web Access | Browser 工具族、CDP、SitePattern、LocalBookmarks |
| Media Generation | GenerateImage、GenerateVideo、BeautifyImage |
| Office / Documents | 文档渲染、表格/演示文稿处理、PDF 导出 |
按需准备工具
智能体会按任务需要查询和加载工具,你通常不需要手动操作。
- 查询当前获准工具的用途和参数。
- 加载本次需要的工具。
- 加载成功后,再调用工具完成工作。
查到工具说明不代表工具已经可以调用。加载也不会扩大权限;平台和权限限制仍然生效。
第二层:MCP 工具
通过 MCP(Model Context Protocol)协议连接外部服务。MCP 是一个开放标准,让智能体可以安全地访问 GitHub、文件系统、数据库、Slack 等第三方服务。
你可以根据需要添加不同的 MCP 服务器,大幅扩展智能体的能力范围。
第三层:自定义工具
当内置工具和 MCP 都无法满足需求时,你可以为智能体创建自定义工具:
- HTTP 工具 — 调用你自己的 API 服务
- 脚本工具 — 执行本地脚本(在沙箱环境中运行)
工具的安全体系
工具的风险等级和审批规则决定了你需要关注哪些影响,以及何时需要确认。
风险等级与审批
风险等级帮助你判断影响,是否需要确认还取决于当前审批模式和具体操作。
| 等级 | 阅读操作时重点看什么 |
|---|---|
| 低风险 | 读取范围和结果是否符合任务 |
| 中风险 | 写入内容、目标和恢复方式 |
| 高风险 | 外部影响、不可撤销的结果和执行范围 |
发送消息等外部操作不能靠本地恢复撤销。审批规则见 工具与命令审批模式。
权限层级
工具的实际可用性由三层策略共同决定:
你可以进行以下配置:
| 配置项 | 说明 |
|---|---|
| 禁用特定工具 | 加入黑名单,智能体永远不会使用 |
| 强制确认特定工具 | 每次使用都要你点确认 |
| 设置调用上限 | 单日最多调用次数,防止意外消耗 |
| 限制访问路径 | 只允许工具操作特定目录 |
智能体的 agent.json 也可以通过 tool_permissions.allowed 或 tool_permissions.denied 为单个智能体限制工具范围。
使用记录
每次工具调用都有完整记录,你可以查看:
- 调用时间和参数
- 执行结果
- 按工具类型和时间段的统计
当智能体发现自己缺少完成任务所需的工具时,它会主动向你提出扩展请求,说明需要什么工具、为什么需要、有什么风险。你确认后,智能体才会获得新的能力。