说实话,Dify 这两年在圈子里火得有点出乎意料。我第一次见到它的时候,它还只是个能拖拽编排 Prompt 的小工具,现在再看,已经成了很多人搭 AI 应用的首选底座。从个人开发者到公司团队,从搭个聊天机器人到做整套知识库问答系统,到处都能看到它的影子。如果你最近总在社区里刷到“Dify”这个词,又不太清楚它到底是个什么东西、装起来麻不麻烦、能拿来干什么,这篇东西就是给你准备的。
我会把我实际使用的经验,包括踩过的坑、绕过的弯,都摊开来讲。先说清楚它是什么,再给你一套可以直接照抄的安装步骤,然后带你看看它最值钱的那几个功能到底怎么用。最后,我会把我遇到过的、社区里高频出现的几个报错和解决办法整理成清单,你照着排查就行。
1. 先搞清楚 Dify 是什么
1.1 一个开源的 LLM 应用开发平台
用一句话概括:Dify 是一个开源的 LLM(大语言模型)应用开发平台。它的核心价值在于,把“接入模型、编排 Prompt、搭建知识库、设计工作流、发布应用”这一整套流程,全部变成可视化的操作,让你不用从零开始写代码,也能快速搭出一个真正能用的 AI 应用。
如果你写过 AI 应用,应该能体会那种痛苦:先要接 OpenAI 或者其他厂商的 API,然后要写 Prompt 调优,接着要做 RAG(检索增强生成),把文档切片、做向量化、搞检索,最后还要处理用户会话、上下文管理、权限控制。这一套下来,光基础设施就要折腾好几周。Dify 做的就是把这摊子事儿全部内置,你只需要关注业务逻辑本身。
打个比方,Dify 就像建站领域的 WordPress。以前你想做个网站,得自己写 HTML、买服务器、配数据库;现在 WordPress 把这一切都打包好了,你装完就能用,主题插件一上,网站就有了。Dify 在 AI 应用领域的角色差不多就是这样——它不替代模型,也不替代你的业务系统,它做的是把模型和你之间那层复杂的技术栈全部打通。
1.2 和扣子、FastGPT、n8n 这些工具到底怎么选
很多人会疑惑 Dify 和扣子(Coze)、FastGPT、n8n 之间的区别,我简单梳理一下。
先说结论:如果你追求数据私有化、希望深度掌控自己的 AI 应用,Dify 是首选;如果你不在乎数据放在别人平台上,只想快速验证想法,扣子会更省事;如果你已经有完整的技术栈,只是需要个自动化编排工具,n8n 可能更适合你。
来看看它们各自的侧重点:
| 工具 | 定位 | 部署方式 | 擅长场景 | 适合人群 |
|---|---|---|---|---|
| Dify | LLM 应用开发平台 | 可本地部署(Docker) | 知识库、工作流、Agent 应用,数据私有化 | 有隐私要求、想自建的技术团队和极客 |
| 扣子(Coze) | 托管式 Bot 开发平台 | 云端 Saas | 快速搭建对话 Bot,插件生态丰富 | 快速原型验证、非技术人员 |
| FastGPT | 知识库问答平台 | 可本地部署 | 知识库问答为核心,流程编排为辅 | 企业知识库场景 |
| n8n | 通用工作流自动化 | 可本地部署 | 连接各种 SaaS 工具做自动化,AI 只是其中一环 | 自动化效率控 |
Dify 和 FastGPT 在小场景下功能有点重叠,但 FastGPT 更聚焦知识库问答,工作流能力相对薄弱;Dify 的定位更“平台化”,知识库只是其中一块,工作流和 Agent 才是它的重头戏。n8n 则是通用型自动化工具,它的强项是全平台连接器,AI 能力需要自己拼装,体验完全不是一回事。
2. 怎么安装 Dify
安装 Dify,官方推荐的方式是 Docker Compose 一键部署。只要你服务器上装好了 Docker 和 Docker Compose,整个过程大概也就抽根烟的时间。我前前后后在大大小小四五台机器上装过 Dify,从 CentOS 7 到 Ubuntu 22.04,再到 Windows 的 Docker Desktop,踩过的坑基本都在下面这些点上了。
2.1 服务器配置要求,别在这上面省钱
先说配置。Dify 是一个由后端 API、Worker、Web 前端、PostgreSQL、Redis、Weaviate(或 Qdrant,不同版本向量数据库可能不同)等多个容器组成的全家桶。官方文档写的最低要求是 2 核 4G 内存,但我的实际体验是——4G 内存跑起来非常紧张,一旦你要在后台处理文档、做向量化,内存很容易就飙到 90% 以上。
我的建议是:
- CPU:2 核起步,4 核以上更舒服
- 内存:8G 起步,16G 是舒服档。Dify 全家桶空载大概吃 2-3G,一旦跑模型嵌入和文档解析,4G 根本不够看
- 磁盘:40G 起步。Docker 镜像本身就有好几个 G,向量库的数据会持续增长,你要是把文档库喂得很勤快,磁盘会涨得很快
- 系统:Linux 是首选(Ubuntu 20.04+、Debian 11+、CentOS 7 都可以),Windows 用 Docker Desktop + WSL2 也可以跑,但我后面会说坑在哪
如果你是装在 NAS 上,像飞牛 NAS(fnOS)这类基于 Linux 的系统,可以直接用 Docker 套件跑,基本也是一个道理,只要性能扛得住。
2.2 Docker Compose 一键部署的完整流程
第一步,先把 Docker 环境备齐。已经装过 Docker 的直接跳过这步。
# 安装 Docker(官方脚本,适用于大部分 Linux 发行版) curl -fsSL https://get.docker.com | bash # 安装 Docker Compose 插件(新版 Docker 已整合插件,可检查) docker compose version注意:如果你的系统是 CentOS 7 或更老的版本,内核版本可能低于 3.10,Docker 新版可能装不上或者运行不稳定。CentOS 7 我建议用 Docker 20.10 左右的旧版本,并且一定确认开启了 systemd 的 cgroup 支持,不然容器内存容易出现诡异问题。
然后下载 Dify 源码包。这一步很多人会直接 git clone 整个仓库,但我更推荐直接下载特定版本的 release 包,因为 Dify 的 master 分支可能是处于开发状态,不适合直接生产使用。
# 创建一个工作目录,比如 /opt/dify mkdir -p /opt/dify && cd /opt/dify # 以 v1.10.0 为例(实际安装时替换为你要装的版本号,建议去 GitHub Releases 看最新稳定版) wget https://github.com/langgenius/dify/archive/refs/tags/1.10.0.tar.gz tar -xzf 1.10.0.tar.gz cd dify-1.10.0/docker接着配置环境变量。目录下会有一个.env.example文件,复制成.env再编辑。
cp .env.example .env vim .env.env文件里最重要的就是密钥和存储相关配置。建议把SECRET_KEY改成一段随机的长字符串,在生产环境千万不能留着默认值。POSTGRES_PASSWORD这类数据库密码也一并改掉,别嫌麻烦,这是基本安全素养。
默认情况下,端口映射是 80 端口。如果你服务器上已经有 Nginx 或者其他 Web 服务占用了 80 端口,得改一下。比如你想从 8080 访问,就改成:
EXPOSE_NGINX_PORT=8080改完就可以启动了。
docker compose up -d第一次启动会拉取十几个镜像,包括 PostgreSQL、Redis、Weaviate、nginx、docker-nginx-proxy 以及 Dify 本身的 API 和 Web 镜像。镜像体积都不小,网络状态不好的话得耐心等一会儿。拉完之后, 会自动启动所有服务。
启动完成后,浏览器访问http://服务器IP(如果改了端口就是http://服务器IP:8080),就能看到 Dify 的界面了。首次访问会让你设置管理员邮箱和密码,然后进入初始化流程。
到这里,安装基本就完成了。你可以在 “设置 - 模型供应商” 里配置各家模型的 API Key,比如 GPT、Claude、DeepSeek 等,配好之后就可以开始创建应用。
2.3 Windows 下安装 Dify 的痛与解
Dify 本身是跑在 Docker 容器里的,所以 Windows 安装的核心不是 Dify 怎么装,而是 Docker 环境怎么搭好。Windows 上装 Docker Desktop + WSL2 是主流方案,这一步本身不难,难的是电脑性能和稳定性。
我试过两三次,Windows 下跑 Dify docker compose up 经常会遇到几个问题:
问题 1:端口被占用。Windows 上 80 端口被 IIS 或者各种奇怪软件占用的概率比 Linux 高得多。解决办法一个是改.env里的EXPOSE_NGINX_PORT,另一个是找到占用进程关掉。
问题 2:文件路径和权限异常。Windows 的文件系统权限模型跟 Linux 差异很大,Dify 的挂载卷如果映射到 Windows 目录,某些版本的镜像写文件会报权限错误。稳妥的办法是把整个 dify 目录放在 WSL2 的 Linux 文件系统路径下,比如放在\\wsl$\Ubuntu\home\user\dify,而不是 Windows 的D:\dify。这点非常关键,很多人没意识到。
问题 3:内存不足。WSL2 默认只会分配宿主机一部分内存给 Linux 子系统,如果你电脑内存本身只有 8G,WSL 分 4G,再跑 Dify 全家桶,大概率卡死。需要在用户目录下建一个.wslconfig文件,写入下面的配置:
[wsl2] memory=6GB processors=4然后重启 WSL 才生效。Windows 下我真心建议至少 16G 内存再试 Dify,不然你会体验到什么叫“电脑原地起飞”。
2.4 升级 Dify 的正确姿势
Dify 的版本更新频率不低,社区版几乎每两三个月就会出一个大版本。升级其实不难,但顺序很重要。
先备份,再升级。官方建议的升级流程是这样的:
cd /opt/dify/docker # 备份当前数据库(以 docker compose 方式) docker compose exec db pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql # 拉取最新镜像 docker compose pull # 启动服务 docker compose up -d如果你跨了大版本(比如从 0.13 升级到 1.9),还需要额外跑数据库迁移操作。这部分我建议直接看对应版本的 release notes,官方会列出所有需要手动的迁移步骤,不要跳过。
升级时最常见的坑就是.env文件里新增的配置项没跟上。老版本.env没有新加的字段,升级后新容器会因为没有配置而启动失败。正确的做法是:
# 备份你的 .env cp .env .env.bak # 把最新的 .env.example 和环境差异对比,手动把你的自定义项并进新配置用diff对比一下新旧配置文件,把自定义的值迁移到新模板上,再重新 compose up。Windows 用户在 Docker Desktop 上在线升级 Dify 也是同理,核心就是容器编排,跟宿主机系统关系不大。
3. Dify 能做什么:核心功能逐个拆
3.1 知识库:从零搭建 RAG 流水线
Dify 最吸引人的能力之一就是内置的“知识库”模块,本质上是一条完整的 RAG(检索增强生成)流水线。简单说,RAG 就是先把你自己的文档切碎、向量化存入数据库,用户提问时先去库里检索最相关的内容,再把检索到的内容夹在 Prompt 里交给大模型回答。这样模型就不用凭“记忆”瞎编了,而是基于你提供的资料来回答。
创建一个知识库时,你会遇到几个关键决策点:
数据集类型。直接导入结构化数据(表格/API)或者本地文件都行。日常用得最多的是文档类导入,支持 PDF、TXT、Markdown、HTML、DOCX 等格式。非结构化文档的处理,Dify 默认内置是走unstructured这个开源库,不同的格式用的解析器不一样。
分段规则。Dify 会把文档按你设定的 chunk(块)大小切开,常见的是按 token 数分,比如每 500 个 token 切一块,块与块之间设 50 个 token 的重叠。这个参数挺讲究的:块太大,检索粒度粗、问答容易摘出一堆无关内容;块太小,语义会被切碎,检索漏召回。我的经验是,一般技术文档、标准文件这类内容,500-800 token 比较平衡;如果是短问答、FAQ 类,100-200 token 分块接检索效果也不错。
Embedding 模型选择。这一步要配置你用的嵌入模型,比如 OpenAI 的 text-embedding-3-small、智谱的 embedding-2,或者本地跑 BGE 系列。不同模型对中文的支持参差很大,如果你以中文文档为主,建议先测一下选型再说。
知识库建好后,可以在“召回设置”里调检索模式。Dify 支持向量检索、全文检索和混合检索。向量检索靠语义相关性,全文检索靠关键词匹配。我的心得是——全文字词命中的方式反而在很多垂直场景里更稳定,因为向量检索偶尔会“语义相近但实际不是你要的东西”。混合检索建议你直接从 50%-50% 开始调。
3.2 工作流:把复杂业务变成可视化流程图
如果说知识库让 AI“有料可答”,工作流则让 AI“有规矩地干活”。Dify 画工作流的体验非常直观,它不是流程图编辑器套壳,而是真的能把一个完整的业务逻辑在里面串起来。
Dify 工作流里常用的节点类型:
- 开始节点:定义用户输入参数
- LLM 节点:调用大模型,这是核心节点,可以设定 Prompt、上下文变量、模型参数
- 知识库检索节点:把用户问题拿去检索,返回文档片段
- 条件分支节点:根据判断条件走不同链路
- HTTP 请求节点:调用外部 API,比如查订单状态、查天气、调自己的业务系统
- 代码节点:写 Python 或 JavaScript 做自定义处理
- 迭代节点:对列表逐条处理,比如批量翻译、批量审核
- 变量聚合节点:把多路结果合并成一个
举个例子,你想做一个客服工单智能分类的 AI 助手,不需要写后端逻辑,只需在工作流里配置:用户输入工单内容 → LLM 节点判断工单类别(故障报修/咨询/投诉/建议) → 条件分支,若是投诉,则转紧急处理链路并调用 HTTP 节点推送企微通知;若是咨询,则转知识库检索,然后拼接结果回复用户。整个过程在界面上拖拖拽拽就能完成,还能实时调试看每步输入输出。
它跟 n8n 那类自动化工作流有个本质区别:Dify 的工作流节点是为 AI 应用优化的,它天生知道怎么把对话上下文、文档检索结果、模型输出这些 AI 元素编排到一起,不需要你去造轮子。
3.3 Agent:让模型自己学会调用工具
Dify 的 Agent 节点是把大模型和“工具调用”(Function Calling)结合起来的实战玩法。你给 Agent 配置好几个工具——比如查询订单的 API、查询天气的 API、计算器——模型在对话过程中自己判断“用户这个问题需要调什么工具”,然后生成调用参数,Dify 帮你执行并拿回结果继续推理。
实际配置的时候,你可以用内置工具,系统预置了维基百科、计算器等常用的;也可以自定义工具,有两种方式:一种是写 OpenAPI Schema(OpenAPI 3.0 格式的 YAML/JSON),Dify 自动解析出工具列表;另外一种是把现有 OpenAI 格式的 plugin 工具导进去。
这里必须提醒一句:工具不是越多越好。你把二十个工具全塞给 Agent,模型光理解每个工具是干嘛的就要花掉不少 token,而且推理时准确率反而下降。我的经验是一个 Agent 挂 3-5 个高内聚工具是最优区间,剩下的交给工作流去串联。
Agent 效果好不好,另一个关键点是模型选择。Function Calling 能力在小模型上表现参差不齐,如果你的 Agent 老是不会正确调用工具,先别急着改 Prompt,换个更大更强的模型试试,很多时候直接就好了。
3.4 从能用、好用再到接进自己的系统
Dify 搭出来的应用,最终要给人用,那就有几种发布方式。
所有应用编辑完成后,在“发布”页面可以直接生成一个 Web App,有现成的 Web 页面,支持流式输出、用户反馈按钮、分享链接,适合内部测试或者快速小范围使用。
如果你想嵌进自己的系统,就用“API 访问”方式。Dify 会生成一个 API 密钥,你用标准的 OpenAI 兼容格式调用就行:
curl --location --request POST 'https://你的域名/v1/chat-messages' \ --header 'Authorization: Bearer app-你的密钥' \ --header 'Content-Type: application/json' \ --data-raw '{ "inputs": {}, "query": "你好,帮我查一下我的订单状态", "response_mode": "streaming", "user": "abc-123" }'更有意思的是,Dify 还提供了一个 OpenAI 兼容的接口。这意味着像 Cursor 这类支持自定义 OpenAI API Base 的工具,可以直接把 Dify 的推理接口填进去,让 Cursor 能访问到你自己知识库里的内容。具体的 OpenAI 兼容接口地址和 API 密钥在“应用设置 - API 访问”里都有,照着格式填进去就能通。
这里有个容易被忽略的点:API 密钥的权限管理。Dify 的密钥分“只读”和“读写”两种,生产系统里尽量用只读密钥给前端,读写密钥留着做管理。另外,每个应用独立生成密钥,别图省事全用一个,方便单独做流量监控和下线。
4. 升级、迁移与二次开发这件事
4.1 数据备份和迁移必看的目录
Dify 跑久了,里面会积累大量业务数据:用户、对话历史、知识库文档、向量数据。这些数据的存储位置分布在几个容器里,其中 PostgreSQL 存业务数据,向量数据库存 embeddings,MinIO(或 S3)存上传的文件和图片。
要完整备份一个 Dify 实例,至少要覆盖三块:
| 数据 | 存储位置 | 备份方法 |
|---|---|---|
| 用户、应用配置、对话记录 | PostgreSQL(容器名:db) | pg_dump |
| 知识库向量化数据 | Weaviate / Qdrant(容器名看版本) | 原生导出接口或快照 |
| 上传的原始文档、图片 | MinIO / S3(容器名:sandbox、plugin_daemon等) | 复制整个卷目录 |
最省事的备份方式其实是快照整个 Docker 数据卷目录。如果你知道 Docker 的数据目录在哪(默认是/var/lib/docker/volumes),直接把对应项目的所有卷快照拷走,恢复的时候再拷贝回去,比一条条导命令靠谱得多。
4.2 把 Dify 迁到新服务器(包括飞牛 NAS)
迁移的场景我在社区里见过不少,比如原来装在云服务器上,后来想迁到本地 NAS(飞牛 NAS、群晖);或者公司从测试机迁到生产机。核心思路是:数据文件搬过去,环境变量一致,服务重新起。
可以这样操作:
- 在旧机器的 Dify docker 目录下,把整个
docker目录打包(包含.env) - 停掉旧实例:
docker compose down(注意:down会删掉容器,但保留数据卷) - 把数据卷内容同步过去。数据卷名字一般是
docker_db_data、docker_weaviate_data这类,用docker cp或者直接打包/var/lib/docker/volumes/下对应的卷目录 - 把一整套文件搬到新机器相同路径,重新
docker compose up -d
迁移时最容易忘的是.env里的SECRET_KEY。如果你换了密钥,Dify 会对已有数据做加密解密操作,可能会出现密钥不匹配导致的数据不可读。多个环境之间,SECRET_KEY 保持一致基本上是最重要的。
飞牛 NAS(fnOS)上部署 Dify 也是一个思路,它自带的 Docker 功能可以做 compose 管理,只要 NAS 性能够,Dify 跑在本地好处很多:硬盘空间随便用、文档不用上传第三方、内网访问还快。
4.3 二次开发的几种路线
Dify 是开源项目(Apache 2.0 协议一部分,部分代码 JHU 协议,具体以仓库协议为准),所以二次开发的路径很多,但真的搭过框架源码的人都知道,这不是轻松的活。
按成本从低到高排:
路线一:写自定义工具和插件。在 Agent 或工作流里注册自定义 OpenAPI 工具,不需要改 Dify 源码,甚至不用重启服务。这是 90% 场景的最优解。
路线二:写 API 扩展。Dify 支持在api服务里通过插件机制挂扩展接口,可以自己开发新的模型供应商适配或者工具集。这要求你对 Node.js / Python 有较深了解,至少能读懂 Dify 源码结构。
路线三:改源码重新构建镜像。前端的界面定制、工作流节点增加之类的,就要动web和api两个代码库了。需要本地能跑起来开发环境,改动后构建镜像替换。说实话,改前端需要一定的造轮子能力,我今天在用的时候也都尽量避开这块,因为一旦动了源码,后续版本升级就麻烦了——你每一次都要跟上游合并代码,这工程量不可小觑。
我的建议是:能通过配置和插件实现的,坚决不改源码。Dify 的演进速度非常快,官方插件市场里已经有大量高质量工具,优先找现成的,再不行就自己写个 OpenAPI 封装,最后才考虑动源码。
4.4 社区版多租户这回事儿
“多租户”是我最近被问得比较多的话题。Dify 社区版 1.10 开始支持了多租户功能——准确说是“工作空间”机制的强化。你可以在同一个 Dify 实例下,给不同团队、不同项目创建独立的工作空间,每个空间有自己独立的成员、应用、知识库和 API 密钥,彼此隔离。
配置多租户需要注意几个点:
- 升级到多租户版本前,确认你先备份了数据,因为迁移脚本会重构部分数据表结构,出错就狼狈了
- 多租户模式下,每个工作空间的 API 密钥都是独立的,你给客户 A 和客户 B 发出去的密钥,天然隔离
- 不同空间的资源配额是全局的,意味着某个租户大量跑模型调用,可能挤占实例整体性能。要控制服务能力,得看好机器资源,必要时对不同空间分级限流
我建议你在正式启用多租户前,先在一个测试环境里完整跑一遍升级和隔离验证,别一上来就把生产数据迁过去。
5. 几类高频问题的排查实录
用 Dify 的人多了,报错也五花八门。我整理了几个我实际遇到过、或者社群高频出现的问题,直接给你结论。
5.1 登录提示 “too many incorrect password attempts. please try again later.”
这个报错意思是密码错误次数过多,触发了登录保护,Dify 会临时锁定登录动作一段时间。
排查顺序:
- 确认不是有人恶意爆破。如果你部署在公网上,开放了管理员登录口,这种报错往往就是黑客在扫弱密码。建议立刻改密码,密码强度一定要够
- 如果你只是自己输错几次密码,等一段时间(一般 10-30 分钟)会自动解除
- 如果等不及,可以直接进入 PostgreSQL,清掉相关的登录失败计数。但如果你不太熟 SQL,不如直接重启
api容器来得直接,重启后计数会重置
docker compose restart api这算是一种“土办法”,但实测有效。
5.2 An error occurred during credentials validation
这个报错常出现在你配置模型供应商 API Key 时,Dify 去校验密钥合法性,但校验失败。
排查步骤如下:
- 检查密钥是否填错或过期,这个最好先看图复现
- 检查模型供应商区域的网络连通性。不同模型厂商在国内的访问情况不一,如果服务器在境内去访问部分海外模型服务,网络不通就会报这个错
- 检查你选的是哪个模型作为“校验模型”。某些供应商的校验模型不一定在当前地区可用,也可能会报这个错
- 如果你是自建的模型网关(比如接入 One-API 这类中转),还要确认网关的 Base URL 字段填对了没
这个报错本质就是“连不上+验不过”的统称,按连通性排查的思路走,基本都能定位。
5.3 Unstructured API URL is not configured for doc file processing
这个报错出现在对文档做解析时,Dify 的文档处理模块依赖unstructured服务,你还没配置它的地址。
原因很短:Dify 处理 PDF、DOCX 这类非结构化文档,默认调一个叫 unstructured 的独立服务来做解析。如果是新装的 Dify,这个服务可能没启动,或者.env里没配对应的 URL。
解决方式:
docker compose logs unstructured | tail -50先看 unstructured 服务日志,如果报端口冲突或者启动失败,修它。然后检查.env里是否有UNSTRUCTURED_API_URL配置,没有就加上http://unstructured:8000(默认容器服务名),再重启相关容器。
docker compose up -d unstructured docker compose restart api如果问题依旧,可能就是这个服务所需的内存不够,在 4G 内存的小机器上尤其常见,给 Docker 多点内存,或者调整.env里对应资源限制配置。
5.4 SSL 错误和访问不了页面问题
这个经常出现在你给 Dify 配置了域名 + HTTPS 反向代理的时候。Dify 容器内部用的是 HTTP,Nginx 代理层做 HTTPS 终结。SSL 报错一般不是 Dify 本身的问题,而是代理层证书配置不规范。
常见两种情况:
- Key mismatch / certificate verify failed:多半是证书链不完整。推荐用 fullchain 文件而不是单独 cert
- unexpected EOF / handshake failure:可能是代理和后端容器之间的端口或者协议配置不对。比如你反代时指向了容器的 80 端口,但容器内部 Nginx 监听端口改过,那代理就找不到服务
如果你用的不是官方 Nginx 而是其他反向代理(比如 Caddy、Traefik),也没问题,核心是把证书链配置正确,再确认代理的后端地址确实能通。我遇到过不少次以为是 Dify 坏了,实际是自己 Nginx 配错的锅。
写在最后的一点体会
把 Dify 从装到用,到今天这套流程走下来,最大的感受是:它确实把 AI 应用开发的门槛拉低了一个量级。以前一个人想捣鼓个带知识库的智能助手,得同时搞定前后端、数据库、向量检索、模型调用,现在 Dify 把这一切封装成了产品能力,你可以把精力全放在业务规则和 Prompt 调优上。
当然它也不是没有毛病。版本迭代快带来的配置迁移问题、多容器部署带来的资源占用问题、改源码之后升级困难的痛点,这些都需要你在实际使用中权衡。我的建议是:先用默认配置跑通一个最小场景,比如装个 Dify、建一个知识库、做一个客服问答应用,感受一下它的开发节奏,再决定要不要把它引入生产环境。等你在小场景里踩过一遍坑,后面的路就会顺很多。