Dify 近期升级盘点:Workflow、Agent、RAG 与 API 实战源码一次看懂
Dify 最新更新内容汇总|附源码
Dify 是一款开源的 LLM 应用开发平台,集成了提示词编排、Agent、工作流、知识库、RAG、模型接入、API 发布、应用监控等能力。对于希望快速构建 AI 客服、知识库问答、内容生成工具、自动化工作流以及企业级智能体系统的团队来说,Dify 已经成为非常实用的低代码 / 开源 AI 应用基础设施。
本文将围绕 Dify 近期版本中的核心更新方向进行梳理,并结合实战源码,演示如何基于 Dify API 快速开发一个可落地的 AI 应用调用示例。
说明:Dify 更新较为频繁,具体版本细节请以官方 GitHub Releases、官方文档和实际部署版本为准。本文重点从功能演进、工程使用和开发实践角度进行总结。
一、Dify 是什么?
Dify 是一个面向大模型应用开发的开源平台,它的定位不是单纯的聊天机器人,而是一个完整的 AI 应用开发、编排和交付平台。
通过 Dify,开发者可以完成以下工作:
- 接入不同大语言模型;
- 创建聊天助手、文本生成应用和 Agent;
- 构建复杂的 AI Workflow;
- 上传文档并创建知识库;
- 配置 RAG 检索增强生成;
- 发布 API 给业务系统调用;
- 查看应用日志、用户反馈和调用数据;
- 进行私有化部署,满足企业安全需求。
与传统直接调用模型 API 相比,Dify 的优势在于:
它将提示词管理、知识库检索、工具调用、流程编排、模型切换、日志监控等能力封装成了可视化平台,大幅降低了 AI 应用从 Demo 到生产的成本。
二、Dify 最新更新重点概览
从近期版本的演进方向来看,Dify 的更新主要集中在以下几个方面:
- 工作流能力增强
- Agent 能力完善
- 知识库与 RAG 检索优化
- 模型供应商支持扩展
- 应用发布与 API 调用体验优化
- 团队协作与权限管理增强
- 部署、性能与稳定性提升
- 日志、监控和调试能力增强
下面分别展开说明。
三、工作流 Workflow 能力持续增强
Dify Workflow 是近年来非常重要的功能方向。相比普通的 Chatbot,Workflow 更适合处理结构化、流程化、可控性更强的 AI 应用场景。
例如:
- 智能合同审查;
- 简历筛选;
- 自动生成周报;
- 客服工单自动分类;
- 多步骤内容审核;
- 多模型协同生成;
- 文档摘要与结构化提取。
1. 节点类型更加丰富
Dify 的工作流通常包括以下节点:
- 开始节点;
- LLM 节点;
- 条件判断节点;
- 代码执行节点;
- 知识检索节点;
- HTTP 请求节点;
- 模板转换节点;
- 结束节点。
通过这些节点,开发者可以像搭积木一样构建 AI 流程。
例如,一个“客户反馈分析工作流”可以设计为:
用户输入反馈内容
↓
LLM 判断反馈类别
↓
条件分支:
- 投诉:生成安抚话术并通知客服
- 建议:提取产品改进点
- 咨询:检索知识库并回答
↓
输出最终结果
这种方式相比单纯写 Prompt 更加稳定,因为它将复杂任务拆分为多个明确步骤,每个节点都有相对清晰的职责。
2. 支持更复杂的变量传递
在新的工作流设计中,变量系统变得更加重要。不同节点之间可以传递输入、模型输出、检索结果、HTTP 响应和代码运行结果。
这让 Dify 更接近一个 AI Native 的流程编排平台。
例如:
start.query
llm.classification_result
knowledge.retrieved_content
http.response.body
code.cleaned_data
开发者可以在后续节点中引用前面节点的输出,从而实现复杂逻辑。
3. 代码节点提升灵活性
代码节点是 Dify Workflow 中非常实用的能力。它允许开发者在低代码流程中嵌入少量代码,用于完成数据清洗、格式转换、规则判断等任务。
例如,将用户输入中的多余空格去掉,并限制最大长度:
def main(query: str) -> dict:
cleaned = query.strip().replace("\n", " ")
if len(cleaned) > 500:
cleaned = cleaned[:500]
return {
"cleaned_query": cleaned
}
代码节点的价值在于,它弥补了纯可视化编排的不足,让开发者可以在关键环节加入精确控制逻辑。
四、Agent 能力进一步完善
Dify 的 Agent 能力主要面向“具备工具调用和任务规划能力”的 AI 应用。
普通聊天机器人通常是:
用户提问 → 模型回答
而 Agent 更像是:
用户提出目标 → 模型分析任务 → 调用工具 → 观察结果 → 继续推理 → 输出结论
1. 工具调用更加灵活
Agent 可以调用不同工具,例如:
- 搜索工具;
- HTTP API;
- 数据库查询;
- 计算工具;
- 自定义插件;
- 企业内部接口。
这使得 Agent 不再局限于模型已有知识,而是可以连接真实业务系统。
例如,企业内部可以让 Agent 调用:
- CRM 查询客户信息;
- ERP 查询库存;
- 工单系统创建任务;
- 数据平台查询报表;
- 日程系统创建会议。
2. Agent 更适合业务自动化
在企业场景中,Agent 并不只是“聊天”,而是可以执行任务。
例如:
用户:帮我查询客户 A 最近三个月的采购记录,并总结是否有流失风险。
Agent 执行:
1. 调用 CRM API 查询客户资料;
2. 调用订单系统查询采购记录;
3. 分析采购频率和金额变化;
4. 判断风险等级;
5. 输出分析报告;
6. 如风险较高,创建跟进任务。
这类能力正是 AI 应用从“问答型”走向“行动型”的关键。
五、知识库与 RAG 检索优化
知识库是 Dify 的核心能力之一。它可以将企业文档、产品手册、FAQ、制度文件、技术文档等内容导入平台,并通过向量检索实现知识问答。
1. 支持多种文档类型
常见支持的文档类型包括:
- PDF;
- Word;
- Markdown;
- TXT;
- HTML;
- CSV;
- 网页内容等。
企业可以将内部资料沉淀为知识库,搭建专属 AI 助手。
2. 分段策略更加关键
RAG 效果好不好,很大程度取决于文档分段策略。
如果分段太大:
- 检索结果不够精准;
- 模型上下文容易浪费;
- 回答可能不聚焦。
如果分段太小:
- 语义不完整;
- 上下文缺失;
- 需要召回更多片段。
较好的实践是:
- 按标题、段落、语义结构分段;
- 保留章节层级信息;
- 对 FAQ 使用问答对结构;
- 对产品文档保留步骤顺序;
- 控制 chunk 大小与 overlap。
3. 检索增强生成更稳定
Dify 的知识库问答通常包括以下过程:
用户问题
↓
向量化
↓
知识库检索
↓
召回相关片段
↓
拼接上下文
↓
大模型生成回答
↓
返回结果
在实际业务中,建议给知识库应用配置明确的系统提示词,例如:
你是企业内部知识库助手。
请严格根据知识库内容回答问题。
如果知识库中没有相关信息,请明确说明“当前知识库未提供相关信息”,不要编造答案。
回答时请尽量引用文档中的关键依据。
这种提示词可以显著降低幻觉风险。
六、模型供应商支持持续扩展
Dify 的一个重要优势是支持多模型接入。开发者可以根据成本、性能、响应速度和数据安全要求选择不同模型。
常见模型类型包括:
- OpenAI 系列模型;
- Anthropic Claude;
- Google Gemini;
- Azure OpenAI;
- 阿里通义千问;
- 百度文心;
- 智谱 GLM;
- Moonshot;
- DeepSeek;
- Ollama 本地模型;
- OpenAI-Compatible API 模型。
多模型接入的价值
对于企业来说,多模型支持非常重要:
-
避免供应商锁定
不把业务完全绑定在单一模型厂商上。 -
根据场景选择模型
简单分类任务使用低成本模型,复杂推理任务使用高性能模型。 -
支持私有化和本地化
对敏感数据场景,可以接入本地模型或私有云模型。 -
便于灰度测试
可以对比不同模型在同一 Prompt 下的输出质量。
七、应用发布与 API 调用体验优化
Dify 不仅支持在平台内调试应用,还可以将应用发布为 API,供外部系统调用。
这意味着开发者可以把 Dify 作为 AI 应用后端,将其集成到:
- 官网客服;
- 企业微信机器人;
- 飞书机器人;
- 钉钉机器人;
- 微信小程序;
- 后台管理系统;
- SaaS 产品;
- 内部知识库门户。
八、Dify 私有化部署方式
Dify 支持 Docker Compose 部署,适合开发测试和中小规模生产环境。
1. 克隆源码
git clone https://github.com/langgenius/dify.git
cd dify/docker
2. 配置环境变量
复制环境变量文件:
cp .env.example .env
根据实际需求修改 .env,例如:
CONSOLE_API_URL=http://localhost:5001
CONSOLE_WEB_URL=http://localhost
SERVICE_API_URL=http://localhost:5001
APP_WEB_URL=http://localhost
如果需要配置模型供应商,可以在 Dify 后台界面中完成,也可以结合环境变量和平台设置进行调整。
3. 启动服务
docker compose up -d
4. 查看容器状态
docker compose ps
5. 访问控制台
默认情况下,可以通过浏览器访问:
http://localhost
进入后完成管理员初始化,即可开始创建应用。
九、附源码:使用 Python 调用 Dify Chat API
下面给出一个完整的 Python 示例,用于调用 Dify 发布后的聊天应用 API。
1. 安装依赖
pip install requests
2. Python 源码
import requests
import json
class DifyChatClient:
def __init__(self, api_key: str, base_url: str = "https://api.dify.ai/v1"):
self.api_key = api_key
self.base_url = base_url.rstrip("/")
self.headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def chat(self, query: str, user: str = "demo-user", conversation_id: str = ""):
url = f"{self.base_url}/chat-messages"
payload = {
"inputs": {},
"query": query,
"response_mode": "blocking",
"conversation_id": conversation_id,
"user": user
}
response = requests.post(url, headers=self.headers, data=json.dumps(payload))
response.raise_for_status()
return response.json()
if __name__ == "__main__":
API_KEY = "替换为你的 Dify App API Key"
client = DifyChatClient(api_key=API_KEY)
result = client.chat("请介绍一下 Dify 的主要功能。")
print("模型回答:")
print(result.get("answer"))
print("\n完整返回:")
print(json.dumps(result, ensure_ascii=False, indent=2))
十、附源码:Node.js 调用 Dify API
如果你的业务系统使用 Node.js,也可以使用下面的方式调用。
1. 初始化项目
mkdir dify-node-demo
cd dify-node-demo
npm init -y
npm install axios
2. Node.js 源码
const axios = require("axios");
class DifyChatClient {
constructor(apiKey, baseUrl = "https://api.dify.ai/v1") {
this.apiKey = apiKey;
this.baseUrl = baseUrl.replace(/\/$/, "");
}
async chat(query, user = "demo-user", conversationId = "") {
const url = `${this.baseUrl}/chat-messages`;
const payload = {
inputs: {},
query,
response_mode: "blocking",
conversation_id: conversationId,
user
};
const response = await axios.post(url, payload, {
headers: {
Authorization: `Bearer ${this.apiKey}`,
"Content-Type": "application/json"
}
});
return response.data;
}
}
async function main() {
const API_KEY = "替换为你的 Dify App API Key";
const client = new DifyChatClient(API_KEY);
const result = await client.chat("请总结 Dify 的核心优势。");
console.log("模型回答:");
console.log(result.answer);
console.log("\n完整返回:");
console.log(JSON.stringify(result, null, 2));
}
main().catch(console.error);
十一、附源码:流式输出调用示例
在真实聊天应用中,用户体验往往要求模型边生成边输出。此时可以使用流式模式。
下面是 Python 流式调用示例。
import requests
import json
def dify_stream_chat(api_key: str, query: str):
url = "https://api.dify.ai/v1/chat-messages"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"inputs": {},
"query": query,
"response_mode": "streaming",
"conversation_id": "",
"user": "stream-user"
}
with requests.post(url, headers=headers, json=payload, stream=True) as response:
response.raise_for_status()
for line in response.iter_lines(decode_unicode=True):
if not line:
continue
if line.startswith("data: "):
data = line[6:]
if data == "[DONE]":
break
try:
event = json.loads(data)
if event.get("event") == "message":
print(event.get("answer", ""), end="", flush=True)
except json.JSONDecodeError:
pass
if __name__ == "__main__":
API_KEY = "替换为你的 Dify App API Key"
dify_stream_chat(API_KEY, "请用三点说明 Dify 为什么适合构建 AI 应用。")
流式输出的优势是响应更快,尤其适合聊天机器人、客服助手和内容生成应用。
十二、Dify 在企业中的典型落地场景
1. 企业知识库助手
将企业制度、产品手册、技术文档、FAQ 导入 Dify 知识库,员工可以直接提问获得答案。
适合场景:
- 新员工培训;
- 内部 IT 支持;
- 产品知识查询;
- 售前资料问答;
- 法务和财务制度查询。
2. 智能客服机器人
基于 Dify 可以构建客服机器人,接入官网、企业微信、飞书或客服系统。
常见能力包括:
- 自动回答常见问题;
- 根据用户问题检索知识库;
- 判断用户意图;
- 将复杂问题转人工;
- 自动生成客服回复建议。
3. 内容生产工具
Dify 适合构建内容生成类应用,例如:
- 小红书文案生成;
- 短视频脚本生成;
- 商品详情页生成;
- SEO 文章生成;
- 周报、日报、会议纪要生成。
通过 Workflow,可以将内容生产拆分为选题、提纲、正文、润色、审核等多个步骤。
4. 数据分析助手
如果结合 HTTP 工具或内部数据接口,Dify 可以作为自然语言数据分析入口。
例如:
用户:帮我分析本月销售额下降的原因。
系统:
1. 调用销售数据接口;
2. 获取区域销售数据;
3. 对比上月数据;
4. 找出下降最大的品类和区域;
5. 生成分析报告。
十三、Dify 使用建议
1. 不要只依赖一个大 Prompt
很多初学者会把所有规则都写进一个超长 Prompt 中,但这往往不稳定。更好的方式是:
- 简单任务用 Chatbot;
- 复杂任务用 Workflow;
- 外部系统调用用 Agent;
- 企业资料问答用知识库。
2. 知识库内容要定期维护
RAG 应用的质量不仅取决于模型,也取决于知识库质量。
建议:
- 删除过期文档;
- 合并重复内容;
- 为重要文档添加清晰标题;
- 使用结构化 FAQ;
- 定期测试召回效果;
- 对低质量回答进行反馈优化。
3. 生产环境注意安全
如果用于企业生产环境,需要关注:
- API Key 安全;
- 用户权限控制;
- 数据脱敏;
- 日志合规;
- 模型调用成本;
- 请求频率限制;
- 私有化部署安全策略。
十四、总结
Dify 的更新方向非常清晰:它正在从“低代码 AI 应用构建工具”逐步演进为“企业级 AI 应用开发与编排平台”。
从最新能力来看,Dify 的核心价值主要体现在:
- 通过 Workflow 提升复杂任务编排能力;
- 通过 Agent 实现工具调用和任务执行;
- 通过知识库与 RAG 降低模型幻觉;
- 通过多模型接入增强灵活性;
- 通过 API 发布加速业务集成;
- 通过私有化部署满足企业安全要求;
- 通过日志和监控提升生产可控性。
对于开发者而言,Dify 的最大优势是可以快速把 AI 想法变成可运行、可调用、可迭代的应用。
对于企业而言,Dify 的价值在于它提供了一套相对完整的 AI 应用工程化方案,能够帮助团队更快地把大模型能力接入真实业务流程。
如果你正在构建 AI 客服、知识库助手、智能体应用、内容生成工具或企业自动化工作流,Dify 都是一个非常值得关注和实践的开源平台。