Level 10: Swarm Architect — エージェントがエージェントを構築する
スウォーム(Swarm)アーキテクチャでは、複数の自律的なエージェントが協調して動作します。さらに発展させると、Claude 自身が新しいエージェントの役割・設定・コードを設計・生成することができます。「AI を使う」段階から「AI システムを設計・構築する」段階への転換点です。
対象読者: Level 9 まで実践済みで、自律型の AI システム設計に挑戦したい上級エンジニア。
学習時間の目安: 読了 30分 + 実践 60分
スウォームアーキテクチャとは
Section titled “スウォームアーキテクチャとは”スウォーム(Swarm)は、複数の自律的なエージェントが分担・協調して動くシステムです。各エージェントは特定の専門分野を担い、コーディネーターが全体を管理します。
User Request
↓
Coordinator Agent(全体の進行管理・統合)
├── Researcher Agent(情報収集・調査)
├── Coder Agent(コード実装)
├── Reviewer Agent(レビュー・品質確認)
└── Deployer Agent(デプロイ・リリース)各スペシャリストエージェントは独立して動作し、他のエージェントの完了を待たずにタスクを処理します。コーディネーターは全スペシャリストの出力を受け取り、最終的な成果物に統合します。
エージェントがエージェントを生成するパターン
Section titled “エージェントがエージェントを生成するパターン”Claude に「このサービスに必要な専門エージェントを設計してください」と依頼することで、Claude 自身がエージェント群の設計図を生成します。
> Python + FastAPI の API サーバーを開発・運用するために必要な
> エージェント群を設計してください。
>
> 各エージェントについて以下を定義してください:
> 1. 役割と責任範囲
> 2. 使用するツール(MCP・コマンド等)
> 3. 入出力のインターフェース(JSON スキーマ)
> 4. CLAUDE.md に書くべき制約とルール
> 5. スラッシュコマンドの設計Claude が生成する設計の例:
## エージェント群の設計
### 1. spec-agent(要件定義担当)
役割: ユーザーの要求を受け取り、API 仕様を OpenAPI 形式で定義する
入力: 自然言語の機能要求
出力: {"openapi": "3.0.0", "paths": {...}} 形式の JSON
スラッシュコマンド:
/spec {機能名} → OpenAPI 仕様を生成して docs/api-spec.json に保存
### 2. coder-agent(実装担当)
役割: spec-agent の出力を受け取り、FastAPI のエンドポイントを実装する
入力: OpenAPI 仕様 JSON
出力: src/api/routes/{resource}.py
スラッシュコマンド:
/implement {spec-file} → 仕様に基づいてコードを生成
...Anthropic Agent SDK でのスウォーム実装
Section titled “Anthropic Agent SDK でのスウォーム実装”Python の Anthropic SDK を使って、コーディネーターとスペシャリストを持つスウォームを実装します。
# swarm/api_builder.py
# Python + FastAPI の API サーバーを自動構築するスウォーム実装例
import anthropic
import concurrent.futures
import json
client = anthropic.Anthropic()
def run_specialist(role: str, system_prompt: str, task: str) -> str:
"""スペシャリストエージェントを実行して結果を返す"""
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
system=system_prompt,
messages=[{"role": "user", "content": task}]
)
return response.content[0].text
def build_api_server(requirements: str) -> dict:
"""スウォームで API サーバーの設計・実装を自動化する"""
# Step 1: 要件定義エージェントが仕様を作成する
spec = run_specialist(
"spec-agent",
"API 設計の専門家です。要件を受け取り、詳細な API 仕様を JSON で返します。",
f"以下の要件に基づいて FastAPI の API 仕様を設計してください。\n\n{requirements}"
)
# Step 2: 並列でコード生成・テスト生成・ドキュメント生成を実行する
parallel_tasks = {
"coder": (
"FastAPI の実装専門家です。API 仕様を受け取り、実装コードを生成します。",
f"以下の仕様に基づいて FastAPI のエンドポイントを実装してください。\n\n{spec}"
),
"tester": (
"テストエンジニアです。API 仕様を受け取り、pytest のテストコードを生成します。",
f"以下の仕様に基づいて pytest のテストコードを生成してください。\n\n{spec}"
),
"documenter": (
"テクニカルライターです。API 仕様を受け取り、開発者向けドキュメントを生成します。",
f"以下の仕様を基に Markdown 形式のドキュメントを生成してください。\n\n{spec}"
),
}
results = {}
with concurrent.futures.ThreadPoolExecutor() as executor:
futures = {
executor.submit(run_specialist, role, system, task): role
for role, (system, task) in parallel_tasks.items()
}
for future in concurrent.futures.as_completed(futures):
role = futures[future]
results[role] = future.result()
# Step 3: コーディネーターが全成果物を統合レビューする
summary = run_specialist(
"coordinator",
"複数の専門家の成果物を統合し、品質を確認するコーディネーターです。",
f"""
以下の成果物を統合し、問題点があれば指摘してください。
仕様: {spec}
実装コード: {results['coder']}
テストコード: {results['tester']}
ドキュメント: {results['documenter']}
"""
)
return {
"spec": spec,
"implementation": results["coder"],
"tests": results["tester"],
"docs": results["documenter"],
"review": summary,
}
if __name__ == "__main__":
requirements = """
ユーザー管理 API を構築する。
- ユーザーの作成・取得・更新・削除(CRUD)
- JWT による認証
- SQLite をデータベースとして使用
"""
result = build_api_server(requirements)
print(json.dumps(result, ensure_ascii=False, indent=2))要件定義から全自動デプロイまでの流れ
Section titled “要件定義から全自動デプロイまでの流れ”スウォームを使うと、自然言語の要件からデプロイまでを連続して実行できます。
1. ユーザーが要件を自然言語で入力
↓
2. spec-agent が OpenAPI 仕様を生成
↓
3. (並列)
coder-agent が実装コードを生成
tester-agent がテストコードを生成
documenter-agent がドキュメントを生成
↓
4. reviewer-agent が品質を確認・修正指示
↓
5. (修正が完了したら)
deployer-agent が CI/CD をトリガー
↓
6. 人間が最終確認してマージ・デプロイ承認ステップ 6 の人間による確認は、完全自動化においても省略しないことを推奨します。
スウォーム設計の原則4つ
Section titled “スウォーム設計の原則4つ”1. 単一責任
Section titled “1. 単一責任”各エージェントは 1 つの役割のみを持ちます。「コーダー兼レビュアー」のような複数責任を持つエージェントは作りません。役割が明確なほど、プロンプトが簡潔になり精度が上がります。
2. 明確なインターフェース
Section titled “2. 明確なインターフェース”エージェント間のデータの受け渡しは JSON などの構造化フォーマットで統一します。自然言語のままやり取りすると、後続エージェントが解釈ミスを起こすリスクがあります。
3. 失敗前提の設計
Section titled “3. 失敗前提の設計”1 つのエージェントが失敗しても全体が止まらないよう、リトライロジックとフォールバック(代替処理)を実装します。特に外部 API を呼び出すエージェントは必ず例外処理を入れます。
4. 人間の監視ポイント
Section titled “4. 人間の監視ポイント”完全自動化でも、本番デプロイ・コンテンツの公開・外部サービスへのデータ送信など、影響範囲の大きい操作では必ず人間の確認ステップを設けます。
Level 0〜10 の位置づけ表
Section titled “Level 0〜10 の位置づけ表”| レベル帯 | 位置づけ | 主なスキル |
|---|---|---|
| Level 0〜2 | AI ツールを使う | コンテキスト設定・MCP 接続 |
| Level 3〜5 | AI ワークフローを設計する | カスタムコマンド・Issue 駆動開発 |
| Level 6〜8 | AI システムを構築する | ヘッドレス・ブラウザ自動化・並列実行 |
| Level 9〜10 | AI インフラを運用する | 常時稼働・スウォーム設計 |
Q. スウォームと Level 8 のオーケストレーターパターンの違いは?
オーケストレーターパターンは「人間が設計したスクリプトがエージェントを管理」します。スウォームは「エージェント自身がエージェントの設計や役割分担を決める」点が異なります。
Q. スウォームを導入するのはどのタイミングが適切?
単一エージェントで対応できるタスクにスウォームを使っても複雑になるだけです。並列化できる独立したタスクが3つ以上あり、かつ高頻度で繰り返す場合に導入を検討してください。
実践チュートリアル
Section titled “実践チュートリアル”このガイドを終えたら
Section titled “このガイドを終えたら”Level 0 から Level 10 まで到達しました。Claude Code を「ターミナルで動くチャット」から「24/7 稼働する AI インフラ」として設計・運用する土台を習得しています。
次のステップとして、自分のプロジェクトに最適なレベルのシステムを構築してみてください。すべてのプロジェクトが Level 10 である必要はなく、規模・リスク・チームの習熟度に合わせてレベルを選択するのが実践的なアプローチです。