目录

大白话讲透「意图识别置信度」:分数怎么来、该怎么卡阈值、工程怎么落地

前言

一、先用人话定义:意图置信度到底是个啥?

类比理解

二、不同意图识别方案,置信分数分别从哪来?

1. 大模型 Prompt 式意图识别(你现在 Copilot / 本地 LLM 最常用)

运行逻辑

置信度两种获取方式

2. 传统分类模型(BERT、TextCNN 训练专属意图模型)

3. 词典 + 规则匹配(极简硬编码规则)

三、拿到原始置信分数后,3 种通用修正计算方案

方案 1:直接取用最高分(绝大多数 Agent 路由默认方案)

方案 2:最高分与次高分差值修正(解决意图打架)

方案 3:长度 & 关键词加权修正(贴合实际使用场景)

四、核心落地:置信阈值分层标准(直接抄进你的 Skill.md)

不同业务场景阈值微调参考

五、结合你现有的 Skill 架构:置信度完整运行全链路

反面案例(不加置信度管控的事故)

六、新手写 Skill 最容易踩的 3 个置信度坑

七、收尾总结


前言

做 AI 本地 Agent、对话机器人、技能路由的时候,你一定遇见过这种糟心事: 用户随口一句模糊话术,AI 乱匹配技能;一句话同时沾两个功能,模型瞎选一条执行;指令写得模棱两可,程序直接触发错误文件操作、错误接口调用。 想要解决这个问题,核心抓手就是意图识别置信度。 不用复杂公式堆砌,全程生活化类比,从「置信度是什么→分数怎么生成→怎么计算打分→阈值划分 + 真实业务落地规则」一次性讲明白,适配你之前搭建的 File System Skill 技能路由场景。

一、先用人话定义:意图置信度到底是个啥?

类比理解

意图分类模型当成公司前台接待员: 用户说话 = 访客口头描述需求 各个意图(整理文件、MD 转 HTML、查看目录树、闲聊问答)= 公司不同办事窗口 置信度 = 前台对你办事窗口的确定程度

  • 访客:“帮我把桌面所有图片、文档分文件夹收好” → 前台百分百确定你要去【文件整理窗口】,置信度接近 1.0
  • 访客:“处理一下文件夹里面的网页文件” → 前台分不清你是要转 MD 成网页,还是整理网页格式文件,心里摇摆不定,置信度大概 0.5 左右
  • 访客:“今天天气咋样” → 和所有功能无关,各个意图分数全部极低

数值固定区间:0 ~ 1 1 = 模型板上钉钉认准这个意图 0 = 完全不沾边、纯无关文本

放到你的 Skill 架构里: 你靠意图匹配分发对应 Python 脚本,置信度就是一道安全闸门,拦住模型 “瞎匹配技能” 的行为。

二、不同意图识别方案,置信分数分别从哪来?

市面上一共三种主流做意图识别的方式,每种置信度原生来源完全不一样,分开讲清楚。

1. 大模型 Prompt 式意图识别(你现在 Copilot / 本地 LLM 最常用)

运行逻辑

给大模型固定提示词:判断用户指令属于【文件整理、MD转HTML、查看目录树、无关闲聊】其中哪一类,同步输出置信分数

置信度两种获取方式

1)模型自评打分(最简单,效果一般) 让 LLM 自己给自己的判断打 0~1 的分数。缺点:大模型很容易盲目自信,模棱两可的句子也无脑给到 0.9 高分,容易误触发技能。 2)对数概率 Logprobs 换算(客观标准方案) 模型输出对应意图标签词汇时,会记录每个文字的生成对数概率,把整条标签的平均对数概率做指数运算,换算成 0-1 的置信值。数值由模型底层运算产生,不存在主观乱打分,工业场景首选。

2. 传统分类模型(BERT、TextCNN 训练专属意图模型)

模型最后一层会输出一个概率分布数组,数组所有数字相加总和 = 1。 举例:用户一句话经过模型计算输出

文件整理 MD 转 HTML 查看目录树 闲聊
0.87 0.09 0.03 0.01

数组里面最大值 0.87,就是这条语句对应「文件整理」意图的置信度。 通俗讲:模型把 100% 的信任值拆分分给所有意图,占比最高的那一份,就是本次判定的置信分数。

3. 词典 + 规则匹配(极简硬编码规则)

完全不用模型,靠关键词匹配判定意图:

  • 命中精准关键词(“整理桌面文件”):人为固定置信度 = 1.0
  • 模糊关键词命中(只出现 “整理” 二字):手动设定置信度 0.6~0.8 规则方案的置信度是人硬性规定的,不是算法计算出来的。

三、拿到原始置信分数后,3 种通用修正计算方案

原始裸分不能直接拿来用,结合业务场景二次加工,三种方式按需选择。

方案 1:直接取用最高分(绝大多数 Agent 路由默认方案)

直接拿模型输出概率里最大的值当作最终置信度 上文例子最高分 0.87,最终置信度 = 0.87 适用场景:常规工具分发、普通文件操作 Skill,够用、最简单。

方案 2:最高分与次高分差值修正(解决意图打架)

同一个用户话术,两个意图分数接近,模型极易选错。 公式:最终置信 = 最高分 - 第二名分数 示例: 文件整理 0.52,MD 转 HTML0.45,差值只有 0.07 即便最高分 0.52,修正后真实可用置信仅有 0.07,直接判定为模糊指令,拒绝执行。 ✅ 非常适合你的文件系统技能:防止一句话同时匹配两个脚本,造成误操作。

方案 3:长度 & 关键词加权修正(贴合实际使用场景)

在模型原始分数基础上手动加权微调:

  1. 语句包含 Skill 内置精准关键词 → 分数 +0.1(上限 1.0)
  2. 用户指令极短、语义模糊(单句话只有两三个字)→ 分数 ×0.8 扣分降级
  3. 语句出现多个意图关键词混杂 → 整体分数 ×0.7 降级 举例子: 原生分数 0.73,句子带有 “自动归类” 精准关键词 → 最终置信 = 0.73 + 0.1 = 0.83

四、核心落地:置信阈值分层标准(直接抄进你的 Skill.md)

置信数字本身没有意义,搭配阈值规则才有管控作用,结合文件操作系统技能给出分层标准:

置信区间 可信度等级 对应处理策略(适配文件操作)
≥ 0.85 极高可信 自动匹配对应 Python 脚本,静默执行操作,无需询问确认
0.70 ~ 0.85 中等可信 告知 AI 即将执行的操作,弹出二次确认,用户回复 “确认” 才运行脚本
0.50 ~ 0.70 低可信、语义模糊 禁止自动运行代码,反问用户:我识别到你可能需要 XX 功能,请明确你的需求
< 0.50 不可信 / 无关对话 直接丢弃意图路由逻辑,回归普通聊天对话,不触碰任何本地文件脚本

不同业务场景阈值微调参考

  1. 文件整理、批量移动文件(存在误删风险):推荐阈值底线 0.7,低于 0.7 一律要人确认
  2. 查看目录树(只读行为,无破坏性):阈值可以放宽到 0.6
  3. MD 转 HTML(纯生成文件,无销毁原有数据):阈值 0.65 即可

五、结合你现有的 Skill 架构:置信度完整运行全链路

回顾你的项目结构:用户输入指令 → 意图识别 → 路由对应 py 脚本 → 安全校验 → 执行文件操作 加入置信度之后完整闭环流程:

  1. 用户下发自然语言指令
  2. LLM 输出各个意图原始概率值,计算最终修正置信分数
  3. 根据阈值做第一层分流
    • 高分:直接匹配对应脚本
    • 中分:等待用户二次确认
    • 低分:回滚对话,让用户补全需求
  4. 匹配成功后,再执行 SKILL.md 里的系统目录黑名单、路径安全校验两道关卡
  5. 脚本执行本地文件逻辑,结果返回给用户

反面案例(不加置信度管控的事故)

用户输入:“处理一下项目里的 md 文件” 模型两个意图分数:MD 转 HTML (0.61)、文件整理 (0.58) 没有置信差值校验:模型选中 0.61 的转换脚本; 加入管控后:两个分数差距极小,置信修正值只有 0.03,AI 主动反问用户,避免错误批量转换全部 md 文档。

六、新手写 Skill 最容易踩的 3 个置信度坑

  1. 无脑信任模型给出的分数 大模型天生有 “过度自信” 问题,模糊话术也经常输出 0.9 以上高分,一定要搭配「次高分差值校验」兜底。
  2. 所有意图共用一套固定阈值 只读类(查看目录树)和高危修改类(移动 / 删除文件)必须分开设置阈值,高危行为阈值拉高、从严管控。
  3. 只在代码里写阈值,不写入 SKILL.md 规范 把置信阈值、分级处理规则写到你的技能总文档 SKILL.md 中,属于技能安全规范的一部分,AI 加载技能时同步读取这套打分规则。

七、收尾总结

意图置信度本质就是AI 自己判断 “有没有读懂你的指令” 的打分表。 单纯依靠大模型原生意图分发,相当于把门敞开任由 AI 自由操作本地文件;依靠置信度划分阈值,就是给技能路由装上一道可控的门禁。 不用深究底层概率数学公式,在你做本地 Agent 自定义 Skill 这件事里,抓住两个核心即可:

  1. 分数用来区分「确定执行 / 要人确认 / 拒绝执行」
  2. 高危文件操作拉高置信门槛,只读查询类功能适度放宽标准

后续你在 SKILL.md 里可以直接新增一块【意图置信管控规范】章节,把本文的阈值标准写进去,整套文件系统技能的安全性直接拉满。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐