Dify — AI 应用开发平台
一句话概述
Dify 是一个开源的 AI 应用开发平台,用可视化拖拽的方式就能搭建 AI 聊天机器人、知识库问答、AI Agent 等应用,相当于一个"AI 应用的乐高积木"。
核心知识点表格
| 知识点 | 说明 |
|---|
| 名称含义 | "Do It For You"(帮你搞定) |
| 定位 | 开源 LLM 应用开发平台 |
| GitHub Stars | 100K+(增长最快的 AI 开源项目之一) |
| 估值 | 1.8亿美元 |
| 核心功能 | 可视化工作流 + RAG + AI Agent + 插件市场 |
| 运行应用数 | 100万+ |
| 架构 | Beehive 运行时(2025年替换 LangChain) |
| MCP 支持 | 既是 MCP 客户端也能做 MCP 服务器 |
| 部署方式 | Docker 自部署 / Dify Cloud |
安装与配置
环境要求
- Docker + Docker Compose(必须)
- 至少 4GB 内存(推荐 8GB+)
- 至少 10GB 磁盘空间
安装步骤
# === Docker Compose 一键部署 ===
# 克隆 Dify 仓库
git clone https://github.com/langgenius/dify.git # 下载 Dify 代码
# 进入 Docker 目录
cd dify/docker # 进入 Docker 配置目录
# 复制环境变量文件
cp .env.example .env # 复制环境变量模板
# 编辑 .env 文件(可选,修改密码等)
# nano .env
# 启动所有服务
docker compose up -d # 后台启动 Dify(包含数据库、Redis、向量库等)
# 等待所有容器启动完成(约2-3分钟)
docker compose ps # 查看各服务运行状态
# 打开浏览器访问
# http://localhost 或 http://localhost:80
# 首次访问需要设置管理员邮箱和密码
配置 AI 模型
首次登录后需要配置 AI 模型:
1. 点击右上角头像 → 设置 → 模型供应商
2. 添加模型提供商:
- OpenAI → 输入 API Key
- Anthropic → 输入 API Key
- Ollama → 输入 http://host.docker.internal:11434
- 还支持:通义千问、文心一言、智谱、讯飞等国产模型
3. 保存设置
如果用 Ollama 本地模型(完全免费):
- 先在主机上启动 Ollama:ollama serve
- 在 Dify 中添加 Ollama 提供商
- 模型 URL:http://host.docker.internal:11434
基本使用
四种应用类型
Dify 支持创建四种类型的 AI 应用:
1. 聊天助手(Chatbot)
- 最常见的类型
- 类似 ChatGPT 的对话界面
- 可以加知识库(RAG)
2. 文本生成(Completion)
- 输入 → 输出的单次任务
- 比如:翻译、摘要、改写
3. Agent
- 能使用工具的智能体
- 可以搜索网页、查数据库、调 API
4. 工作流(Workflow)
- 最强大的类型
- 多步骤、条件分支、并行处理
- 适合复杂业务逻辑
快速创建一个 AI 聊天助手
1. 点击 "创建应用" → 选择 "聊天助手"
2. 设置系统提示词:
"你是一个友好的客服助手,回答用户关于产品的问题。
如果不知道答案,诚实说不知道。"
3. 选择模型(如 Claude Sonnet)
4. 点击 "发布"
5. 获得一个可以分享的聊天链接
6. 也可以通过 API 集成到自己的应用
就这么简单!5分钟做一个 AI 客服
添加知识库(RAG)
让 AI 基于你的文档回答问题:
1. 侧边栏 → 知识库 → 创建知识库
2. 上传文档:
- 支持 PDF、Word、TXT、Markdown
- 也支持从网页爬取
3. 选择切分策略和嵌入模型
4. 等待文档处理完成
5. 在聊天助手中关联这个知识库
效果:用户问问题时,AI 会先从你的文档中找答案,
而不是瞎编(减少幻觉)
高级用法
可视化工作流构建
工作流节点类型:
输入/输出节点:
- 开始节点 — 定义输入变量
- 结束节点 — 定义输出
处理节点:
- LLM 节点 — 调用大语言模型
- 知识检索 — 从知识库中搜索
- 代码执行 — 运行 Python/JavaScript
- HTTP 请求 — 调用外部 API
- 条件分支 — if/else 逻辑
- 循环节点 — 重复执行
- 变量聚合 — 合并数据
AI Agent 节点:
- 自主决策调用哪些工具
- 支持 Function Calling 和 ReAct 两种策略
示例工作流:
用户提问 → 意图识别(LLM)→ 条件分支 →
如果是产品问题 → 知识库检索 → 生成回答
如果是投诉 → 创建工单(HTTP) → 安慰回复
Agent Node — 智能体节点
Agent Node 是 Dify v1.0 引入的核心功能:
配置方式:
1. 在工作流中添加 "Agent" 节点
2. 选择推理策略:
- Function Calling(更快,直接调用工具)
- ReAct(更灵活,逐步推理)
3. 配置可用工具:
- 搜索引擎(Google、Bing)
- 数据库查询
- 计算器
- 自定义 API
- MCP 工具
4. Agent 会自主决定用哪个工具
白话比喻:就像给 AI 一个工具箱,
它自己判断该用什么工具来解决问题
MCP 协议集成
Dify 支持 MCP 的两种角色:
作为 MCP 客户端:
- 连接外部 MCP 服务器
- 让 Dify 的 Agent 能使用外部工具
- 比如:连接 Playwright MCP 做浏览器自动化
作为 MCP 服务器:
- 把你的 Dify 工作流暴露为 MCP 工具
- 其他 AI 工具可以调用你的 Dify 工作流
- 比如:Claude 可以调用你做的 Dify 知识库
插件市场
Dify 有一个插件市场,可以扩展功能:
热门插件类型:
- 模型插件 — 支持更多 AI 模型
- 工具插件 — Google 搜索、天气查询等
- 数据源插件 — 连接各种数据库
- Endpoint 插件 — 自定义 API 端点
安装方式:
设置 → 插件 → 市场 → 搜索 → 安装
常见报错与解决
| 报错 | 原因 | 解决方案 |
|---|
| Docker 启动失败 | 内存不足 | 确保 Docker 分配了至少 4GB 内存 |
| 模型连接失败 | API Key 错误或网络问题 | 检查 Key 和网络代理 |
| 知识库上传失败 | 文件格式不支持或太大 | 检查文件格式,大文件拆分上传 |
| 工作流执行慢 | 节点太多或模型响应慢 | 优化工作流,使用并行分支 |
| 向量数据库报错 | 向量库未正常启动 | docker compose restart weaviate |
| Token 超限 | 知识库内容太多 | 优化切分策略,减少检索数量 |
速查表
| 操作 | 说明 |
|---|
| 创建应用 | 工作台 → 创建应用 |
| 添加知识库 | 侧边栏 → 知识库 → 创建 |
| 配置模型 | 设置 → 模型供应商 |
| 发布应用 | 点击 "发布" → 获得链接 |
| API 调用 | 应用设置 → API 密钥 |
| 查看日志 | 应用 → 日志 |
| 安装插件 | 设置 → 插件 → 市场 |
| 工作流调试 | 点击节点查看输入输出 |
与同类工具对比
| 对比维度 | Dify | n8n | Flowise | Coze |
|---|
| 定位 | AI 应用平台 | 工作流自动化 | LLM 工作流 | AI Bot 平台 |
| 开源 | 是 | 是(Fair-code) | 是(Apache) | 否 |
| AI Agent | 强(Agent Node) | 强 | 中 | 强 |
| RAG | 内置知识库 | 需配置 | 需配置 | 内置 |
| 可视化 | 强 | 强 | 强 | 强 |
| 插件市场 | 有 | 社区节点 | 有 | 有 |
| 自部署 | Docker | Docker | Docker/npm | 不支持 |
| 中文支持 | 原生中文 | 英文为主 | 英文为主 | 原生中文 |
白话总结:Dify 是做 AI 应用最快的方式之一——不用写代码,拖拖拽拽就能做一个有知识库、会用工具的 AI 聊天机器人。和 n8n 的区别是:n8n 更像"万能自动化"(邮件、Slack 等都能串),Dify 更专注"AI 应用"(知识库、Agent、对话)。如果你想快速做一个 AI 产品原型,Dify 是最好的选择;如果你想做通用自动化流程,n8n 更合适。