工单自动分类Agent踩坑复盘

工单自动分类Agent踩坑复盘
先把结论摆这儿想搭一个自动给客服工单分类、打标签的小助手难点根本不在模型,在你给它的「分类标准」够不够清楚。我第一版翻车,就是栽在这上面——LLM 没错,是我没把活儿讲明白。下面是完整复盘,带踩坑和怎么修。为啥要搞这玩意儿背景交代一下。我们客服群一天大概进 300 多条工单,人工先扫一遍打标签(退款、物流、bug、咨询、投诉……),再分流给不同的人。问题是打标签这步太枯燥,新来的同事经常把「物流慢想退款」打成纯物流,结果退款团队根本没收到,客户在群里炸了。我就想,能不能让 AI 把这道粗活先过一遍。我不太想为这破事专门起个后端服务、写一堆 prompt 拼接、再自己接模型 API。正好手头有个零代码就能拖着配智能体的工具,试试。第一版:30 分钟搭完,然后翻车搭起来是真快。我做的就三件事:拉一个对话节点,挂上现成的大模型;写了句系统提示:「你是客服工单分类助手,请给下面的工单打标签」;把十几个标签名甩进去,发布成 API。测了五条,全对,我当时还挺得意。结果灰度跑了一天,翻车现场:工单原文我想要的标签它给的「东西到了但是坏的,我要退」退款 质量物流「下单三天了还没发货」物流催促(它自己造的词)「你们客服态度太差」投诉投诉、咨询、建议(一口气三个)问题很清楚。第一,标签边界我自己都没定义,它只能瞎猜;第二,我没限制输出格式,它有时候返一个词,有时候返一段话还带解释,下游根本没法解析;第三,「坏的要退」这种复合意图,它只挑了最显眼的那个关键词。说白了,第一版太干了。我以为模型聪明到能脑补我的业务,实际上它对我们「催促不算独立标签、得归到物流」这种内部规矩一无所知。第二版:把活儿讲明白修的过程没什么玄学,就是把人脑里默认的东西全写出来。第一步,给每个标签写一句话定义和一个例子。不是光丢标签名了,而是:物流:涉及发货、运输、配送时效的问题(含还没发货快递太慢) 退款:用户明确表达想退钱、退货的诉求 质量:商品本身有破损、故障、与描述不符光这一步,「坏的要退」的识别率肉眼可见地上来了。第二步,锁死输出格式。我在提示里加了硬约束:只输出 JSON,字段固定{labels: [], primary: },标签只能从给定列表里选,不许造词。还补了一句「允许多标签,但 primary 只能有一个」。从此下游解析不再随机崩。第三步,这是关键——我把公司沉淀的几百条历史工单和正确标签喂成了一个私有知识库,让它先检索再判断(就是那套 RAG)。遇到「态度差」这种模糊的,它能去翻历史上类似工单当时打的是「投诉」,而不是自由发挥。这一步上去之后,边角 case 的准确率从大概七成爬到九成出头。第四步,留人工兜底。我让它对没把握的工单输出一个confidence低分,低于阈值的不自动分流,转人工复核。这条是被投诉那次逼出来的——宁可它说「我不确定」,也别自信地分错。几个诚实的话不吹。这小助手到现在也只是干「粗筛」这层杂活,真正棘手的、带情绪的、涉及金额纠纷的,还是得人来。它响应也不算飞快,复杂工单加上检索得等两三秒,做实时弹窗会有点顿。还有学习曲线。零代码不等于零思考——配置界面拖两下就通了,但「怎么把业务规则讲清楚」这件事,平台帮不了你,得自己啃。我前后改了大概六版提示词才稳住。但确实省事。最大的爽点是,从「我有个想法」到「线上能跑的 API」,全程没写一行后端代码,知识库也是上传文档点几下就挂上了。一个不太懂工程的运营同学,照着我的配置自己复制了一版做满意度回访打标,也跑起来了。回头看,第一版翻车不冤。我犯的错跟带新人一模一样——以为说一句「帮我分类」对方就懂,其实得把标准、格式、例外一条条交代清楚。模型和新人没区别,你讲多明白,它干多漂亮。你们做工单分类、用户反馈打标这类活,是自己写服务硬扛,还是也想找个零代码的法子拖一个智能体出来?评论区聊聊你踩过哪些坑,尤其是 RAG 那块怎么调准的,我还在折腾。(模型这块我直接走的讯飞星辰 MaaS,现成大模型 API 调用,没自己部署算力,省了一堆运维心思。)