最近想把手里的几十篇技术笔记整理成一个能聊天的知识库,试了一圈开源项目,最后选了 Dify。倒不是因为它星最多,而是它把 RAG、工作流、Agent 这些概念都塞进了一个界面里,对懒人比较友好。

先说怎么用的。我是在一台 4 核 8G 的服务器上装的开源版,官方推荐用 Docker Compose 部署。命令很简单:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

等镜像拉完,浏览器打开 80 端口就能看到初始化页面。整个过程大概看了两集动画的时间,没有遇到什么幺蛾子。

进去之后先建了个“知识库”,把我的 markdown 笔记批量传上去。Dify 支持分割方式设置,我用的默认,也没调 embedding 模型,先用自带的试试水。

然后建了一个聊天助手,模型选的 GPT-4o mini(这个 API key 我本来就有),再把这个知识库挂进去。它甚至做了个预览窗口,可以直接在页面上测试问答。随便问了句“Redis 持久化有哪几种方式”,它回答得挺完整,还标了来源,点击能跳回原文片段。这个溯源功能我很喜欢,以前用别的工具,它给你编一段看起来很像样但完全不存在的内容,你根本不知道哪里出了问题。

觉得好用的地方

最让我意外的是它的编排方式。普通的 RAG 流程是“提问 -> 检索 -> 拼 prompt -> 给模型”,Dify 里你可以拖节点。我后来加了一个“问题改写”节点,把用户的问题先翻译成英文再去检索,因为我的笔记里术语很多是英文。准确率提升明显,而且整个过程不用写代码,全是表单和下拉框。

另一个让我舒服的点是调试方便。每个节点单独跑,能看到每一步输入输出。之前用 LangChain 调 RAG,靠 print 大法,改一次代码重启一次,烦得不行。Dify 这种可视化调试对快速验证想法太友好了。

我还试了它的 Agent 工作流

后来我不满足于单纯问答,想试试让机器人帮我写周报。Dify 里可以创建 Agent,给它配上工具。它支持自定义工具,也可以通过 OpenAPI schema 导入,不过我直接用了内置的天气查询、计算器等简单玩意。试了个流程:先查今天的日期和天气,然后生成一段工作小结。跑通是跑通了,但说实话这个场景有点硬凑。

踩了个不小的坑

先说结论:默认配置下的检索质量一般,需要自己调分割粒度。

我把一份约 2 万字的架构设计文档传上去,问“怎么保证消息不丢失”,它给我返回了文档里讲缓存策略的段落,跟消息丢失完全没关系。后来我看了检索日志,发现是文档被分割成了 500 字符的块,关键的“消息可靠性”标题和内容被切散到了不同的 chunk 里。

解决办法是在知识库设置里把分割长度改大,比如 1000,再把重叠改成 200。同时我换了更好的 embedding 模型(text-embedding-3-small),虽然贵一点,但检索命中率明显上来了。

还有一个坑是关于便宜模型的。不要用太弱的模型做 RAG 问答,真的会“答非所问”。我试过一个免费的小模型,它经常忽略知识库里的内容直接胡编。后来翻文档看到,Dify 其实有“引用”功能,可以强制模型只基于检索结果回答。但我那时候已经换模型了,只能说如果遇到类似情况,先检查是不是模型太笨。

和竞品比怎么样

同类工具我试过 FastGPT、Quivr,还有最近比较火的 MCP 方案。FastGPT 也主打工作流,但界面比 Dify 糙,逻辑编排时总觉得卡手。Quivr 更像个人用的笔记问答工具,没有复杂的 Agent 编排。MCP 那套自由度最高,但需要自己写代码控制流程,适合喜欢折腾的。Dify 在“开箱即用”和“可深度定制”之间找了一个好的平衡点。

另外 Dify 的插件市场做得挺好。我后面接了个飞书机器人,把知识库挂到飞书群里,同事们丢个链接进去就能问东西,不用登录后台,这体验比给每个人开账号强多了。

什么场景适合

如果你想快速做一个带知识库的客服机器人、内部文档问答助手,或者想试试复杂的 Agent 工作流但不想从零写,Dify 是首选。它适合“先跑起来再说”的人。

反过来,如果你已经有一套成熟的向量数据库和编排系统,有专门的工程团队在维护,那没必要迁到 Dify。它有自己的数据存储格式,导出迁移是个麻烦,我一个朋友从 Dify 迁到 pgvector 折腾了两天。

最后说点实在的。Dify 开源版功能已经够用,但有些高级功能像多环境管理、协作权限这些,在社区版里是残缺的,得买商业版。如果你是个人开发者,这些影响不大。如果是公司内部用,注意提前确认版本差异。

我把我自己的知识库跑了三周,目前稳定没崩过,回答准确率大概九成,剩下的问题基本都是我笔记本身写得模糊。要说缺点,就是启动时占资源有点多,内存小于 4G 的机器还是先别想了。

折腾完这个东西,我最大的感受是:工具确实在变强,但真正决定效果的还是你对内容的理解和清洗方式。Dify 只是把复杂流程藏在了界面后面,并不代表你不需要懂 RAG。