本記事で解説しているワークフローファイルmultiplexer-self.yml のソースコード全文と解説は、note.comの記事で公開しています。
この記事をシェア
💡 非同期×定額×並列で生産性が10倍に
41のWebサイトに8並列でブログ記事を投稿する革新的システムの全貌
はじめに:なぜ非同期、定額、並列なのか
私のAI活用のポリシーは「並列、非同期、定額」です。このアプローチが、なぜ圧倒的な生産性を生み出すのか、その理由を明確にお伝えします。
📊 3つのポリシーがもたらす効果
- 🔄 並列:複数のタスクを同時実行することで、待ち時間を削減し、リソースを最大限活用
- ⏰ 非同期:人間とAIがブロッキングせずに独立して作業することで、互いを待つ時間がゼロに
- 💰 定額:予測可能なコストで、無制限にAIを活用できる安心感と自由度
従来のAI活用では、人間がAIに指示を出し、返答を待ち、次の指示を出すという「逐次処理」でした。しかしこれでは、AIの待ち時間中、人間も待機してしまいます。まるで、高速な処理能力を持つコンピュータを、人間のペースに合わせて遅くしているようなものです。
人間とAIが別々の作業をするということ
真の生産性向上とは、人間とAIが完全に独立して、それぞれの得意分野で並行作業することです。
👨💻 人間の役割
- 戦略立案
- 要件定義
- 品質チェック
- 意思決定
🤖 AIの役割
- コード生成
- ドキュメント作成
- テスト実装
- デプロイ実行
私が開発したClaude SelfMux Orchestratorは、この概念を完全に具現化したシステムです。人間はGitHub Issueにタスクを記述し、@claude-selfmuxとメンションするだけ。あとはAIが自動的に:
- タスクを分析して最大8つのサブタスクに分割
- 各サブタスクを独立したClaude AIインスタンスに割り当て
- GitHub Actions上で並列実行
- 完了後、自動的にPRを作成
その間、人間は別の創造的な作業に集中できます。これが真の非同期作業なのです。
技術解説:GitHub Actions Matrix戦略の威力
multiplexer-self.ymlワークフローファイルの核心部分を解説します。このシステムが並列実行を実現する秘密は、GitHub ActionsのMatrix Strategyにあります。
🎯 Matrix Strategyとは
GitHub Actionsのstrategy.matrixは、同じジョブを異なるパラメータで並列実行する強力な機能です。例えば、複数のOSバージョンやNode.jsバージョンでテストを実行する際に使われますが、私たちはこれを複数のAIタスクの並列実行に応用しました。
execute-tasks:
name: Execute - task_${{ matrix.task.id }}
runs-on: self-hosted
needs: analyze-and-split
if: needs.analyze-and-split.outputs.tasks != '[]'
strategy:
matrix:
task: ${{ fromJSON(needs.analyze-and-split.outputs.tasks) }}
fail-fast: false
max-parallel: 8 # 最大8タスク並列実行
steps:
- name: Run Claude Code Agent
uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
task: ${{ matrix.task.description }}
timeout_minutes: "60"
✨ このコードが実現すること
matrix.task:前のジョブから受け取った複数タスクを配列として処理max-parallel: 8:最大8つのタスクを同時実行fail-fast: false:1つのタスクが失敗しても他のタスクは継続self-hosted:独自ランナー上で実行し、リソースを最適化
🔧 ワークツリー方式による競合回避
並列処理で最も難しいのは、Git操作の競合です。複数のタスクが同じリポジトリを同時に操作すると、ロックやマージコンフリクトが発生します。この問題を解決するために、ベアリポジトリ + ワークツリー方式を採用しました。
# 共有ベアリポジトリのセットアップ
SHARED_BASE_PATH="/home/github-runner/common"
SHARED_REPO_PATH="${SHARED_BASE_PATH}/bare-repos/${GITHUB_REPOSITORY}.git"
# 各タスク用の独立したワークツリーを作成
TASK_ID="${{ matrix.task.id }}"
WORKTREE_PATH="${SHARED_BASE_PATH}/worktrees/${GITHUB_REPOSITORY}/${TASK_ID}"
git worktree add -b "task/${TASK_ID}" "${WORKTREE_PATH}" origin/main
この方式により、各タスクは完全に独立したワークディレクトリで作業できます。Gitの内部オブジェクトは共有しつつ、ファイルシステム上では競合が発生しません。
実例:41のWebサイトに8並列でブログ投稿
このシステムの真価は、実際の運用で証明されています。私は41の異なるWebサイトに対して、同一テーマのブログ記事を一斉投稿するタスクを実行しました。
📊 実行結果の衝撃
41サイト
対象Webサイト
8並列
同時実行タスク
53分
全体完了時間
従来の逐次処理なら、1サイトあたり平均10分として410分(約7時間)かかる作業が、並列処理により53分で完了しました。これは約7.7倍の効率化です。
🎬 実行ログから見る並列処理の様子
GitHub Actionsのログを見ると、まさに「オーケストラ」のように複数のタスクが協調して動作している様子が分かります:
✓ Execute - task_1 11分45秒 で成功
✓ Execute - task_2 12分27秒 で成功
✓ Execute - task_5 13分14秒 で成功
✓ Execute - task_6 13分01秒 で成功
✓ Execute - task_7 11分18秒 で成功
✓ Execute - task_8 13分14秒 で成功
✓ Execute - task_9 7分28秒 で成功
✓ Execute - task_10 9分29秒 で成功
--- 第1バッチ完了(8タスク同時実行)---
✓ Execute - task_14 8分15秒 で成功
✓ Execute - task_37 8分36秒 で成功
✓ Execute - task_38 8分55秒 で成功
✓ Execute - task_39 8分15秒 で成功
✓ Execute - task_40 7分52秒 で成功
✓ Execute - task_41 8分17秒 で成功
--- 第2バッチ以降継続 ---
各タスクが完全に独立して動作し、互いに干渉することなく、それぞれのペースで完了していることが分かります。
定額プランの圧倒的優位性
この並列実行システムが実現できるのは、Anthropic Proプランの定額制のおかげです。
💰 コスト比較
| 方式 | 月額コスト | 備考 |
|---|---|---|
| 従量課金API | $800~$2,000 | 使用量に応じて変動 |
| Anthropic Pro | $200 | 無制限バックグラウンド実行 |
定額プランにより、コストを気にせず並列実行できます。従量課金では、並列度を上げるほどコストが跳ね上がりますが、定額なら何台並列でも追加料金はゼロです。
利用している技術スタック
Claude SelfMux Orchestratorは、以下の技術を組み合わせて実現しています:
🤖 Claude API
Anthropic提供のAI APIを使用。定額プランで無制限にバックグラウンドエージェント実行が可能。
⚙️ GitHub Actions
CI/CDプラットフォーム。Matrix Strategyによる並列実行とself-hostedランナーをフル活用。
🌳 Git Worktree
並列タスクの競合を回避。各タスクが独立したワークディレクトリで作業。
📊 JSON処理
fromJSON()関数でタスク配列を動的に処理し、柔軟なタスク分割を実現。
まとめ:人間とAIの理想的な協働関係
「人間とAIが別々の作業をする」という概念は、単なる効率化の手法ではありません。これは人間とAIの理想的な協働関係を表しています。
🎯 重要なポイント
- 非同期:互いを待たず、それぞれのペースで最高の成果を出す
- 定額:コストを気にせず、必要なだけAIを活用できる
- 並列:複数タスクを同時実行し、時間を最大限活用
Claude SelfMux Orchestratorは、この3つのポリシーを完全に具現化したシステムです。41のWebサイトへの同時投稿という実例が示すように、従来の約8倍の効率で作業を完了できます。
あなたも、人間とAIの新しい協働関係を始めてみませんか?
