Dify 从入门到进阶:低代码构建 Agent、RAG 和工作流应用
Dify 从入门到进阶:低代码构建 Agent、RAG 和工作流应用
Dify 是一个面向 AI 原生应用开发的平台,提供模型接入、Prompt 编排、知识库、RAG、工作流、Agent、工具调用、应用发布和观测等能力。
如果你想快速搭建企业知识库问答、客服助手、内部 Copilot、流程自动化助手,Dify 可以帮助你用较少代码完成原型和初步生产应用。
Dify 解决什么问题
从零开发 AI 应用,需要处理很多基础设施:
- 模型供应商接入。
- Prompt 管理。
- 对话状态。
- 文档上传和切分。
- Embedding 和向量库。
- RAG 检索。
- 工具调用。
- 工作流编排。
- API 发布。
- 日志和调试。
Dify 把这些能力做成平台。开发者可以通过可视化界面配置应用,也可以通过 API 集成到自己的系统中。
Dify 适合什么场景
适合:
- 快速验证 AI 应用想法。
- 企业知识库问答。
- 客服问答。
- 文档总结和内容生成。
- 低代码工作流。
- 内部工具型 Agent。
- 需要接入多模型供应商的项目。
不适合:
- 极度定制化的复杂后端逻辑。
- 对每一步执行都需要完全自研控制的系统。
- 高风险操作没有后端权限系统兜底的场景。
- 只需要一个简单模型 API 调用的极小项目。
核心概念
Dify 常见核心模块:
- 应用:最终对用户提供能力的 AI 应用。
- 模型供应商:OpenAI、Anthropic、本地模型等。
- Prompt:模型指令和上下文模板。
- 知识库:上传文档并构建检索索引。
- Workflow:用节点编排流程。
- Agent:让模型根据任务选择工具和步骤。
- Tool:外部 API、搜索、数据库等能力。
- API Access:把应用作为接口提供给业务系统。
- 日志:查看模型输入输出、检索结果和调用轨迹。
理解这些模块之间的关系,是用好 Dify 的基础。
应用类型
Dify 中常见应用形态包括:
- 聊天助手。
- 文本生成应用。
- Agent 应用。
- Workflow 应用。
聊天助手适合多轮对话和知识库问答。
文本生成适合固定输入生成固定输出,例如生成标题、摘要、邮件、报告。
Workflow 适合步骤明确的流程,例如“提取字段 -> 查询接口 -> 生成结果”。
Agent 适合步骤不固定、需要工具选择的场景。
初学建议先从聊天助手和知识库问答开始,再学习 Workflow,最后再做 Agent。
模型接入
使用 Dify 的第一步通常是配置模型供应商。
你需要准备:
- 模型 API Key。
- 模型名称。
- Embedding 模型。
- rerank 模型。
- 调用额度和限流策略。
模型分工:
LLM:负责理解、推理和生成
Embedding:负责文档和问题向量化
Rerank:负责检索结果重排序不要把所有能力都理解成“聊天模型”。RAG 应用至少需要 LLM 和 Embedding。
知识库与 RAG
Dify 的知识库用于上传文档并构建检索能力。
常见流程:
- 创建知识库。
- 上传 PDF、Markdown、Word、文本等文档。
- 选择切分方式。
- 选择 Embedding 模型。
- 构建索引。
- 在应用中关联知识库。
- 用户提问时检索相关片段。
- 模型基于片段回答。
使用知识库时要关注:
- 文档质量。
- chunk 大小。
- chunk overlap。
- 文档标题和来源。
- 权限隔离。
- 文档更新策略。
- 检索命中率。
知识库不是上传文件就结束。高质量 RAG 需要持续调试。
Prompt 设计
知识库问答 Prompt 可以这样设计:
你是公司内部知识库助手。
请只根据检索到的知识回答用户问题。
规则:
1. 如果知识库没有相关内容,请回答“根据现有资料无法确认”。
2. 不要编造政策、链接、日期或数字。
3. 回答要简洁,必要时分点说明。
4. 最后列出引用来源。Prompt 要明确:
- 模型角色。
- 资料边界。
- 不知道时怎么处理。
- 输出格式。
- 是否要引用。
Workflow
Workflow 是 Dify 很重要的能力。它适合确定性流程。
例如“合同风险摘要”:
上传合同
-> 文本提取
-> 条款分类
-> 风险识别
-> 生成摘要
-> 输出报告常见节点:
- 开始节点
- LLM 节点
- 知识检索节点
- 条件分支
- HTTP 请求
- 代码节点
- 模板转换
- 结束节点
Workflow 的优势是可控、可视化、容易排错。流程明确的业务优先用 Workflow,而不是 Agent。
Agent
Agent 允许模型根据任务选择工具和步骤。
例如“帮我查订单并判断是否需要创建工单”:
工具:
- 查询订单状态
- 查询售后政策
- 创建工单
Agent 可能执行:
- 调用订单查询工具。
- 根据状态检索售后政策。
- 判断是否需要人工处理。
- 创建工单前询问用户确认。
Agent 使用时要设置:
- 工具白名单。
- 最大执行步数。
- 超时时间。
- 高风险操作确认。
- 日志审计。
不要把生产系统的写权限直接交给 Agent。
工具调用
Dify 可以接入外部工具,例如 HTTP API。
设计工具时要注意:
- 名称清晰。
- 描述明确。
- 参数 schema 精确。
- 返回值简洁。
- 后端做权限校验。
- 错误信息可理解。
工具示例:
get_order_status(order_id)返回:
{
"order_id": "1001",
"paid": true,
"shipping_status": "not_shipped",
"reason": "库存不足"
}不要返回上百个数据库字段,模型只需要决策所需信息。
发布与集成
Dify 应用可以通过页面或 API 方式提供能力。
常见集成:
- 嵌入网站聊天窗口。
- 接入企业 IM。
- 后端通过 API 调用 Dify 应用。
- 内部系统调用 Workflow。
生产集成要关注:
- API Key 管理。
- 用户身份透传。
- 权限过滤。
- 日志脱敏。
- 请求超时。
- 错误降级。
- 调用成本。
评估与调试
Dify 提供日志和调试能力,但你仍然需要自己的评估集。
评估知识库问答:
- 检索是否命中文档。
- 答案是否忠实于资料。
- 是否引用正确。
- 无答案时是否拒答。
- 是否出现幻觉。
评估 Agent:
- 是否选择正确工具。
- 参数是否正确。
- 是否遵守确认规则。
- 是否陷入循环。
- 最终结果是否可用。
不要只看单次演示效果。AI 应用需要用真实问题持续测试。
从入门到进阶路线
- 创建聊天助手。
- 配置模型供应商。
- 写基础 Prompt。
- 创建知识库。
- 做知识库问答。
- 调整文档切分和检索参数。
- 增加引用和拒答规则。
- 创建 Workflow。
- 接入外部 HTTP 工具。
- 创建受控 Agent。
- 发布 API 给业务系统。
- 建立评估集和日志分析。
生产 Checklist
- 模型 API Key 不暴露给前端。
- 知识库按权限隔离。
- Prompt 明确拒答规则。
- 工具调用由后端做权限校验。
- 高风险操作需要用户确认。
- 设置最大执行步数和超时。
- 记录检索、模型调用和工具调用日志。
- 建立测试问题集。
- 监控 token 成本和延迟。
- 准备降级方案。
参考资料
总结
Dify 的价值是把 AI 应用常见能力平台化:模型、Prompt、知识库、RAG、Workflow、Agent、工具调用和发布集成。
入门阶段用它快速搭建知识库问答。进阶阶段要掌握 Workflow、工具调用、Agent 和评估。生产阶段必须补齐权限、日志、成本、超时、确认和安全治理。Dify 能加快开发,但不能替代你的业务边界和工程治理。
