第26章:工具系统全解析——从内置工具到自定义插件
1. 项目背景Agent 的"超能力"不是推理能力,而是工具调用能力——没有工具的 Agent 只是一个能说会道的 Chat。Dify 的工具生态从简单到复杂分为五个层次:内置工具(50+ 个,直接可用)、自定义 API 工具(写 YAML 即可)、插件工具(Marketplace 安装)、MCP 工具(Model Context Protocol 标准)、Workflow-as-Tool(将一个 Workflow 发布为工具)。但本章的价值不在于"有哪些工具可用",而在于工具是如何被注册、发现和调用的。当 Agent 决定"我需要搜索"时,Dify 在后台做了什么?工具管理器(ToolManager)如何收集所有可用的工具?工具的description如何影响 Agent 的选择准确度?工具调用的错误如何反馈给 Agent 让它自我修正?理解这套机制有两个实际价值:封装内部 API 时知道应该写 OpenAPI YAML 还是开发插件;Agent 调错工具时知道是工具描述写得太模糊还是参数定义有问题。2. 项目设计小胖:(看着 Dify 的工具面板)“大师!Agent 可用的工具有 50 多个——搜索、计算、画图、读网页、操作 Jira……但我想加一个自己公司的 CRM 查询工具,怎么搞?这 50 个没有一个是能查我们内部系统的。”大师:“三种方式,从简到