AIエージェント・オーケストレーションと知識工学
対象読者: Claude Code / LLM を日常的に使用し、マルチエージェント・ローカルLLM・ベクトルDBに興味のあるエンジニア 本書の目的: AIエージェントの並列オーケストレーション、ローカルLLM運用、ハイブリッド検索基盤、特許工学の自動化を体系的に理解する
目次
第Ⅰ部 技術概念と原理
- マルチエージェントオーケストレーションの原理
- Smart Model Routing — コスト最適化の自動判定
- ベクトル検索とハイブリッド検索の原理
- MoE(Mixture of Experts)アーキテクチャ
- Reflexionパターン — 自己改善ループ
- 量子化(Quantization)— メモリ効率と品質のトレードオフ
- ETL・UPSERT・VIEW — データ統合の基本パターン
第Ⅱ部 用語辞典
第Ⅲ部 システム構成
第Ⅳ部 歴史と背景
第Ⅴ部 手順・マニュアル
第Ⅰ部 技術概念と原理
1. マルチエージェントオーケストレーションの原理
単一のLLMに全てを任せるのではなく、専門化された複数のエージェントを協調動作させる設計パターン。人間の組織における分業と同じ原理。
なぜ分業するのか
LLMは万能に見えるが、プロンプトが長くなるほど精度が下がる(注意力の分散)。タスクを分割し、各エージェントに短いコンテキストで専門タスクを割り当てることで、全体の品質が向上する。
3つのオーケストレーションパターン
(A) Orchestrator-Worker (B) Pipeline (C) Swarm
┌──────────┐ ┌──┐→┌──┐→┌──┐→┌──┐ ┌──┐ ┌──┐ ┌──┐
│Orchestrator│ │A │ │B │ │C │ │D │ │1 │ │2 │ │3 │
└──┬──┬──┬──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘
▼ ▼ ▼ 逐次実行 独立並列実行
┌─┐┌─┐┌─┐ (バトンリレー) (全員同時)
│W││W││W│
└─┘└─┘└─┘
- Orchestrator-Worker: 中央のオーケストレーターがタスクを分解し、ワーカーに並列配信。品質管理を集中制御。
- Pipeline: タスクを逐次ステージに分解。前ステージの出力が次ステージの入力になる。品質ゲートを各段に設置可能。
- Swarm: 独立タスクを同時実行。依存関係がないタスクの処理時間を最小化。
実行モード階層
autopilot(完全自律: idea → code)
└── ralph(永続ループ: verify + fix 反復)
└── ultrawork(並列実行: 独立タスク同時発射)
autopilotはralphを内包し、ralphはultraworkを内包する。階層を上がるほど自律度が高く、コストも増加する。
2. Smart Model Routing — コスト最適化の自動判定
原理
LLMにはコストと品質のトレードオフがある。全タスクに最高品質モデルを使うとコストが爆発する。タスクの複雑度を自動判定し、適切なモデルにルーティングすることで、品質を維持しながらコストを30-50%削減できる。
タスク到着
│
▼
┌──────────────┐
│ 複雑度判定器 │ キーワード + トークン数 + コンテキスト
└──────┬───────┘
│
┌────┼────┐
▼ ▼ ▼
HIGH MED LOW
│ │ │
▼ ▼ ▼
大規模 中規模 小規模 コスト(入力100万トークンあたり)
モデル モデル モデル $15 $3 $0.25
エスカレーション
小規模モデルで処理を試み、品質不足なら中規模に昇格、さらに不足なら大規模に昇格する。最大2回のエスカレーションで、必要最小限のモデルで処理を完了する。
ローカルLLMとの統合
クラウドAPIの最小モデルの代わりに、ローカルで動作するオープンモデル(Ollama経由)を使えば、LOWティアのコストをゼロにできる。ただし推論速度がクラウドの1/5程度になるため、バッチ処理向き。
3. ベクトル検索とハイブリッド検索の原理
キーワード検索の限界
クエリ: "解約 引き止め"
LIKE '%解約%' AND LIKE '%引き止め%'
→ "顧客の離脱を防ぐ施策" はヒットしない(文字列が異なるため)
ベクトル検索の仕組み
テキストを高次元ベクトル(数値配列)に変換し、意味的な距離を計算する。
"解約の引き止め方法" → [0.023, -0.156, 0.871, ..., -0.033] (768次元)
"顧客の離脱を防ぐ施策" → [0.021, -0.152, 0.868, ..., -0.031] (768次元)
コサイン類似度 = 0.98 → 「ほぼ同じ意味」と判定
HNSW(Hierarchical Navigable Small World)
全ベクトルとの比較(O(N))は遅い。HNSWは多層グラフ構造で、O(log N)の計算量で近傍を発見する。15万件のデータでも約17回の比較で近傍を発見(全探索の9,000倍高速)。
ハイブリッド検索
SQL(構造化フィルタ)とベクトル(意味的類似性)を統合する。
SQL検索の強み: 完全一致、範囲指定、属性フィルタ
ベクトル検索の強み: 同義語・類似概念を自動発見
ハイブリッド:
1. SQLで属性フィルタ(domain="カスタマーサポート")
2. ベクトルで意味的検索("チャーン防止")
3. 両結果をスコアで統合ランキング
4. MoE(Mixture of Experts)アーキテクチャ
Denseモデルとの違い
Dense Model:
入力 → 全パラメータが活性化 → 出力
14Bモデル → 14B全てが毎トークンで計算
MoE Model:
入力 → Router(ゲート関数)→ Expert 2-3個だけ活性化 → 出力
26Bモデル → 3.8Bだけが毎トークンで計算
メモリ: 全Expert分必要(26GB相当)
計算量: 活性化Expert分のみ(3.8B相当 → 高速)
品質: 全Expert分の知識にアクセス可能(26B相当)
Routerの役割
入力トークンの特徴を見て、どのExpertに処理を送るか決定する。数学的な質問は「数学Expert」に、言語的な質問は「言語Expert」に送られる。これにより、計算量を抑えながら大規模モデルの知識を活用できる。
5. Reflexionパターン — 自己改善ループ
LLMが自身の出力を評価し、反省文を生成して再試行する自己改善パターン(Shinn et al., 2023)。
実行 → 出力 → 自己評価 → OK → 完了
│
└→ NG → 反省文生成 → 再実行(反省文をコンテキストに追加)
└→ ループ(最大N回)
特許明細書のような高品質要求のタスクで有効。品質スコア8.0以上になるまで自動反復する。
6. 量子化(Quantization)— メモリ効率と品質のトレードオフ
FP16(16bit): パラメータ1つ = 2バイト → 高精度・大サイズ
Q4_K_M(~4.5bit): パラメータ1つ ≈ 0.56バイト → 85%品質・1/4サイズ
例: 14.8Bパラメータモデル
FP16: 14.8B × 2B = 29.6GB(一般的なPCに載らない)
Q4_K_M: 14.8B × 0.56B = 8.6GB(16GB RAMに収まる)
K = K-quantization(重要な重みには高精度を割り当てる混合精度)
M = Medium設定
7. ETL・UPSERT・VIEW — データ統合の基本パターン
ETL(Extract, Transform, Load)
Extract: ソースDBからデータ抽出
Transform: 国名正規化(「米国」→「US」)、ID体系変換
Load: ターゲットDBにUPSERT
UPSERT(INSERT or UPDATE)
INSERT INTO table (...) VALUES (...)
ON CONFLICT(unique_key) DO UPDATE SET
col = excluded.col -- "excluded" = 新しい値を参照する仮想テーブル
冪等性を保証する。同じデータを何回投入しても結果が同じ。
VIEW(仮想テーブル)
CREATE VIEW v_deadlines AS
SELECT ...
CASE WHEN deadline < date('now') THEN 'OVERDUE' ... END AS urgency
FROM deadlines d LEFT JOIN applications a ON d.app_id = a.app_id
データを持たず、SELECTするたびにリアルタイム計算。二重管理を回避。
第Ⅱ部 用語辞典
8. 用語辞典
AIエージェント・オーケストレーション
| 用語 | 意味 |
|---|---|
| OMC (oh-my-claudecode) | Claude Codeの上に被せるマルチエージェントオーケストレーション層。19エージェント+30スキル |
| Smart Model Routing | タスク複雑度に応じてモデル(大/中/小)を自動選択するコスト最適化機構 |
| Ralph mode | 完了まで止まらない永続実行ループ。verify+fixを自動反復 |
| Ultrawork | 独立タスクを同時に複数エージェントで並列実行するモード |
| Team Pipeline | plan→prd→exec→verify→fixのステージドパイプライン |
| Reflexion | LLMが自身の出力を評価し反省文を生成して再試行する自己改善パターン |
| Chain-of-Thought (CoT) | LLMが推論過程を段階的に出力する技法。<think>タグで分離 |
| Claude Code Hooks | セッションのライフサイクルイベントに外部スクリプトを差し込むメカニズム |
| Agent Tier | エージェントをHigh(大規模)/Medium(中規模)/Low(小規模)の3階層に分類する仕組み |
データベース・知識管理
| 用語 | 意味 |
|---|---|
| SQLite | サーバー不要の組み込みRDB。ファイル1つに全データを格納 |
| DuckDB | 列指向の分析用DB。大量データの集計クエリに高速 |
| ChromaDB | ベクトル埋め込み特化のDB。意味的類似検索を提供 |
| HNSW | Hierarchical Navigable Small World。O(log N)の近似最近傍探索アルゴリズム |
| Embedding | テキストを高次元ベクトル(数値配列)に変換し、意味的距離を計算可能にする技術 |
| コサイン類似度 | 2つのベクトルの「向き」の近さを測る指標。1.0=一致、0.0=無関係 |
| UPSERT | INSERT or UPDATE。レコード存在時は更新、非存在時は挿入 |
| VIEW | データを持たない仮想テーブル。SELECTのたびにリアルタイム計算 |
| ETL | Extract(抽出)→Transform(変換)→Load(投入)のデータ統合パターン |
| Polyglot Persistence | 用途に応じて異なるDBエンジンを使い分ける設計パターン |
| ハイブリッド検索 | SQL(構造化フィルタ)+ベクトル(意味的類似性)の統合検索 |
ローカルLLM
| 用語 | 意味 |
|---|---|
| Ollama | ローカルマシンでLLMを実行するランタイム。llama.cppのラッパー |
| GGUF | llama.cppが使用するモデルファイルフォーマット。量子化をサポート |
| 量子化 (Q4_K_M) | 浮動小数点の精度を下げてモデルサイズを1/4に圧縮する技術 |
| MoE (Mixture of Experts) | 全パラメータのうち一部のExpertのみを活性化する効率的なアーキテクチャ |
| Thinking Mode | LLMが内部で推論過程(<think>タグ)を実行し、最終回答のみ返す方式 |
| Flash Attention | Attention計算のメモリアクセスパターンを最適化し、推論速度を2-4倍にする技術 |
| nomic-embed-text | 768次元の埋め込みモデル。Ollama上で動作しベクトルDB用の埋め込みを生成 |
| OpenAI互換API | Ollamaが提供する /v1/chat/completions エンドポイント。OpenAI SDKで直接利用可能 |
| Gemma 4 | Google発のオープンLLM。Apache 2.0ライセンス。E2B/E4B/26B-MoE/31B-Denseの4バリアント |
ネットワーク・インフラ
| 用語 | 意味 |
|---|---|
| Tailscale | WireGuardベースのメッシュVPN。NAT超え・鍵管理・ACLを自動化 |
| WireGuard | 約4,000行のカーネルモジュール。現代的なVPNプロトコル |
| launchd | macOSのサービス管理デーモン。plistファイルで定義 |
| plist | XML形式のmacOS設定ファイル。launchdのジョブ定義に使用 |
| tmux | ターミナルマルチプレクサ。セッションのデタッチ/アタッチ、ペイン分割を提供 |
| Unixシグナル | プロセス間の非同期通知メカニズム(SIGTERM, SIGKILL, SIGHUP等) |
| SingletonLock | ブラウザプロファイルの排他ロックファイル。同一プロファイルの同時利用を防止 |
ブラウザ自動化
| 用語 | 意味 |
|---|---|
| Playwright | Microsoft開発のブラウザ自動化ライブラリ。マルチブラウザ対応 |
| persistent context | ブラウザプロファイルをディスクに保存し、ログイン状態を次回起動時に復元する機能 |
| Response Intercept | ブラウザのネットワーク層でHTTPレスポンスを傍受し、APIデータを直接取得する手法 |
| DOM操作 | HTML要素のクリック・テキスト入力・送信をプログラムから実行する手法 |
特許・知財
| 用語 | 意味 |
|---|---|
| 独立項 | 特許クレームの最も広い権利範囲を定義する請求項 |
| 従属項 | 独立項の特徴を限定・追加する請求項 |
| サポート要件 | クレームの内容が明細書で十分に説明されている必要がある要件(特許法36条6項1号) |
| OA (Office Action) | 特許庁からの拒絶理由通知。応答期限が設定される |
| FTO (Freedom to Operate) | 自社技術が他社特許を侵害しないことの調査 |
| 進歩性 | 先行技術から容易に想到できないこと。特許要件の核心 |
| battleground | クレームの強度を模擬審査で定量評価するAIツール |
ドキュメント・ナレッジ
| 用語 | 意味 |
|---|---|
| Obsidian | ローカルMarkdownファイルをwikilink([[リンク]])で相互接続するナレッジ管理ツール |
| PyMuPDF (fitz) | MuPDFのPythonバインディング。PDF内テキスト・画像・メタデータを抽出 |
| OCR | 画像からテキストを認識する技術。スキャンPDFのテキスト化に使用 |
| YAML | 人が読み書きする設定記述言語。インデントベース |
| JSONL | 各行が独立したJSONのストリーミングログ形式。追記が簡単で破損に強い |
| frontmatter | Markdownファイル冒頭のYAMLメタデータブロック |
| Apache 2.0 | 商用利用・改変・再配布が自由なオープンソースライセンス。特許付与条項あり |
第Ⅲ部 システム構成
9. 全体アーキテクチャ
5層モデル
Layer 5 意思決定・知識創造
───────────────────────────────────────
組織の部署構成 / 問い駆動 / 模擬審査 / 先行技術調査
Layer 4 オーケストレーション
───────────────────────────────────────
OMC v4.9.3 / Smart Routing / Ralph / Ultrawork
Hooks (SessionStart / PostToolUse / Stop)
Layer 3 推論・生成
───────────────────────────────────────
Cloud API (大/中/小モデル) / Ollama (ローカルLLM)
gemma4:e4b / qwen3:14b / nomic-embed-text
Layer 2 データ・知識永続化
───────────────────────────────────────
SQLite (211案件) / ChromaDB (153Kチャンク)
DuckDB (820冊) / Obsidian (1,184ノート)
Layer 1 インフラ・通信
───────────────────────────────────────
MacBook Pro / Mac mini M4 / Tailscale VPN
launchd / tmux / Playwright / scp
10. データフロー図
ナレッジパイプライン
PDF(Bookscan)
→ PyMuPDF(fitz) テキスト抽出
→ Ollama(gemma4:e4b) ブリーフィング生成
→ Obsidian vault (books/)
→ DuckDB メタデータ (layer1_metadata.py)
→ ChromaDB 埋め込み (layer2_embedder.py)
→ ハイブリッド検索 (obsidian_chromadb_sync.py)
特許DB統合
Google Sheets (特許管理シート)
→ patent_sheet_sync.py (毎日08:00自動同期)
→ patent_portfolio.db (SQLite)
→ etl_portfolio_merge.py
→ PIDB (patent_intel.db, 211案件)
→ pidb_chromadb_bridge.py
→ ChromaDB (ハイブリッド検索)
共有ドライブ (外部委託先)
→ [将来] oa_watcher.py (新ファイル検出)
→ PyMuPDF テキスト抽出
→ OA分析 → PIDB自動登録
第Ⅳ部 歴史と背景
11. 技術選定の歴史的経緯
2017 Transformer論文("Attention Is All You Need")
│ → 現在の全LLMの基盤アーキテクチャ
│
2020 GPT-3(175Bパラメータ)
│ → 大規模LLMの実用化
│
2022 Chain-of-Thought Prompting(Wei et al.)
│ → 「ステップバイステップで考えて」で精度向上
│
2023 llama.cpp(Georgi Gerganov)
│ → ローカルマシンでのLLM実行を民主化
│ Ollama登場 → llama.cppをDockerライクなUXで包装
│ Reflexion(Shinn et al.)→ LLMの自己改善パターン
│ Mixtral 8x7B → MoEアーキテクチャの民主化
│
2024 Claude Code リリース(Anthropic公式CLI)
│ ChromaDB 安定版 → ベクトルDB普及
│ oh-my-claudecode 登場 → エージェントオーケストレーション層
│
2025 OMC v3-4.x → Team/Ralph/Ultrawork/Smart Routing 成熟
│ WireGuard/Tailscale が開発者VPNの標準に
│ Playwright がブラウザ自動化の事実上標準に
│
2026 OMC v4.9.3 → 19エージェント+30スキル
Gemma 4(Apache 2.0)→ オープンLLMのライセンス解放
ハイブリッド検索 → SQL+ベクトル統合が実用化
ドローン消耗品化 → 月27万機消費時代
第Ⅴ部 手順・マニュアル
12. エージェントオーケストレーション環境構築
前提条件
- Node.js v22+ / npm
- Claude Code CLI(
npm install -g @anthropic-ai/claude-code)
Step 1: OMCインストール
npm install -g oh-my-claude-sisyphus
omc install
omc version
Step 2: エージェント確認
omc info # 19エージェント一覧
omc config # Smart Model Routing設定確認
omc doctor conflicts # プラグイン競合チェック
Step 3: 実行テスト
# ultrawork: 3タスク並列実行
# セッション内で:
ultrawork で以下を並列実行:
1. explore: プロジェクト構造を調査
2. architect: 設計レビュー
3. writer: README生成
# team: tmux上で複数ワーカー起動
omc team 2:claude "全テストを修正"
13. ローカルLLM運用手順
Step 1: Ollamaインストール
# macOS
curl -fsSL https://ollama.com/install.sh | sh
# バージョン確認
ollama --version
Step 2: モデルダウンロード
ollama pull gemma4:e4b # 9.6GB, Apache 2.0, マルチモーダル
ollama pull qwen3:14b # 8.6GB, 汎用推論
ollama pull nomic-embed-text # 0.3GB, 768次元埋め込み
Step 3: メモリ管理(16GB RAM環境)
# Ollama plist に追加(同時ロードモデル数を制限)
OLLAMA_MAX_LOADED_MODELS=1
Step 4: リモートアクセス設定(Tailscale越し)
# Ollama を全インターフェースでリスン
OLLAMA_HOST=0.0.0.0
# → Tailscale VPN内からのアクセスが可能に
# curl http://<Tailscale-IP>:11434/v1/chat/completions
Step 5: 汎用ラッパースクリプト
# 基本使用
ollama_query.sh "質問テキスト"
# モデル指定
ollama_query.sh -m qwen3:8b "軽量な質問"
# システムプロンプト付き
ollama_query.sh -s "You are a patent expert" "クレーム分析"
# パイプ入力
cat document.txt | ollama_query.sh --stdin
# ヘルスチェック
ollama_query.sh --health
14. ハイブリッド検索基盤の構築
Step 1: ChromaDBにデータ投入
# 埋め込みモデル: nomic-embed-text (768次元)
# Ollama経由でローカル実行
python3 layer2_embedder.py --collection all
python3 layer2_embedder.py --stats
Step 2: SQLiteにメタデータ投入
# ETLスクリプトで外部データを統合
python3 etl_portfolio_merge.py --execute
Step 3: ハイブリッド検索の実行
# SQL + ベクトル統合検索
python3 pidb_chromadb_bridge.py search "検索クエリ"
# コレクション指定
python3 pidb_chromadb_bridge.py search "進歩性" --collection battle_results
# ドメインフィルタ
python3 pidb_chromadb_bridge.py search "解約" --domain カスタマーサポート
# 期限アラート
python3 pidb_chromadb_bridge.py deadlines --urgent
15. ナレッジパイプライン運用手順
Step 1: PDFをinboxに配置
# Bookscan PDFを ~/knowledge/inbox/ に配置
cp ~/Downloads/book.pdf ~/knowledge/inbox/
Step 2: 一括処理
python3 ~/knowledge/scripts/book_processor.py --inbox
# → OCR → Ollama briefing → Obsidian vault → Telegram通知
Step 3: ChromaDB埋め込み
python3 ~/knowledge/scripts/layer2_embedder.py --collection all
Step 4: Obsidian連携
# セマンティック検索 → Obsidianノート生成
python3 obsidian_chromadb_sync.py search "AI リーダーシップ" --save
# 類似書籍バックリンク
python3 obsidian_chromadb_sync.py backlinks "書籍タイトル"
# タグ別インデックス生成
python3 obsidian_chromadb_sync.py index
本書は実際のClaude Codeセッション(2026-04-02〜03)の内容を教科書形式に再構成したものです。
← 参照コンテンツ一覧に戻る