「The Agency」は、Claude Code、Cursor、Aider、Windsurf、GitHub Copilotなどに対応する、147の専門的なAIエージェントのオープンソースコレクションです。各エージェントは、明確な個性、技術的な成果物、成功指標を持っています。この技術的な詳細解説では、エージェントのアーキテクチャ、マルチツール統合、MCPメモリ、およびそれらすべてを動かすbashスクリプトについて説明します。
おそらくお馴染みでしょう。「ベテラン開発者として振る舞ってください」という指示に続き、あらゆるコーディングタスクに適用できる一般的なアドバイスが提示されるパターンです。「The Agency」は異なるアプローチを取ります。すべてをこなそうとする一つのプロンプトの代わりに、12の部門に組織された147のスペシャリストを提供します。
フルサービスの代理店を組織するようなものだと考えてください。ただし、彼らは眠らず、文句も言わず、常に成果を出すAIエージェントです。
「The Agency」とは何か?
| 特徴 | 詳細 |
|---|---|
| 総エージェント数 | 12部門にわたる147の専門エージェント |
| フォーマット | YAMLフロントマター(名前、説明、色、絵文字)付きMarkdownファイル |
| 統合 | Claude Code, Cursor, Aider, Windsurf, GitHub Copilot, Gemini CLI, OpenCode, OpenClaw, Qwen Codeに対応 |
| ライセンス | MIT — 個人および商用利用無料 |
| 起源 | Redditスレッドから始まり、現在はコミュニティによってメンテナンスされている |
| 主要なイノベーション | 汎用的なプロンプトではなく、成果物と成功指標を持つ個性主導のエージェント |

要するに、「The Agency」 は、「開発者として振る舞う」を「フロントエンド開発者モードをアクティブにする」に置き換えます。そして、フロントエンド開発者エージェントは、React、Vue、Angular、Core Web Vitals、およびアクセシビリティコンプライアンスを実際に知っています。
リポジトリ構造:12部門、147エージェント
「The Agency」は github.com/msitarzewski/agency-agents にあります。エージェントは、実際の代理店の組織図を反映した12の部門に編成されています。
agency-agents/
├── engineering/ # 20以上のエージェント:フロントエンド、バックエンド、DevOps、AI、モバイル、セキュリティ
├── design/ # 8エージェント:UIデザイナー、UXリサーチャー、ブランドガーディアン、ウィムジーインジェクター
├── marketing/ # 20以上のエージェント:グロースハッカー、SEO、TikTok、Reddit、LinkedIn
├── sales/ # 8エージェント:ディスカバリーコーチ、ディールストラテジスト、セールスエンジニア
├── product/ # 5エージェント:プロダクトマネージャー、トレンドリサーチャー、フィードバックシンセサイザー
├── project-management/ # 6エージェント:スタジオプロデューサー、プロジェクトシェパード、実験トラッカー
├── testing/ # 8エージェント:リアリティチェッカー、エビデンスコレクター、APIテスター
├── support/ # 6エージェント:サポートレスポンダー、アナリティクスレポーター、法務コンプライアンス
├── spatial-computing/ # 6エージェント:XRアーキテクト、visionOSエンジニア、Metal開発者
├── specialized/ # 30以上のエージェント:MCPビルダー、ブロックチェーン監査人、コンプライアンス監査人
├── game-development/ # 20以上のエージェント:Unityアーキテクト、Unrealシステム、Godotスクリプター、Roblox
└── academic/ # 5エージェント:人類学者、歴史家、心理学者、ナラトロジスト
各部門には、深い専門知識を持つエージェントがいます。エンジニアリング部門だけでも、フロントエンド開発者、バックエンドアーキテクト、DevOpsオートメーター、セキュリティエンジニア、さらには組み込みファームウェアエンジニアまで多岐にわたります。
エージェントの解剖学:400行のAIスペシャリストの内側
すべてのエージェントは同じ構造に従います。以下に、バックエンドアーキテクトエージェントを例にとった内訳を示します。
フロントマター (YAML)
---
name: Backend Architect
description: スケーラブルなシステム設計、データベースアーキテクチャ、API開発、クラウドインフラストラクチャを専門とするシニアバックエンドアーキテクト
color: blue
emoji: 🏗️
vibe: データベース、API、クラウド、スケールなど、すべてを支えるシステムを設計する。
---
このメタデータは装飾的なものではありません。CursorやClaude Codeのようなツールは、エージェントの発見のためにnameフィールドとdescriptionフィールドを使用します。emojiはチャットインターフェースで視覚的な識別を提供します。
アイデンティティとメモリ
## 🧠 あなたのアイデンティティとメモリ
- **役割**: システムアーキテクチャおよびサーバーサイド開発スペシャリスト
- **個性**: 戦略的、セキュリティ重視、スケーラビリティ志向、信頼性への執着
- **メモリ**: 成功したアーキテクチャパターン、パフォーマンス最適化、セキュリティフレームワークを記憶している
- **経験**: 適切なアーキテクチャによってシステムが成功するのを見てきたし、技術的な近道によって失敗するのを見てきた
このセクションは、エージェントのペルソナと専門知識の境界を確立します。これは単なる説明文ではなく、LLMに特定のマインドセットを採用させるための準備をします。
コアミッション
## 🎯 あなたのコアミッション
### データ/スキーマエンジニアリングの卓越性
- データスキーマとインデックス仕様を定義し、維持する
- 大規模データセット(10万以上のエンティティ)向けに効率的なデータ構造を設計する
- データ変換と統合のためのETLパイプラインを実装する
- 20ms未満のクエリ時間を実現する高性能永続化層を作成する
各ミッション項目には測定可能な目標が含まれています。「20ms未満のクエリ時間」や「10万以上のエンティティ」に注目してください。これらは曖昧な目標ではありません。
厳守すべきルール
## 🚨 厳守すべきルール
### セキュリティ第一のアーキテクチャ
- すべてのシステム層にわたって多層防御戦略を実装する
- すべてのサービスとデータベースアクセスに最小権限の原則を使用する
- 現在のセキュリティ標準を使用して、保存時および転送中のデータを暗号化する
ルールは譲れない制約です。これらは一般的なLLMの動作よりも優先されます。
技術的成果物
これは、エージェントが一般的なプロンプトと一線を画す点です。バックエンドアーキテクトは、完全で実行可能なコードを提供します。
-- Eコマースデータベーススキーマ設計
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
deleted_at TIMESTAMP WITH TIME ZONE NULL
);
CREATE INDEX idx_users_email ON users(email) WHERE deleted_at IS NULL;
CREATE INDEX idx_users_created_at ON users(created_at);
// セキュリティミドルウェア付きExpress.js API
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100,
message: 'Too many requests from this IP, please try again later.',
});
成功指標
## 🎯 あなたの成功指標
次の場合は成功とみなされます。
- API応答時間が95パーセンタイルで200ms未満を維持する
- システム稼働時間が99.9%の可用性を超える
- データベースクエリが平均100ms未満で実行される
- セキュリティ監査で重大な脆弱性がゼロである
すべてのエージェントは測定可能な成果を定義します。これは治療的な肯定ではなく、エンジニアリングにおける説明責任です。
マルチツール統合:1つのエージェント、10のIDE
「The Agency」は10以上のAIコーディングツールで動作します。統合レイヤーの機能は次のとおりです。
サポートされているツール
| ツール | フォーマット | インストール場所 |
|---|---|---|
| Claude Code | .md |
~/.claude/agents/ |
| GitHub Copilot | .md |
~/.github/agents/ |
| Cursor | .mdc |
.cursor/rules/ |
| Aider | CONVENTIONS.md |
プロジェクトルート |
| Windsurf | .windsurfrules |
プロジェクトルート |
| Antigravity | SKILL.md |
~/.gemini/antigravity/skills/ |
| Gemini CLI | 拡張機能 | ~/.gemini/extensions/ |
| OpenCode | .md |
.opencode/agents/ |
| OpenClaw | SOUL.md + AGENTS.md |
~/.openclaw/ |
| Qwen Code | .md |
~/.qwen/agents/ |
変換スクリプト(convert.sh)
scripts/convert.sh bashスクリプトがフォーマット変換を処理します。アーキテクチャは次のとおりです。
#!/usr/bin/env bash
# convert.sh — agencyエージェントの.mdファイルをツール固有のフォーマットに変換する
set -euo pipefail
AGENT_DIRS=(
academic design engineering game-development marketing paid-media
sales product project-management testing support spatial-computing specialized
)
# フロントマターフィールドを抽出する
get_field() {
local field="$1" file="$2"
awk -v f="$field" '
/^---$/ { fm++; next }
fm == 1 && $0 ~ "^" f ": " { sub("^" f ": ", ""); print; exit }
' "$file"
}
# フロントマターを削除し、本文を返す
get_body() {
awk 'BEGIN{fm=0} /^---$/{fm++; next} fm>=2{print}' "$1"
}
Cursorの場合、スクリプトは.mdファイルを.mdcルールフォーマットに変換します。
convert_cursor() {
local agent_file="$1"
local slug=$(to_kebab "$(get_field 'name' "$agent_file")")
local output_file="$OUT_DIR/cursor/.cursor/rules/agency-${slug}.mdc"
cat > "$output_file" << EOF
---
description: Agency agent: $(get_field 'description' "$agent_file")
---
$(get_body "$agent_file")
EOF
}
AiderとWindsurfの場合、すべてのエージェントは単一のファイルにコンパイルされます。
convert_aider() {
local output="$OUT_DIR/aider/CONVENTIONS.md"
echo "# Agency Agents for Aider" > "$output"
echo "" >> "$output"
for dir in "${AGENT_DIRS[@]}"; do
for file in "$REPO_ROOT/$dir"/*.md; do
echo "---" >> "$output"
cat "$file" >> "$output"
done
done
}
インストールスクリプト(install.sh)
変換後、install.shはファイルをツール固有のディレクトリにコピーします。
#!/usr/bin/env bash
# install.sh — The Agencyエージェントをローカルのエージェントツールにインストールする
install_claude_code() {
local src="$REPO_ROOT"
local dest="$HOME/.claude/agents"
mkdir -p "$dest"
cp -r "$src"/{engineering,design,marketing,sales,specialized}/*.md "$dest/"
ok "Claude Code: $(find "$dest" -name '*.md' | wc -l) エージェントがインストールされました"
}
install_cursor() {
local src="$OUT_DIR/cursor/.cursor/rules"
local dest="./.cursor/rules"
mkdir -p "$dest"
cp "$src"/*.mdc "$dest/"
ok "Cursor: $(find "$dest" -name '*.mdc' | wc -l) ルールがインストールされました"
}
スクリプトは対話型の選択をサポートしています。
+------------------------------------------------+
| The Agency — ツールインストーラー |
+------------------------------------------------+
システムスキャン:[*] = このマシンで検出されました
[x] 1) [*] Claude Code (claude.ai/code)
[x] 2) [*] Copilot (~/.github + ~/.copilot)
[x] 3) [*] Antigravity (~/.gemini/antigravity)
[ ] 4) [ ] Gemini CLI (Gemini拡張機能)
[x] 7) [*] Cursor (.cursor/rules)
[1-10] 切り替え [a] すべて [n] なし [d] 検出済み
[Enter] インストール [q] 終了
並列実行により、マルチツールのインストールが高速化されます。
./scripts/install.sh --parallel --jobs 8
MCPメモリ:セッション間での永続的なコンテキスト
デフォルトでは、AIエージェントは各セッションを最初から開始します。MCPメモリの統合がそれを変えます。
MCPとは何か?
MCP(Model Context Protocol)は、AIエージェントが外部ツールと永続ストレージにアクセスするためのプロトコルです。「The Agency」はMCPを使用して以下を可能にします。
- セッションをまたぐメモリ:エージェントは以前のセッションでの決定を記憶する
- エージェント間の引き継ぎ:あるエージェントが別のエージェントのためにコンテキストを残せる
- 障害時のロールバック:QAが失敗した場合に既知の良好な状態に復元する
メモリパターン
MCPメモリを有効にするには、このセクションを任意のエージェントに追加します。
## メモリ統合
セッションを開始するとき:
- あなたの役割とプロジェクトを検索用語として使用して、以前のセッションからの関連コンテキストを呼び出す
- あなたのエージェント名でタグ付けされたメモリを確認する
主要な決定を下すか、成果物を完了するとき:
- 記述的なタグ(エージェント名、プロジェクト、トピック)を付けて決定を記憶する
- 将来のセッションが何が、なぜ行われたかを理解できる十分なコンテキストを含める
別のエージェントに引き継ぐとき:
- 受け取るエージェントのためにタグ付けされた成果物を記憶する
- 完了したこと、保留中のこと、次のエージェントが知るべきことを含める
MCPツール
これらのツールを公開する任意のMCPサーバーが機能します。
話
| ツール | 目的 |
|---|---|
remember |
決定、成果物、コンテキストをタグ付きで保存する |
recall |
キーワード、タグ、または意味的類似性でメモリを検索する |
rollback |
何かが失敗したときに以前の状態に復元する |
search |
セッションとエージェントをまたいで特定のメモリを検索する |
例:メモリを活用したワークフロー
MCPメモリがない場合:
ユーザー: "APIを構築して"
エージェント: [APIを構築、セッション終了]
[次のセッション]
ユーザー: "昨日から続けて"
エージェント: "以前のセッションからのコンテキストがありません。何をしたか貼り付けていただけますか?"
MCPメモリがある場合:
ユーザー: "APIを構築して"
エージェント: [APIを構築、記憶:「バックエンドアーキテクト - EコマースAPI - ユーザーテーブル、JWT認証、レート制限」]
[次のセッション]
ユーザー: "昨日から続けて"
エージェント: [呼び出し:「昨日、私はUUID主キーを持つユーザーテーブルを設計し、bcryptハッシュによるJWT認証を実装し、15分あたり100リクエストのレート制限を追加しました。次のステップ:注文サービススキーマ。」]
完全な例については、integrations/mcp-memory/backend-architect-with-memory.md を参照してください。
注目すべきエージェント:3つの詳細解説
1. リアリティチェッカー(テスト部門)
リアリティチェッカーは、非現実的な承認を阻止します。デフォルトのスタンスは、証明されるまでは「要作業」です。
## 🚨 必須プロセス
### ステップ1:現実チェックコマンド(決してスキップしない)
```bash
# 実際に構築されたものを検証する
ls -la resources/views/ || ls -la *.html
# 主張されている機能を相互チェックする
grep -r "luxury\|premium\|glass\|morphism" . --include="*.html" --include="*.css" || echo "NO PREMIUM FEATURES FOUND"
# プロフェッショナルなPlaywrightスクリーンショットキャプチャを実行する
./qa-playwright-capture.sh http://localhost:8000 public/qa-screenshots
ステップ2:QA相互検証
- ヘッドレスChromeテストからのQAエージェントの発見事項を確認する
- 自動スクリーンショットとQAの評価を相互参照する
- 追加の証拠でQAの評価を確認または異議を唱える
ステップ3:エンドツーエンド検証
- responsive-desktop.png、responsive-tablet.png、responsive-mobile.pngを分析する
- インタラクションフローを確認:nav--click.png、form-.pngシーケンス
- 実際のパフォーマンスデータ(ロード時間、エラー、メトリクス)を確認する
このエージェントは、何かを承認する前に**視覚的な証拠**を要求します。証拠なしに「素晴らしい!」はもうありません。
---
### 2. ウィムジーインジェクター(デザイン部門)
ウィムジーインジェクターは、使いやすさを犠牲にすることなく個性を追加します。
```css
/* 楽しいボタンのインタラクション */
.btn-whimsy {
position: relative;
overflow: hidden;
transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
&::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s;
}
&:hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}
}
// ウィムジーのあるアチーブメントシステム
class WhimsyAchievements {
unlock(achievementId) {
const achievement = this.achievements[achievementId];
this.showCelebration(achievement);
this.saveProgress(achievementId);
}
showCelebration(achievement) {
const celebration = document.createElement('div');
celebration.className = `achievement-celebration ${achievement.celebration}`;
celebration.innerHTML = `
<div class="achievement-card">
<div class="achievement-icon">${achievement.icon}</div>
<h3>${achievement.title}</h3>
<p>${achievement.description}</p>
</div>
`;
document.body.appendChild(celebration);
setTimeout(() => celebration.remove(), 3000);
}
}
すべての遊び心のある要素は、機能的または感情的な目的を果たす必要があります。このエージェントには完全なマイクロコピーライブラリが含まれています。
## エラーメッセージ
**404ページ**: "おっと!このページは私たちに言わずに休暇に行ってしまいました。"
**フォーム検証**: "メールアドレスが少しおとなしいようです — @マークを追加していただけますか?"
**ネットワークエラー**: "インターネットがしゃっくりをしたようです。もう一度試してみませんか?"
3. MCPビルダー(専門部門)
MCPビルダーは、AIエージェントの機能を拡張するカスタムツールを作成します。
// TypeScript MCPサーバーのスケルトン
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({ name: "my-server", version: "1.0.0" });
server.tool("search_items", { query: z.string(), limit: z.number().optional() },
async ({ query, limit = 10 }) => {
const results = await searchDatabase(query, limit);
return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }] };
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
厳守すべきルール:
- 記述的なツール名:
search_usersでありquery1ではない — エージェントは名前でツールを選択する - Zodによる型付きパラメータ:すべての入力が検証され、オプションパラメータにはデフォルト値がある
- 構造化された出力:データにはJSON、人間が読めるコンテンツにはMarkdownを返す
- 適切に失敗する:エラーメッセージを返し、決してサーバーをクラッシュさせない
コミュニティと翻訳
「The Agency」はRedditスレッドから始まりました。現在、以下を備えています。
- 12部門にわたる**147のエージェント**
- 個性、プロセス、コード例の**10,000行以上**
- **コミュニティ翻訳**:簡体字中国語(2つの独立したフォーク)があり、さらに進行中
- **マルチツールサポート**:変換スクリプトを介して維持される10以上の統合
注目すべきフォーク:
- @jnMetaCodeによる
agency-agents-zh:翻訳された100のエージェント + 中国市場向けのオリジナル9つ - @dsclca12による
agent-teams:Bilibili、WeChat、Xiaohongshuローカライゼーションを含む独立した翻訳
インストール:クイックスタート
オプション1:Claude Code(推奨)
# エージェントをClaude Codeディレクトリにコピーする
cp -r agency-agents/* ~/.claude/agents/
# 任意のセッションでアクティブ化する
"ねえClaude、フロントエンド開発者モードをアクティブにして、Reactコンポーネントの構築を手伝って"
オプション2:マルチツールインストール
# ステップ1:統合ファイルを生成する
./scripts/convert.sh
# ステップ2:対話的にインストールする(ツールを自動検出)
./scripts/install.sh
# または特定のツールを直接インストールする
./scripts/install.sh --tool cursor
./scripts/install.sh --tool aider
オプション3:リファレンスとして使用
github.com/msitarzewski/agency-agents でエージェントを閲覧し、必要なものを適応させてください。各ファイルには、アイデンティティ、ワークフロー、成果物、コード例が含まれています。
これが他とどう違うのか?
汎用的なAIプロンプトとの比較
| 汎用的なプロンプト | The Agency |
|---|---|
| 「開発者として振る舞う」 | 「フロントエンド開発者モードをアクティブにする」 |
| 曖昧で画一的 | ドメインごとの深い専門性 |
| 成果物構造なし | 完全なコード例、ワークフロー |
| 成功指標なし | 測定可能な成果が定義されている |
プロンプトライブラリとの比較
| プロンプトライブラリ | The Agency |
|---|---|
| 一回限りのプロンプトコレクション | 包括的なエージェントシステム |
| 静的なテキスト | 個性 + ワークフロー + メモリ |
| 統合なし | 10以上のツール統合 |
AIツールとの比較
| AIツール | The Agency |
|---|---|
| ブラックボックスでカスタマイズ不可 | 透明性があり、フォーク可能で適応性がある |
| ベンダーロックイン | MITライセンス、コミュニティによってメンテナンスされている |
| 単一モデル | MCP経由で任意のLLMと連携 |
技術的要点
- 専門化は汎用化に勝る:147のスペシャリストは、1つの「何でも屋」プロンプトよりも優れている
- 構造が出力を推進する:フロントマター + アイデンティティ + ミッション + ルール + 成果物 + メトリクス
- 統合が重要:Bashスクリプトがエージェントを10以上のフォーマットに自動変換する
- メモリが継続性を可能にする:MCPプロトコルは「昨日を覚えていない」問題を解決する
- コミュニティがスケールする:Redditスレッド → 147エージェント → 翻訳 → マルチツールサポート
次のステップ
「The Agency」を試してみたいですか?
- 完全なエージェントリストを閲覧する
- 好みのツール(Claude Code、Cursor、Aiderなど)にインストールする
- 名前でスペシャリストをアクティブにする:「この製品が本番環境で利用可能であることを検証するためにリアリティチェッカーを使用してください」
- 貢献する:新しいエージェントを追加し、既存のエージェントを改善し、成功事例を共有する
自分でAIエージェントを構築していますか? エージェントの解剖学を研究してください:発見のためのフロントマター、ペルソナのためのアイデンティティ、スコープのためのミッション、制約のためのルール、出力のための成果物、説明責任のためのメトリクス。
「The Agency」は、専門化が人間だけのものではないことを証明しています。時には、最高のAIチームとは、すべてをこなそうとする1つのモデルではなく、それぞれが何をすべきかを正確に知っている147のスペシャリストなのです。
