ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI落地五棒闭环:从需求锁定到反馈迭代,让项目持续运转

AI落地五棒闭环:从需求锁定到反馈迭代,让项目持续运转

我做AI落地项目这些年,最大的感受是:技术跑通根本不稀奇,能长期稳定跑下去才是真本事。见过太多团队把大模型接上了,准确率也测过了,结果上线三个月没人用,问就是“模型回答太飘”“没人维护”“需求变了”。问题出在哪?出在大家一起步就走岔了——把“落地”理解成了“把模型调通”,方案从头到尾都只是一段技术流程,而不是一条任务闭环。

我参与的一个内部项目,最初也是这个味道。需求方说“做个智能助手”,开发团队听了很开心,一头扎进模型里调提示词,数据集攒了一堆,效果演示也挺漂亮。可等我们坐下来认真把整个方案拆成一条闭环,才发现前前后后到处是断层。这篇就把我当时怎么把这套AI落地方案讲成一条任务闭环的过程翻出来,五段接力,每一段都有交付物和验收标准。适合正在做企业级AI落地、但总觉得哪一步说不清楚的朋友参考。

1. 技术跑通不等于项目落地:我见过最多的AI项目死法

先讲一个特别典型的死法。某公司的内部知识库问答机器人,模型用得不差,召回率报告也好看着。结果上线之后,客服同事用了一周就弃了。原因很简单:业务方问的“报销流程有几种方式”这种问题,机器人给出来的答案是几种旧政策的混合体,因为数据管道把所有历史版本的制度文件都塞进了一个向量库,没有做版本过滤和权限隔离。你说这是模型问题吗?不是。是数据问题。是需求阶段没把“数据边界”锁死的锅。

很多AI项目烂尾,死的都不是技术难点,而是这个“没锁死”。需求模糊就开始做数据,数据没备齐就开始调模型,模型调好了丢给运维就不管了。每个环节看起来都在推进,实际上彼此之间是断开的——就像接力赛里四个人各跑各的,交接棒的时候没人看,棒早掉了。

我当时在复盘会上用的办法,就是把这套方案重新画成一条任务闭环。五个棒次,顺序是:需求锁定、数据准备、模型选型、工程化部署、反馈迭代。每一棒的终点必须产出一个明确交付物,而且要有具体的验收标准。下一棒的人只认上一棒的交付物,交不齐就不接棒。这种“机械”的做法,恰恰是治项目烂尾的良药。

为什么要强调“闭环”而不是“流程”?因为流程是单向的,走到上线就停了。闭环是循环的,上线之后的数据和问题还要流回需求、流回数据准备环节。大部分团队做AI落地缺的就是这最后一段回流——所以项目生命周期永远只有“启动到上线”,没有“运营到迭代”。

2. 第一棒:需求锁定,把“做个智能助手”拆成五条能验收的指标

我见过太多需求会开成聊天会。业务方说“我想要个AI助手”,开发说“可以可以”,然后各自带着美好的想象回去了。开发想象的是能自动理解复杂意图的Agent,业务方想象的是能替代人工处理80%问题的全能客服。三个月后一验收,两边都觉得对方有问题。

要把需求咬死,必须在启动第一天就把五件事问清楚。我自己整理过一张需求锁定表,后来每次做项目都先拿这张表过一遍:

待确认项要问清楚的问题交付物
目标用户谁在什么场景下用这个AI?是内部员工、一线客服,还是外部客户?用户画像和核心使用场景列表
回答边界它能回答哪个范围的问题?哪些问题明确不回答?功能边界清单(包含“不做清单”)
性能指标答对的定义是什么?响应要几秒?有没有拒答率上限?可量化的验收指标表
数据来源回答依赖哪些文档/系统?更新频率多高?谁负责维护?知识源清单与责任人
错误归属答错了算谁的?反馈给谁?走什么渠道升级?错误处理与升级机制

这一棒蹲坑蹲得越认真,后面四个棒子跑得越顺。尤其是“不做清单”,这个真的建议每个项目都写一份。我当时的做法是把不回答的问题类型直接写进需求文档,比如“不回答薪资福利细则”“不回答未发布的政策内容”“不回答跨部门流程对接问题”。为什么?因为AI开放边界越模糊,后面越容易出事。用户什么都会问,模型什么都会答,结果答错一个,信任感就崩了。

再一个关键点是验收指标必须能自动化测试。不要写“回答准确率还行”这种话,要写“从历史工单中抽取200条真实问题组成测试集,回答命中率不低于75%,对明确超出边界的问题拒答率不低于90%”。这样写的好处是,后期每次迭代都可以机器跑一遍回归,模型改没改坏,一测就知道,不用靠感觉。

我还记得我们这个方案在需求锁定会上,业务方差点掀桌子,觉得我们问得太细了。我当时的说法是:现在花两个小时问清楚,后面省两百个小时返工。事实证明这话不虚。

3. 第二棒:数据准备,卡住80%团队的隐性重活

很多人以为做AI落地,核心工作量在“调模型”,实际上真正吃掉时间的是数据准备。我甚至可以说,数据准备这一棒没做好,后面模型选型、效果调优全是空中楼阁。

先说数据盘点。我当时先拉着数据负责人把所有可能的源文档列了一个清单:Word制度文件、PDF扫描件、Excel制度表、历史客服问答记录、旧版FAQ。光是这个清单就吓了我一跳——我们以为知识库只有一份文档集,结果光历史版本就躺了五个文件夹。没人说得清哪个版本是现行的。

接下来是清洗,这块坑最多。PDF扫描件必须走OCR,不然文字全是图,模型根本读不到;表格数据不能直接甩给嵌入模型,得把表格结构转成带上下文的文本,否则问答时检索回来就是一堆莫名其妙的数字;页眉页脚、更新说明、审批签字这些页面垃圾也得先清掉,不然分片里全是噪声。

还有权限打标这个坑,很多团队会忽略。公司内部的知识库,有些文档不是所有人都能看的。比如薪酬制度、组织调整方案,如果直接进公共知识库,员工问一句“裁员补偿怎么算”,机器人把内部讨论稿也检索出来答上了,这就不是技术事故了,是重大责任事故。我们在数据清洗阶段就给每个文档打了权限标签,检索的时候按用户身份过滤,宁可答不出,不能答错权限外的东西。

分片策略也值得单独说。语义检索的效果很大程度取决于你怎么切文本。切的太大,检索召回里混进无关段落;切的太小,关键信息被截断。我当时用的经验值是中文文档chunk_size设在400到600个token左右,overlap设50到100个token。这个overlap一定要留,否则经常出现一句话刚好卡在两个分片之间、两半都检索不到的情况——就像把一篇文章从中间撕开,一句话前一半在上页、后一半在下页,读哪一半都读不通。

测试集也是这个阶段建的。当时我们从真实客服聊天记录里抽了200条问题,而不是开发自己拍脑袋写的那几条例句。这两者的区别,在后期调模型的时候你会体会得非常深:自己写的问题,怎么调都满意;真实用户的问题,十个里有八个表述都不标准,一会儿口语化,一会儿带错别字,一会儿一句话里有三个意图。

数据更新的机制也要在第二棒定好。文档不是死的,制度会改,流程会变。我们的做法是先做定时扫描,每小时检查一次文档目录,发现新增或修改就触发重新解析、分片、向量化、入库。后来量大了才改成事件触发。这个环节如果没有自动化,上线后知识库就会慢慢“过期”,而用一份过期知识库做问答,跟让员工背三年前的制度没区别。

4. 第三棒:模型选型,别追排行榜,追三个决策点

到了模型选型这一棒,团队里最容易吵起来。有人拿着公开榜单说A模型比B模型高2分,应该用A;有人说B便宜,能用就行。我要说的是:公开测评分数在你自己的业务场景面前,参考价值有限得很。

我当时只盯三个决策点。第一是效果,拿我们第二棒建好的200条测试集跑,不看榜单看自己的场景。第二是成本,把调用量估准——日均问题数乘以平均每次的输入输出token,再乘单token价格,一个月花多少钱是能算出来的。算完之后团队沉默了,因为按预估峰值流量直接裸调API,月度费用比想象中高出一个数量级。第三是延迟和可用性。问答场景里,3到5秒的响应是忍受上限,超过这个范围用户就流失了。而供应商接口的稳定性、是否有配额限制、会不会在高峰期给你限流,这些都是要写进选型评估表的。

当时我们对比了三套方案,我记得大概长这样:

候选方案效果表现单次成本估值可用性风险结论
方案A:通用大模型API测试集命中率最高高依赖外部供应商,配额紧张不适合默认全量流量
方案B:中等体量API略低于A,但够用中稳定性较好主力候选
方案C:开源模型私有化需要调优低需要自建推理资源长期降本方向

这里有个容易走偏的点,就是总觉得“模型越强越好”。实际上,在你把检索和提示词都没调好的时候,换更强模型根本看不出差距。而且很多bad case根本不该让模型背锅——用户问“怎么报销”,检索环节压根没把报销制度文档捞回来,模型再强也是无米下锅。

除了选主力模型,我还强烈建议设计一条降级链路。我们当时做了三级漏斗:第一级是高频问题缓存直接答复,成本几乎为零;第二级是常规问题走RAG链路;第三级是命中不到或者低置信度时,明确回复“未找到答案”并转人工,而不是硬编一个答案糊弄用户。认怂有时候比硬答更专业。

5. 第四棒:工程化部署,让不懂AI的人也能接手

从Notebook里跑通到线上稳定运行,中间隔着的距离比绝大多数人想象的大。演示demo时代你不需要考虑并发、重启、日志、配额,但到了线上,一个都不能少。

我们落地时围着一句话转:如果明天模型组的同事去休假了,另一个不懂AI的运维同事能不能把这个系统维持住?如果答案是不能,说明部署还不到火候。

拆开来说,有几个容易被忽略的工程化组件特别值得上心。首先是API网关与限流,当时我们在网关层做了并发控制和调用配额管理,防止某个内部应用一次性把日配额打爆。其次是知识库更新管道——从上传文档到解析、分片、向量化、入库,整个过程必须全链路自动化,并且每一步都有日志可以回溯。否则出问题的时候,你根本不知道线上知识库里那一版是哪天的数据。

缓存设计也是省成本利器。用户的高频问题其实非常集中,把常见问答加到缓存里,每天能省掉一大半模型调用量。我们当时上线两周后看统计,缓存命中率一度到了四成多,相当于模型调用成本打了六折。这个优化收益,比换一个便宜模型来得快得多。

监控这块,我当时在项目里挂了一套最朴素的看板,指标就那么几项:

监控项说明告警阈值参考
接口错误率模型调用失败或超时的比例超过1%触发提醒
响应耗时P9595%请求的响应时间超过5秒需要排查
缓存命中率命中缓存的请求占比持续低于20%说明问题太散
拒答率机器人明确说“不知道”的比例过高说明知识库覆盖不足
用户负反馈点踩、转人工、聊完就走上升趋势要重点关注

还有一个提示词版本化的问题。提示词在我们这是当作代码来管理的,改一句提示词都要提交变更记录,跟代码一起评审。为什么要这么较真?因为大模型应用的调试链路太黑了,你今天偷偷改了一句提示词,效果好像变好了,三天后回答风格毛了,结果你连是哪次改的都不知道。版本化能把这种黑暗中的滑移控制住。

6. 第五棒:反馈迭代,闭环的最后一公里

第五棒最容易被当成“上线后的杂活”,但这恰恰是闭环能不能真正收口的关键。

上线第二天,我们看后台日志直接傻眼:用户问了一大堆测试集里没有覆盖的问题,其中有将近三分之一,检索环节给出的结果根本匹配不上用户意图。如果按原来的项目流程走,到这里已经算交付完成,这些洞就永远不会被补上。但因为有闭环,这些信号被拉回来,重新喂给了需求锁定和数据准备环节。

反馈数据从哪里来?我当时主要盯三个渠道:用户点踩/点赞按钮,这个最直接;转人工记录,用户不满意才会转人工,这个信号比点踩还强;还有就是日志里高频未命中的问题——用户问了一堆,系统一个都没答上,这些就是知识库的缺口地图。

迭代节奏上,我们后来固定成了周循环。周一看上周的bad case,先分类再决定修哪里;周二改,可能补文档、调分块、修提示词,也可能重新做权限隔离;周三拿200条测试集做回归评估,确保改了A没搞坏B;周四海量数据慢慢灰度放量,边走边看监控。

这里插一个判断问题出在哪的四步法,我自己排查bad case时一直在用:

  1. 检索环节有没有把相关的文档片段捞回来?没捞到,问题大概率在数据准备和检索参数。
  2. 捞到了但答案还是不对?那往提示词和上下文组装逻辑上查。
  3. 上下文对了但仍然胡说八道?再考虑模型本身的能力边界。
  4. 测试集里为什么没覆盖这类问题?回头补测试样例。

我们当时遇到一个非常典型的案例,用户问“离职补偿怎么算”,机器人给了一堆东拼西凑的内容,看着有关但不实用。走查之后就发现,其实是有二审稿和旧版两个文件混在同一个分片里,检索把旧政策也带出来了。最后修的是数据管道的版本过滤规则,模型一行没动,问题就没了。这就是闭环的价值——任何bug都能沿着链路找到起点,而不必在模型里瞎猜。

说到底,闭环不是把流程画个圈的问题,而是让项目从“一次性交付”变成“持续运转的活系统”。每一棒的验收标准都指向下一棒,而第五棒又流回第一棒——这个时候,方案才真正算讲成了一条任务闭环。

7. 这五棒之间也别忘了沟通成本

很多人看我画的五棒闭环,第一反应是“这不就是流程管理吗”。流程谁都会画,难的是每一棒交接点上的沟通成本。我自己在这上面吃过大亏,所以单独列一段出来说。

先举个小例子。数据准备阶段整理知识源清单,数据同学很认真地排好了几份制度文档,也标了版本。到了工程化部署阶段,运维同事去接管道,发现文档目录里新增了一份没经过清洗的更新稿,直接入了库。需求锁定阶段定好了“不做清单”,但新来的运营不知道,照样往知识库里塞了超出边界的Q&A。信息在棒次交接的地方大量流失,不是因为流程不清晰,而是因为没人把这个闭环当成一个“沟通机制”来维护。

我后来采取的办法是每个交接点强制开会。数据准备结束的时候,要让模型选型的人来确认知识源清单和测试集;模型选型确定了,要让部署的人来确认模型成本、限流阈值和降级策略;部署上线前,要让反馈迭代的人对着监控清单过一遍。听上去很笨,但实际跑一轮就知道,这个环节省掉的返工时间远超开会时间。

还有一点就是中间突然改需求怎么办。天底下没有不改需求的项目,闭环也一样。我的经验是,需求可以改,但必须回到第一棒重新走流程,不能在第三棒停着硬塞。比如业务方中途说“能不能顺便管一下售后工单”,如果只是拉着开发改一下提示词,那大概率翻车。正确做法是回到需求锁定,重新补验收指标、补数据源、补权限模型,再从头过一遍。

这么做的效果很直接——团队里每个人都能说清楚自己这一棒交付了什么、下一棒找谁。有了这个共同认知,才不会把AI落地做成一笔糊涂账。

8. 我这段时间跑下来的几个实操心得

最后聊几个比较零散的实操心得,每一个都是踩过坑换来的。

第一,别一上来就整高大上的Agent或工作流。对大多数内部知识库场景,最朴素的RAG链路已经是性价比上限。先把这一条路跑稳,再考虑多步工具调用和复杂编排。我见过有人第一版就在提示词里挂了七八个工具,结果根本管不过来,bad case满天飞。

第二,Prompt别写得花里胡哨。我在项目里用的Prompt模板,核心内容就三块:角色设定、回答规则、格式要求。角色设定说清楚你是谁,回答规则明确不编造、不确定就拒答,格式要求规定好输出结构。把检索做扎实之后,这些Prompt模板能覆盖大部分场景。很多透明化的坑,其实是提示词太奔放造成的。

第三,定期用测试集做回归。这一点我再三强调,因为大模型应用的回归bug往往不是崩溃,而是“风格变了”“答案变散了”。人眼看着可能觉得问题不大,但评估指标会告诉你坏了。测试集就是你这个项目的守护线,谁动了效果,一跑便知。

第四,做知识库更新的时候,保留历史版本备份很关键。我们当时设置的知识库管道会写入版本快照,一旦新版本数据引发检索质量问题,能一键回滚到旧版本。这个操作被我们用来救场两次,每次都很值。

我把这套AI落地方案讲成一条任务闭环,本质上就是把一团黏糊糊的“做个AI”变成了五个看得见进度的棒次。需求锁定给方向,数据准备备弹药,模型选型定引擎,工程化部署铺轨道,反馈迭代供燃料——每一棒都有交付物,每一棒都有验收人。真到了这个状态,AI落地就不再是撞大运,而是一件可以不断修复、不断变好的工程。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进