
做过大模型应用的人基本都踩过这个坑:C 端用户说话天马行空,口语、热词、省略句满天飞,规则写多少都补不完;内部用户满口专属黑话、简称、代称,模型认不出来,意图直接判偏;一接上 ReAct 链路,更是一步错步步错,后续执行全翻车。
想要让意图识别稳下来,靠堆规则硬扛治标不治本。真正有效的做法,是搭一套分层治理 + 动态进化的完整体系 ------ 从输入源头到执行链路层层兜底,还能越用越准。
一、先给场景分层:别用一套规则 "通吃" 所有用户
用户群体不同,输入的 "混乱程度" 天差地别,治理力度必须按需分配,不能一刀切:
- C 端普通用户:输入自由发散、表述五花八门,属于高规则需求场景,必须配足输入约束与治理机制,先把杂乱的表达 "收编规范"
- 垂直 / 内部专属用户:业务场景固定、话术相对统一,输入更规范,属于低规则需求场景,轻量化治理即可
两类场景最终都可接入 ReAct 执行链路;输入越杂、规则需求越高,越需要完整的输入治理体系打底。
二、三大核心组件:把所有 "不确定" 都变成 "确定项"
针对高规则需求的复杂场景,三个抓手直接解决核心痛点,把模糊的规则落地成可执行的能力:
- **划清职责边界 ------ 避免规则 "打架"**规则最忌 "人人都能加、个个都能改",最后越堆越乱、互相冲突。先明确规则制定方、生效范围、模块权责,谁管输入规范、谁管意图判断、谁管执行逻辑,权责一清二楚,规则体系才不会失控。
- **Few-shot 样本库 ------ 模型的「标准答案手册」**再详尽的规则,也写不完所有边界 case。把典型的歧义输入、代词消解、异常话术、特殊表达都整理成 Few-shot 示例,相当于给模型一本 "错题本 + 标准答案",遇到模糊指代、奇怪表述这类疑难杂症,直接照着样本的逻辑处理,稳定性大幅提升。
- **RAG 对话召回 ------ 给模型装上「记忆回溯器」**长对话里用户常说 "它""刚才那个""之前说的方案",模型一 "失忆" 就容易断章取义,判错意图。用 RAG 机制召回久远的对话历史,补全上下文信息,意图识别才能基于完整语境做判断,不会因为信息缺失跑偏。
三、一条标准化链路:从输入到执行,步步精准
把所有能力串成一条清晰的流水线,用户输入进来,每一步都为准确率铺路:用户输入 → 输入标准化(基于词汇表做术语归一、别名映射) → 精准意图识别 → ReAct 执行循环
简单来说就是:先靠词汇表把用户的 "口语、黑话、简称" 翻译成模型能精准识别的标准表达,再做意图判断,最后交给 ReAct 去执行。前一步做得越规范,后一步就越准确。
四、核心难点突破:让词汇表 "动态进化",而不是越堆越臃肿
整个体系里,词汇表是输入标准化的核心,但也是最难啃的骨头 ------ 不是什么词都能往里塞,词库一旦臃肿杂乱,反而会干扰识别。
-
真正的难点:怎么划定词汇的准入红线?怎么区分 "高频无效口语" 和 "有效领域术语"?怎么控制词库质量,避免越堆越乱?
-
两步走落地解法:
- 冷启动人工打底:初期人工注入一批核心领域词汇、常用简称、别名映射,先把基础盘稳住
- 运行中自动迭代:上线后持续统计多用户高频提及的有效术语,自动筛选纳入识别词库,让词库跟着业务和用户习惯一起成长
这套思路的本质,是从 "靠人力堆规则补漏洞",变成 "靠体系化机制兜底 + 自动化迭代进化"。前期搭好框架,后期越用越省心,意图识别的准确率也会跟着持续提升。