必看!手把手教你玩转Dify的3大核心工具!

Dify 中的工具是指其平台内置或支持集成的功能插件,用于扩展 AI 应用的能力

1.工具作用

  1. 扩展 LLM 的能力:工具可以赋予 LLM 连接外部世界的能力,例如联网搜索、科学计算、绘制图片等。例如,通过集成谷歌搜索工具,AI 助手可以回答实时问题。
  2. 完成复杂任务:工具可以帮助 LLM 进行任务推理、步骤拆解和工具调用,从而完成复杂的任务。例如,在开发数据报表生成助手时,可以通过连接数据库工具获取数据,再利用数据分析工具进行处理,最后借助文件处理工具将结果生成报表。
  3. 与其他系统或服务连接:工具可以方便地将 Dify 应用与其他系统或服务连接,实现与外部环境的交互。例如,通过集成邮件发送工具,可以实现自动发送邮件的功能。

2.工具分类

Dify 中工具分为以下 3 种类型:

  1. 内置工具:Dify 第一方提供的工具,使用该工具前可能需要先给工具进行 授权。
  2. 自定义工具 :如果内置工具无法满足使用需求,你可以在 Dify 菜单导航 ---工具,内创建自定义工具。你可以通过 OpenAPI/Swagger 标准格式导入或配置的工具,但在此之前你需要预先提供自定义服务器端,Http 协议的接口,让 Dify 进行调用。
  3. 工作流 :你可以编排一个更复杂的工作流,并将其发布为工具。详细说明请参考工具配置说明

3.内置工具

内置工具可以点击"插件"、"市场",通过浏览或搜索进行安装,如下图所示:

4.自定义工具

自定义工具实现分为以下两步:

  1. HTTP 协议的自定义服务器端,用于处理某个业务逻辑。
  2. 使用 OpenAPI/Swagger 协议将其添加到 Dify 中。

自定义的服务器端使用任何语言都可以,只要是 HTTP 协议即可,OpenAI/Swagger 协议如下。

例如添加一个天气预报的协议:

配置如下:

plain 复制代码
{
  "openapi": "3.1.0",
  "info": {
    "title": "Get weather data",
    "description": "Retrieves current weather data for a location.",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://weather.example.com"
    }
  ],
  "paths": {
    "/location": {
      "get": {
        "description": "Get temperature for a specific location",
        "operationId": "GetCurrentWeather",
        "parameters": [
          {
            "name": "location",
            "in": "query",
            "description": "The city and state to retrieve the weather for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {}
  }
}

5.工作流

工作流就是将 Dify 中创建的 WorkFlow 发布为工具,让 Dify 其他地方进行调用:

小结

工具是扩展大模型能力边界的主要手段,也是实现复杂任务的核心机制,正确、灵活的使用工具是我们开发 AI 应用中必不可少的技能。一起行动起来,体验一下 Dify 中好玩又有用的这些插件吧。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、Dify、AI Agent、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。