Dify 是什么
Dify 是一个开源平台,用来搭建调用大语言模型(LLM)的应用。ChatGPT 和 Claude 背后用的就是这类模型。你在可视化画布上拼出应用,每一步是一个叫节点的方块,做好之后可以发布成网页、API,或者放在你自己网站上的聊天组件。
README 列出了七个部分。有工作流画布,对数百种闭源和开源模型的支持,还有用来写提示词并对比效果的 Prompt IDE。其余是 RAG 管线、拥有独立沙箱的智能体、用来查看日志和性能的 LLMOps 工具,以及每项功能都配有的 API。RAG 是检索增强生成:应用先到你自己的文档里找出相关段落,再连同问题一起交给模型。RAG 教程用 Python 从零搭了一个。
Studio 是 Dify 里搭建应用的地方。Workflow(工作流)从头到尾运行一次,返回一个结果。Chatflow(对话流)多了一层对话,每来一条消息,都先跑一遍流程再回复。文档把 Workflow 称为其他所有应用类型的基础。
| 应用类型 | 怎样运行 | 文档里的说明 |
|---|---|---|
| Workflow | 从头到尾运行一次 | 以用户输入或触发器开始。网页应用和 API 可以批量运行任务 |
| Chatflow | 对话里的每条消息运行一次 | 总是以用户输入开始,可以保存对话变量 |
| Agent(新版,测试中) | 作为聊天应用,或作为工作流里的一个步骤 | 在自己的沙箱里工作 |
| Chatbot、Agent(旧版)、Text Generator | 跑在同一个引擎上 | 界面更简单的基础类型,属于旧版界面 |
Cloud、自托管还是企业版
Dify 有三个版本。Dify Cloud 由 Dify 背后的公司 LangGenius 托管。社区版是自托管的那一个,部署页面说它能在任何能跑 Docker 的地方运行:笔记本、本地服务器或云主机。企业版面向自己托管 Dify 的组织,多了单点登录(SSO)、基于角色的访问控制(RBAC)和支持服务协议。
新的 Cloud 账号从 Sandbox 套餐开始,带有 200 个 AI 额度,可以调用 OpenAI、Anthropic、Gemini 等提供商的模型。快速入门写明,这些额度是一次性发放,不会按月重置。自托管时,模型提供商和它的 API 密钥要你自己添加,因为每个 Dify 应用至少需要一个提供商。
许可证有两个条件
仓库附带的是 Dify Open Source License,它是在 Apache 2.0 基础上增加了条件。文件写明,Dify 可以商用,包括作为其他应用的后端,直到下面两个条件之一成立,那时就需要向 LangGenius 取得商业许可。
除非 LangGenius 书面授权,你不能用源代码运行多租户环境,一个租户就是一个工作区。这是第一个条件。第二个条件和标志有关:使用 Dify 前端时,不能删除或修改控制台和应用里的标志与版权信息。前端指的是 web/ 目录,或者 Docker 里的 web 镜像,不用前端的用法不受这条限制。
如果一家公司在自己托管的 Dify 上给每个客户一个工作区,这正是第一个条件描述的情形。要做这样的事,先问 LangGenius 或律师,这里的概述不能代替许可证文件本身。
在自己的电脑上运行 Dify
Docker Compose 方案自带 PostgreSQL、Weaviate 向量数据库和 Dify 需要的其他服务,所以不用先准备数据库。你需要装有 Docker Compose 的 Docker、Git 和 OpenSSL,在 macOS 上还要给 Docker Desktop 的虚拟机至少 2 个虚拟 CPU 和 8 GiB 内存。在 Windows 上,用带 WSL 2 的 Docker Desktop,并把源代码放在 Linux 文件系统里。刚接触 Docker 的话,n8n 自托管那一课讲了去哪里下载。
docker compose version
git clone --branch <version> --depth 1 https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
openssl rand -hex 32
# paste the output into .env as DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN
docker compose up -d
docker compose ps --all- 运行
docker compose version,确认版本是 2.35.0 或更高。 - 到 Dify 发布页挑一个标签。用
git clone --branch,后面接这个标签、--depth 1和仓库地址来克隆,再进入dify/docker目录。 - 执行
cp .env.example .env,复制配置模板。 - 用
openssl rand -hex 32生成一个令牌,写进.env里的DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN。COMPOSE_PROFILES保持默认值。 - 执行
docker compose up -d启动服务,再运行docker compose ps --all。长期运行的服务应该显示 Up 或 healthy。一次性的init_permissions任务完成后显示 Exited (0),这是正常的。 - 打开
http://localhost/install,创建管理员账号,再到http://localhost登录。80 端口被占用时,把docker/.env里的EXPOSE_NGINX_PORT改成别的端口。
在别人能访问这个安装之前,要配置 HTTPS,并把 docker/.env 里自带的开发用凭据换掉。这包括数据库和 Redis 的密码、代码沙箱的密钥、Weaviate 的密钥、插件守护进程的密钥,以及智能体的令牌。改过 .env 之后要运行 docker compose up -d,因为 docker compose restart 会沿用旧的环境变量。
搭一个聊天机器人
先接入一个模型。在“Integrations”>“Model Provider”里安装一个提供商,比如 OpenAI,点它卡片上的“Add API Key”,填入密钥。在 Cloud 上,提供商装好后,Sandbox 额度就能覆盖支持的模型,不需要密钥。然后点右上角的“Default Models”,设置“System Reasoning Model”,没有自选模型的节点都会用它。默认模型为空时,依赖它的功能就无法使用。
下面的聊天机器人是文档自己的入门例子,文档把它分成三步,各用时 2、6 和 3 分钟。它从问题里找出国家名,回答问题,再加上一条由 Code 节点查出来的趣闻。这是它的 LLM 节点的系统提示词,抄自简单聊天机器人页面。
The user will ask a question about a country. The question is {{sys.query}}
Tasks:
1. Identify the country mentioned.
2. Rephrase the question clearly.
3. Answer the question using general knowledge.
Respond in the following JSON format:
{
"country": "<country name>",
"question": "<rephrased question>",
"answer": "<direct answer to the question>"
}- 按教程的写法,依次点“Studio”>“Workflow”>“Create from Blank”>“Orchestrate”>“New Chatflow”>“Create”。
- 用“Add Node”添加一个 LLM 节点,连到开始节点。选一个默认模型,粘贴上面的提示词。在输入框里输入
{或/就能选变量。 - 在“Output Variables”下把“Structured”打开,点“Configure”,选“Import from JSON”。粘贴一个模式,把
country、question和answer的类型都设成 string。有了结构化输出,下一个节点才能单独读到country。 - LLM 节点后面加一个 Code 节点。把一个输入变量改名为
country,设成structured_output>country。粘贴下一节的 Python 代码,并把输出变量result改名为fun_fact。 - 加一个 Answer 节点,写三行:
Q: {{ structured_output.question }}、A: {{ structured_output.answer }}和Fun Fact: {{ fun_fact }}。 - 点“Preview”,问教程里的问题,比如“What is the capital of France?”或者“Describe the culture in Italy”。

趣闻背后的函数
Code 节点在沙箱里运行 Python 或 JavaScript。函数接收你声明的输入变量,必须返回一个字典,字典的键就是你声明的输出变量,这里是 fun_fact。字典里的三个国家是教程的示例数据。遇到其他国家,函数返回以“No fun fact available for”开头的备用句子。
def main(country: str) -> dict:
country_name = country.lower()
fun_facts = {
"japan": "Japan has more than 5 million vending machines.",
"france": "France is the most visited country in the world.",
"italy": "Italy has more UNESCO World Heritage sites than any other country."
}
fun_fact = fun_facts.get(country_name, f"No fun fact available for {country.title()}.")
return {"fun_fact": fun_fact}Dify 更新很快,要对上你的版本
为旧版本写的教程,可能出现已经改过的界面。Dify 在 GitHub 上发布版本,标签像 1.19.0 这样,这一版发布于 2026 年 11 月 4 日。下面这些版本改动了本课程涉及的部分。
已有的自托管安装要升级时,Docker Compose 页面说要先读目标版本的升级指南,并保留你自己的 .env。
1.9.0
推出知识管线,以及基于队列的图执行引擎,用来运行工作流。
1.10.0
加入触发器,可以按计划、Webhook 或集成事件启动工作流。
1.12.0
推出摘要索引,把 AI 写的块摘要作为一层检索。
1.13.0
加入 Human Input 节点,让工作流暂停,由人来审阅或修改。
1.14.0-rc1
一个候选版本带来了有沙箱的 Agent 和它的技能。
1.18.0
加入可迁移的 .ifpkg 应用包,以及需要手动开启的 Agent 知识库。
来源:GitHub 上的 Dify 发布页 (2026年11月6日 查阅)
常见错误
- 没有设置沙箱令牌就启动。智能体后端和它的本地沙箱需要
docker/.env里的DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN,缺了它这两个服务会不停重启。 - 把
init_permissions显示的 Exited (0) 当成失败。它是一次性任务,负责准备存储权限。 - 改了
.env之后运行docker compose restart。restart 会沿用容器原来的环境变量,应该用docker compose up -d。 - 服务器在别处,却打开
localhost。远程部署要用服务器的 IP 地址或域名。 - 在别人能访问的机器上,沿用自带的开发用密码。
- 还没接入模型提供商就开始搭应用,LLM 节点没有可调用的模型。
自己试一试
- 问机器人一个字典里没有的国家,看它返回的备用句子。
- 在 Code 节点的字典里加第四个国家,再预览一次。
- 换掉 LLM 节点的模型,或者调它的 Temperature,取值从 0 到 1,0 的回复最稳定,1 的回复变化最多,然后对同一个问题比较两次回答。
下一课
第 2 课搭一个有分支、有变量的工作流,并讲怎样调试一次运行。想先看看别的构建智能体的工具,比如 n8n、Zapier 和 Make,可以读最好的 AI 智能体构建工具。
自测一下
哪条命令能确认你的 Docker Compose 版本够新,可以安装 Dify?
查看答案
B. docker compose version Docker Compose 页面让你先运行 docker compose version,并要求版本是 2.35.0 或更高。
执行 docker compose up -d 之后,init_permissions 任务显示 Exited (0),这说明什么?
查看答案
C. 一次性的存储设置任务完成了,属于正常现象 文档把 init_permissions 称为准备存储权限的一次性任务,并说它完成后显示 Exited (0)。
LICENSE 文件说一个租户对应一个工作区。它是在哪个条件下给出这个定义的?
查看答案
A. 多租户条件 LICENSE 文件把这个定义放在多租户条件下:未经 Dify 书面授权,不能用源代码运行多租户环境。某种具体的搭法算不算,要问 LangGenius。
在 Dify Cloud 上,新账号还没添加自己的 API 密钥时,靠什么调用支持的模型?
查看答案
C. 一次性发放的 Sandbox AI 额度 新的 Cloud 账号从 Sandbox 套餐开始,带 200 个一次性的 AI 额度,提供商装好后就能用来调用支持的模型。
常见问题
Dify 是什么?
Dify 是 LangGenius 开源的工具,让你不用自己写后端,就能把模型接到聊天机器人、工作流或智能体背后。你在可视化的构建器 Studio 里设计应用,做好的每个应用都有自己的 API。
Dify 免费吗,是开源的吗?
你可以阅读并自托管这份代码,许可证允许商用,直到两个条件之一成立。Dify Cloud 是单独的产品,有自己的套餐,新账号从 Sandbox 套餐开始。
用 Dify 需要会写代码吗?
大部分情况下不需要。文档把工作描述成拖动、连接和配置节点,需要时还有 Python 或 JavaScript 的 Code 节点可以用。
Dify 和 n8n 有什么区别?
Dify 围绕 LLM 应用来做:模型提供商、知识库、智能体和发布。n8n 把很多应用和服务连成自动化流程。Dify 有 HTTP Request 节点,每个应用也有 API,n8n 有 Webhook,所以两边都能调用对方。
Dify 能用哪些 AI 模型?
你接入哪家提供商,就能用哪家的模型。README 点名了几十家推理提供商,也接受任何兼容 OpenAI API 的模型。在“Integrations”>“Model Provider”里,用 API 密钥添加提供商。
资料来源
- Dify on GitHub: README https://github.com/langgenius/dify/blob/main/README.md
- Dify on GitHub: LICENSE https://github.com/langgenius/dify/blob/main/LICENSE
- Dify Docs: Deploy Dify with Docker Compose https://github.com/langgenius/dify-docs/blob/main/en/self-host/deploy/quick-start/docker-compose.mdx
- Dify Docs: Deploy Dify https://github.com/langgenius/dify-docs/blob/main/en/self-host/deploy/overview.mdx
- Dify Docs: 30-Minute Quick Start https://github.com/langgenius/dify-docs/blob/main/en/quick-start.mdx
- Dify Docs: Simple Chatbot https://github.com/langgenius/dify-docs/blob/main/en/learn/tutorials/simple-chatbot.mdx
- Dify Docs: Key Concepts https://github.com/langgenius/dify-docs/blob/main/en/learn/key-concepts.mdx
- Dify Docs: Workflow & Chatflow https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/build/workflow-chatflow.mdx
- Dify Docs: LLM node https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/nodes/llm.mdx
- Dify Docs: Code node https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/nodes/code.mdx
- Dify Docs: New Agent overview https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/build/new-agent/overview.mdx
- Dify Docs: Build a new Agent https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/build/new-agent/build.mdx
- Dify Docs: Model Providers https://github.com/langgenius/dify-docs/blob/main/en/self-host/use-dify/workspace/model-providers.mdx
- Dify releases on GitHub https://github.com/langgenius/dify/releases
- Dify on YouTube: Dify Quickstart Guide: Build Your First AI Workflow https://www.youtube.com/watch?v=dJ34OU_JY7Y
