AIAgentのユーザー意図分析

ルーター

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

背景

ユーザーのクエリには単純な情報検索やツール呼び出し、あるいはただの雑談などがありますが、特定のAIAgentシステムを使ってユーザーのクエリの意図をどのように解析すれば良いのでしょうか?(あるいはクエリ分類と言えます)

特定のAIAgentのユースケース紹介

特定のAIAgentにおけるRAGシステムのデータセットは以下の通りです:(これは明らかに履歴書をチャンクに分割したものです)

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

特定のAIAgentのデータセットを活用した意図解析

方法1: キーワード抽出とマッチング

以下の記事で、キーワード密度アルゴリズムを用いてデータセットを特定のチャンクに分割する方法を説明しています。
https://strictfrog.com/ja/2026-01-31-rag%E3%81%AE%E6%A7%8B%E9%80%A0%E3%83%81%E3%83%A3%E3%83%B3%E3%82%AF%E8%A8%AD%E8%A8%88/

type_keywords = {
	"basic_chunk" = ["姓名","名前","年齢","生年月日","大学","学部","人" ...],
	"skills_chunk" = ["python","C++","iOS","And","Java","PHP" ...],
	"introduction_chunk" = ["学習好き","ストレス耐性","高効率","アジャイル開発" ...],
	"certification_chunk" = ["情報処理技術者試験レベル2","英検4級","英検6級","IELTS","AWS" ...],
	"project_chunk" = ["プロジェクト経験","担当","期間" ...]
}

例えば:

UserQuery: 名前がLouisの人を探したい。Pythonの開発経験が5年ある人。

Pythonを用いてtype_keywordsをループし、User Queryに「名前」「人」「Python」というキーワードが見つかる。

意図解析結果: 

ユーザーは特定のAIAgentの「basic_chunk」と「skills_chunk」を検索したい。

つまり:ユーザーはある個人の基本情報とスキルを調べたい。

方法2: LLMのプロンプトでユーザー意図を判別

仮に特定のAIAgentの構造図が以下のような場合:

Chat (雑談)
|
FAQ (データセット検索)
|-- basic
|-- skills
|-- introduction
|-- certification
|-- project
|-- other
Tools (ツール呼び出しでタスク実行)
|- sendMails
|- getCurrentWeather
|- ......

アーキテクチャ図は以下の通り:(意図解析は第一階層の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) │
└────────────┴────────────────────────────┴──────────────┴
                ↓
	     ......

ルータープロンプト:

方法1で得られた解析結果は以下の通りです:

first_result = “ユーザーは特定のAIAgent内で “basic_chunk” と “skills_chunk” を検索したい。”

functionCalling.jsonは全ツールの構造化JSON定義です。

prompt = ‘

	あなたは意図分析の専門家で、ユーザーの質問を深く解析するのが得意です。

	既知の初期解析結果:{first_result}.

	既知のデータセットの特徴は:{個人の履歴書特性に基づく分類:basic(個人情報:名前、年齢、生年月日、学歴など)、skills(スキル:Python、JavaなどIT開発言語)、introduction(自己紹介)、certification(証明書:ITスキル認定証明書やTOEFLなど)、project(プロジェクト経験)}.

	既知のツール群:{functionCalling.json}.

	ユーザーの質問: {query}.

	「ユーザーの質問」を以下の一つ以上のカテゴリに分類してください:
 
	1. Chat
	2. FAQ: basic
	3. FAQ: skills
	4. FAQ: introduction
	5. FAQ: certification
	6. FAQ: project
	7. tool_required
 
	JSONで返答してください:
	{
  		"type": "..."
		......
	}
’

“Router Prompt” の評価

特定のAIAgentのデータセットとツール群を組み合わせて:

1. RAGの特定チャンクの切分特徴を活用し、キーワードマッチングで初期解析を実施。

2. データセットとツールの特徴をプロンプトに渡し、LLMによりより精緻な深層解析を行う。