在dify中注册可被agent自动调用的工具需四步:①进入插件管理新建工具类插件;②name须全小写、仅含字母数字及下划线,description需明确功能;③parameters用json schema定义,含type、properties、required;④粘贴url、选http方法并启用参数自动提取。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中注册一个可被Agent自动调用的工具
你需要让Dify识别并信任你的外部服务,否则自然语言请求里出现“查天气”“查订单”等语义时,系统根本不会尝试调用它。
第一步:在Dify后台进入「插件管理」→「新建插件」→ 选择「工具类插件」。
第二步:填写基础元信息——【name字段必须全小写且不含空格或下划线以外的符号】,例如写成 get_weather 是合法的,get-weather 或 GetWeather 会导致注册失败;description需明确说明功能边界,避免写“处理用户请求”这类模糊描述。
第三步:在 parameters 区域用 JSON Schema 定义输入结构。必须包含 type、properties、required 三个键;若漏掉 required 数组,Dify 将默认所有字段非必填,导致运行时传入空参数而工具报错。
第四步:粘贴执行逻辑 URL,选择 HTTP 方法(GET/POST),勾选「启用参数自动提取」。这一步开启后,Agent 才能从用户语句中解析 city=北京 这类信息并注入请求体。
让Agent准确识别何时该调用你的工具
工具注册成功不等于会被触发——Dify 的 Orchestrator 需要足够强的语义锚点才能匹配。
方法一:在 description 字段中嵌入高频触发词。比如写“获取指定城市的当前天气信息(支持北京、上海、广州、深圳等地)”,括号里的城市名会成为关键词索引的一部分。
方法二:在 Dify 工作流节点中手动绑定工具。进入「应用编排」→ 选中某个 LLM 节点 → 展开「可用工具」列表 → 勾选你刚注册的工具。此时即使 description 写得再简略,该节点也会强制启用它。
方法三:通过 Prompt Engine 注入显式指令。在节点的 system prompt 中加入:“当用户问题涉及天气、温度、湿度、预报等词汇时,必须优先调用 get_weather 工具”。这比依赖自动匹配更可靠,但会牺牲部分泛化能力。
调试工具调用失败的三类典型日志信号
当你在 Dify 日志面板看到工具未执行或返回 error,先盯住这三处输出:
① 若日志中出现 “tool not found in registry”,说明 name 字符串与注册时不一致,常见于大小写混用或复制粘贴带隐藏空格。
② 若日志显示 “parameter validation failed: city is missing”,代表用户输入未被正确解析,检查 parameters 中 required 是否遗漏 city,或 description 是否缺乏地域相关语义锚点。
③ 若日志停在 “calling tool endpoint…” 后无响应超30秒,大概率是工具服务端未监听 8080 端口,或防火墙拦截了 Dify 实例所在 VPC 的出向连接。【Dify 默认只允许调用同一内网段或已白名单域名的 HTTP 接口】











