← 参照コンテンツに戻る MOKUMOKU GUIDE

AIエージェント・オーケストレーションと知識工学

実践技術教科書 · マルチエージェント / ローカルLLM / ハイブリッド検索

対象読者: Claude Code / LLM を日常的に使用し、マルチエージェント・ローカルLLM・ベクトルDBに興味のあるエンジニア 本書の目的: AIエージェントの並列オーケストレーション、ローカルLLM運用、ハイブリッド検索基盤、特許工学の自動化を体系的に理解する


目次

第Ⅰ部 技術概念と原理

  1. マルチエージェントオーケストレーションの原理
  2. Smart Model Routing — コスト最適化の自動判定
  3. ベクトル検索とハイブリッド検索の原理
  4. MoE(Mixture of Experts)アーキテクチャ
  5. Reflexionパターン — 自己改善ループ
  6. 量子化(Quantization)— メモリ効率と品質のトレードオフ
  7. ETL・UPSERT・VIEW — データ統合の基本パターン

第Ⅱ部 用語辞典

  1. 用語辞典(87項目)

第Ⅲ部 システム構成

  1. 全体アーキテクチャ(5層モデル)
  2. データフロー図

第Ⅳ部 歴史と背景

  1. 技術選定の歴史的経緯

第Ⅴ部 手順・マニュアル

  1. エージェントオーケストレーション環境構築
  2. ローカルLLM運用手順
  3. ハイブリッド検索基盤の構築
  4. ナレッジパイプライン運用手順

第Ⅰ部 技術概念と原理

1. マルチエージェントオーケストレーションの原理

単一のLLMに全てを任せるのではなく、専門化された複数のエージェントを協調動作させる設計パターン。人間の組織における分業と同じ原理。

なぜ分業するのか

LLMは万能に見えるが、プロンプトが長くなるほど精度が下がる(注意力の分散)。タスクを分割し、各エージェントに短いコンテキストで専門タスクを割り当てることで、全体の品質が向上する。

3つのオーケストレーションパターン

(A) Orchestrator-Worker     (B) Pipeline             (C) Swarm
   ┌──────────┐             ┌──┐→┌──┐→┌──┐→┌──┐    ┌──┐ ┌──┐ ┌──┐
   │Orchestrator│            │A │ │B │ │C │ │D │    │1 │ │2 │ │3 │
   └──┬──┬──┬──┘            └──┘ └──┘ └──┘ └──┘    └──┘ └──┘ └──┘
      ▼  ▼  ▼               逐次実行                独立並列実行
    ┌─┐┌─┐┌─┐               (バトンリレー)         (全員同時)
    │W││W││W│
    └─┘└─┘└─┘

実行モード階層

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. エージェントオーケストレーション環境構築

前提条件

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)の内容を教科書形式に再構成したものです。

← 参照コンテンツ一覧に戻る