ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用AI构建生产级工单系统:LLM+RAG+Agent实战拆解

用AI构建生产级工单系统:LLM+RAG+Agent实战拆解 工单系统这玩意儿搁以前就是个“录单-转派-处理-归档”的流水账本。但只要你真正在企业里跑过客服、运维、IT支持这类业务就一定能感受到那个痛点大量重复问题把人工淹没分类靠人眼回复靠复制粘贴知识沉淀靠老师傅脑子里的记忆。我这两年陆续做了几套带 AI 能力的工单系统落地项目从最初只敢拿大模型做点“智能问答”的演示到后来把 LLM、RAG、Agent 真正塞进生产链路里跑中间踩过不少坑也沉淀出一些比较靠谱的实践路径。这篇文章就围绕“如何用 AI 构建可投入生产的工单系统”这件事把核心架构、模型选型、RAG 知识库搭建、Agent 化自动处理、效果评测、生产环境避坑等关键环节系统性地拆一遍。适合正在做 AI 应用开发、AI 产品经理、AI 测试工程师或者想在企业内部把工单业务升级成智能化形态的技术同学参考。看完你至少能知道AI 到底该嵌进工单的哪些环节、怎么选模型、怎么设计 Prompt、怎么评估效果以及怎么避免那些“demo 跑得通、上线就崩”的坑。1. 内容整体设计与思路拆解1.1 工单系统到底哪里需要 AI很多团队一上来就说“我们要做一个 AI 工单系统”但你要是追问“AI 具体解决哪个环节的什么问题”往往答不上来。我的经验是先别急着上模型把工单的全生命周期画出来再逐段看哪里的人工成本最高、哪里最容易出错、哪里最依赖经验。一条标准工单链路大致是用户提交工单 - 工单分类与优先级判断 - 分派给对应处理人 - 处理人排查和回复 - 用户确认关闭 - 工单归档与复盘。传统系统里前两步基本靠人肉处理环节靠老师傅的经验复盘环节则纯靠运气。AI 能真正发挥价值的恰恰不是那个“自动回复机器人”而是把前两步做到全自动把中间的处理环节从“人找知识”变成“知识找人”最后把复盘从“月底翻 Excel”变成“实时智能质检”。我自己落地的几套系统里效果最明显的是这么几块第一工单自动分类与紧急程度识别准确率能做到 90% 以上直接省掉了原来专门干分拣的班组第二基于 RAG 的知识库问答一线客服不需要再翻几十篇 SOP直接问系统“这个故障怎么处理”就能拿到带引用来源的答案第三AI 辅助生成回复草稿处理人只需要改几个字就能发出去单张工单的处理时长平均降了 40% 左右。这几个场景不是拍脑袋选的而是按“频次高、规则明确、知识密度高”三个标准筛出来的。1.2 为什么不能把工单系统直接交给大模型裸奔早期不少人图省事直接把用户工单内容扔给大模型让模型自己去分类、自己回答。Demo 阶段看着很惊艳但生产环境跑一阵就会发现问题大模型会一本正经地胡说八道尤其是面对企业内部那些非公开的业务逻辑时它没有可靠的知识来源输出格式不稳定同一个分类逻辑今天返回 JSON 明天给你解释一段权限没法控制谁能看什么单据完全失控还有成本问题每次调用都在烧钱工单量一大根本扛不住。所以我在架构上一直坚持一个原则AI 是管道里的一段处理器而不是整个管道本身。工单的存储、流转、权限、通知这些核心逻辑必须仍然由传统系统来保证AI 做的事情是“增强”而不是“替代”在关键节点上加一层 AI 能力并且所有输出都带人工兜底和审核机制。用专业一点的话说就是让大模型当“智能副驾”而不是当“自动驾驶”。这套思路落到技术选型上就是别只盯着某一个超大模型而是按任务拆分来选型分类这类结构化输出任务用小模型加 Pormpt 约束就够复杂语义理解和生成回复用更强的模型企业内部知识问答必须上 RAG用向量检索召回相关文档再让模型做总结模型只负责“读”和“说”核心事实由检索到的文档来兜底。1.3 AI 工单系统的整体架构选型我在生产中使用的典型架构大概是这样的前端工单创建入口Web、小程序、邮件、IM 群聊都可以接入- 消息网关统一收单 - 工单引擎负责建单和状态流转 - AI 处理层分类、标签、优先级、知识检索、回复生成- 人工审核台 - 工单数据库和向量数据库 - 模型服务层。模型服务层这块建议不要只绑一家模型。实际生产里我会同时保留两个模型通道一个通用对话模型负责生成、总结、对话类任务一个嵌入模型负责把文本转成向量做检索。如果企业对数据敏感或者在线 API 不稳定还需要考虑私有化部署一套开源模型作为兜底。需要说明的是模型的选择不是越贵越好我见过不少方案拿顶配模型做文本分类结果成本翻了几倍效果还不如一个精心设计的开源小模型加正则约束。成本、延迟、效果三者平衡才是生产级方案的核心考量。2. 核心技术细节与模型选型解析2.1 工单自动分类小模型加大模型混合方案工单分类是我认为最适合作为 AI 化第一步的场景因为它是典型的“输入短文本、输出结构化标签”的任务价值直接、效果可量化。生产级实现我建议走混合方案先用关键词和规则引擎把能确定的单据快速分掉比如包含“密码重置”“无法登录”这种强关键词的剩下的模糊语义部分再交给 LLM 分类。规则层的好处是稳定、零成本、可解释适合处理那些高度标准化的企业场景。但规则写多了会变成“屎山”维护成本越来越高所以规则只覆盖高频常见的那一部分主力还是靠模型。模型层我用的是“小模型 强 Prompt 输出校验”的组合。小模型比如 7B 到 14B 参数级别的开源模型就够用关键是 Prompt 要给足上下文和约束。这里分享一个实践有效的 Prompt 模板思路你是一个工单分类引擎。根据工单内容输出以下字段 - category只能从给定列表中选一个列表为网络故障、账号权限、硬件报修、软件报错、数据查询、其他 - priority只能取 urgent/high/medium/low 之一 - tags0到3个短标签用逗号分隔每个标签不超过4个字 判断依据 1. 如果提到完全无法工作且影响多人priorityurgent 2. 如果提到登录、密码、权限相关category账号权限 3. 其他情况按常识判断 输出格式为严格 JSON不要输出任何其他内容。 工单内容{{ticket_content}}关键点在于“输出格式为严格 JSON”这句。但千万别以为加了这句模型就老实了生产里一定要再加一道解析和校验解析失败就自动重试一次重试仍失败则走人工兜底队列。我见过太多团队忘了做这一步上线第一天就有一堆分类结果在预处理阶段报错。2.2 RAG 知识库企业工单问答的根基工单处理的本质是让处理人在最短时间内找到最准确的解决方案。企业内部的知识往往散落在 SOP 文档、历史工单、产品手册、FAQ 里传统答案是让新人自己去翻、去问、去试错而 RAG 能把这个过程压缩到几秒钟。RAG 的实现说起来不复杂先离线把企业文档切片、向量化后存进向量数据库在线阶段把用户问题向量化在知识库里做相似度检索取回 top-k 相关片段再把“问题片段”一起交给大模型生成回答。但生产里做好很难坑主要集中在切片策略和检索质量上。文本切片这块别迷信“固定多少 token 一切”的懒办法。我实践下来更推荐“按语义结构切片”——比如 Markdown 的标题层级、PDF 的章节、表格的完整行列保证每个切片是一个语义相对完整的单元。切完之后再补一步给切片生成一个摘要检索的时候同时匹配摘要和原文召回率会明显提升。向量化模型我用的是通用中文 embedding 模型在内部文档上效果不错。检索回来的片段不要一股脑喂给大模型先做一次重排Rerank只保留最相关的 3 到 5 个片段不然大模型容易“看花眼”。RAG 的数据更新也是个容易被忽略的点。企业文档每周都在变如果索引不做增量更新系统会逐渐“变蠢”。我通常建一个定时任务每小时扫描一次文档源目录文件有变更就重新切片和向量化同时把旧的向量删掉。这个机制一开始就要设计好不然后期补很痛苦。2.3 Agent 化自动处理让 AI 不只是聊天工单系统里真正体现“AI Agent”价值的是让模型能调用工具、主动完成多步操作而不是只生成一段文字。比如一个“申请加急处理”的工单AI 不只要识别意图还要能自动查一下当前处理人的负载情况判断是否真的需要加急再触发对应的审批流程。生产级 Agent 设计我坚持一个原则每一步工具调用都要可观测、可回退、可中断。系统里跑一个 Agent 任务时要把它的推理过程、调用记录、执行结果全部落到日志里一旦出现异常能随时人工接管。还要给 Agent 设“安全边界”比如只能调用白名单内的 API、只能读取指定范围的单据字段、不能执行删除类操作。这不是技术限制而是管理约束生产环境里数据安全比智能更重要。我实现过的一个典型流程是用户提交工单后Agent 先读取工单内容调用分类服务打标签然后去知识库检索解决方案如果解决方案置信度够高就直接生成处理建议并附上引用文档 ID然后转人工审核如果置信度不够就标记成“需要专家处理”自动推荐几位历史处理过类似工单的人。整个过程用户是无感的但每一步都有日志出了问题能追溯。3. 实操过程与核心环节实现3.1 数据准备与工单数据清洗AI 工单系统的模型效果七分靠数据。开始动手前先把历史工单数据导出来做一遍清洗这是最花时间但最值得花时间的事。清洗的核心动作有去掉工单里的个人信息手机号、邮箱、身份证号要脱敏去掉无实际内容的废话段落比如“你好”“谢谢”这种寒暄修正错别字和口语化表达最后把所有工单打上标准化的分类标签。历史数据里有一个很好的“免费标注工具”——已关闭的工单和用户的最终评价。如果一张工单被用户评价为“解决满意”那这条数据就是一份天然的优质训练样本工单描述是输入最终处理方案是输出。我做过一个项目完全没花钱请人标注就用一年的历史工单数据把分类模型的基础打出来了。数据量方面分类任务有 5000 条左右标注好的样本就基本能出效果问答生成类任务要求高一些需要万级别的高质量问答对。如果企业内部没有这么多历史数据一个替代方案是用大模型做“数据增强”——把已有工单改写、扩写、翻译成不同说法生成一批虚拟样本再用规则过滤掉明显质量差的。这个方法能解燃眉之急但注意增强数据占比不要超过总量的 30%否则模型会学到重复的模式。3.2 向量库与模型服务的搭建落地的第一步是搭基础设施。向量数据库我常用的是开源的 Milvus 或者轻量级的 Chroma看数据规模来选。数据量在百万行以下Chroma 足够到了千万级就得用 Milvus 这类分布式方案。嵌入模型的选择上要实测对比几个候选模型在业务数据上的召回效果别只看榜单分数企业内部术语多通用模型表现不一定好。模型服务的部署我建议统一走一个模型网关对外提供 OpenAI 兼容的 API 格式内部再转发到不同的模型后端。这样上层业务代码不感知模型变化今天用 A 模型明天换 B 模型只需要改网关配置。网关层再统一做限流、熔断、日志记录和成本统计方便月底算账。这里给一个简单的服务调用示例用 Python 的 requests 直接调模型网关import requests import json def classify_ticket(content: str) - dict: prompt f 你是一个工单分类引擎。根据工单内容输出 JSON 格式分类结果。 工单内容{content} 输出格式{{category: ..., priority: ..., tags: [...]}} 只输出 JSON不要输出解释。 resp requests.post( http://model-gateway.internal/v1/chat/completions, json{ model: ticket-classifier, messages: [{role: user, content: prompt}], temperature: 0.1, max_tokens: 200, }, timeout10, ) resp.raise_for_status() text resp.json()[choices][0][message][content] # 解析 JSON失败则重试或走人工兜底 try: return json.loads(text) except json.JSONDecodeError: # 再次调用或标记人工处理 return {category: unknown, priority: medium, tags: []}注意这里 temperature 必须设得很低分类任务是确定性任务别让模型发挥想象力。3.3 人工审核台AI 与人的协作界面很多人做 AI 工单系统只关注模型端把“人工审核”当成一个简单的“是/否”按钮这是大忌。人工审核台是整个 AI 系统能落地的信任基石设计得好员工愿意用系统效果会越来越好设计得差审核员烦了就直接不用AI 就废了。我设计的审核台核心原则是“AI 给答案人来确认并对错题反馈”。界面上左侧显示原始工单内容右侧显示 AI 生成的分类、优先级、标签、推荐回复、引用文档。审核员可以一键采纳也可以修改后再采纳修改的结果要回传到标注库成为后续优化模型的新数据。这个反馈闭环是系统持续变聪明的关键。另外要加一个“置信度显示”。模型输出分类时可以让它同时输出一个 0 到 1 的置信度分数。审核台里置信度高于 0.9 的工单可以直接自动处理低于阈值的才进入审核队列。这样做的好处是AI 只处理自己有把握的部分人只处理复杂边缘的部分两边都轻松。实际测试里这个策略能把需要人工介入的工单量降到总量的 30% 左右而准确率还能保持在 95% 以上。3.4 Prompt 调优与模型微调的分界点做 AI 工单系统免不了被老板问“为什么不微调模型”我的回答是先别急把 Prompt 调到极限再说。微调一个模型需要干净的标注数据、GPU 资源、评估流程周期至少两三周而 Prompt 调优当天就能见效。很多场景下Prompt 调优加上 RAG 已经能解决 80% 的问题。什么情况下才需要微调当你的业务有固定的表达模式、特殊的术语体系且 Prompt 无论怎么调都稳定不下来的时候。比如某个行业的工单有大量缩写和黑话通用模型看不懂这时候用几千条标注样本做一次 LoRA 微调效果会有明显跃升。微调的目标不是“让模型变聪明”而是“让模型懂行话”。Prompt 调优时我有两个比较好用的技巧一是“少样本示例”要挑边界案例别挑典型案例模型看多了典型的反而容易产生偏见二是每次改 Prompt 都要跑一遍固定的评测集对比改前改后的准确率别凭感觉说“效果变好了”。我会维护一个 200 条左右的标准评测集覆盖各类工单的典型、边界和异常场景这就是工单系统的“回归测试”每次改动都拿它跑一遍心里才有底。4. 效果评测与可投入生产的质量门槛4.1 工单 AI 系统的核心评测指标判断一套 AI 工单系统能不能上线不能只靠“看起来挺聪明”的 Demo 观感必须有可量化的指标体系。我一般分四个维度看准确率、覆盖率、采纳率、效率提升值。准确率最容易理解就是 AI 分类或生成的答案正确比例通常人工抽检来评估。覆盖率关注的是“有多少比例的工单 AI 敢处理、能处理”如果一个系统准确率 99% 但只敢处理 10% 的工单那也没多大价值。采纳率是审核台里人工直接采纳 AI 建议的比例它反映的是 AI 和实际业务场景的匹配度。效率提升值最直接——对比上线前后平均处理时长、首响时长、人工参与度这些业务指标的变化。这里列一个我实际用过的评估表参考指标计算方式优秀线合格线分类准确率抽检中正确数/总数95%90%自动处理覆盖率AI 直接处理的工单数/总工单数60%30%回复采纳率人工采纳 AI 草稿数/生成数70%50%平均处理时长下降(原时长-新时长)/原时长40%20%这四个指标不要只看一次要按周监控趋势。AI 系统上线后不是一劳永逸的业务在变、用户在变效果会波动监控体系必须建起来。4.2 线上评测与人工抽检机制线上评测的做法是AI 的每一条输出在人工审核台处理时都会被“评分”。我习惯设计三个按钮采纳AI 说得对、修改AI 说得差不多但我要改、推翻AI 说错了。这三个按钮的数据就是最真实的线上评测集比任何离线评测都有价值。每周我会让业务专家抽检 100 条被标记为“修改”或“推翻”的记录分析错误原因归纳成几类分类边界模糊、知识库没有相关内容、Prompt 理解偏差、模型幻觉。每一类错误对应不同的优化手段分类边界问题要补充训练样本知识库缺失要补文档Prompt 理解偏差要调整指令模型幻觉则要考虑加强 RAG 的引用约束。这个循环每周跑一次系统的效果就会慢慢往上走。注意抽检不是为了“惩罚模型”而是为了建立持续改进的机制。我在项目里一直强调AI 系统的效果不是上线那一刻决定的而是上线后持续运营决定的。没有反馈闭环的 AI 系统三个月后就是一堆没有人用的垃圾代码。4.3 安全、权限与合规的底线设计工单系统里都是真实业务数据很多还涉及用户隐私和公司敏感信息所以安全设计从第一天就是硬要求。我坚持这样几条底线第一模型服务全部走内网调用不允许工单数据出内网如果必须用云 API那就要先做数据脱敏再调用第二AI 生成的内容在写入工单前必须经过敏感词过滤和数据校验防止把脱敏前的数据通过回复泄露出去第三AI 的所有操作留痕包括输入了什么、调用了哪些工具、生成了什么结果审计日志至少保留半年。权限控制上AI 生成的回复内容范围不能超过当前处理人的权限范围。比如普通客服生成的回复里不能包含财务相关信息AI 在做知识检索时也要做权限过滤只从该角色有权访问的文档库里检索。这块实现起来并不复杂在 RAG 的 metadata 里标记文档的可见范围检索时带上角色过滤条件即可。但很多团队不做造成的后果是越权信息通过 AI 回复泄露出去。5. 常见问题与排查技巧实录5.1 模型输出不稳定同样的工单分类结果不一样这是生产环境最常见的坑。同一个工单内容上午分类是 A下午分类变成了 B这在纯规则系统里不可想象但在 LLM 里却很常见。原因通常是 temperature 参数没调低或者 Prompt 里给了模型太多自由发挥空间。解决办法把分类类任务的 temperature 调到 0并且加上输出约束语言。如果还不行就给模型看几个固定示例Few-shot让它的输出风格被“锚定”。在意系统里还会加一道“结果归一化”逻辑比如标签和分类名都统一走字典映射模型就算输出别名也能归一到标准值。5.2 RAG 检索结果不相关AI 回答胡编乱造RAG 系统上线后最怕的就是“明明有知识库AI 却不用自己瞎编”。排查思路分三步第一步看检索阶段把用户问题的向量和知识库片段的相似度分数打出来如果 top1 的分数都很低比如低于 0.5说明知识库里根本没有相关内容或者问题表达和文档表达差异太大第二步看重排阶段确认 top-k 的片段确实和问题语义相关第三步看生成阶段确认 Prompt 里有没有明确要求“只能基于给定的文档片段回答不要使用训练知识”。踩过几次坑之后我总结出一个规律RAG 的问题 80% 出在“查不到”而不是“答不好”。所以优化顺序一定是先优化检索再做生成优化。检索优化里最立竿见影的一招是“混合检索”同时用向量检索加关键词 BM25 检索再把两路结果合并重排。这样即使向量匹配不好关键词也能兜住。5.3 Agent 自动处理出错连锁反应难控制Agent 类的工单自动处理最大的风险是“一步错、步步错”。比如 AI 判断一张工单需要加急自动触发了加急流程但实际用户根本没那么急结果浪费了处理资源还影响了其他工单的时效。我的经验是给 Agent 每类操作设定不同的“自动阈值”高风险的操作用高置信度门槛低风险操作用低门槛。还有一道保险是“二次确认制”。当 Agent 要执行一个高风险动作时不要直接执行而是把执行建议推送给人工审核台由人点确认后才执行。别觉得这样会降低“智能感”在真实生产环境里稳定的确定性远比花哨的智能重要。5.4 模型响应慢工单处理等不起工单系统是强交互场景用户等着回复处理人等着信息模型响应如果动不动就 5 秒以上体验就会崩。模型延迟优化有几个手段模型服务做并发和流式输出分类等短任务用小模型延迟能压到 300 毫秒以内生成类长任务用流式输出提前展示首字对高频请求做缓存重复问题的答案直接命中缓存。我在生产里还加了一个降级策略当模型服务延迟超过阈值或者服务不可用时自动降级到纯规则模式规则覆盖不了的工单直接转人工。这个降级开关要提前测试好别等线上出事了才发现降级逻辑本身有 Bug。6. 一些这次实践的个人心得从最早把 AI 当作一个“聊天机器人”塞进工单页面到后来真正把 LLM、RAG、Agent 这些能力织进工单处理的主链路我最大的体会是AI 工单系统本质上不是模型问题而是工程问题。模型选型、Prompt 调优只是表层功夫真正决定成败的是你有没有一套可靠的数据管线、一个清晰的人机协作界面、一套完善的效果评测和监控机制。如果你正准备在公司里做类似的系统我的建议是别贪大求全先选一个场景跑通闭环两个星期内做出一个“工单自动分类 知识库检索”的 MVP接到真实工单流里跑让业务同事真实使用并反馈。等这个闭环稳定了再往里面加“自动回复生成”、加“Agent 自动处理”、加更多场景。慢就是快一上来就想做个全能 AI 助手大概率会掉进无穷无尽的细节坑。最后分享一个非常实用的小技巧在所有 AI 生成内容的接口层统一记录“用户最终采用了什么结果”。这个数据是优化系统的金矿——拿它来做模型的坏例分析、做 Prompt 的迭代依据、做知识的缺口发现比任何外部评测集都更贴合你的真实业务。我每一次做模型升级或者新功能上线第一件事就是拉这个数据来找灵感。
返回列表