资讯动态

Dify实战:从零搭建AI智能体工作流与知识库应用

发布时间:2026/9/16 10:15:23 来源:尧图企业网站定制
1. 项目概述与工具选型思路1.1 这个实战手册到底解决什么问题先说结论这册实战手册的目标很明确就是用Dify把“AI智能体工作流”这件事真正落地。很多人一听到“AI智能体”就以为是什么高深玩意其实拆开来看就是三件事让大模型会理解需求让系统能干具体活让整个流程能自动跑起来。Dify恰好就是把这三件事揉进同一个可视化的平台里不需要你从零写代码也不需要一个庞大的AI团队才能上手。我在实际项目里最常遇到的情况是业务部门提需求说“我想做个自动审单的机器人”但真做起来单是模型调用、知识库检索、工具API对接、条件分支这四层逻辑就能把人绕晕。Dify最大价值在于它把工作流抽象成“节点和连线”让我可以在一个画布上把业务逻辑全部可视化管理而且每个节点都能单独测试。这意味着业务同事也有机会参与讨论逻辑不再是一个黑盒丢给技术。这套手册适合三类人第一类是后端开发或全栈工程师想快速把LLM能力集成到现有系统第二类是产品经理和项目经理不需要会代码但必须懂AI应用的工作流设计逻辑第三类是运维和架构师想搞清楚Dify社区版的部署、多租户和资源占用边界。我会把这三类视角都照顾到尽量用大白话讲清楚背后的原理。1.2 为什么是Dify而不是其他方案市面上能搭建AI工作流的工具并不少除了Dify还有n8n、Coze、Flowable这类流程引擎甚至直接用Python写代码串流程。我的选型标准很简单一看是否擅长LLM编排二看部署可控性三看业务逻辑的表达成本。这三项综合下来Dify是当前最平衡的选项。先看n8n它定位是通用自动化更适合处理API之间的事件触发和数据流转英文社区生态好但对RAG、提示词管理、模型对话历史这些LLM专项能力的支持就比较弱。Coze上手快、插件丰富但云端托管为主数据隐私和定制化能力是硬伤一旦涉及私有化部署和深度改造就很麻烦。Flowable、Activiti这类本身就是传统BPM做审批流很强但让它们去理解自然语言、管理向量检索就非常别扭。我见过有人拿Flowable套LLM结果每个节点都要自己写服务去调模型维护成本直接翻倍。用Python手写工作流框架当然也行比如LangGraph这类编排库灵活度最高但代价是每一步都要自己造轮子会话管理、日志追踪、模型供应商切换、多租户隔离每一样都是时间成本。Dify社区版把这些能力做成了开箱即用的模块还能保持足够灵活的扩展点。尤其在我做过几个实际交付项目后我越来越确信当项目周期紧张、团队规模有限时选择一个成熟平台做底座往往比从零搭建框架更理性。这里放一张我经常用来和团队沟通的对比表方案上手门槛LLM能力私有化部署二次开发适用场景Dify社区版低强支持中等AI应用、RAG、工作流编排n8n中弱支持中等系统集成、自动化Coze低强不支持弱快速原型、C端应用Flowable/Activiti高无支持高传统审批流、BPMPython手写编排高强支持高研究探索、定制化项目一句话总结Dify最适合“想用LLM解决具体业务问题又不想被底层工程细节拖死”的团队。它不是一个万能框架但它在“AI应用开发”这个特定赛道上是目前性价比最高的选择。2. 环境准备与本地部署全流程2.1 部署前的环境要求我建议在动手部署前先花十分钟清点一下自己的环境别等到拉镜像拉了一半才发现机器配置不够。Dify的本地部署主要依赖Docker Compose所以你的机器上必须先装好Docker和docker-compose插件。这里有个很容易踩的坑Dify并不原生支持Windows直接跑如果你用的是Windows最好的做法是装一个WSL2环境然后在WSL2里面操作或者像我一样直接用一台Linux服务器来跑。硬件方面社区版的最低要求其实没那么吓人但如果你想真正玩得转我劝你还是别太抠门。Dify本身包含API服务、Worker服务、PostgreSQL、Redis、Weaviate或Qdrant向量数据库等多个容器加上大模型推理时的内存开销推荐至少4核8G起步磁盘预留50G以上。如果你想在上面挂本地模型比如Ollama或者Xinference那内存和显存还得再加。软件版本方面Docker和Docker Compose尽量保持较新版本老版本偶尔会有兼容问题。我前两天帮朋友排查过一次他在一台老机器上docker compose up报错最后发现是docker-compose版本太低不支持配置文件里的某些语法。所以最好先用docker --version和docker compose version确认一下。注意如果你的服务器在国内拉取Docker Hub镜像时经常会遇到超时或卡住这几乎是每个做本地部署的人都要面对的坑。后面第6章我会具体讲镜像加速配置。2.2 本地部署完整步骤部署步骤本身不复杂我用的是官方推荐的docker compose方式。第一步是获取代码包你可以直接从GitHub下载release包也可以git clone仓库。有朋友问过我下哪个版本好我建议别追最新版追得太紧选最新的稳定release版本。比如1.17.1这个版本我实测比较稳社区反馈也好。拿到代码包后进入docker目录里面有个.env.example文件这是所有配置的模板。你可以把它复制一份命名为.env然后按需修改cd dify/docker cp .env.example .env这一步是关键中的关键。很多新手上来不复制.env就直接docker compose up结果容器起来后发现各种配置不对因为默认配置都依赖这个环境变量文件。复制完.env之后你可以用编辑器打开看几项关键配置比如EXPOSE_NGINX_PORT是外部访问端口默认80SECRET_KEY是会话加密密钥如果留空系统会自动生成但生产环境我建议手动指定一个稳定的值否则每次重启密码会话都会失效。接下来就是启动整个服务栈docker compose up -d第一次启动会拉取大量镜像时间取决于网络状况。全部拉完后docker compose ps应该能看到api、worker、web、db、redis、sandbox等容器都是running状态。这时浏览器访问http://服务器IP:80就可以打开Dify控制台了。首次进入会让你设置管理员邮箱和密码然后就能登录使用。整个流程看起来就这几步但我必须提醒你别以为初始化完就万事大吉。紧接着你还要在控制台里配置模型供应商、创建应用、搭建知识库这些才是真正决定项目能不能跑起来的关键。2.3 1.17.1版本值得关注的新变化我用过的Dify版本不算少从老版本一路用上来1.17.1这个版本有几个变化值得特别说一下。首先是工作流节点的稳定性有了明显提升尤其是条件分支和迭代节点在复杂场景下的表现以前偶尔会出现节点输入输出映射错乱的情况这个版本基本没再遇到过。其次是知识库相关的体验优化。1.17.1对文档分段和检索策略做了调整实测下来召回效果比之前版本有可感知的提升尤其是在混合检索模式下关键词和向量检索的融合更合理了。对于做RAG应用的同学来说这算是个不小的利好。还有一个被我忽略但后来觉得真香的改动是环境变量和敏感信息的管理。新版本支持在控制台里管理部分密钥配置不用全跑到.env文件里去改多人协作时安全边界清晰了不少。如果你已经在用旧版本Dify我建议认真评估一次升级性能和工程化体验都值得。2.4 升级与Windows部署的实战经验升级Dify这件事操作本身不复杂但风险点不少。我自己的升级路径是这样的先备份数据库和.env配置文件这俩是最重要的资产。然后进入docker目录用git pull拉取最新代码。如果你是用release包部署的直接下载新包覆盖旧文件但注意不要把原来的.env给覆盖了。接着运行docker compose pull拉取新镜像最后docker compose up -d完成滚动更新。有Windows环境的朋友经常问dify-main解压后在docker文件夹里右键打开cmd输入cp .env.example是什么意思。其实这就是把示例配置复制成正式配置Windows的cmd里cp命令不一定管用我更推荐你用PowerShell的Copy-Item或者直接在资源管理器里把.env.example文件复制一份改名为.env。这个细节虽然小但真卡住过不少人。升级过程中最常碰到的问题是容器启动顺序混乱导致服务不可用。我的经验是启动后别急着访问页面先docker compose logs -f api观察一下等API服务打印出启动完成的日志再去访问。如果一直报数据库连接错误多半是PostgreSQL还没初始化完成等一两分钟再试。如果持续报错检查一下.env里的DB配置是否和之前一致。3. 工作流核心设计从配置到串联3.1 工作流的节点类型与定位Dify的工作流编辑体验很像在画一张流程图拖拖拽拽就能把逻辑串起来。但把节点拖进画布容易真正决定流程好坏的是你对每个节点的理解深度。我先说说最常用的几个节点类型以及它们在实际业务里的定位。开始节点是整个工作流的入口它定义了用户输入参数。比如你做一个人力资源简历筛选工作流开始节点里就要定义“岗位名称”“岗位要求”“候选人简历”这几个输入变量。LLM节点是工作流的大脑负责调用大模型处理语言任务输入输出都是结构化变量。知识检索节点用来从知识库里召回相关内容最典型的场景是把企业手册喂给模型让模型基于文档内容回答。条件分支节点是工作流的逻辑中枢相当于代码里的if-else。它可以根据前置节点的输出走不同的分支比如简历中技能匹配度大于80%走“进入面试”分支否则走“待定”分支。代码节点允许你写Python代码做自定义处理比如数据清洗、正则匹配灵活性很高。HTTP请求节点用来调用外部API比如接飞书云文档、调用商品系统接口。模板转换节点则用来拼接字符串或JSON结构常常用于拼接提示词或结构化输出。工具节点是Dify特色之一内置了部分常用工具也支持自定义OpenAPI Schema接入任意HTTP API。迭代节点适合对列表数据做循环处理比如批量解析十份简历并分别打分。很多人刚开始搭工作流的时候恨不得把所有逻辑都塞进一个LLM节点让模型“一口气搞定”结果提示词写成一坨输出不稳定还难排查。我的建议是复杂流程一定要拆每个节点只做一件事每个节点的输入输出都要清晰明确。这样每个环节都能单独测试出问题也知道去哪里看。3.2 实战案例拆解AI商品推荐智能体商品推荐是电商行业特别典型的一个AI智能体场景也是我这次要演示的核心案例。业务需求大概是这样的用户在对话框里输入一句话比如“帮我推荐一款适合油性皮肤、预算200元以内的男士洗面奶”系统要能理解需求、从商品库中检索匹配商品、按规则过滤、最后生成有说服力的推荐理由。这个任务看着简单但直接用单个LLM节点去回答会出两个问题第一模型幻觉它可能胡编乱造出一个根本不存在的商品第二推荐理由不透明用户问“你为什么推荐这款”系统答不上来。用工作流就能很好解决先让模型从用户话里抽取结构化条件再去真实商品知识库检索最后用规则过滤加上模型生成文案。这个流程我拆成六个节点开始节点接收用户原始输入LLM节点做意图识别和参数抽取输出一个JSON结构包含肤质、预算、品类三个字段知识检索节点按照品类去商品库检索候选商品代码节点写Python过滤逻辑把不符合预算或肤质的商品剔除第二个LLM节点根据过滤后的商品生成推荐文案结束节点返回结果。每一步都有清晰产出哪一步出了问题都能单独调试。尤其那两个LLM节点各自分工明确第一个是“聪明的理解者”只负责把话变成结构第二个是“懂行情的导购”只负责把数据变成话。这比让一个模型全程包办要稳定得多。3.3 知识库流水线搭建从文档到可检索的向量知识库流水线是Dify智能体的另一个大支点很多RAG应用的体验好坏七成取决于知识库的搭建质量。Dify里你可以创建多个知识库每个知识库里批量上传文档系统会自动进行分段、清洗、向量化然后存到向量数据库中。分段策略非常影响检索效果。我在做实战项目的时候最常踩的坑就是分段过大或过小。分段太大一段文本包含的内容太杂检索命中后带了一堆不相关内容给模型既浪费token又容易干扰回答分段太小语义被切碎检索时经常找不到完整上下文。正确的做法是根据文档类型决定分段长度一般技术文档我建议300到500字一段重叠区设在50字左右。分段时尽量保持段落自然边界不要一句话切成两半。检索策略方面Dify支持向量检索、全文检索和混合检索。向量检索适合语义匹配比如用户问“性价比高的相机”能匹配到“入门级微单”全文检索适合精确匹配比如商品编号、标准术语混合检索则是两者加权融合实际效果最好但对向量数据库有依赖。我通常默认开混合检索并把Rerank模型接上让重排环节把最相关的内容顶到前面。这里需要提醒一句知识库检索不是建完就完事它是一个需要持续迭代的模块。每当线上反馈“回答不准确”我第一件事都会查知识库是文档没覆盖到这个知识点还是分段切碎了上下文还是检索时被无关内容干扰。一次调好的知识库几乎是不存在的每次报警都是知识库迭代的契机。3.4 工具调用把外部系统接入智能体智能体如果只能聊天价值有限真正的价值在于能调用工具、操作外部系统。Dify里接外部工具最常用的方式就是OpenAPI Schema。你可以写一个JSON格式的API描述文件把接口的地址、参数、返回结构定义清楚Dify会自动生成一个工具节点在工作流里直接调用。我实际做过的最典型对接是把飞书云文档接进来。需求是让智能体在本地知识库里找不到答案的时候自动去公司飞书文档里检索然后把结果汇总回复用户。实现路径也不复杂先去飞书开放平台创建一个应用拿到App ID和App Secret然后配置事件订阅和文档权限最后在Dify里通过自定义OpenAPI Schema把飞书文档搜索接口包装成工具节点。这里有个很容易忽略的细节第三方平台的授权凭证获取。很多人第一次配置飞书都会卡在“访问凭证”这一步。飞书的接口凭证分为tenant_access_token和user_access_token前者是应用身份凭证适合读取公开或应用可见文档后者需要走OAuth授权流程才能读取用户私有文档。做企业内部知识检索我建议直接用tenant_access_token配合“应用可见范围”来限制能访问的文档空间这样权限模型更清晰也不用折腾用户授权回调。工具调用还有一个很实用的点可以把工具节点的返回结果作为条件分支的判断依据。例如查询订单系统之后如果返回状态是“已发货”就进入售后话术分支如果返回“待付款”就走催付话术分支。工具调用叠加条件分支能做出很多实用能力。4. 完整实操搭建一个人力资源简历筛选工作流4.1 需求拆解与流程设计第3章的案例偏场景化这里我完整走一遍简历筛选工作流从需求拆解到落地测试全套流程都演示出来。这个案例特别适合做人资或者企业内部工具的同学直接参考尤其那些每天要处理大量简历的HR。需求很直接业务部门经常同时开好多个岗位每个岗位都有几十上百份简历HR没时间逐一细读希望能有一个智能体帮忙做初筛。输入是一份岗位说明和一批简历输出是每个候选人的筛选结论包括匹配度评分、关键亮点和风险提示。我先把这个需求拆成三个环节理解岗位、分析简历、输出结论。理解岗位需要抽取岗位核心要求比如技能、年限、学历分析简历需要解析候选人的工作经历和项目经验输出结论需要按岗位要求逐条打分最后给一个录用建议。这三个环节对应工作流里的三组节点每一组都可以独立替换和优化。设计流程的时候我特别强调了一点不要试图用一个大模型节点把三个环节全包了。第一次设计时我就是把整个岗位描述和简历内容塞进一个LLM节点让它直接输出结论结果提示词写得非常长输出格式经常崩而且逻辑不透明。后来拆成三阶段每个阶段的Prompt短了一半稳定性提升非常明显。4.2 节点配置步骤与关键参数这套简历筛选工作流的完整节点链路是这样设计的第一个是开始节点。定义两个输入变量一个是“岗位要求”字符串一个是“简历文本”字符串。使用方式是在编排接口时传递也可以调试时手动填充样例。第二个是LLM节点命名为“岗位需求结构化”。系统提示词我这样写“你是资深HR招聘专家请从岗位描述中提取硬性要求输出JSON格式包含required_skills数组、min_experience_years、education_requirement字符串、responsibilities概述。”模型选的是Claude或其他长上下文模型温度设为0最大输出token设为2000。温度设为0很关键抽取结构化信息时我不希望模型有任何创造性发挥。第三个是LLM节点命名为“简历核心经历分析”。输入是用户上传的简历文本系统提示词要求模型提取候选人的技能列表、工作年限、最近三段工作经历、项目亮点和离职风险信号。同样输出JSON格式。第四个是代码节点命名为“匹配度计算”。这一步完全不用模型用Python做硬性条件判断。代码大致逻辑是将岗位必需技能集合与候选人技能集合做交集计算技能覆盖率再比较工作年限是否达标然后综合输出一个0到100的匹配分。这步的好处是硬性条件的判断标准完全可控不依赖模型发挥。第五个是LLM节点命名为“面试建议生成”。把前面结构化的岗位需求、候选人分析和匹配分一起作为输入让模型给出录用建议、面试重点考察方向、风险提示。第六个是结束节点。把所有输出变量整理成一个完整的数据结构返回包含match_score、match_reason、interview_suggestions等字段。4.3 测试与调试一次完整的调试记录配置好这六个节点之后真正的挑战才刚开始。我拿一份真实脱敏简历做测试岗位要求设定为“三年以上Java后端经验熟悉Spring Cloud有电商项目经验”。第一次跑下来出现了两个问题。第一个问题是“简历核心经历分析”节点的输出格式不稳定。虽然提示词里要求输出JSON但模型偶尔会在JSON前后加分析性的文字导致下游代码节点解析报错。解决方案是在代码节点的开头加一个容错逻辑先尝试json.loads如果失败就用正则把花括号JSON部分提取出来再解析。有了这层兜底整个工作流就稳定很多。第二个问题是匹配度计算过于死板。候选人有一年经验但在项目描述里明确提到了Spring Cloud的实际落地技能覆盖率很高但年限不足导致匹配分只有62分被归为待定。这个结果虽然符合硬性规则但忽略了候选人潜力。我调整了评分公式技能覆盖率权重70%年限达标权重30%并且当技能覆盖率达到一定标准时年限不达标只减分不否决。改完之后这个候选人分数到了78分系统建议“可进入初试重点考察实际项目深度”。调试过程中我还发现一个非常有用的功能每个节点运行后都会记录详细的输入输出日志点击节点即可查看返回结果。这比传统黑盒调试省事太多。我就是靠这个功能一步步定位到是哪层逻辑出了问题。5. 多租户、权限与生产环境建议5.1 多租户支持与权限边界Dify社区版从1.10版本开始引入了多租户支持这个能力对团队协作来说是个分水岭。早期版本里所有应用和知识库都混在一个空间里团队成员之间没有清晰的权限隔离。做内部用还可以但一旦对接外部客户或者多部门就很容易出现A部门改到了B部门应用的问题。多租户模式下可以为团队创建独立工作空间租户间的数据是隔离的应用、知识库、模型配置互不可见。这让我可以放心的把同一套Dify平台共享给不同业务线使用各租户自己维护自己的知识库和流程配置。权限方面Dify也支持管理员和普通成员两种角色管理员可以管理整个平台普通成员只能在分配的空间内操作。这里有一个实践建议多租户开启前最好先规划好空间结构。我见过有团队把二十个应用建在同一个空间里不做区分后面找应用全靠翻页权限控制也做不了。正确的做法是按业务线或客户划分空间再在空间内部按应用维度管理。Dify有40多个功能权限满足内部大多数场景足够。5.2 日志、监控与故障排查的常规操作AI应用一旦上线日志和监控就成了保命工具。Dify的控制台里能看到每次对话的完整记录包括输入输出、节点执行详情、消耗token、调用耗时。对做应用维护的我来说这几乎是最常用的功能。实际维护中我一般会重点关注两类指标调用成功率和响应时间。调用成功率突然下降常见原因是上游大模型API不稳定或限流响应时间变长可能是知识库检索变慢、Prompt变长或者并发量上来后容器资源吃紧。Dify自身的日志可以通过docker compose logs -f api和docker compose logs -f worker查看Worker的日志尤其重要因为后台任务和工具调用都是在Worker中执行的。生产环境我还建议把Dify容器接入自带监控体系。如果你扛住了压力要上线最好给Dify单独配置一套资源告警比如CPU超过80%持续5分钟内存使用率超过90%就要及时告警。AI应用有个特点平时可能很安静一旦某个页面在朋友圈传开流量会瞬间打爆容器。5.3 长连接与并发规划很多人把Dify部署好本地测试跑通了就直接推到生产环境结果流量一起来就出问题。AI应用有它的特殊性大模型推理的响应时间通常在几秒到几十秒普通HTTP连接很容易在网关层超时。我建议在生产环境把反向代理的超时时间调大Nginx里可以配置proxy_read_timeout 300s; proxy_send_timeout 300s;这里的核心思路是你根本不知道一次智能体工作流会执行多久所以把超时时间放宽比让用户在页面看到一个“请求超时”的报错要好得多。并发方面Dify本身支持横向扩展原理也很简单API服务和Worker服务都是无状态的可以将它们扩展到多个副本然后在前方加负载均衡。数据库和向量数据库才是真正的瓶颈建议先用托管服务把这两个组件管理起来再去扩展应用层。还有一点是资源和算力规划。如果你在Dify里同时跑工作流、知识库、对话应用建议根据业务量给不同容器分配资源限制不要让所有容器争抢同一台机器的CPU否则并发一高相互拖垮。我一般用docker compose配置里的deploy.resources.limits来限定每个服务的资源上限。6. 常见问题与排查技巧实录6.1 镜像拉取失败“dify拉取镜像失败”是搜索量最高的几个问题之一几乎每个新手都会碰到。现象通常是docker compose up时某个镜像卡住不动或者直接报network timeout错。造成这个问题的根源很统一国内网络访问Docker Hub不稳定。解决方案是配置镜像加速器。修改Docker的daemon.json添加快捷源地址然后重启Docker服务{ registry-mirrors: [https://docker.m.daocloud.io] }配置完重启Docker之后重新docker compose pull通常就能顺利拉取了。如果你的服务器在特殊网络环境里还拉不动可以试试手动拉取镜像再docker compose up或者找一台网络友好的机器把镜像导出再导入。这些方法我都在项目里试过镜像加速是最稳的。6.2 容器无法启动镜像拉下来后常见的另一类问题是容器起不来。先docker compose ps看目前容器状态再用docker compose logs查看具体日志。如果是数据库容器一直重启很有可能是权限问题或端口冲突。PostgreSQL容器会在宿主机上映射一个端口默认是5432如果你的机器上已经装了PostgreSQL就会出现端口冲突。解决方法是修改.env里的端口映射比如把5432改成5433。我还能告诉你一个避坑经验尽量别让Dify的PostgreSQL和你本机数据库共用同一个端口不然后期排查问题的时候会非常混乱。另一个反复见到的问题是容器起来了但页面打不开。这时候先去检查Nginx容器是否正常再确认端口是否暴露。如果服务器有防火墙记得放行对应端口。上次一个朋友折腾了两个小时最后发现是阿里云安全组没开放80端口控制台死活访问不了。6.3 模型配置失败与调用报错模型是AI应用的心脏模型配置不成功其他全是空谈。首先要确认你在Dify控制台的“设置-模型供应商”里正确配置了API密钥。不同供应商格式不同OpenAI是sk-开头的密钥阿里云百炼、DeepSeek等各有各的格式填错或者配置不完整都会导致调用报错。模型调用时报401说明API密钥无效或者没有对应模型权限报429说明请求频率超出限制要加延时或换性能更强的账号报404或invalid model说明模型名称和供应商不匹配比如有些供应商需要特定格式的部署名称。我建议在调试阶段把Dify日志打详细一点日志里会带上模型供应商的原始错误信息方便定位问题。另外很多人在本地部署后调用OpenAI接口发现国内网络访问不通。这个问题我是通过配置代理解决的但如果你不方便用代理更推荐直接用国内云厂商的模型服务比如通义千问、DeepSeek接口都是兼容OpenAI格式的。Dify也几乎集成了所有主流模型供应商选一个网络友好、稳定可靠的就够了功能上并没有明显劣势。6.4 知识库检索效果差知识库检索效果差这个问题比模型调用失败更隐蔽更难排查。我遇到过最多的情况是知识库里明明有答案但智能体就是说不知道。执行一次知识检索节点看返回结果往往会发现检索召回的TopK内容里根本没有目标文档。原因一般有几种分段过大或过小导致语义切碎中文文本没有做合适的分词向量模型和知识库文档语言不匹配。特别是中文场景如果你用英文预训练向量模型处理中文文档效果会差得一塌糊涂。Dify支持配置Embedding模型建议选对中文支持好的模型我在实践中发现BGE系列中文效果不错比部分海外模型要好不少。检索质量差的时候我建议的排查顺序是先用Dify内置的“召回测试”功能单独测知识检索看TopK文档是否合理再检查分段设置是否把相关的内容被分到不同段落最后检查Rerank模型是否已经配置。日常维护中几乎每个检索问题都能通过这三步定位到根因。6.5 Prompt调优的几条经验工作流里LLM节点的效果很大程度上取决于Prompt写得好不好。我做项目总结出几条经验在这里分享给读者。第一给模型明确角色和输出格式。不要说“帮我分析这段简历”而是说“你是资深HR专家请从技能、年限、项目经验三个维度分析候选人严格输出JSON格式”。模型对结构明确的任务完成度远高于开放式任务。第二少让模型做计算和规则判断。像判断63这种逻辑模型偶尔会出错但代码节点永远不会。凡是能用规则解决的就把它从Prompt里拿掉交给代码节点处理。这能显著提升准确性。第三调试时先固定温度参数为0。等流程跑通、输出稳定之后再根据场景适当增大温度。很多人上来就把温度设成0.7效果不稳定又找不到原因其实只是温度调太高了。第四给模型示范例子。在Prompt里加一两组输入输出样例尤其是输出格式比较复杂的时候Few-shot的效果往往比在描述里强调无数遍格式要求更有效。最后的实操心得整个Dify智能体工作流搭下来我最深的感受是Dify真正降低了AI应用的门槛但并没有降低对逻辑思维的要求。工作流里每个节点的排列实际上是对业务逻辑的拆解和梳理。你越能把业务想清楚工作流画起来就越顺跑出来的结果也就越稳。最后再分享一个我一直在用的小技巧每次完成一个工作流我习惯把它保存成Dify的DSL文件并纳入版本管理。DSL文件就是工作流的完整配置导出包含了所有节点、连线、Prompt甚至知识库引用配置。这样做的好处是改坏了可以随时回滚换环境能快速复现团队其他人拿到DSL也能一键导入。这个习惯帮我避免过无数次“改到一半发现回不去了”的尴尬。如果你也在用Dify做项目强烈建议把这个习惯落地。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价