Dify 详解:可视化 Agent 工作流平台
Dify 是什么、它的可视化工作流构建器如何服务 Agent 开发,以及 2026 年它在 Agentic AI 技术栈中的位置。
TL;DR — Dify 是一个开源平台,用来可视化构建 AI Agent 和工作流。可以把它想成”Agent 流水线的 Figma”——拖节点、连线、绑模型和工具,就能拿到生产级 API 端点,不用写编排代码。GitHub 100K+ stars 加企业级采用,它填补了从原型到上线之间的鸿沟。
Dify 是什么
Dify(LangGenius 出品)是一个全栈 LLM 应用平台,打包了:
- 可视化工作流编辑器做 Agent 编排
- RAG 流水线引擎(文档导入 + 检索)
- 多模型管理(换供应商不改代码)
- Agent 框架 + 工具调用
- 插件市场
- 内置可观测性(trace、成本、延迟)
关键数据:
| 指标 | 数值 |
|---|---|
| GitHub stars | 100K+ |
| OpenRank(2026年5月) | 165.92 |
| 活跃贡献者 | 137 |
| 自托管部署量 | 数万 |
| 许可证 | Apache 2.0(企业功能源码可见) |
它现在的定位:“Leading Agentic Workflow Builder”。从 LLM 应用构建器起步,已经坚定转向 agentic 编排——这和整个生态从 chatbot 转向 agent 的趋势一致。
我对 Dify 的第一反应是怀疑——我是个代码优先的人,可视化构建器在我看来通常是一周就会扔掉的辅助轮。让我改观的不是 demo,是把一个 Dify 画布丢给一个不写代码的 PM,看着他没靠我就上线了一个能用的客服分流 Agent。这才是它真正的价值主张,也是 Python 框架给不了的。问题不在于 Dify 是不是”比代码好”——而在于给你建 Agent 的那些人,到底写不写代码。
可视化工作流范式
Dify 打动特定类型 builder 的原因在这里。用代码写 Agent 编排长这样:
# 代码优先(LangChain/LangGraph)
from langgraph.graph import StateGraph
graph = StateGraph(AgentState)
graph.add_node("plan", plan_step)
graph.add_node("execute", execute_step)
graph.add_node("review", review_step)
graph.add_edge("plan", "execute")
graph.add_conditional_edges("execute", should_retry, {"yes": "execute", "no": "review"})
# ... 再来 50 行接线代码
在 Dify 里,同样的事情是画布上三个方块加两条箭头。每个节点的模型、prompt、工具绑定在侧面板配置。平台生成执行引擎。
这不是”更好”或”更差”——是不同的 trade-off:
| 维度 | 代码优先(LangGraph) | 可视化(Dify) |
|---|---|---|
| 灵活性 | 无限 | 受限于节点类型 |
| 迭代速度 | 中等 | 快 |
| 非开发者可用 | 否 | 是 |
| 版本控制 | 原生(git) | 平台管理 |
| 调试 | debugger/日志 | 内置 trace 查看器 |
| 部署 | 自己搭 | 一键 API |
| 供应商锁定风险 | 低 | 中等 |
Dify 最强的场景是团队里有非开发者(产品经理、领域专家)需要构建或修改 Agent 工作流而不写 Python。也适合快速原型——30 分钟验证一个 Agent 概念,而不是花一天。
架构
┌──────────────────────────────────────────────┐
│ 前端(React) │
│ 可视化工作流编辑器 + 应用工作室 │
├──────────────────────────────────────────────┤
│ 后端(Python/Flask) │
│ 工作流引擎 + RAG 流水线 + Agent 循环 │
├──────────────────────────────────────────────┤
│ 基础设施 │
│ PostgreSQL + Redis + Weaviate/Qdrant + S3 │
├──────────────────────────────────────────────┤
│ 模型供应商(可插拔) │
│ OpenAI, Anthropic, 本地, Bedrock 等 │
└──────────────────────────────────────────────┘
Docker Compose 一条命令自托管全套,或用 Dify Cloud(托管版)。生成的应用暴露 REST API,前端或其他 Agent 可以调用。
Agent 构建体验
Dify v1.14+ 引入了 “Agent Skills”——从简单聊天流到真正 Agent 的重大转变:
沙箱化运行时 — Agent 代码执行在隔离环境中。Agent 可以跑 Python、调 API、处理数据,不会影响宿主系统。
Skill Editor — 构建可复用的 Agent 能力(如”搜索网页”、“查数据库”、“生成图表”),可以组合进工作流。
动态变量组装 — Agent 的上下文从工作流状态动态构建,不是硬编码在一个巨大 prompt 里。这让复杂多步 Agent 更容易管理。
工具集成 — 原生支持 function calling 调外部 API。在 UI 里定义工具和 schema,Agent 执行时使用。
规模化时什么会崩(自托管的现实)
Dify 演示起来很漂亮。“10 分钟建个 Agent”的视频是真的。视频跳过的是放到生产后会发生什么。真实负载下自托管 Dify 跑过之后,会咬人的地方:
**工作流引擎才是瓶颈,不是模型。**Dify 后端(Python/Flask)逐节点执行你的工作流图。每次节点切换都有开销——状态序列化、数据库写入、队列操作。简单 3 节点工作流这是隐形的。20 节点的 Agent 工作流在并发下,编排开销可能超过实际 LLM 延迟。我们见过 40% 的墙钟时间花在 Dify 管道上而不是推理的工作流。
**并发上限比你想的低。**默认 Docker Compose 配的 worker 数很保守。开箱即用,20-30 个并发工作流执行就开始排队。扩展意味着一起调 CELERY_WORKER_AMOUNT、Gunicorn worker 数和 Postgres 连接池——调错一个要么 OOM 要么 DB 连接死锁。
**RAG 用的向量库需要自己的容量规划。**Dify 默认捆绑 Weaviate(或 Qdrant)。捆绑的单节点实例处理几千文档没问题,百万级不行。如果你的 RAG 语料很大,应该让 Dify 指向托管向量库,把捆绑的当 dev-only。
**版本升级可能搞坏工作流。**Dify 迭代很快。1.12 建的工作流升到 1.14 后偶尔需要调整,因为节点行为或变量作用域变了。生产环境锁版本,在 staging 测升级——别自动拉 latest。
诚实总结:Dify 擅长快速做出能用的 Agent,擅长让非开发者参与。它不是基础设施上的免费午餐。如果你预期高 QPS,预留调引擎的时间,或者接受 Dify 是你的原型/内部工具层,而代码优先的栈处理你最高量级的路径。
Dify 在 Agent 技术栈中的位置
Dify 位于编排和构建层:
┌─────────────────────────────────────┐
│ 最终用户 / 应用 │
├─────────────────────────────────────┤
│ Dify(编排 + RAG + UI) │ ← 面向 builder 的平台
├─────────────────────────────────────┤
│ 模型网关(LiteLLM / SandBase) │
├─────────────────────────────────────┤
│ 推理引擎(vLLM / SGLang) │
├─────────────────────────────────────┤
│ 计算(GPU) │
└─────────────────────────────────────┘
它不是推理引擎,不是模型网关。它是你设计 Agent 做什么、用什么工具、访问什么 RAG 数据、工作流怎么分支的层。然后调用下方的模型层执行。
Dify vs 其他选择
| 功能 | Dify | n8n | LangFlow | 纯代码 |
|---|---|---|---|---|
| 可视化编辑器 | ✅ | ✅ | ✅ | ❌ |
| Agent 原生 | ✅ | 部分(AI 节点) | ✅ | ✅ |
| 内置 RAG | ✅ | 靠集成 | 部分 | 自建 |
| 自托管 | ✅ | ✅ | ✅ | ✅ |
| 非开发者友好 | 高 | 中 | 中 | 否 |
| 插件生态 | 成长中 | 成熟(400+) | 社区 | N/A |
| 多模型 | ✅ | 靠凭证 | ✅ | ✅ |
| 最适合 | AI 原生 Agent 应用 | 通用自动化 + AI | LangChain 可视化 | 最大控制权 |
关键区别:Dify 是专为 LLM/Agent 工作流构建的。n8n 是通用自动化平台后加了 AI 能力。LangFlow 是 LangChain 的可视化前端。如果你的核心工作是”构建 AI Agent 和 RAG 应用”,Dify 体验最完整。如果 AI 只是更大自动化链的一部分(Slack → 表格 → 邮件),n8n 更自然。
什么时候用 Dify
适合:
- 团队需要快速交付 Agent 驱动的功能
- 非技术干系人需要理解和修改工作流
- 想要开箱即用的 RAG,不用自己拼向量库 + embedding + 检索
- 构建面向客户的 AI 应用(聊天机器人、客服 Agent、知识库)
- 要开箱即用的可观测性
不太适合:
- 需要代码级别控制 Agent 每个决策
- Agent 工作流高度定制化,映射不到 Dify 的节点类型
- 在构建 coding agent(需要文件系统/shell 访问,不是工作流节点)
- 想避免任何平台依赖
Description 的演变
Dify 的旅程是生态趋势的教科书案例。它从 “LLMOps 平台”(做 prompt 管理和模型实验)出发,变成”LLM 应用开发平台”,现在定位自己为”生产级 agentic 工作流开发平台”。
每个 description 反映的是用户需求的真实变化。市场从”帮我调 LLM”走到了”帮我构建一个在真实世界做事的 Agent”——Dify 跟着走了。
FAQ
Dify 是真正的开源吗?
核心是 Apache 2.0 许可证,可自托管。部分企业功能(SSO、高级权限、审计日志)只在付费云版或企业版提供。社区版构建和部署 Agent 功能完整。
能用自己的模型吗?
可以。支持 OpenAI 兼容端点,你可以指向自己的 vLLM 或 SGLang 实例。也原生支持 Anthropic、Google、Azure、Bedrock 等。
Dify 怎么处理 Agent 代码执行?
v1.14+ 引入了沙箱化执行。Agent skill 可以在隔离环境中运行 Python。更高级的沙箱需求(运行任意用户代码、测试、构建)可以搭配专用沙箱服务如 SandBase 的执行 API。
适合生产吗?
数万自托管部署说明可以。主要的生产顾虑是工作流引擎在高并发下的扩展——平台设计更偏向中等量级的复杂工作流,不是高 QPS 的简单 completion。
和直接用 LangChain 比呢?
Dify 内部用了 LangChain 风格的组件但把复杂性藏在可视化界面后面。如果你是想要完全代码控制的开发者,LangChain/LangGraph 给你更多灵活性。如果想更快迭代、更少代码、内置基础设施,Dify 是另一个方向的 trade-off。
核心要点
- Dify 是可视化 Agent 工作流平台,100K+ GitHub stars,打包了编排、RAG、多模型管理和可观测性。
- 最强场景是需要非开发者参与 Agent 工作流设计的团队,或快速原型 Agent 应用。
- 和代码优先方案的 trade-off:更快迭代和更低门槛,代价是部分灵活性和平台依赖。
- 位于编排层——模型网关和推理引擎之上,终端用户应用之下。配合 LiteLLM 做多供应商路由。


