背景
ユーザーのクエリには単純な情報検索やツール呼び出し、あるいはただの雑談などがありますが、特定の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によりより精緻な深層解析を行う。