Agent 的意图识别模块如何实现?
未标记
考查重点:意图分类、槽位与处理路由。定义业务意图及必填参数,规则或模型输出结构化类别;低置信或缺参数先澄清,校验后路由至具体处理器
本题目录
参考答案
核心回答
意图识别模块把当前请求和必要会话状态,转换成可校验的任务类型与参数,再交给后续路由。实现时我会把它分成四步:
- 定义业务意图与边界:根据真实请求和系统能力确定类别,写清每类做什么、需要哪些字段,并保留无法识别和需要澄清的情况。
- 选择识别方式:明确指令可以用规则;类别稳定、标注充分且延迟要求高时可以训练小模型;表达开放或冷启动时可以用 LLM 配合类别说明和 few-shot。多种方式可以组合。
- 输出结构化结果并校验:返回意图、实体或槽位、缺失字段及下一步动作。类型、枚举和业务字段由程序检查,缺关键条件就澄清,多意图则按可执行子任务拆分。
- 更新状态并路由:把确认过的信息写入状态,通过受控映射选择查询、检索或其他流程;后续根据工具结果继续处理,识别错误和用户纠正再回流评测。
例如“查一下布洛芬销量”可以识别为业务数据查询,但缺少时间范围时应先问清,不能直接猜时间并执行 SQL。意图识别决定用户想做什么,实际执行权限仍由工具和业务服务检查。
展开说明
1. 先确定模块的输入和输出
输入通常包括最新用户表达、当前任务阶段、已经确认的实体与参数,以及必要的近期对话。若用户说“那上个月呢”,就需要知道上一轮正在查询哪个商品和指标;如果上一轮对象尚未确定,就不应凭空补齐。历史信息也要记录来源和是否仍然有效,避免把旧任务条件带进新任务。
类别应从业务可处理的目标出发,而不只是按关键词命名。以研搜场景为例,可以区分内部业务数据查询、私有文档问答和公开资料检索,再识别用户是否要求生成报告。它们的区别是目标与数据来源;“药品”这个词本身不足以判断应该查数据库、查知识库还是查网络。
输出可以约定为以下结构,示例只说明契约:
{
"intents": ["business_query"],
"slots": { "product_name": "布洛芬", "metric": "销量", "period": null },
"missing_fields": ["period"],
"next_action": "clarify"
}
意图表示要完成的目标,槽位表示执行所需参数,next_action 表示继续、澄清或回退。后续还可以通过商品目录把名称解析成唯一对象、把时间表达规范化;不要让识别模型直接编造数据库主键或任意节点名。
2. 规则、小模型和 LLM 按约束选择
规则适合边界明确、要求高精度的控制指令或约束,例如当前任务中的取消、重置。它容易解释,但面对同义表达和复杂上下文,单纯关键词匹配容易混淆。
监督分类器适合类别相对稳定、已有足够标注数据的场景,可以训练文本分类模型,再单独或联合提取槽位。需要看各类数据覆盖和类别变化成本;新增业务类别后,仍要补数据与重新验收。
LLM 可以在输入中接收类别定义、边界说明、必要状态和代表例子,再按 Schema 输出分类与参数,适合冷启动和表达多样的任务。代价是调用延迟、费用和输出波动;结构约束解决可解析性,识别是否正确还要靠业务样本验证。
一种组合是规则处理明确控制指令,小模型处理稳定高频类别,模糊或新表达再交给 LLM;也可以直接使用一个 LLM 识别节点。是否增加多层识别,应看误判、延迟和成本,不能默认层数越多越好。
3. 缺信息、歧义和复合请求要有明确行为
缺少必填槽位时,先从可信且相关的会话状态补全,仍缺失就询问用户;可选字段可以使用已说明的默认值。例如“昨天”需要结合业务时区和当前日期解析,“查销量”还需要商品范围与统计口径。格式正确不表示这些条件已经明确。
多个意图相近时,可以给出简短澄清选项;超出系统范围则返回无法处理或交给合适入口。允许使用分类得分辅助判断,但阈值要结合验证集上的误分和拒识代价选择,不能把 LLM 自报的置信度直接当作准确概率。
复合请求需要保留目标之间的关系。例如“查上个月销量,再结合内部补货规则给出分析”,包含数据查询与文档查询。如果它们的对象和范围已明确,可以分别获取信息;若补货规则检索依赖先确定商品类别,就先完成相应步骤。不能强行把所有复合请求压成一个标签,也不应无差别启动全部分支。
4. 识别结果怎样进入后续流程
识别节点可以把意图、槽位、缺失字段和待确认状态写入工作流 State;条件边读取这些字段,从预先登记的处理器中选择下一步。需要澄清时进入对话分支,信息齐全时进入相应工具或子图。路由映射由程序控制,执行前继续检查业务条件和权限。
研搜参考代码通过专家 description 让主 Agent 判断调用哪类助手,没有单独展示一套训练好的意图分类器。若希望分类结果能单独评估和调试,可以增加上述显式识别节点;这属于一种扩展设计,不是项目已有模型训练结论。
评测时把意图识别与最终任务分开观察。前者看各类别的精确率、召回率和混淆情况,槽位是否完整正确,以及应拒识或澄清的请求有没有被直接执行;后者检查这些输出能否支撑任务完成。错误样本按类别边界、上下文缺失、实体解析和参数校验分别分析,再补数据或调整规则。
常见追问
few-shot 示例怎样选?
选择能说明类别边界的代表表达,尤其是相近意图、缺字段、无需调用和复合请求,并保持标签与字段格式一致。例如“公开药品政策”和“公司药品销量”词语接近但数据来源不同,比重复多个简单正例更能说明边界。示例用开发数据选择,最终用未参与调整的样本验证。
为什么不让主 Agent 直接决定调用哪个工具?
任务简单时可以直接决定,不必额外增加分类调用。独立意图模块适合需要稳定分类口径、多个分支复用、单独评测或更精确状态控制的场景。它提供的是可观察的中间结果,不会自动提高语义判断能力。
用户反馈说“你理解错了”,怎么处理?
先修正当前意图和相关槽位,清除不再适用的条件,再决定是否重跑后续步骤。反馈记录应保留原表达、必要上下文、原判定和修正原因,经核对后用于补充样本;不能把每条用户反馈不加判断地直接作为训练标签。
对应教程
- LangGraph API:图与状态:阅读 State Schema 和节点更新,理解意图、槽位与工具结果应怎样成为后续节点的明确输入。
- LangGraph API:节点、边与进阶:查看条件边如何根据状态选择已登记的处理节点,理解识别与路由之间的连接。
- 研搜配套源码:专家描述与主提示词:对照公开搜索、数据库和内部文档的角色边界;本文进一步展开了独立意图输出、澄清与评测的设计。
参考资料
- 国内:JavaGuide:大模型结构化输出与 Function Calling:依据自然语言意图到结构化参数的映射,说明正文中识别结果为何还需字段与业务校验。
- 国内:zero2Agent:工具管理与意图参数匹配:借鉴缺字段、枚举转换、上下文补全和复合指令的处理,说明正文中识别结果如何形成可执行输入。
- 国内:WeThinkIn:Agent 设计模式与工作流编排高频考点:依据意图、槽位与确认状态在工作流中的流转,区分正文中的模型识别、条件路由和运行时执行。
- 国外:LangChain:Router:依据分类、分来源子问题与多目标派发的示例,说明正文中结构化识别结果如何接到后续分支。
- 国外:Google Cloud:Dialogflow CX Intents:采用意图、训练表达、参数、未匹配与取消请求的区分,说明正文中类别边界、负例和会话状态如何影响识别。
相关面经
30 篇阿里巴巴
后端开发 / Agent 开发东方财富
服务端开发工程师(AI应用开发方向)如何识别用户意图,并路由到不同功能?
携程
大模型算法工程师讲讲基于用户意图的路由模块是怎么运行的
纷享销客
后端开发工程师后台 Agent 设计中,请求是如何经过路由层判断类型并选择执行策略的?
公司未注明
Agent 开发展开剩余 25 篇面经
携程
Agent基于用户意图的路由机制是怎么工作的
得物
Java 开发工程师有没有做意图识别?怎么做?
CVTE
后端开发工程师让你设计一个agent,如何理解客户意图?
快商通
大模型 Agent 全栈讲一下实习期间意图识别怎么做的
哔哩哔哩
AI Agent 开发### 4、意图识别模块通常有哪些实现方式?规则匹配、小模型分类和LLM分类分别适用于哪些业务场景
靖安科技
后端工程师(RAG/Agent 项目)意图识别怎么做
腾讯
Agent 开发工程师意图识别是怎么做的
腾讯
Agent开发意图识别具体是怎么做的,最终的准确率有多少
昇维旭
软件开发快手
你的agent项目意图识别怎么设计的?
快手
AI 全栈开发工程师(音视频)深圳璇溟科技有限公司
Agent 开发工程师意图识别怎么做的
深信服
AI开发实习4️⃣ 你说你们请求进来会先让大模型做意图识别,意图识别是怎么做的?
公司未注明
阿里巴巴
AI 应用算法工程师意图识别模块如何实现?
快手
Agent 研发你怎么做的模型意图优化?
公司未注明
AI 开发你们意图识别这一块是怎么实现的?是搭了一个LangGraph之类的框架,还是自己用纯代码去判断?
腾讯音乐
后端开发意图识别模块怎么做的?
淘天
AI 应用 / Agent 开发公司未注明
Agent 开发实习生介绍实习业务方向相关的意图识别模型的实现内容。
小红书
大模型算法Pipeline中如何解决低延迟问题?Intent分类的标签体系设计逻辑
美团
大模型应用算法如何对用户输入进行意图识别和分类?
vivo
大模型 NLP 算法意图识别是怎么做的
涂鸦智能
大模型算法实习生意图识别中,模糊意图、多意图、意图分类怎么做
虾皮
大模型算法全模态的意图识别怎么做的
收录题集
AI 智能体与大模型应用开发面试题库
Agent 核心面试题
Agent 开发实战追问
公司案例问答汇编
Agent与工具调用
Agent综合理解与设计 「京东、字节Seed、字节跳动、美团、腾讯、腾讯混元、蚂蚁集团、阿里巴巴」












