Dify 中的工具是指其平台内置或支持集成的功能插件,用于扩展 AI 应用的能力。
<font style="color:rgba(0, 0, 0, 0.9);">1.工具作用</font>
- 扩展 LLM 的能力:工具可以赋予 LLM 连接外部世界的能力,例如联网搜索、科学计算、绘制图片等。例如,通过集成谷歌搜索工具,AI 助手可以回答实时问题。
- 完成复杂任务:工具可以帮助 LLM 进行任务推理、步骤拆解和工具调用,从而完成复杂的任务。例如,在开发数据报表生成助手时,可以通过连接数据库工具获取数据,再利用数据分析工具进行处理,最后借助文件处理工具将结果生成报表。
- 与其他系统或服务连接:工具可以方便地将 Dify 应用与其他系统或服务连接,实现与外部环境的交互。例如,通过集成邮件发送工具,可以实现自动发送邮件的功能。
2.工具分类
Dify 中工具分为以下 3 种类型:
- 内置工具:Dify 第一方提供的工具,使用该工具前可能需要先给工具进行 授权。
- 自定义工具:如果内置工具无法满足使用需求,你可以在 Dify 菜单导航 —工具,内创建自定义工具。你可以通过 OpenAPI/Swagger 标准格式导入或配置的工具,但在此之前你需要预先提供自定义服务器端,Http 协议的接口,让 Dify 进行调用。
- 工作流:你可以编排一个更复杂的工作流,并将其发布为工具。详细说明请参考工具配置说明。
3.内置工具
内置工具可以点击“插件”、“市场”,通过浏览或搜索进行安装,如下图所示:
4.自定义工具
自定义工具实现分为以下两步:
- HTTP 协议的自定义服务器端,用于处理某个业务逻辑。
- 使用 OpenAPI/Swagger 协议将其添加到 Dify 中。
自定义的服务器端使用任何语言都可以,只要是 HTTP 协议即可,OpenAI/Swagger 协议如下。
例如添加一个天气预报的协议:
配置如下:
{
"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、多模态、向量数据库、嵌入模型等内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。