Claude Codeオーケストレーション(CC×マルチAIエージェント分業設計:Gemini / Devin / ローカルLLM)
🔄 検証中 | 技術 | 優先度:🔴 最優先
シリーズ: ゴールファースト・テック
目的(ゴール)
Claude Code をオーケストレーターとして、タスク分解・品質判断・ワークフロー制御を担わせ、生成コストの高いタスクをローカルLLMワーカーにオフロードする分業アーキテクチャを設計・実装・検証する。CC の強みである文脈理解・判断・ツール実行を活かしながら、ローカルLLMで代替可能な生成タスクをオフロードすることで、コスト最適化と品質維持を両立する実践知を確立する。
アクター
- 著者(Manabazu)
- Claude Code(オーケストレーター:タスク分解・品質判断・ワークフロー制御)
- Gemini(Google Gemini API / Gemini CLI:大容量コンテキスト処理・マルチモーダル分析担当)
- Devin(Cognition AI:自律コーディング・長時間非同期タスク担当)
- ローカルLLMワーカー(qwen3-32b-nothink / Ollama on Node4、LiteLLM 経由:定型生成タスク担当)
- vault_worker.py(CC↔ローカルLLM ブリッジスクリプト)
- LiteLLM API(モデルルーティング層、:4000 on Node4)
開始条件(起動トリガー)
Vault の Lab Log・原稿ドラフト・AtomicNote 生成など、定型的な大量テキスト生成タスクが発生し、CC が直接処理するよりローカルLLM へのオフロードがコスト対効果で優位と判断した時。
事前条件
- Node4 Ollama が稼働し、
qwen3-32b-nothink:latestが登録済み - Node4 LiteLLM(:4000)が稼働し、
general-model(→ qwen3-32b-nothink)が登録済み vault_worker.pyのDEFAULT_MODEL = "general-model"が設定済み- Node1(作業端末)から Node4 への HTTP アクセスが可能
事後条件
- ローカルLLM が生成したドラフトを CC がレビュー・品質判断し、合格した成果物が Vault に格納される
- 生成コスト(Anthropic API トークン)が削減され、CC の処理はタスク設計・判断・修正に集中される
メインフロー
- 著者が CC(オーケストレーター)にタスクを自然言語で指示する
- CC がタスクを分解し、ローカルLLM で処理すべき生成サブタスクを特定する
- CC が
vault_worker.pyを通じて LiteLLM API 経由でローカルLLM にサブタスクを委託する - ローカルLLM(qwen3-32b-nothink)がドラフトを生成して返す
- CC がドラフトをレビューし、品質・整合性を判断する
- 合格の場合:成果物を Vault の適切なフォルダに格納する
- 不合格の場合:CC が修正指示を生成し、ローカルLLM に再生成を依頼するか、CC が直接修正する
代替フロー
- Node4 が停止中の場合: CC が直接生成タスクを処理する(フォールバック)
- ローカルLLM の品質が基準を下回る場合: CC が部分修正または直接生成に切り替える
例外フロー
- LiteLLM 接続エラー(400/500):
DEFAULT_MODEL設定ミスまたは Node4 サービス停止を確認 - qwen3-32b-nothink の OOM:モデルサイズに対する Node4 メモリ(128GB 統合)は十分だが、並列処理時は注意
備考
ollama_chat/エンドポイントを使用すること(ollama/は不可)- Phase 比較:UC260416-001(ハイブリッド・使用量最適化)と UC260417-001(CC完全代替)の中間的ポジション
- 実装根拠:vault_worker.py の構築と A/B テスト計画(
60_AgenticTasks/VaultProcessing-AgentComparison.md)が既存証跡
シナリオリスト
ローカルLLM グループ(定型大量生成・コストゼロ)
| シナリオ | 概要 |
|---|---|
| L1 | Lab Log → 出版メモ変換(ローカルLLM 生成、CC レビュー) |
| L2 | AtomicNote 生成(ローカルLLM 生成、CC WikiLink 整合チェック) |
| L3 | 章ドラフト生成(ローカルLLM 生成、CC 文体・構成レビュー) |
| L4 | CBF 分類(ローカルLLM 提案、CC 最終判断) |
Gemini グループ(大容量コンテキスト・マルチモーダル)
| シナリオ | 概要 |
|---|---|
| G1 | 全 Vault 横断の知識統合(1M token コンテキストで AtomicNote 候補・シリーズ矛盾点を抽出) |
| G2 | スクリーンショット・図表のテキスト化(Gemini Vision で _inbox/screenshots/ を構造化ドキュメントへ変換) |
Devin グループ(自律コーディング・長時間非同期タスク)
| シナリオ | 概要 |
|---|---|
| D1 | Publishing パイプラインスクリプトの機能追加(CC が仕様書を作成、Devin が実装 → PR、CC がレビュー) |
| D2 | 評価スクリプト改善(auto_scorer.py 拡張を CC が要件定義、Devin が非同期実装・テスト) |
シナリオ記述
ローカルLLM シナリオ
L1: Lab Log → 出版メモ変換
ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が 50_Lab_Logs/ の Lab Log ファイルを出版メモに変換するよう指示する
フロー:
- CC が Lab Log を読み込み、変換プロンプトを構築する
vault_worker.py lablog-memo --input <log>でローカルLLM に送信する- ローカルLLM が出版メモ形式でドラフトを生成する
- CC が内容・文体・Vault 整合性を確認し、
20_Manuscripts/または30_Knowledge_Graph/に格納する
L2: AtomicNote 生成
ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が新しいキーワードまたは概念の AtomicNote 作成を指示する
フロー:
- CC がキーワード・関連 UC・既存 AtomicNote の一覧を整理し、生成プロンプトを構築する
vault_worker.py atomic-note --input "<概念>|<説明>"でローカルLLM に送信する- ローカルLLM が AtomicNote テンプレートに沿ったドラフトを生成する
- CC が
30_Knowledge_Graph/内の既存ノードとの WikiLink 整合性を確認し、矛盾があれば修正してから格納する
L3: 章ドラフト生成
ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が出版スプリント中に特定の章のドラフト生成を指示する
フロー:
- CC が
99_PublishingSprint/01_CurrentSeed/のindex.mdと関連 AtomicNote を読み込み、章のアウトラインと文脈プロンプトを構築する vault_worker.py free --input "<章アウトライン+文脈>"でローカルLLM に送信する- ローカルLLM が敬語体(です・ます調)でドラフトを生成する
- CC が文体統一・章間の整合性・AtomicNote との一致を確認し、
chapters/に格納する
L4: CBF 分類
ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が新しい Lab Log または原稿に対して CBF 6ビット分類の付与を指示する
フロー:
- CC がコンテンツと CBF 6ビット定義(技術・環境・地政学・経済・社会・思想)を含むプロンプトを構築する
- ローカルLLM がビット割り当てとタグ候補を提案する
- CC が UseCase-Master.md の既存分類と比較して整合性を検証する
- CC が最終判断を行い、
tags:フロントマターに反映する
Gemini シナリオ
G1: 全 Vault 横断の知識統合
ワーカー: Gemini 2.5 Pro(1M token コンテキスト)
トリガー: 著者が複数のシリーズにまたがる AtomicNote の矛盾点洗い出し、または新しいシリーズ横断テーマの発見を指示する
使用理由: Vault の全原稿(数十万トークン規模)を単一コンテキストで処理できるのは Gemini のみ
フロー:
- CC が
20_Manuscripts/および30_Knowledge_Graph/の全ファイルを収集し、Gemini CLI(geminiコマンド)または Gemini API 呼び出しスクリプトでまとめて送信する - プロンプト例:「以下の Vault コンテンツから、(a) シリーズ間の矛盾・重複する AtomicNote 候補、(b) まだ定義されていないが複数箇所で言及されている概念、(c) 新しいシリーズ横断テーマの候補を抽出してください」
- Gemini が横断的な知識マップ・候補リストを返す
- CC が提案を精査し、新規 AtomicNote 作成(→ L2)または既存ノードの更新を実行する
G2: スクリーンショット・図表のテキスト化
ワーカー: Gemini Vision(Gemini 2.0 Flash または 2.5 Pro)
トリガー: 著者が _inbox/screenshots/ に画像をドロップし、「反映して」と指示する(既存 inbox ワークフローとの統合)
使用理由: ローカルLLM はマルチモーダル非対応、CC は画像読み取りは可能だが大量バッチ処理でコストがかかる
フロー:
- CC が
_inbox/screenshots/内の画像ファイルを検出する - Gemini API(
gemini-2.0-flashモデル)に画像とプロンプト「この画像の内容を Obsidian ドキュメント形式(Markdown)で構造化してください。図表はテーブルに、フローは箇条書きに変換してください」を送信する - Gemini が構造化テキストを返す
- CC が対象ドキュメントを特定し、適切なセクションに挿入する(ファイルが不明な場合は
_inbox/pending/に仮置き) - 処理済み画像を
_inbox/screenshots/processed/に移動する
Devin シナリオ
D1: Publishing パイプラインスクリプトの機能追加
ワーカー: Devin(Cognition AI、非同期・自律コーディング)
トリガー: 著者が vault_worker.py または publishing_ops.py への機能追加を決定し、CC に要件を伝える
使用理由: 実装・テスト・デバッグのサイクルが長く(数十分〜数時間)、CC のコンテキスト占有が大きい。Devin に非同期委託することで CC はほかのタスクに集中できる
フロー:
- CC が要件定義書(仕様・受け入れ条件・既存コードの参照箇所)を Markdown で作成し、Devin セッションに貼り付ける
- Devin がリポジトリをクローン(または既存環境を参照)し、実装・テストを非同期で実行する
- Devin が実装完了後に GitHub PR を作成し、著者に通知する
- CC が PR の差分をレビューし、CLAUDE.md の規約・Vault 整合性・セキュリティを確認する
- 著者が承認し、マージする
D2: 評価スクリプト改善(auto_scorer.py 拡張)
ワーカー: Devin(Cognition AI、非同期・自律コーディング)
トリガー: JailBreak 評価・エージェント評価のスコアリングスクリプトに改善要件が生じた時(例:M21 再評価対応、新しいカテゴリ追加)
使用理由: LiteLLM / Anthropic API との接続・例外処理・バッチ処理などの長い実装を CC が逐次実行するとトークンコストが大きい
フロー:
- CC が改善要件(例:「M21 OOM 時の自動スキップと再試行ロジックの追加」)を仕様書化し、
60_AgenticTasks/LLM-Eval/の既存スクリプト・ドキュメントへの参照を添付して Devin に委託する - Devin が
auto_scorer.pyを修正し、Node4 または Node3 環境でテストを実行する - テスト結果(成功件数・エラーログ)とともに PR を作成する
- CC が差分レビューと評価ロジックの整合性確認を行い、著者に報告する