Dify 是一款开源的大模型应用开发平台(LLMOps / Agent 开发框架),定位是“让团队用低代码方式把 LLM 变成可落地业务系统”。它介于“纯写 LangChain 代码”和“买封闭 SaaS 智能体”之间:既有可视化编排,又支持 API/SDK 深度定制,适合企业做 RAG 问答、工作流自动化、多工具调用 Agent、内部知识库助手。
一、核心概念
-
Application(应用):对话型、文本生成型、Chatflow / Workflow 三种主形态。
-
Model:接 OpenAI、Azure、通义、DeepSeek、Ollama、Gemini 等,统一抽象为 LLM Provider。
-
Prompt 模板:支持变量 {{input}}、对话角色、少样本示例。
-
Dataset(知识库):文档 → 切分 → Embedding → 向量库 → 检索 → 注入上下文,实现 RAG。
-
Tool(工具):Agent 可调用的外部能力(搜索、HTTP、数据库、代码执行、企业系统)。
-
Agent / Workflow:用节点把“模型推理 + 工具调用 + 条件分支 + 循环”串起来。
-
Memory:会话历史、用户上下文、窗口裁剪、摘要记忆。
-
Observability:Token 消耗、耗时、召回片段、工具调用链、调试日志。
二、工具类型
-
内置工具:网页搜索、计算器、当前时间、Wikipedia、SerpAPI 等。
-
HTTP / API 工具:配 URL + 鉴权头 + 入参映射,让 Agent 调你自己的订单/CRM/工单接口。
-
代码工具:跑 Python / Node 片段,做数据清洗、正则、格式转换。
-
数据库工具:查 PG / MySQL / ClickHouse,返回结构化结果给模型。
-
RAG 检索工具:把知识库当工具调用,先检索再回答。
-
文件工具:上传 PDF / Excel / 图片,做解析、摘要、表格抽取。
-
消息/协作工具:飞书、钉钉、企业微信、Slack、邮件。
-
自定义 Plugin:用 OpenAPI/Swagger 或函数描述注册成 Tool。
-
代码执行沙箱:高级版支持安全沙箱跑代码(类似 Gemini Code Execution)。
三、配置方法
-
部署:Docker Compose 一键起;生产用 k8s + 外部 PostgreSQL + Redis + 向量库(Weaviate / Qdrant / Milvus / pgvector)。
-
接模型:Settings → Model Provider → 填 API Key 或本地 Ollama 地址。
-
建知识库:上传文档 → 选分段策略(按标题/固定长度/语义切分)→ 选 Embedding 模型 → 索引。
-
建应用:选 Chatbot / Chatflow;写 System Prompt;挂 Dataset;开“知识库检索”。
-
配工具:Tools → 新建 HTTP Tool → 配 method/path/headers/params → 在 Agent 节点里授权可见。
-
Agent 模式:开“Function Calling / ReAct”,写工具选择提示词,设最大轮次防死循环。
-
发布:生成 Web App、嵌入 JS 片段、或通过 API Key 供前端/后端调用。
-
权限:多租户、成员角色、数据集可见范围、工具白名单。
四、工作原理
-
用户提问进入 Orchestrator。
-
若开 RAG:先向量检索相关片段,拼进 context。
-
若开 Agent:LLM 先“想”要用哪个工具,输出 tool_call。
-
Dify 执行工具(发 HTTP / 跑代码 / 查库),把结果回灌给模型。
-
模型根据观察结果再思考,直到能答或到达最大步数。
-
回答返回前端,同时记录 trace:用了哪段知识、调了哪个接口、花多少 token。
-
工作流模式则是 DAG 执行:开始 → 条件 → LLM → 工具 → 分支 → 结束,适合确定性强业务流程。
五、应用场景
-
企业知识助手:制度/合同/售后文档问答。
-
客服 Agent:接工单系统,查订单→退换货→生成话术。
-
运营提效:公众号选题、小红书文案、电商详情批量写。
-
数据 Agent:自然语言查数:“上月复购率低于 10% 的 SKU 有哪些”。
-
研发助手:读代码仓、生成单测、查日志、写 SQL。
-
销售助理:CRM 里自动写跟进、算报价、查库存。
-
内部流程:请假审批、合同初审、报表生成。
-
多智能体:一个管检索、一个管写、一个管校验,串成流水线。
六、最佳实践
-
知识库别堆垃圾:先清洗 PDF,按章节切分,元数据带“来源/时间/部门”。
-
工具别全开:Agent 只给当前业务必要工具,避免乱调接口。
-
用 Workflow 做确定流程,用 Agent 做开放任务;别把所有事都交给 ReAct。
-
加 Guardrails:敏感词、越权调用、SQL 只许 SELECT、HTTP 限域名。
-
限步数/限重试:防止模型“调工具 20 次还答不出”烧钱。
-
留 Human-in-the-loop:发邮件/改订单/删数据前人工确认。
-
评估闭环:用真实问答做回归集,看召回率、答错率、工具成功率。
-
模型分层:浅层分类用小模型,复杂推理用大模型,成本省几倍。
-
日志可追溯:每次回答能点开“它读了哪 3 段文档、调了哪 2 个接口”。
-
私有化优先:含合同/客户数据的场景别走公网模型,用 DeepSeek/Ollama 本地部署 + Dify 编排。
一句话:Dify = 开源版“智能体中间件”,把 LLM、知识库、API、数据库、工作流焊在一起,让企业用可视化方式造出“会查资料、会调系统、能干活”的 AI 员工。