两小时快速部署Dify:从零构建AI智能体工作流实战指南

📅 发布时间:2026/7/10 4:38:39
两小时快速部署Dify:从零构建AI智能体工作流实战指南 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度在实际 AI 应用开发中从构思一个智能体Agent到将其部署为一个稳定、可用的服务中间往往横亘着复杂的工程挑战。你需要处理提示词Prompt的编写与迭代、多个模型或工具的编排、知识库的检索增强、以及最终 API 或界面的交付。Dify 作为一个开源的 LLM 应用开发平台其核心价值在于将这些环节标准化、可视化让开发者能聚焦于业务逻辑而非底层设施。对于希望快速入门 AI Agent 开发的工程师来说Dify 提供了一个从 Prompt 工程到企业级工作流搭建的低门槛路径。本文将带你从零开始在约两小时内完成 Dify 的本地部署并基于其核心概念构建一个具备知识库检索和条件判断能力的智能工作流。你会理解 Dify 中应用、工作流、Agent、知识库等关键组件的定义与关系掌握通过可视化画布编排复杂逻辑的方法并最终获得一个可独立运行、具备扩展潜力的 AI 应用原型。无论你是想验证一个 AI 产品想法还是希望为现有业务系统添加智能对话能力这个过程都将为你提供一个清晰的实践框架。1. 理解 Dify 的核心概念与架构在动手部署和编码之前必须先厘清 Dify 平台中的几个核心概念。这能帮助你理解后续每一步操作的目的避免在配置时感到困惑。1.1 应用、工作流与 Agent三种构建模式Dify 允许你以三种模式构建 AI 应用它们对应不同的复杂度和灵活性。应用模式这是最直接的模式类似于一个加强版的 ChatGPT 聊天界面。你主要配置系统提示词Prompt、选择模型、并可能连接一个知识库。它适用于简单的问答、聊天机器人等场景开发速度最快但定制化能力有限。工作流模式这是 Dify 的核心优势所在。它提供了一个可视化画布让你可以通过拖拽节点的方式将 LLM 调用、代码执行、条件判断、知识库检索、HTTP 请求等不同能力像搭积木一样组合起来。工作流模式支持复杂的、多步骤的业务逻辑例如先检索知识库再根据检索结果调用不同的工具或模型进行加工最后格式化输出。本文的实战部分将重点围绕工作流展开。Agent 模式在 Dify 的语境下Agent 特指一种具备“思考-行动”循环能力的智能体。它会根据用户目标自动规划步骤、选择工具如搜索、计算、API调用并执行直到达成目标或无法继续。这比普通的工作流更智能但配置也相对复杂需要对工具进行良好的定义。对于初学者从工作流模式入手是最佳选择。它既保留了足够的灵活性来构建复杂功能又通过可视化降低了编排逻辑的认知负担。1.2 关键组件模型、提示词、工具与知识库无论哪种模式都离不开以下几个基础组件模型配置Dify 本身不提供模型而是作为中间层连接 OpenAI、Anthropic、国内各大模型厂商或本地部署的模型如通过 Ollama、vLLM。你需要在 Dify 中配置这些模型的 API 密钥和端点。提示词工程这是 LLM 应用的“灵魂”。Dify 提供了强大的提示词编辑器支持变量插值如{{input}}、上下文引用并且在工作流中上一个节点的输出可以作为下一个节点提示词的变量。良好的提示词设计直接决定应用的效果。工具工具是扩展 LLM 能力的函数例如获取天气、执行计算、查询数据库等。Dify 支持预置工具如联网搜索和自定义工具通过 Python 代码或 HTTP 接口定义。知识库Dify 可以创建和管理知识库通过上传文本、PDF、Word 等文档并利用嵌入模型将其向量化存储。在应用或工作流中可以接入知识库进行检索增强生成RAG让模型基于你提供的专有资料回答问题。理解了这些概念我们就能明白部署 Dify 后要做的第一件事配置一个可用的模型作为所有智能能力的“大脑”。2. 环境准备与 Dify 本地部署我们将采用 Docker Compose 的方式进行部署这是官方推荐且最便捷的方式能一次性启动 Dify 所需的所有服务Web 前端、后端 API、数据库等。2.1 系统与环境要求确保你的开发环境满足以下要求操作系统Linux (Ubuntu 20.04 / CentOS 7), macOS, 或 Windows 10/11 (需安装 WSL 2)。Docker版本 20.10.0 或更高。可通过docker --version命令检查。Docker Compose版本 v2.0.0 或更高。可通过docker compose version检查注意是compose不是docker-compose。硬件建议至少 4GB 可用内存。如果计划运行本地嵌入模型或 LLM需要更多资源。网络能够访问 Docker Hub 和所需的模型 API如 OpenAI。注意如果你在 Windows 上操作请务必先安装并启用 WSL 2然后在 WSL 2 的 Linux 发行版如 Ubuntu中执行后续命令以获得最佳兼容性。2.2. 通过 Docker Compose 一键部署获取部署文件在终端中创建一个专门目录并下载官方提供的docker-compose.yaml文件。mkdir dify cd dify curl -O https://raw.githubusercontent.com/langgenius/dify/main/docker/docker-compose.yaml这个文件定义了 Dify 服务api和web以及其依赖的 PostgreSQL 和 Redis。启动服务执行以下命令Docker 会自动拉取镜像并启动所有容器。docker compose up -d首次运行会下载镜像需要一些时间。-d参数表示在后台运行。验证部署服务启动后可以通过以下命令查看容器状态。docker compose ps如果所有服务状态均为running则部署成功。默认情况下Dify 的 Web 界面运行在http://localhost:3000后端 API 运行在http://localhost:5001。初始访问打开浏览器访问http://localhost:3000。你会看到初始化页面需要设置管理员账号和密码。完成设置后即可登录进入 Dify 控制台。2.3. 基础配置连接你的 LLM登录后首要任务是为 Dify 配置一个“大脑”。我们以配置 OpenAI 的 GPT 模型为例你也可以选择配置 Azure OpenAI、 Anthropic Claude 或国内其他模型。在控制台左侧导航栏点击“设置”-“模型供应商”。点击“添加模型供应商”选择“OpenAI”。在配置页面你需要填写名称自定义如 “My-OpenAI”。API 密钥你的 OpenAI API Key。API 基础 URL通常使用默认的https://api.openai.com/v1。如果你使用第三方代理需要修改此处。配置完成后点击“保存”。然后点击“添加模型”选择你拥有的模型如gpt-4o或gpt-3.5-turbo并为其命名如 “GPT-4o”。最后进入“设置” - “默认模型”将你刚添加的模型设置为对话、文本生成等场景的默认模型。至此你的 Dify 平台已经就绪并拥有了调用 LLM 的能力。接下来我们将进入核心环节——构建第一个工作流。3. 构建第一个 Dify 工作流智能客服助手我们将构建一个模拟的“智能客服助手”工作流。它的功能是用户输入一个产品相关问题系统先从一个模拟的“产品知识库”中检索相关信息然后结合检索到的内容让 LLM 生成一个友好且专业的回答。3.1. 创建工作流与应用在 Dify 控制台首页点击“创建工作流”。为工作流命名例如 “Smart-Customer-Support”。点击进入后你会看到一个空白的画布。左侧是节点工具箱右侧是画布和配置面板。3.2. 设计工作流节点与连接我们的工作流逻辑很简单开始-知识库检索-LLM 处理-结束。添加“开始”节点画布上已有一个“开始”节点。选中它在右侧配置面板的“变量”部分点击“添加”。我们添加一个名为user_question类型为“文本”的变量这代表用户输入的问题。添加“知识库检索”节点从左侧工具箱的“检索”分类中拖拽“知识库检索”节点到画布。将“开始”节点右侧的输出点拖拽连接到“知识库检索”节点的输入点。选中“知识库检索”节点在右侧配置知识库由于我们是演示可以先不连接真实知识库。这里我们使用一个“模拟”方式。你可以创建一个简单的知识库在左侧导航进入“知识库”创建并上传一个包含产品信息的 TXT 文件。然后在配置中选择它。查询内容这里要填入检索的关键词。我们输入{{user_question}}这样就会用用户的问题去检索。检索模式选择“向量化检索”。返回条数设置为 3。添加“LLM”节点从工具箱“AI 模型”分类中拖拽“LLM”节点到画布。将“知识库检索”节点的输出点连接到“LLM”节点的输入点。选中“LLM”节点在右侧配置模型选择你之前配置的模型如 “GPT-4o”。上下文勾选“添加上下文”这样 LLM 能记住对话历史本例简单演示可不勾。提示词这是核心。我们需要编写一个系统提示词来指导模型如何利用检索结果。你是一个专业的客服助手。请根据以下提供的产品知识来回答用户的问题。 如果知识库内容不足以回答问题请如实告知用户你不知道并建议其通过其他渠道咨询。 【相关产品知识】 {{#contexts}} {{content}} {{/contexts}} 【用户问题】 {{user_question}} 请用中文给出专业、清晰、友好的回答。提示词变量说明{{#contexts}} {{content}} {{/contexts}}这是一个循环语法会自动将“知识库检索”节点返回的多条内容拼接起来插入到这里。{{user_question}}引用了开始节点定义的变量。添加“结束”节点从工具箱“基础”分类中拖拽“结束”节点到画布。将“LLM”节点的输出点连接到“结束”节点的输入点。选中“结束”节点在右侧配置输出变量。我们将 LLM 的回答输出出来。添加一个变量例如assistant_answer其值设置为{{#llm}} {{response}} {{/llm}}。这里的{{#llm}}引用了上一个 LLM 节点的输出。至此一个简单但完整的工作流就搭建完成了。画布上的连线清晰地展示了数据流向用户问题 - 知识库检索 - 生成回答 - 输出结果。3.3. 调试与运行工作流在发布前务必使用调试功能验证工作流是否正确。点击画布右上角的“调试”按钮。在打开的调试面板中为user_question输入一个测试问题例如“你们的产品支持哪些支付方式”点击“运行”。下方会显示执行过程。你可以展开每个节点查看其输入和输出。例如在“知识库检索”节点你能看到它实际检索到的文本片段在“LLM”节点你能看到发送给模型的完整提示词和模型返回的原始响应。检查最终输出assistant_answer是否符合预期。如果检索的知识库中有支付方式的信息LLM 应该能据此生成回答。调试通过后点击右上角“发布”。发布后这个工作流就成为一个可用的 AI 应用。3.4. 访问与集成应用发布后你有多种方式使用这个工作流Web 界面在应用详情页Dify 会提供一个类似 ChatGPT 的聊天窗口你可以直接在那里与你的智能客服对话。API 集成在“访问方式”页面Dify 提供了该应用的 API 地址和密钥。你可以用任何 HTTP 客户端如 curl、Postman或在你自己的前端、后端代码中调用它。# 示例 curl 命令 curl -X POST http://localhost:5001/v1/workflows/run \ -H Authorization: Bearer your-app-api-key \ -H Content-Type: application/json \ -d { inputs: { user_question: 产品的退货政策是什么 } }嵌入到网站Dify 支持生成嵌入代码你可以将其复制到你的网站 HTML 中即可添加一个聊天机器人小部件。4. 进阶为工作流添加条件判断与外部工具基础工作流只能线性执行。现实中的业务逻辑往往需要分支判断。接下来我们升级工作流让它能根据用户意图执行不同操作。新需求用户可能询问产品信息走知识库检索也可能想计算订单折扣需要调用计算工具。我们需要让工作流自动判断。4.1. 使用“分类”节点进行意图识别在之前的工作流中删除“开始”到“知识库检索”的连线。从工具箱“AI 模型”分类中拖拽一个“分类”节点到画布并连接在“开始”节点之后。配置“分类”节点模型选择一个模型。分类选项添加两个选项并为其定义名称和描述。选项1query_product 描述“用户想查询产品功能、价格、政策等信息。”选项2calculate_discount 描述“用户提供了订单金额想计算折扣后的价格。”提示词编写提示词让模型根据用户问题分类。请判断用户问题的意图。 用户问题{{user_question}} 请只输出分类选项的名称不要输出任何其他文字。4.2. 创建分支与工具调用添加“条件判断”节点从工具箱“逻辑”分类中拖拽“条件判断”节点到画布连接在“分类”节点之后。配置条件我们需要根据分类结果来分支。点击“添加条件”。变量选择{{#classifier}} {{result}} {{/classifier}}这引用了分类节点的输出。操作符选择“等于”。值输入query_product。这个条件为真时走“查询产品”分支。构建“查询产品”分支将“条件判断”节点的“是”输出点连接到之前已有的“知识库检索”节点。“知识库检索”节点之后继续连接“LLM”节点和“结束”节点。这部分逻辑与之前相同。构建“计算折扣”分支从工具箱“工具”分类中拖拽一个“代码”节点到画布。将“条件判断”节点的“否”输出点连接到这个“代码”节点。配置“代码”节点语言选择 Python。代码编写一个简单的折扣计算函数。def main(user_question: str) - str: # 这是一个简单的示例实际应从问题中解析金额和折扣率 # 假设问题格式为“计算100元打8折后的价格” import re amount_match re.search(r(\d(\.\d)?)元, user_question) discount_match re.search(r打(\d(\.\d)?)折, user_question) if amount_match and discount_match: amount float(amount_match.group(1)) discount float(discount_match.group(1)) / 10.0 # 八折转为0.8 final_price amount * discount return f折扣后价格为{final_price:.2f}元 else: return 无法从问题中解析出金额和折扣信息请确认格式如‘计算100元打8折后的价格’。输出将函数返回值命名为calculation_result。然后将这个“代码”节点的输出连接到一个新的“LLM”节点让 LLM 来组织最终的回答。提示词可以写为“根据计算结果组织一段友好的回复给用户。计算结果{{calculation_result}}”。最后连接到“结束”节点。4.3. 合并输出与调试现在你有两个分支最终都汇向了“结束”节点。你需要确保“结束”节点能接收来自不同分支的变量。在“结束”节点的输出配置中你可以使用条件逻辑或简单的变量引用。一个简单的方法是在两个分支最后的 LLM 节点都将输出变量命名为同一个例如final_answer。这样无论走哪条分支“结束”节点都能输出final_answer。再次使用调试功能分别输入“产品保修期多久”和“计算200元打9折多少钱”观察工作流是否正确地走了不同的分支并给出了相应回答。5. 常见问题排查与优化实践在实际使用 Dify 构建和运行工作流时你可能会遇到一些典型问题。以下是一些常见问题的排查思路和优化建议。5.1. 部署与连接问题问题现象可能原因检查方式处理建议访问localhost:3000失败Docker 服务未启动或端口被占用docker compose ps查看容器状态netstat -tuln | grep 3000查看端口占用确保容器运行修改docker-compose.yaml中的端口映射如3000:3000改为8080:3000。应用无法调用模型报 API 错误模型供应商配置错误、API 密钥无效或额度不足、网络不通在 Dify 控制台“日志与异常”中查看详细错误手动用 curl 测试模型 API。检查 API 密钥和端点 URL 是否正确确认账户余额或配额检查服务器网络是否能访问目标 API 地址。工作流调试时某个节点报错节点配置错误、输入变量格式不对、依赖服务如知识库未就绪点击调试面板中报错的节点查看其输入数据和错误信息。检查节点配置表单特别是变量引用语法如{{variable}}是否正确确保上游节点输出了下游节点需要的变量。5.2. 工作流设计与调试问题变量引用错误这是最常见的问题。Dify 使用{{}}语法引用变量。你必须确保变量名拼写正确。变量在其作用域内例如在“条件判断”节点的“否”分支中无法引用只在“是”分支中创建的变量。引用复杂节点输出时语法正确如{{#llm}} {{response}} {{/llm}}。知识库检索效果不佳如果 RAG 效果不好可以检查文档处理在知识库设置中调整文本分割器chunker的大小和重叠度。过大的块可能包含无关信息过小的块可能丢失上下文。优化检索查询不要直接将原始用户问题作为查询。可以在工作流中先加一个“LLM”节点将问题重写为更利于检索的关键词。尝试混合检索在“知识库检索”节点中可以开启“混合检索模式”结合向量检索和全文关键词检索可能提升召回率。提示词效果不稳定LLM 的输出不可控。结构化输出在提示词中明确要求输出格式例如“请用 JSON 格式输出包含answer和confidence两个字段。”提供示例在系统提示词中提供一两个输入输出的例子Few-Shot Learning能显著提升模型遵循指令的能力。迭代优化不要指望一次写好提示词。利用 Dify 的“对话”功能或工作流调试反复测试不同问法观察模型输出不断调整提示词。5.3. 生产环境考量当你准备将 Dify 应用用于真实业务时需要考虑以下几点配置外置与安全不要将 API 密钥等敏感信息硬编码。Dify 支持通过环境变量注入配置。在docker-compose.yaml中使用environment部分或外部.env文件来管理密钥。性能与监控超时设置在工作流中为“HTTP 请求”、“知识库检索”等可能耗时的节点设置合理的超时时间。限流在 Dify 的企业版中或通过前置的 API 网关如 Nginx对应用 API 进行限流防止滥用。日志收集确保 Dify 的日志控制台日志和数据库中的日志被收集到 ELK 或 Loki 等日志平台便于排查问题。高可用与备份对于生产环境考虑将 Docker Compose 部署迁移到 Kubernetes。定期备份 Dify 使用的 PostgreSQL 数据库。版本管理Dify 应用和工作流配置也需纳入版本控制。虽然 Dify 界面支持版本历史但重要的变更建议通过其导出/导入功能将应用配置保存为文件用 Git 进行管理。从 Prompt 工程到可视化工作流Dify 极大地降低了 AI 应用开发的门槛。两小时的入门足以让你搭建出一个具备核心逻辑的原型。然而构建一个真正鲁棒、高效的企业级应用还需要在提示词优化、知识库构建、错误处理、性能监控等方面持续投入。建议你将本文构建的工作流作为起点尝试接入真实的业务数据和 API在实践中深入理解每个节点的细节和潜力从而设计出更贴合业务需求的智能流程。 30款热门AI模型一站整合DeepSeek/GLM/Qwen 随心用限时 5 折。 点击领海量免费额度