Dify 是什么 · 怎么装 · 能做什么

3 阅读19分钟

Dify 是什么 · 怎么装 · 能做什么

写给:第一次接触 Dify、想搞明白它到底是什么、并且想在自己电脑上把它跑起来的人 本文环境:macOS 15.7 · Apple M1 16GB · Docker Desktop 29.6.1 · Dify v1.17.1 实测数据:15 个容器 · 镜像共约 11 GB · 运行时占用内存约 3 GB · 部署后 HTTP 验证通过 说明:所有截图与命令输出均来自本机真实部署,不是示意图


目录


0. 三句话认识 Dify

🟣 三句话版本

  1. Dify 是一个「大模型应用开发平台」 —— 你不需要写代码,用鼠标拖拽节点就能搭出一个 AI 应用。
  2. 它把做 AI 应用最麻烦的活全包了:连接各种大模型、文档切块与向量检索(RAG)、多轮对话记忆、工具调用、日志监控、对外发布。
  3. 它把成果变成你能直接用的东西:一个网页版聊天界面、一套 API、或者一个可被其他系统调用的服务。

如果这样还抽象,换个说法:

你熟悉的类比Dify 相当于
WordPress 之于建网站你不用从写 HTML 开始,装好 WordPress、套模板、写内容就行 —— Dify 对 AI 应用也是这个定位
低代码平台 之于做管理系统拖拽节点连线,而不是从零写后端接口和前端页面
Postman 之于调接口把「调模型 + 查知识库 + 用工具」这些动作可视化串起来,还能直接调试

🔵 一句话总结

不用写代码,把「大模型」变成「能用的产品」的那套工具。


1. 它到底解决什么问题

假设你想做一个「能回答公司内部文档问题的 AI 助手」。不用 Dify,你要自己写这些东西:

❌ 自己从零写✅ 用 Dify
对接大模型 API(还要处理流式、重试、超时)上传文档(拖进去就行)
文档解析(PDF / Word / Markdown 各不相同)拖几个节点连起来
文本切块(切多大?怎么重叠?这本身是个技术活)点「发布」
向量化 + 部署向量数据库—— 完事
检索排序、相似度阈值、混合检索
把检索结果拼进提示词(还得防幻觉)上述所有环节都是内置的,包括向量库、切块策略、检索算法、前端界面、日志监控
多轮对话的记忆管理
一个能用的前端界面
日志、监控、成本统计
……几千行代码,还得慢慢调

更具体地说,Dify 帮你省掉了三类工作量:

类别具体省掉什么
基础设施向量数据库、PostgreSQL、Redis、Nginx 这些依赖,一条命令全部装好并连好(本机实测共 15 个容器)
RAG 细节文档解析、切块策略、向量化、混合检索、重排序 —— 这些是 AI 应用里最"脏"的活,Dify 都封装好了
工程配套模型接入(20+ 家供应商)、对话界面、API 发布、日志标注、成本统计

2. 能做什么(7 大能力)

这一节先讲「是什么」,具体界面截图在第 5 章

① 工作流编排 —— 把多个步骤连起来

用节点和连线定义 AI 的处理流程:

用户输入 → 搜索网页 → 大模型整理 → 判断条件 → 分支A / 分支B → 输出

节点类型包括:大模型、知识检索、代码执行、条件分支、循环、迭代、HTTP 请求、工具调用、变量聚合……

两种形态:「工作流」用于单轮自动化任务;「Chatflow」用于多轮对话(带记忆)。

② 知识库(RAG)—— 让 AI 基于你的资料回答

把你自己的文档(PDF / Word / Markdown / TXT / CSV / HTML)上传进去,AI 就能基于这些内容回答问题,而不是靠它自己的记忆瞎编。

Dify 在背后自动完成:文档解析 → 文本切块 → 向量化 → 存入向量库 → 提问时检索 → 拼进提示词

③ 智能体(Agent)—— 让 AI 自己决定用什么工具

和工作流的区别:工作流的步骤是你写死的;Agent 的步骤是AI 自己决定的 —— 它会根据你的问题,自己判断该调用哪个工具、调几次。

比如问「北京明天天气怎么样,适合穿什么」,它会自己先调天气工具,再基于结果给建议。

④ 模型管理 —— 一个平台接入所有大模型

支持 20+ 家供应商:OpenAI、Anthropic、Google、DeepSeek、通义千问、智谱、硅基流动、Ollama(本地模型)……

换模型只需要在界面上点几下,不用改任何代码。

模型供应商

图 1:模型供应商管理页 —— 每个供应商都能独立配置凭据,同一个应用里不同节点可以用不同模型

⑤ 插件生态 —— 几百个现成工具

搜索引擎、网页抓取、图片生成、代码执行、数据库查询、各种 SaaS 集成…… 都能从 Marketplace 一键安装,然后在工作流里当节点用。

插件市场

图 2:Dify Marketplace —— 插件 / 模板 / 创作者中心,装完即可在工作流中调用

⑥ 发布与集成 —— 怎么把成果用起来

方式用途
Web 应用Dify 直接给你一个聊天网页,复制链接就能分享给别人用
后端 API用 HTTP 接口接进你自己的系统(/v1/chat-messages
嵌入网站把聊天气泡嵌进你已有的网站里
MCP 服务把你的应用变成工具,给其他 Agent 调用

⑦ LLMOps —— 上线之后的事

日志查看、用户反馈标注、调用量统计、成本分析。这些是「Demo 变成产品」必须有的东西。

监测统计

图 3:监测页 —— 会话数、活跃用户、Token 消耗等运营数据


3. 必须先懂的 5 个概念

不用背,但看到这些词要知道在说什么:

概念大白话解释
应用(App)你在 Dify 里做出来的一个东西。一个应用 = 一套配置 + 一个对外入口。
节点(Node)工作流里的一个步骤方块。比如「大模型」节点、「知识检索」节点。
变量(Variable)节点之间传递的数据。写成 {{#节点名.字段#}} 这种形式,表示"把上一步的输出填到这里"。
知识库(Knowledge)你上传的文档,被切块、向量化之后的集合。是 RAG 的"资料仓库"。
模型供应商(Provider)提供大模型的服务方。DeepSeek、OpenAI、或你本机跑的 Ollama 都算一个供应商。

🟠 ⚠️ 最容易卡住新手的一步

装完 Dify 后,必须先配置至少一个「模型供应商」,否则什么都干不了。

因为 Dify 本身不提供大模型 —— 它只是个"调度中心"。你得告诉它去哪里调用模型(填 API Key,或者指向本机的 Ollama)。这一步在第 5 章有截图。


4. 从 0 开始安装部署

🔵 整体就三步

装 Docker → 下载 Dify 源码 → 一条命令启动

4.1 先看你的电脑够不够

最低实际建议本机实测
CPU2 核4 核4 核(分配给 Docker)
内存4 GB8 GB 以上7.75 GB(够用但不宽裕)
磁盘20 GB40 GB 以上镜像约 11 GB + 数据增长

🔴 ⚠️ 内存是这个部署里最容易出问题的地方

官方写的「4 GB」是能启动的底线。实测在 4 GB 的 Docker 虚拟机上,容器会因内存不足不断重启(OOM) ,根本用不了。

本机分配 7.75 GB 后,15 个容器全部稳定运行,运行时吃掉的真实内存约 3 GB

dify-api-1            1.07 GiB
dify-worker-1         517 MiB
dify-plugin_daemon-1  472 MiB
dify-api_websocket-1  426 MiB
dify-worker_beat-1    403 MiB
dify-agent_backend-1  112 MiB
dify-weaviate-1        74 MiB
(其余容器更小)

为什么建议 8 GB 而不是 4 GB? 因为这 3 GB 只是"待机"状态。你真正开始跑知识库、跑工作流时会更高;如果你还想在同一台机器上跑本地大模型(Ollama),那更是要精打细算。

4.2 第一步:装 Docker Desktop

Dify 的所有组件都跑在 Docker 容器里,所以第一件事是装 Docker Desktop

登录页

图 4:装好并启动 Dify 后,你会看到这样一个登录页(首次是「设置管理员账户」)

1) 先检查是不是已经装了

# macOS 上检查
ls -d /Applications/Docker.app 2>/dev/null && echo "已安装"
pgrep -fl "com.docker.backend" >/dev/null && echo "正在运行"

🟢 ✅ 很多人其实早就装了

本机的实际情况就是:Docker Desktop 早就装好并且正在运行,根本不用重装。所以先检查,别急着下载

2) 确实没装的话

  1. 访问 https://www.docker.com/products/docker-desktop/
  2. 按芯片选版本:Apple Silicon(M 系列)→ Apple Chip;Intel → Intel Chip
  3. 双击 .dmg,把 Docker 拖进「应用程序」,然后启动它
  4. 首次启动按提示授权(需要管理员密码),等鲸鱼图标变成稳定状态

🔴 ⚠️ 装完必须做这一步,否则后面一定卡住

打开 Docker Desktop → 右上角齿轮 ⚙️ → Advanced → Docker CLI tools → Install

不做这一步会怎样? 后面的 docker compose pull 会报:

docker-credential-desktop: executable file not found in $PATH

结果就是镜像完全拉不动,而且这个报错看起来像"网络问题",很有迷惑性。详见坑 1

3) 调资源(关键)

Docker Desktop → ⚙️ → Resources

  • Memory 调到 8 GB(默认 4 GB 会 OOM)
  • CPUs 调到 4 核(够用)

Apply & Restart注意:这会重启 Docker,中断所有正在运行的容器 —— 如果你机器上还有别的容器在跑,先确认它们能重启。

4) 验证环境

docker --version          # 本机:Docker version 29.6.1
docker compose version    # 本机:Docker Compose version v5.3.0
docker info | grep -E "Total Memory|CPUs"
# 本机输出:
#  CPUs: 4
#  Total Memory: 7.751GiB

🟠 ⚠️ 版本红线

Dify 要求 Docker Compose ≥ 2.24.0。低于这个版本会直接报错。上面第二条命令就是自检。

4.3 第二步:下载 Dify 源码

git clone --branch 1.17.1 https://github.com/langgenius/dify.git

🔵 为什么写死版本号 1.17.1

官方文档给的是自动取最新版的命令(用 curl + jq 查 GitHub API),但国内网络访问 GitHub API 常被限流,会取到空值然后报这个错:

fatal: Remote branch null not found in upstream origin

直接写死版本号更稳。 版本号可以在 github.com/langgenius/… 查到。

如果嫌完整克隆太慢(历史记录有 1 GB+),可以浅克隆:

git clone --depth 1 --branch 1.17.1 https://github.com/langgenius/dify.git

4.4 第三步:准备配置并启动

# 1) 进入 docker 目录
cd dify/docker

# 2) 从模板复制一份配置(这一步必须有!)
cp .env.example .env

# 3) 启动全部容器
docker compose up -d

🔴 ⚠️ 第 2 步不能省

Dify 的 docker-compose.yaml 里,每个服务都把 .env 声明为必需文件。缺了这个文件,连语法检查都过不去,会直接报错,而不是"用默认值继续跑"。

首次启动要下载约 11 GB 镜像,慢慢等。主要镜像(本机实测):

镜像大小作用
langgenius/dify-api:1.17.14.05 GB后端核心逻辑
langgenius/dify-plugin-daemon2.21 GB插件运行时
langgenius/dify-agent-backend1.48 GBAgent 沙箱执行
langgenius/dify-sandbox901 MB代码执行沙箱
langgenius/dify-web901 MB前端界面
dify-agent-local-sandbox796 MB本地沙箱
postgres:15-alpine408 MB主数据库
weaviate290 MB向量数据库
nginx259 MB反向代理(对外入口)
redis:6-alpine42 MB缓存 / 消息队列

🟠 ⚠️ 磁盘要提前留够

这些镜像解压后比下载时更大。建议预留 40 GB 以上。如果磁盘紧张,会在"镜像拉取完成"后才发现空间不足。

4.5 验证:容器都起来了吗

docker compose ps

本机实测输出(15 个容器):

dify-agent_backend-1      Up 3 hours
dify-agent_ssrf_proxy-1   Up 3 hours
dify-api-1                Up 3 hours (healthy)
dify-api_websocket-1      Up 3 hours
dify-db_postgres-1        Up 3 hours (healthy)
dify-local_sandbox-1      Up 3 hours (healthy)
dify-nginx-1              Up 3 hours
dify-plugin_daemon-1      Up 3 hours
dify-redis-1              Up 3 hours (healthy)
dify-sandbox-1            Up 3 hours (healthy)
dify-ssrf_proxy-1         Up 3 hours
dify-weaviate-1           Up About an hour
dify-web-1                Up 3 hours
dify-worker-1             Up 3 hours
dify-worker_beat-1        Up 3 hours

🟢 ✅ 怎么判断正常

  • 每个容器都是 Up;带 (healthy) 更好
  • 看不到 init_permissions 是正常的 —— 它是一次性任务,跑完权限设置就自动退出了
  • 如果某个容器不停重启,用 docker compose logs <容器名> --tail 50 看日志

4.6 访问并初始化管理员

  1. 浏览器打开 http://localhost/install(服务器上换成你的 IP)
  2. 设置管理员邮箱和密码 → 完成初始化
  3. 之后正式入口就是 http://localhost

端到端验证(本机实测):

$ curl -o /dev/null -w "%{http_code}" http://localhost/
307                          # 未登录时跳转登录页,正常

$ curl -o /dev/null -w "%{http_code}" http://localhost/install
200                          # 初始化页面可访问

$ curl http://localhost/console/api/setup
{"step":"finished","setup_at":"2026-09-22T10:28:37"}
                             # setup = finished 说明管理员已初始化完成

🔵 为什么返回 307 也算正常

307 是「临时重定向」,意思是"你没登录,去登录页吧"。能返回 307 恰恰说明服务是活的 —— 服务挂了会返回 502 或直接连不上。

登录后的首页:

Dify 主页

图 5:登录后的主页 —— 左侧是主导航,这里是你之后每天要打交道的地方


部署必踩的 5 个坑

这 5 个坑全部是本机部署时真实遇到的,而且有个共同特点:报错信息指向的地方,往往不是真正的原因。

坑 1:镜像完全拉不动 —— docker-credential-desktop 找不到

现象docker compose pull 报错:

error getting credentials - err: exec: "docker-credential-desktop":
executable file not found in $PATH

看起来像:网络问题、镜像源问题。

真实原因:Docker Desktop 装了,但它的命令行工具(CLI tools)没装。Docker 配置里写着用 desktop 这个凭证助手来存登录信息,而这个助手去哪儿找,靠的就是 CLI 工具。

解法:Docker Desktop → ⚙️ → Advanced → Docker CLI tools → Install

临时绕过(不改配置):

export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"

坑 2:.env 缺失导致 compose 拒绝解析

现象:即使只是跑 docker compose config 检查语法,也直接报错。

原因:Dify 的 compose 文件里,每个服务都把 .env 声明为必需(env_file)。文件不存在时,Docker Compose 不会用默认值兜底,而是直接拒绝解析

解法cp .env.example .env。就这一行。

坑 3:内存不足导致容器反复重启(最影响使用)

现象:容器起来了,但过一会儿就重启,或者某个服务一直不健康。

原因:Docker Desktop 默认只给虚拟机 4 GB 内存,而 Dify 完整跑起来要 3 GB 以上,余量太小。

解法:Docker Desktop → ⚙️ → Resources → Memory 调到 8 GB → Apply & Restart。

🟠 ⚠️ 调整后必须验证真的生效了

不要只看界面设置,用命令确认虚拟机实际拿到了多少内存:

docker info | grep -i "total memory"
# 期望看到:Total Memory: 7.751GiB(8 GB 减去系统开销)

本机实测:调整前 3.827 GiB → 调整后 7.751 GiB,翻倍生效。

坑 4:容器名和你的其他项目撞车(最危险)

现象:Docker 会用一个"项目名"给容器分组,而 Docker Compose 默认用「所在目录名」当项目名。你如果按官方文档把源码放在一个叫 docker 的目录里,那么项目名就是 docker

危险在哪:如果机器上另一个项目也在叫 docker 的目录里跑 compose,两者会共享同一个项目名。此时执行:

docker compose down --remove-orphans

会把两个项目的容器一起删掉 —— 本机实测就是 Dify 和另一个项目共 22 个容器挤在同一个项目名下。

解法:在 dify/docker/.env 末尾加一行,给项目起个独立名字:

COMPOSE_PROJECT_NAME=dify

然后重新启动。之后所有 Dify 容器都会以 dify- 开头,和别的项目彻底隔开。

🔴 ⚠️ 这个坑值得单独记住

因为它不是"部署失败" ,而是"某天你随手敲了个命令,把别人的数据删了"。属于埋在地下的雷。部署时就顺手隔离掉,成本一行配置。

坑 5:plugin_daemon 崩溃重启,报 DNS 解析失败

现象:某个容器反复重启,日志里是:

lookup db_postgres on 127.0.0.11:53: server misbehaving

看起来像:数据库连不上、Docker 的 DNS 坏了。

真实原因前一次启动失败留下的"半成品容器" 。Docker 给容器连网络时,如果中途失败(比如端口被占用),容器会停在"只挂了一半网络"的状态。于是它找不到数据库 —— 不是 DNS 的问题,是它压根没接上那个网络

怎么判断:对比容器实际挂载的网络和 compose 里声明的:

docker inspect dify-plugin_daemon-1 \
  --format '{{range $k,$v := .NetworkSettings.Networks}}{{$k}} {{end}}'

本机实测:它只挂了 dify_ssrf_proxy_network少了 dify_default。而其他容器都是两个都挂。

解法普通 docker compose restart 修不好(网络配置在容器创建时就固化了),必须强制重建:

docker compose up -d --force-recreate plugin_daemon

5. 功能巡览(界面截图)

装好之后长什么样?这一章带你逛一圈。

5.1 工作室 —— 你的应用列表

工作室首页

图 6:工作室 —— 所有创建过的应用都在这里,按类型 / 标签 / 创建者筛选

左侧导航是 Dify 的总入口,从上到下依次是:

导航项作用
主页欢迎页 / 概览
工作室你创建的所有应用
Agents(BETA)智能体相关功能
知识库文档与向量检索(RAG 的核心)
Skills技能相关
集成模型供应商、工具、数据源等(最关键的一页)
Marketplace插件市场
WEB APPS已发布为网页的应用,可直接访问

5.2 创建应用 —— 先选类型

点右上角「创建」→「创建空白应用」,会让你选应用类型:

应用类型选择

图 7:创建空白应用 —— 工作流(单轮任务)与 Chatflow(多轮对话)

类型适合什么
工作流单轮自动化任务。比如"给一篇文章自动生成摘要并翻译"
Chatflow多轮对话(有记忆)。比如客服助手、知识库问答

🔵 新手怎么选

想做问答类(能连续追问)→ 选 Chatflow想做批处理类(输入一次、输出结果)→ 选工作流

拿不准就先用 Chatflow,它更接近大家对"AI 助手"的直觉。

5.3 应用编排 —— 拖节点的画布

应用编排界面

图 8:工作流编排画布 —— 左边是节点库,中间是画布,右边是选中节点的配置面板

做任何应用都在这块画布上:从左侧拖节点进来 → 连线 → 在右侧填配置。右上角「预览」可以随时试。

5.4 知识库 —— 让 AI 读你的资料

知识库

图 9:知识库列表 —— 每个知识库可以独立配置嵌入模型、检索方式

上传文档后,Dify 会自动完成:解析 → 切块 → 向量化 → 存入向量库。之后在应用里挂上这个知识库,AI 就能基于你的资料回答。

5.5 集成 —— 装完必须先来这一页

模型供应商

图 10:集成 → 模型供应商 —— 每个供应商都要单独配凭据,配好才「可用」

左侧二级导航里,最重要的是这几项:

  • 模型供应商:接大模型(必配,否则应用跑不起来)
  • 工具:搜索引擎、网页抓取等
  • 数据来源:外部数据接入
  • Agent 策略:智能体的推理策略

🟠 ⚠️ 截图里能看出状态差异

注意截图里 Ollama 显示「管理凭据 / 添加模型」(已配置可用),而 深度求索、OpenAI、硅基流动都标着「需要配置 API Key」(装了插件但没填密钥)。

装了插件 ≠ 能用。 必须点进去填 Key 或填本地地址才算配好。

5.6 Marketplace —— 插件市场

插件市场

图 11:Marketplace —— 插件、模板、创作者中心

5.7 监测 —— 应用上线后看这页

监测统计

图 12:监测 —— 会话数、活跃用户、互动数等运营数据


6. 我能拿它做什么

按「上手难度」从低到高排,方便你选第一个练手项目:

🟢 入门级(半小时能做完)

做什么用到哪些能力
公司内部问答机器人知识库 + Chatflow。上传员工手册、产品文档,直接问
文档摘要器工作流 + 大模型。贴一篇文章进去,输出摘要 + 要点
翻译 / 改写助手大模型 + 提示词。改改提示词就是一个新应用

🟡 进阶级(需要接工具)

做什么用到哪些能力
每日新闻摘要工作流 + 搜索工具 + 大模型。定时抓新闻自动汇总
客服工单分类工作流 + 条件分支。按内容自动分派给不同处理流程
数据查询助手Agent + 数据库工具。用自然语言查数据库

🔴 生产级(要接进自己的系统)

做什么用到哪些能力
把知识库集成进已有业务系统知识库 API + 你自己的前后端
企业内部 AI 中台多个应用 + API 统一对外 + LLMOps 监控
嵌入已有网站Web 应用 + 嵌入代码

🟢 ✅ 建议的第一个项目

「公司文档问答机器人」。理由:

  • 只需要「知识库 + Chatflow」两个概念,不用碰工具和 Agent
  • 效果立刻能感知(问什么答什么,带引用来源)
  • 做完就理解 RAG 了,这是 Dify 最核心的价值

7. 该从哪学起

按这个顺序走,不会卡:

顺序做什么大概花多久
1装好 Docker Desktop,调好内存(8 GB),装 CLI tools30 分钟(下载占大头)
2下载 Dify 源码,docker compose up -d,初始化管理员30~60 分钟(拉镜像慢)
3去「集成 → 模型供应商」配一个模型。没有本机模型就注册个云端 API Key10 分钟
4建个空白 Chatflow,只放一个「大模型」节点,跑通一次对话10 分钟
5上传几份文档建知识库,把它挂进应用,问一个只有文档里才有答案的问题30 分钟
6点「发布」,用 Web 应用访问,把链接发给朋友试试5 分钟
7再考虑工作流、工具、Agent

🔵 一个提醒

第 3 步是分水岭。很多人卡在这里,以为 Dify 装好了就能用 —— 其实 Dify 本身不提供大模型,你必须先告诉它去哪儿调。这一步不做,后面所有功能都是灰的。


8. 总结

🟣 记住这几条

  1. Dify 是「大模型应用开发平台」 —— 不写代码,拖节点就能做出 AI 应用
  2. 它最大的价值是把 RAG 和各种工程细节全包了:文档切块、向量检索、多轮记忆、模型接入、日志监控
  3. 部署就三步:装 Docker → 下载源码 → docker compose up -d
  4. 内存是最大的坑:Docker 虚拟机必须给到 8 GB,4 GB 必然 OOM
  5. 装完必须配模型供应商,否则什么都干不了
  6. 最危险的是容器项目名撞车:加一行 COMPOSE_PROJECT_NAME=dify 隔离

最后回到最开始那个问题 —— Dify 是什么?

它是一个把「大模型」和「能用的产品」之间的那段路,从几千行代码压缩成几次点击的工具。你依然需要理解 RAG、提示词、检索这些概念,但不需要再为"向量库怎么装""文档怎么切""前端怎么画"这些事耗时间了

🟢 ✅ 本机部署成果(真实数据)

  • 15 个容器稳定运行(含 6 个 healthy)
  • 镜像共约 11 GB,运行时占用内存约 3 GB
  • Docker 29.6.1 / Compose v5.3.0 / Dify v1.17.1
  • HTTP 端到端验证通过(307 / 200 / setup finished)
  • 已配置 Ollama 本地模型 + 4 个知识库文档 + 2 个可运行应用

配套文档:《Dify 完全入门与实战指南》(概念详解)·《用 Dify 搭建本地知识库-图文教程》·《用 Dify 搭建每日新闻摘要-图文教程》·《把 Dify 知识库集成到自己系统-图文教程》 截图目录:dify-intro-assets/(11 张,均来自本机真实部署)