尧图精选

知识库与智能体,先做哪个?从RAG到Agent的判断方法与落地顺序

🕒 发布时间:2026/9/16 9:15:28 📁 来源:尧图网络
先声明一下这个问题我隔三差五就会在社群里看到把 Dify 或者 Coze 的账号都注册好了上传文档也学会了甚至 Obsidian 里的笔记都整理出了几百条结果打开平台面板看着“知识库”和“智能体”两个入口突然不知道该从哪下手。更常见的情况是两边都开工了先花两周时间建了一堆知识库向量模型调来调去又在白板上画了半天智能体编排图最后发现产品连个影子都没有。所以“先建知识库还是先做智能体”这件事不是顺序问题而是判断问题。这篇文章就是想给你一条能落地的判断方法帮你看清楚自己手头到底缺的是“知识”还是“智能”。1. 这个纠结点本质上是你要解决的是“不知道”还是“不会做”1.1 知识库和智能体在最底层就不是同一个东西我反复跟人强调一件事知识库和智能体一个是静态资产一个是动态流程。前者解决“模型不知道”的问题后者解决“模型不会做”的问题。知识库的核心是 RAG也就是检索增强生成。它做的事情是把你上传的 Word、PDF、Wiki 网页切碎成片段做向量化处理然后把片段存进向量数据库。用户提问的时候系统先去库里检索相关内容再把检索结果拼进提示词让大模型基于这些内容生成回答。你可以把它理解成考试前给学生发的一本开卷参考资料。参考资料越全、标记越清楚学生答题就越靠谱。但参考资料本身就是一堆纸它不会自己去答题。智能体的核心是 Agent。它做的事情是理解用户意图拆解任务规划步骤调用外部工具再到最后生成结果。工具可以是普通的 HTTP 接口搜索、查天气、发邮件、操作 SQL 数据库都算。它还承担着流程编排的职责比如 Dify 里的工作流本质上就是智能体的一种确定性实现方式你告诉它第一步做什么、第二步做什么、什么条件下走分支。知识库是给模型加“记忆”智能体是给模型加“手脚”和“大脑”。记忆可以让回答更准确手脚和大脑可以让任务真正被执行完。1.2 我经常用的一个比喻参考资料架和办事员把知识库想象成一个巨大的参考资料架里面全是你单位这些年的制度文件、项目总结、客服话术。把智能体想象成一个办事员他负责接待用户提问、翻阅资料、联系其他部门、最后给用户把事情办了。如果你让办事员在没有资料架的办公室工作他只能凭自己脑子里那些通用知识瞎说。这对应着企业里常见的场景模型没有你的规章制度和产品手册面对用户问“你们家这个产品的退换货政策是什么样的”它就一本正经地编出来一条——因为通用大模型根本没读过你家那 27 页的售后政策文档。反过来如果只有资料架没有办事员那资料架当然不会自己接待用户。你得自己去看自己去找再把答案整理出来。很多企业其实做的是这个事——知识库建好了还得靠人工客服一句一句去翻着回答问题。所以智能体应用的正确形态通常是“办事员 资料架”。纠结先做哪一个本质上就是纠结我现在是缺资料还是缺办事员1.3 为什么很多人会在这个问题上反复卡壳卡壳的原因通常有两个。第一个是工具平台把两个功能放在同一个页面里按钮样式差不多给人的暗示是“先配置一个、再配置另一个”于是从产品的视觉引导上就制造了困惑。第二个原因是人对自己的业务还不够了解就开始动手既不清晰自己的知识资产现状也不清楚用户最典型的使用方式。这些年我围观过不少翻车项目拆开看翻车的根子就在于做的时候没判断清楚“不知道”和“不会做”哪个是当前的主要矛盾。下一节就详细盘一盘这两类翻车现场。2. 两条路线我都试过也见过不少翻车现场关键教训在这2.1 先建知识库派的典型死法库建得漂漂亮亮一接智能体就露馅“先建知识库”这条路看起来最稳妥因为整理文档总不会错。实际操作中大批人在这一步用力过猛。有人花两周时间做文档清洗切分策略调了又调嵌入模型换了好几个终于自测的时候知识库回答得挺像样。但一接入 Agent 就露馅了。我见过一个做设备维修知识库的团队文档处理得确实漂亮RAG 的召回率在测试集上也很能打。结果智能体一上线用户问“这台机器报警代码 302 怎么办”系统召回的片段却总是对不齐维修步骤。原因在于他们的用户是带着具体故障现象来的而知识库里存的是按文档结构切分的标准维修手册两个的语义距离对不上。自测知识库的时候问题是提前设计好的切分片段刚好覆盖了答案。但真实场景里用户的话术千奇百怪同样一个问题可能有十种问法知识库的静态检索就吃不消了。这种死法的核心教训是知识库是为“静态问答”优化的不是为“动态任务”优化的。你把知识库单独打磨得再好它也不会自动适配工具调用、参数抽取、多轮对话这些场景。2.2 先做智能体派的典型死法工作流跑通了一问细节就胡说八道另一拨人走另一条路先把智能体搭出来。工作流画得特别顺意图识别、分类、工具调用全都接上了演示的时候也是行云流水——用户说“帮我订一间明天的会议室”智能体调用日历接口、查空闲房间、发起预定一气呵成。但用户接下来问一句“公司对会议室预定有什么时长限制”智能体瞬间就傻了。只靠通用大模型的知识储备它不知道你们公司规定“单次预订不得超过两小时”更不知道“临时取消要提前半小时”。于是它就凭经验给你编一个答案语气还特别笃定。在缺少企业知识支持的场景里幻觉会被放大。尤其是做销售智能体、客服智能体这类需要频繁引用具体政策、价格、库存信息的场景没有知识库兜底再漂亮的工作流也撑不过真实用户十句话。这种死法的核心教训是智能体再怎么智能它也不等于什么都知道。你不能指望它无中生有地掌握你们公司的内部数据如果业务本身强依赖领域知识那知识底座早晚得补。2.3 两类翻车的共性没判断清当前的瓶颈在哪把两种死法并排看问题就清楚多了。先建库的人死的点是库建出来但是没用对场景。这种项目根本没有进入真正的业务闭环因为用户不会去知识库里搜文档——他们只会跟智能体说话。先做体的人死的点是流程很顺但知识是空的智能体像一个熟练工人在没有原料的车间里操作动作再标准也制造不出产品。都能做对的一部分其实是没判断这件事当前业务的主要瓶颈到底是模型“不知道”还是模型“不会做”。先建库规划和先做体规划本来应该基于这个判断来展开结果被硬生生做成了两条互不相干的路。3. 我的判断方法一条线拆成三个问题再加一张决策表3.1 问题一你的私有知识是“存量丰富”还是“存量极少”判断第一个维度先盘点自己的知识资产。这不需要搞什么复杂的审计直接在文件服务器里数一下就行Word、PDF、Markdown、TXT 文件加起来超过 50 份吗这些文件是企业内部真实使用的制度、手册、FAQ、纪要而不是网上随便下载的公开资料有没有人在日常工作中反复查阅这些文档如果答案大多是“是”那你已经有存量知识库了。这时候先建知识库是对的因为不管理好这些知识无论智能体怎么做它都会因为缺料而跑偏。如果答案大多是“否”——比如你自己是个独立开发者想做一个通用领域的智能体手头根本没有成体系的私有文档——那先做智能体就对了。先把流程跑通等未来积累出真正的业务数据再考虑建库。3.2 问题二用户要的答案是“内容输出”还是“任务执行”判断第二个维度把用户的典型诉求写下来逐个分类。一类是典型的知识问答型诉求。特征是用户想要“一个答案”。比如“这个商品的适配机型有哪些”“我们公司报销差旅费的流程是什么”“上次发布会的要点帮我总结一下”这类诉求的核心满意度指标是“内容准确”“引用可溯”。如果业务主要被这类问题撑起来知识库优先因为你要先确保内容是对的。没有知识库模型可能给出随机的答案。另一类是任务执行型诉求。特征是用户想要“一个结果”。比如“帮我给这个客户生成一份自动回复邮件”“查一下昨天线上订单中有哪些是异常件整理成表格发我”“把这段需求自动拆成开发计划建好项目任务”这类诉求的核心满意度指标是“任务完成了”“步骤可追踪”。如果这类诉求居多智能体优先因为有没有知识库不影响你先把流程搭起来。你可以先靠规则或者模型的通用能力跑通动作知识不足的部分后面再补。多数实际业务是混合型的但你必须判断清楚当前阶段哪个占比更高。3.3 问题三一个空的智能体跑一轮测试它卡在哪第三个维度我称之为“空车测试”。具体操作是在 Dify、RagFlow 或 Coze 里面不打任何知识库、关掉所有插件只接一个大模型搭一个只有“输入→模型→输出”结构的最简智能体。然后拿五到十个真实用户问题去问它。不看回答质量只看一个问题 它是因为“答不上来”才失败还是因为“根本不知道怎么行动”才失败这两种失败的区别很明显。“答不上来”的表现是回答内容空洞、有明显编造痕迹、提到了一些你已经知道不是那么回事的细节。这说明它缺的是领域知识。“不知道怎么行动”的表现是它只能回复一大段分析告诉你“你可以这样做”但就是不能自动去调用接口、不能生成文件、不能发起流程。这说明它缺的是执行编排能力。同样是失败失败的原因决定你应该先建库还是先做体。做这一轮测试的成本很低半小时就能完成却能把判断从主观偏好变成客观观察。3.4 一张决策表把判断变成可复用的打分规则为了让你能把这套判断贴上墙我把上面三个问题汇总成一张决策表。每个问题选 A 加 1 分选 B 加 0 分最后得分高的一边先启动并不完全绝对但足以帮你克服纠结。判断维度选项 A偏知识库选项 B偏智能体知识资产现状已有 50 份以上内部私有文档几乎没有私有文档知识零散主要靠公开资料文档更新频率制度、流程、产品手册经常变化知识相对稳定变化不频繁用户典型问题“是什么”“怎么做”“依据是什么”“帮我做”“操作一下”“自动处理”当前的最大痛点回答不准确、幻觉多、答非所问流程繁琐、跨系统操作多、人工效率低空车测试失败原因“答不上来”内容空洞甚至编造“动不了”只会建议不能执行团队维护能力有专人持续更新文档和内容没有专人希望系统尽量自动如果选 A 的数量显著高于选 B先建知识库。如果选 B 的数量更高先做智能体。如果两边持平我的建议是先做一个最小版本的智能体能跑通一个完整任务即可同时给它挂一个只有几十条关键文档的知识库兜底用真实运行数据来校准下一步。4. 判断完之后怎么动手落地顺序要这样排4.1 如果先建知识库从 20 条种子文档开始别一上来就追求大而全先建知识库路线也不是指“把全网能搜到的知识全放进去”。我看到太多人死于“资料洁癖”总觉得知识库不全、不够严谨就不敢上线。实际上一个只有 20 条高质量种子文档的知识库远胜过一个有 2000 条杂乱文档、检索时互相干扰的知识库。落地顺序应该是收集核心高频文档。不要所有文件都往里扔先挑用户最常问的 20~50 份。比如做农业知识库就先放主粮作物的病虫害防治手册、施肥指导规范做 IT 资产系统知识库就先放资产分类标准、采购审批流程、报废处置规则。做一次质量清洗。把图片型 PDF 转成可检索文本OCR 不要省去掉页眉页脚和目录页统一层级标题。我自己的经验是PDF 解析质量决定了一半的检索效果至少配上 RagFlow 这类重视版面解析的工具。划分知识库结构。别把所有文档塞进一个巨型库按业务主题切分比如“售后服务”“内部制度”“产品参数”。同一个问题在一个库里检索比在十个库里能找到的答案更集中。开始向量化与召回调优。Dify 里可以逐个上传文档并建立知识库先不急着调复杂参数选好 embedding 模型跑几个真实问题看召回结果。如果召回片段不对先回去改文档切分策略而不是去调模型参数。再做引用验证。确保每一条知识库回答都能追溯到源文档这一点不仅是为了合规更是为了你后面接智能体时能快速定位问题。这个阶段完成了你的知识库相当于一个“有索引的资料室”。它可以独立用比如做一个内部检索入口也可以等智能体条件成熟后直接接入。4.2 如果先做智能体死磕一条最痛的任务搭出最小工作流先做智能体路线不是让你把所有工具和节点全部铺开。而是找一条最让业务痛苦的链路把它做成一个能跑的最小闭环。比如销售智能体的第一个版本不要想着让它同时完成客户画像、竞品分析、话术生成、外呼通话。只挑一条最高频的给销售员生成一封针对特定客户的定制沟通邮件。流程就是“输入客户信息 → 调用客户数据接口取数据 → 用模型生成邮件草稿 → 推送到 IM 工具待确认”。四个节点完整跑通就算落地。操作顺序是这样的梳理目标链路。画一张白板图把用户从输入到期望结果的所有步骤列出来标记出哪些环节目前有人在人工协作哪些环节可以交给系统。人工做得越久、越频繁的环节越值得先接入智能体。定义工具集。每个步骤如果涉及外部系统调用先抽象成接口。Dify 工作流里可以直接加 HTTP 请求节点把请求方法、路径、鉴权方式、返回参数配置好。搭出编排逻辑。先在白板上确定主流程再加条件分支和异常分支。别贪多先做一条主链路。用测试数据验证。拿三五个真实用户问题走一遍完整流程。重点关注工具参数能不能正确抽取比如用户说“帮我查一下上海门店库存”你能不能把“上海门店”正确映射到城市参数的枚举值上。把知识库作为兜底接入。这个你可以放在第二步做也可以放在后面做取决于业务是否产生幻觉。最稳妥的做法是工作流跑通后立刻把前面提到的 20 条种子文档挂上去作为一个兜底信息来源。后续再根据真实对话日志持续补齐知识。4.3 判断不是一次性的先用最小半周期跑出业务价值再补另一边我之前见过一个做企业制度问答的团队一开始判断知识库优先。花了一个多月把企业制度从里到外全部结构化入库做得特别重。但上线后真正被高频使用的问题从“制度是什么”迅速变成了“帮我填这张报销单”。结果又重新做智能体流程。反过来也有团队先做智能体做了个能写周报的助手但用户问“这个项目的背景是什么”时没有依据只好回头把项目文档整理进知识库。所以判断不应该是一次性的。我的建议是“最小半周期”思路先根据判断结果启动一条路线以两到三周为周期跑出一个可用版本拿到真实用户反馈再启动第二优先级的另一边。判断表的分数只决定“谁先启动”不代表“永远只做它”。知识库和智能体是相互喂养的前期的判断只是为了帮你把有限精力放在当前最痛的地方尽快做出一个能用的东西出来。5. 几种容易判断错的情形我给你提前踩好坑5.1 看着像缺知识实际上缺的是流程定义有一种场景特别容易误判明明知识库里的文档很全但智能体回答得还是差。这时候很多人第一反应是“知识库召回率不够”于是疯狂调参数。但真正的问题往往是你的智能体压根没有定义清楚任务流程。举个例子用户问“我的订单什么时候能到”你的智能体如果没有定义“先取当前登录用户 → 调订单接口 → 调物流接口 → 再生成回答”这个动作链就算知识库里存着物流时效说明它也接不到真实数据只能在知识库里胡编一个时间。判断方法就是回到前面的“空车测试”如果知识库已经挂了回答还是乱问题大概率不在知识库在编排。这个坑我踩过两次一次是在客服场景一次是在内部 IT 支持场景最后都是靠把工作流里的节点数翻了一倍解决的。5.2 看着像缺智能实际上缺的是知识归档另一种相反的情况你觉得自己缺智能体因为流程太繁琐、人工介入太多。你花了一个月搭了一个极其复杂的工作流把十几个工具都接上了。结果智能体跑起来像无头苍蝇每一步都拿不到足够有效的上下文最终效果还不如人工。问题出在你根本没有把业务流程中积累的判断依据固化下来。这些依据就是知识。比如一个审批智能体如果只是机械地把审批流串起来却不知道公司对不同金额、不同部门的审批差异它就只能把所有申请都推给管理员跟没有智能体没区别。这类问题的解法不是继续加工具而是先做知识梳理把你人工审批时的判断标准写下来哪怕先写十条规则也比没有强。等判定标准入库了工作流的效率才体现得出来。5.3 “不知道用户会问什么”的场景先做知识库还是先做智能体如果你的场景开放性很强比如一个面向公众的产品助手用户可能问任何问题你无法预先定义几十条任务链路那怎么选我偏向说这种场景要“知识库先行”。因为开放域问题的核心风险是幻觉你首先得让模型“有据可依”才能谈得上准确。先把高频问题抽出来做成一个 50 条以内的精选知识库让模型统一在知识库范围内回答。接下来再根据用户真实提问中的“任务类请求”增量搭建对应的智能体动作链。这也是为什么我会推荐“知识库 简单智能体”的起步组合入口用智能体做意图识别如果识别出需要查具体信息就进知识库检索识别出需要执行具体动作就进工作流节点调用接口。早期知识库为主动作链逐步累加两个部分并行演进。5.4 关于“多智能体”和“知识库流水线”的诱惑我也想提醒一句现在社区里讨论多智能体框架、AgentScope、复杂编排的声音很大看起来不搞一个多智能体系统就落伍了。但对你来说如果连单条链路的智能体和第一个知识库都还没跑通多智能体只会放大混乱。每个智能体都需要独立的知识输入和独立的评价指标调试难度是指数级上涨的。“知识库流水线”也一样在 Dify 里搭一套漂亮的批量导入、切分、向量化流程确实是很多人的爱好。但如果连第一步的文档清洗和召回验证都没做扎实流水线效率再高产出的也只是更多脏数据。知识库和智能体判断的真正价值不在于选一个“绝对正确”的起点而在于让你在最有限的资源下把一个核心问题先解决掉。我自己的习惯是每接手一个新场景都强制自己做一轮“三个问题加一张决策表”的评估顺便跑一次空车测试。这个过程本身不需要超过一个下午但做完之后你对着白板画架构图的时候手就会稳很多。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →