完全なアーキテクチャ構造 Architecture
1. Intent Layer
2. Planning Layer
3. Execution Layer
4. Tool Layer
5. Memory Layer
6. Knowledge Layer
7. Policy & Guardrail Layer
8. Observability Layer
9. Persistence Layer
10. Governance Layer
1, 第一層: Intent Router
RouterはToolsの呼び出しが必要かどうか判断します
Router Prompt:
prompt = ‘
You are a task classifier.
User query: {query}
Classify the user query into one of:
1. simple_qa
2. retrieval
3. tool_call
4. multi_step
Return JSON:
{
"type": "..."
}
’
2, 第二層: ReAct Tool Core
1. simple_qa ==》LLMが直接回答
2. retrieval ==》ベクトルデータベースによる直接検索/ブラウザ検索の呼び出し
3. tool_call ==》ReActループに入る
4. multi_step ==》ReActループに入る
ReActループのアーキテクチャ:
LLM decides next action
↓
Call one tool
↓
Append tool result
↓
Repeat
サンプルコード:
while True:
response = llm(messages, tools=tool_schema)
if response.tool_calls:
result = execute_tool(...)
messages.append(tool_result)
else:
break
3, 第三層: Structured Tool Layer
ChatGPTのFunction Callingの考え方を採用し、「Tools Schema」を定義してLLMとToolsの呼び出しを接続します。
エンタープライズAIAgent: ReAct + Function calling: https://strictfrog.com/ja/2026-02-17-%E4%BC%81%E6%A5%AD%E5%90%91%E3%81%91aiagentreact-%E9%96%A2%E6%95%B0%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97/
4, 第四層: Guardrails & Policies
最大ステップ制限:
max_steps = 15
センシティブなメール送信は禁止:
if tool = send_mail:
require confirmation
5, 第五層: Memory Layer
統一された Memory システム(長期 + 短期)
1️⃣ 短期記憶(Session Memory)
• 現在のタスク状態
• ツール呼び出し履歴
• 意思決定の中間結果
2️⃣ 長期記憶(Persistent Memory)
• ユーザの過去の好み
• 過去のタスク記録
• 意思決定結果のアーカイブ
• メール送信ログ
さもなければシステムは:
• 遡及
• 分析
• 監査
• 学習最適化
ができません。
7, 第七層: Policy & Guardrail Layer
Policy & Safety Layer(安全制御)
現在は自動的にメール送信可能。
危険な問題:
• promptインジェクションの場合?
• ユーザーが大量送信を指示した場合?
• 機密情報が漏えいした場合?
• 危険なAPIを呼び出した場合?
成熟したシステムには以下が必要:
Guardrails
• ツール呼び出しホワイトリスト
• パラメータ検証
• リスクスコアリング
• 人間の承認ポイント
• レート制限
8, 第八層: Observability Layer
Observability(可観測性)
以下に答えられなければならない:
• どのツール呼び出しが最も失敗しているか?
• 平均タスクの実行ステップ数は?
• LLMのtoken消費量は?
• メールの成功率は?
• 最も時間がかかるステップはどれか?
これには以下が必要:
• 構造化ログ
• ステップレベルのトレース
• メトリクス
• 可視化ダッシュボード
さもなければ最適化できません。
9, 第九層: Persistence Layer
タスクの永続化(Persistence)
以下をサポートする必要がある:
• タスクの中断復旧
• 非同期実行
• マルチユーザーの同時実行
• 失敗時のリトライ
• 遅延実行
必要なもの:
• Redis / DBによる状態保存
• 各タスクの固有ID
• ステートマシンの永続化
さもなければただのスクリプトにすぎません。
Tool Governance(ツールガバナンス)
ツール数が10個を超えると問題が発生:
• ツールの競合
• パラメータの混乱
• ルーティングミス
• LLMが誤ったツールを選択
成熟したシステムには以下が必要:
• ツール登録センター
• Tool Capabilityの記述
• ツールの優先順位
• ツール呼び出しログ
Error Recovery Strategy
現状:
エラー → プログラムクラッシュ
成熟したシステムには以下が必要:
• 自動リトライ
• バックアップモデル
• フォールバック戦略
• LLMの自己修正プロンプト
コストコントロール層
成熟したシステムは以下を監視する必要がある:
• Token使用量
• ツール呼び出しコスト
• API費用
• モデル選択戦略(小型モデル優先)
さもなければコストが制御不能になります。
ヒューマンインザループ (Human-in-the-loop)
以下の場合:
• 高リスク操作
• 信頼度が低い
• 複数候補が曖昧
必要:
Agent → 人間の承認を要求
さもなければ実際のビジネスに使えません。
成熟したシステムのアーキテクチャ図
┌──────────────────┐
│ API Gateway │
└──────────────────┘
↓
┌──────────────────┐
│ Intent Router │
└──────────────────┘
↓
┌──────────────────┐
│ ReAct Engine │
└──────────────────┘
↓
┌───────────────┼────────────────┐
↓ ↓ ↓
Tool Layer Knowledge Layer Memory Layer
↓ ↓ ↓
┌──────────────────┐
│ Policy Layer │
└──────────────────┘
↓
┌──────────────────┐
│ Persistence DB │
└──────────────────┘
↓
┌──────────────────┐
│ Observability │
└──────────────────┘
まとめ
成熟したシステムの指標
• 100+ユーザーへの同時サービス
• 長いチェーンタスクのサポート
• 中断復旧
• 失敗の自動修復
• 完全な監査ログの保持
• コスト集計
• 安全ポリシーの実装
• 人間による承認ポイントの設置