背景
用户的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更加准确的进行深度分析