AIAgent之用户意图分析

Router

Posted by LuochuanAD on February 23, 2026 本文总阅读量

背景

用户的Query既有简单的信息搜索又有工具调用,或者只是简单的闲聊等等, 那么结合特定的AIAgent系统如何对用户的查询进行意图分析呢?(或者说Query分类)

特定的AIAgent的场景介绍

特定的AIAgent中RAG系统的数据集如下:(可以明显看到这是对简历的切分Chunk)

resume_chunks = [
	basic_chunk,
	skills_chunk,
	introduction_chunk
	certification_chunk,
	project_chunk_1,
	project_chunk_2,
	project_chunk_3,
......
	
]

结合特定的AIAgent的数据集进行意图分析

方法1: 关键词提取和匹配

在下面的这篇文章中,我已经说明了通过关键词密度算法来将数据集切分为特定的Chunk. https://strictfrog.com/2026/01/31/RAG%E4%B9%8BStructural-Chunks%E8%AE%BE%E8%AE%A1%E4%B8%8E%E6%80%9D%E8%80%83/

type_keywords = {
	"basic_chunk" = ["姓名","名字",“年龄”,“年纪”,”出生年月“,“大学”,“学院”,“人”...],
	“skills_chunk” = [“python”,“C++”,“iOS”,“And”,“Java”,“PHP”...],
	“introduction_chunk” = [“爱学习”,“抗压”,“高效率”,“敏捷开发”,...],
	“certification_chunk” = [“计算机二级”,“大学英语四级”,“大学英语六级”,“雅思”,“AWS”,...],
	“project_chunk” = [“项目经验”,“担当”,“时期”,...]
}

例如:

UserQuery: 我想找一个名字叫Louis的人,他Python开发经验有5年.

通过Python循环遍历 type_keywords, 在User Query中找到了“名字”,“人”,“Python”这些关键字.

意图分析结果: 

用户想要在特定的AIAgent中查找“basic_chunk”和“skills_chunk”.

说人话:也就是用户要查某个人的个人信息和技能.


方法2: 通过LLM的prompt提示词来判断用户的意图分析

假如特定的AIAgent的结构图如下:

Chat (闲聊)
|
FAQ (查找数据集)
|-- basic
|-- skills
|-- introduction
|-- certification
|-- project
|-- other
Tools (调用工具执行任务)
|- sendMails
|- getCurrentWeather
|- ......

架构图Architecture如下:(意图分析只用到架构的第一层:Intent Router)

完整的架构,有兴趣可以看下面这篇文章: https://strictfrog.com/2026/02/19/AIAgent%E4%B9%8B%E5%AE%8C%E6%95%B4%E7%9A%84%E7%B3%BB%E7%BB%9F%E7%B3%BB%E6%9E%B6%E6%9E%84/

User Query
      ↓
1️⃣ Intent Router
      ↓
┌────────────┬────────────────────────────┬──────────────┐
│ Chat	     │		FAQ     	  │ Tool_Required│
│ (LLM only) │ (basic|skills|...|project) | (ReAct loop) │
└────────────┴────────────────────────────┴──────────────┴
                ↓
	     ......

Router Prompt:

通过方法1 得到了分析结果如下:

first_result = “用户想要在特定的AIAgent中查找“basic_chunk”和“skills_chunk”.”

functionCalling.json 是对所有的工具的结构化的json文件.

prompt = ‘

	你是一个意图分析师,擅长对用户的问题进行深度分析.

	已知初步分析的结果为:{first_result}.

	已知现有的数据集的特征是:{根据个人的简历特征分为如下几类:basic(个人信息: 包括姓名,年纪,出生年月,学历等等),skills(技能:包括Python,Java等IT开发语言),introduction(自我介绍),certification(证书:包括IT技能认定证书和托福证书等等),project(项目经验)}.
	
	已知现有的Tools:{functionCalling.json}.

	用户的问题: {query}.
 
	将“用户的问题”进行分析为以下一个或多个类别:
 
	1. Chat
	2. FAQ: basic
	3. FAQ: skills
	4. FAQ: introduction
	5. FAQ: certification
	6. FAQ: project
	7. tool_required
 
	Return JSON:
	{
  		"type": "..."
		......
	}
’

“Router Prompt”评价

结合特定的AIAgent的数据集和工具集:

1, 利用RAG中特定的chunk切分特征,用关键词匹配进行初步分析.

2, 将数据集和工具的特征传入到prompt中, 让LLM更加准确的进行深度分析