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.pyDEFAULT_MODEL = "general-model" が設定済み
  • Node1(作業端末)から Node4 への HTTP アクセスが可能

事後条件

  • ローカルLLM が生成したドラフトを CC がレビュー・品質判断し、合格した成果物が Vault に格納される
  • 生成コスト(Anthropic API トークン)が削減され、CC の処理はタスク設計・判断・修正に集中される

メインフロー

  1. 著者が CC(オーケストレーター)にタスクを自然言語で指示する
  2. CC がタスクを分解し、ローカルLLM で処理すべき生成サブタスクを特定する
  3. CC が vault_worker.py を通じて LiteLLM API 経由でローカルLLM にサブタスクを委託する
  4. ローカルLLM(qwen3-32b-nothink)がドラフトを生成して返す
  5. CC がドラフトをレビューし、品質・整合性を判断する
  6. 合格の場合:成果物を Vault の適切なフォルダに格納する
  7. 不合格の場合: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 グループ(定型大量生成・コストゼロ)

シナリオ概要
L1Lab Log → 出版メモ変換(ローカルLLM 生成、CC レビュー)
L2AtomicNote 生成(ローカルLLM 生成、CC WikiLink 整合チェック)
L3章ドラフト生成(ローカルLLM 生成、CC 文体・構成レビュー)
L4CBF 分類(ローカルLLM 提案、CC 最終判断)

Gemini グループ(大容量コンテキスト・マルチモーダル)

シナリオ概要
G1全 Vault 横断の知識統合(1M token コンテキストで AtomicNote 候補・シリーズ矛盾点を抽出)
G2スクリーンショット・図表のテキスト化(Gemini Vision で _inbox/screenshots/ を構造化ドキュメントへ変換)

Devin グループ(自律コーディング・長時間非同期タスク)

シナリオ概要
D1Publishing パイプラインスクリプトの機能追加(CC が仕様書を作成、Devin が実装 → PR、CC がレビュー)
D2評価スクリプト改善(auto_scorer.py 拡張を CC が要件定義、Devin が非同期実装・テスト)

シナリオ記述


ローカルLLM シナリオ

L1: Lab Log → 出版メモ変換

ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が 50_Lab_Logs/ の Lab Log ファイルを出版メモに変換するよう指示する
フロー:

  1. CC が Lab Log を読み込み、変換プロンプトを構築する
  2. vault_worker.py lablog-memo --input <log> でローカルLLM に送信する
  3. ローカルLLM が出版メモ形式でドラフトを生成する
  4. CC が内容・文体・Vault 整合性を確認し、20_Manuscripts/ または 30_Knowledge_Graph/ に格納する

L2: AtomicNote 生成

ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が新しいキーワードまたは概念の AtomicNote 作成を指示する
フロー:

  1. CC がキーワード・関連 UC・既存 AtomicNote の一覧を整理し、生成プロンプトを構築する
  2. vault_worker.py atomic-note --input "<概念>|<説明>" でローカルLLM に送信する
  3. ローカルLLM が AtomicNote テンプレートに沿ったドラフトを生成する
  4. CC が 30_Knowledge_Graph/ 内の既存ノードとの WikiLink 整合性を確認し、矛盾があれば修正してから格納する

L3: 章ドラフト生成

ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が出版スプリント中に特定の章のドラフト生成を指示する
フロー:

  1. CC が 99_PublishingSprint/01_CurrentSeed/index.md と関連 AtomicNote を読み込み、章のアウトラインと文脈プロンプトを構築する
  2. vault_worker.py free --input "<章アウトライン+文脈>" でローカルLLM に送信する
  3. ローカルLLM が敬語体(です・ます調)でドラフトを生成する
  4. CC が文体統一・章間の整合性・AtomicNote との一致を確認し、chapters/ に格納する

L4: CBF 分類

ワーカー: ローカルLLM(qwen3-32b-nothink)
トリガー: 著者が新しい Lab Log または原稿に対して CBF 6ビット分類の付与を指示する
フロー:

  1. CC がコンテンツと CBF 6ビット定義(技術・環境・地政学・経済・社会・思想)を含むプロンプトを構築する
  2. ローカルLLM がビット割り当てとタグ候補を提案する
  3. CC が UseCase-Master.md の既存分類と比較して整合性を検証する
  4. CC が最終判断を行い、tags: フロントマターに反映する

Gemini シナリオ

G1: 全 Vault 横断の知識統合

ワーカー: Gemini 2.5 Pro(1M token コンテキスト)
トリガー: 著者が複数のシリーズにまたがる AtomicNote の矛盾点洗い出し、または新しいシリーズ横断テーマの発見を指示する
使用理由: Vault の全原稿(数十万トークン規模)を単一コンテキストで処理できるのは Gemini のみ
フロー:

  1. CC が 20_Manuscripts/ および 30_Knowledge_Graph/ の全ファイルを収集し、Gemini CLI(gemini コマンド)または Gemini API 呼び出しスクリプトでまとめて送信する
  2. プロンプト例:「以下の Vault コンテンツから、(a) シリーズ間の矛盾・重複する AtomicNote 候補、(b) まだ定義されていないが複数箇所で言及されている概念、(c) 新しいシリーズ横断テーマの候補を抽出してください」
  3. Gemini が横断的な知識マップ・候補リストを返す
  4. CC が提案を精査し、新規 AtomicNote 作成(→ L2)または既存ノードの更新を実行する

G2: スクリーンショット・図表のテキスト化

ワーカー: Gemini Vision(Gemini 2.0 Flash または 2.5 Pro)
トリガー: 著者が _inbox/screenshots/ に画像をドロップし、「反映して」と指示する(既存 inbox ワークフローとの統合)
使用理由: ローカルLLM はマルチモーダル非対応、CC は画像読み取りは可能だが大量バッチ処理でコストがかかる
フロー:

  1. CC が _inbox/screenshots/ 内の画像ファイルを検出する
  2. Gemini API(gemini-2.0-flash モデル)に画像とプロンプト「この画像の内容を Obsidian ドキュメント形式(Markdown)で構造化してください。図表はテーブルに、フローは箇条書きに変換してください」を送信する
  3. Gemini が構造化テキストを返す
  4. CC が対象ドキュメントを特定し、適切なセクションに挿入する(ファイルが不明な場合は _inbox/pending/ に仮置き)
  5. 処理済み画像を _inbox/screenshots/processed/ に移動する

Devin シナリオ

D1: Publishing パイプラインスクリプトの機能追加

ワーカー: Devin(Cognition AI、非同期・自律コーディング)
トリガー: 著者が vault_worker.py または publishing_ops.py への機能追加を決定し、CC に要件を伝える
使用理由: 実装・テスト・デバッグのサイクルが長く(数十分〜数時間)、CC のコンテキスト占有が大きい。Devin に非同期委託することで CC はほかのタスクに集中できる
フロー:

  1. CC が要件定義書(仕様・受け入れ条件・既存コードの参照箇所)を Markdown で作成し、Devin セッションに貼り付ける
  2. Devin がリポジトリをクローン(または既存環境を参照)し、実装・テストを非同期で実行する
  3. Devin が実装完了後に GitHub PR を作成し、著者に通知する
  4. CC が PR の差分をレビューし、CLAUDE.md の規約・Vault 整合性・セキュリティを確認する
  5. 著者が承認し、マージする

D2: 評価スクリプト改善(auto_scorer.py 拡張)

ワーカー: Devin(Cognition AI、非同期・自律コーディング)
トリガー: JailBreak 評価・エージェント評価のスコアリングスクリプトに改善要件が生じた時(例:M21 再評価対応、新しいカテゴリ追加)
使用理由: LiteLLM / Anthropic API との接続・例外処理・バッチ処理などの長い実装を CC が逐次実行するとトークンコストが大きい
フロー:

  1. CC が改善要件(例:「M21 OOM 時の自動スキップと再試行ロジックの追加」)を仕様書化し、60_AgenticTasks/LLM-Eval/ の既存スクリプト・ドキュメントへの参照を添付して Devin に委託する
  2. Devin が auto_scorer.py を修正し、Node4 または Node3 環境でテストを実行する
  3. テスト結果(成功件数・エラーログ)とともに PR を作成する
  4. CC が差分レビューと評価ロジックの整合性確認を行い、著者に報告する

対応リスク

ユースケース一覧に戻る