Dify自定义工具(Tools)接入步骤详解

千敏酱_8097

千敏酱_8097

2026-06-13

1085人浏览

原创

必须通过自定义工具实现ai智能体调用内部系统,需安装dify插件cli、初始化工具项目、编写继承tool类的逻辑与参数定义、打包上传并启用,最后在agent中添加配置与测试。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

dify自定义工具(tools)接入步骤详解

要在 Dify 中让 AI 智能体具备调用内部系统、执行数据库查询或触发业务流程的能力,必须通过自定义工具(Tools)实现——这一步不是可选项,而是打通 AI 与真实业务系统的必经路径。

准备开发环境与插件脚手架

先确认本地已安装 Python 3.12+,并建议使用虚拟环境隔离依赖。打开终端,运行以下命令安装 Dify 官方插件开发 CLI 工具:

curl -L https://github.com/langgenius/dify-plugin-cli/releases/download/v0.0.1-beta.15/dify-plugin-darwin-arm64 -o dify-plugin && chmod +x dify-plugin

macOS 用户下载的是 darwin-arm64 版本;Windows 用户请替换为 dify-plugin-windows-amd64。安装后执行 【./dify-plugin version】,输出 v0.0.1-beta.15 才代表环境就绪。若提示 command not found,请检查当前目录是否包含该二进制文件,或将其移至 /usr/local/bin 并重命名为 dify-plugin。

初始化并构建工具插件项目

运行命令创建新插件:

./dify-plugin plugin init

按提示输入插件名称(如 hr-leave-tool)、作者名、描述,并选择类型为 tool。脚手架将生成标准结构:

my-tool/
├── main.py
├── manifest.yaml
├── tools/
│ └── hr_leave.py
├── provider/
└── requirements.txt

【tools/hr_leave.py 必须继承 Tool 类并实现 _invoke 方法】,否则 Dify 后台无法识别该工具逻辑。manifest.yaml 中的 id 字段需全局唯一,重复会导致插件上传失败。

Dify
Dify

Dify AI应用开发平台指南。用于构建LLM应用、工作流、Agent和知识库。当用户需要(1)使用Dify创建AI应用 (2)设计LLM工作流 (3)配置知识库RAG (4)开发AI Agent (5)调用Dify API (6)自托管部署Dify时激活此技能。

下载

编写工具逻辑与参数定义

在 tools/hr_leave.py 中写入实际调用逻辑。例如对接企业请假审批 API:

from dify_plugin import Tool, ToolInvokeError
import requests

class HrLeaveTool(Tool):
 def _invoke(self, tool_parameters: dict) -> str:
  try:
   employee_id = tool_parameters.get("employee_id")
   days = int(tool_parameters.get("days", 1))
   reason = tool_parameters.get("reason", "事假")
   resp = requests.post(
    "https://api.hr-system.internal/v1/leave",
    json={"employee_id": employee_id, "days": days, "reason": reason},
    timeout=10
   )
   resp.raise_for_status()
   return self.create_text_message(f"请假申请已提交,单号:{resp.json()['apply_id']}")
  except requests.exceptions.Timeout:
   raise ToolInvokeError("审批系统超时,请稍后重试")
  except Exception as e:
   raise ToolInvokeError(f"调用失败:{str(e)}")

接着,在同级目录下新建 tools/hr_leave.yaml,定义前端可见参数:

name: 请假申请
description: 提交员工请假申请,需提供工号、天数和原因
parameters:
- name: employee_id
 type: string
 required: true
 description: 员工唯一工号
- name: days
 type: number
 required: true
 description: 请假天数,必须为正整数
- name: reason
 type: string
 required: false
 description: 请假事由,默认为“事假”

打包上传并启用工具

第一步:进入插件根目录,执行打包命令:

./dify-plugin plugin build

成功后生成 dist/my-tool-0.1.0.tar.gz 文件。第二步:登录 Dify 控制台 → 左侧菜单点击「工具」→ 右上角「上传插件」→ 选择刚生成的 tar.gz 文件。第三步:上传完成后,页面自动跳转至工具详情页,点击「启用」开关。此时工具状态变为「已启用」,但尚未绑定到任何 Agent。

注意:上传前请确保 manifest.yaml 中的 version 字段为语义化版本(如 0.1.0),Dify 不接受 version: "dev" 或空值。

在 Agent 中添加并测试工具

① 新建或编辑一个 Agent → 进入「工具」配置页 → 点击「添加工具」→ 在列表中勾选刚启用的「请假申请」→ 保存配置。
② 编写系统提示词,明确告知模型何时调用该工具,例如:“当用户提出请假请求且提供工号时,必须调用请假申请工具,不得自行编造审批结果。”
③ 在调试窗口输入测试语句:“我工号 HR2026001,想请3天年假,原因是陪家人看病。”
④ 观察日志:若看到 [Tool Call] hr_leave → {employee_id: "HR2026001", days: 3, reason: "陪家人看病"},说明工具已正确触发并返回结果。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

dify

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

797

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

265

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

256

15

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

20

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

20

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

20

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

20

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

20

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 154人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 152人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习