AIエージェントアーキテクト入門
AI駆動開発で成果を出すには、「AIに何を指示するか」だけでなく「AIが最大限の力を発揮できる環境をどう設計するか」が鍵です。このページでは、AIエージェントをアーキテクトする上で意識すべき5つの観点を解説します。
なぜ「5つの観点」が必要なのか
Claude Code をインストールして対話するだけでも AI の恩恵は得られます。しかし、プロジェクトが大規模化しチームで運用するにつれ、以下の課題が顕在化します。
設計なしで AI を使い続けると...
- トークン(記憶)が膨れ上がり、回答精度が低下する
- AI が対応できるタスクの範囲が限られたまま
- 最新のドキュメントや社内情報にアクセスできない
- 同じミスが何度も繰り返される
- メンバーごとに AI の品質がバラバラ
5つの観点で設計すると...
- 必要な情報だけ効率的にAIに渡せる
- レビュー・テスト・セキュリティチェックまで AI が自律的に対応
- 外部の最新情報をリアルタイムに参照できる
- 失敗から学び、AI の出力品質が使うほど向上する
- チーム全員が同じ品質で作業できる
5つの観点の全体像
5つの観点は独立した要素ではなく、土台から順に積み上げる構造です。観点1の最適化が観点2〜4の効果を高め、観点5で全体をチームに展開します。
①〜④をチーム全体に展開し
均一な品質を担保する"] P4["観点 4: 継続学習
計画→実行→レビュー→学習の
サイクルで AI を成長させる"] P3["観点 3: 外部ソース
MCP や CLI で外の世界の
最新情報を読み込ませる"] P2["観点 2: 範囲拡張 & 品質
レビュー・テスト・ゲートウェイで
対応範囲を広げ品質を担保"] P1["観点 1: トークン最適化
記憶を効率的に使い
回答精度を最大化する"] P1 --> P2 --> P3 --> P4 --> P5 style P1 fill:#dbeafe,stroke:#3b82f6,color:#1e293b style P2 fill:#dcfce7,stroke:#22c55e,color:#1e293b style P3 fill:#fef3c7,stroke:#f59e0b,color:#1e293b style P4 fill:#fce7f3,stroke:#ec4899,color:#1e293b style P5 fill:#f3e8ff,stroke:#a855f7,color:#1e293b
| # | 観点 | 一言で | 主な Claude Code 機能 |
|---|---|---|---|
| 1 | トークン消費の最適化 | 記憶を効率的に使う | Rules (paths)、Agents、Skills |
| 2 | 対応範囲の拡張と品質向上 | できることを増やし、質を担保する | Agents、Skills、Commands、Hooks |
| 3 | 外部ソースの読み込み | 外の世界とつなげる | MCP、Skills + CLI ツール |
| 4 | 継続学習の仕組み | 学んで成長させる | CLAUDE.md、Rules、Skills、Agents |
| 5 | チーム全体への展開 | 全員で同じ品質を出す | Git、Settings、Plugins |
観点 1: トークン消費を最適化する
Rules のパス別適用でコンテキストを節約
全てのルールを常時読み込むのではなく、paths フロントマターで対象ファイルを絞ります。
---
paths:
- "src/api/**/*.ts"
---
# API 開発ルール
- 全エンドポイントに入力バリデーションを実装する
- 統一されたエラーレスポンス形式を使用する
API ファイルを触るときだけこのルールが読み込まれ、フロントエンド作業時にはコンテキストを消費しません。
サブエージェントによる隔離コンテキスト
メインの会話コンテキストを汚さずに、専門作業を別のエージェントに委譲できます。各サブエージェントは独立したコンテキストで動作するため、メインエージェントのトークンを消費しません。
(設計・指示)"] R["コードレビュー
エージェント"] S["セキュリティチェック
エージェント"] T["テスト作成
エージェント"] MAIN -->|"委譲"| R MAIN -->|"委譲"| S MAIN -->|"委譲"| T R -->|"結果のみ"| MAIN S -->|"結果のみ"| MAIN T -->|"結果のみ"| MAIN style MAIN fill:#dbeafe,stroke:#3b82f6,color:#1e293b style R fill:#f1f5f9,stroke:#94a3b8,color:#1e293b style S fill:#f1f5f9,stroke:#94a3b8,color:#1e293b style T fill:#f1f5f9,stroke:#94a3b8,color:#1e293b
Skills のオンデマンド読み込み
Skills は呼び出されたときだけコンテキストに読み込まれます。CLAUDE.md に全ての専門知識を詰め込むのではなく、Skills に分離することで普段のトークン消費を抑えられます。
| 方法 | トークン消費 | 適した情報 |
|---|---|---|
| CLAUDE.md に記載 | 常時消費 | プロジェクト全体で常に必要な方針(数十行以内) |
| Rules(パス別) | 対象ファイル操作時のみ | 特定の技術領域・ディレクトリに限定されるルール |
| Skills | 呼び出し時のみ | 専門知識、手順書、テンプレート |
| サブエージェント | 隔離(メインに影響なし) | レビュー、分析などの独立タスク |
観点 2: 対応範囲を拡張し品質を向上させる
レビュー専門サブエージェントの準備
コードを書くエージェントとレビューするエージェントを分離します。人間のチーム開発と同じように、AI にも「実装者」と「レビュアー」の役割分担を設計します。
# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: コードの品質レビューを実施する専門エージェント
---
実装されたコードを以下の観点でレビューしてください:
- ロジックの正確性
- セキュリティ脆弱性(SQLインジェクション、XSS 等)
- パフォーマンス問題(N+1 クエリ、メモリリーク等)
- コーディング規約準拠(.claude/rules/ 参照)
指摘には 🔴 Critical / 🟡 Warning / 🔵 Suggestion のレベルを付与してください。
レビュー用 Skills・カスタムコマンドの準備
定型的なレビュー手順を Skills やカスタムコマンドとして形式知化します。誰が実行しても同じ品質のレビューが行われます。
Commands(手動実行)
/code-review #42
/fix-pr-review #42
/security-check
ユーザーが明示的に呼び出す定型作業。PR レビュー、セキュリティチェックなど。
Skills(自動 + 手動)
/simplify
/explain-code src/app.ts
手動呼び出しに加え、Claude が状況に応じて自動的に使用。コード簡素化、解説など。
Hooks によるゲートウェイ整備
CLAUDE.md やルールは「指示」ですが、Hooks は「仕組みで強制する」ガードレールです。AI がコードを書いた後、コミット前に自動で品質チェックを実行します。
// .claude/settings.json(hooks セクション)
{
"hooks": {
"PreCommit": [
{
"hooks": [
{
"type": "command",
"command": "npm run lint && npm run test:affected"
}
]
}
]
}
}
レビュー"] HOOKS["Hooks が
リント・テスト実行"] COMMIT["コミット"] BLOCK["❌ ブロック
→ 修正へ"] CODE --> REVIEW --> HOOKS HOOKS -->|"成功"| COMMIT HOOKS -->|"失敗"| BLOCK --> CODE style CODE fill:#dbeafe,stroke:#3b82f6,color:#1e293b style REVIEW fill:#dcfce7,stroke:#22c55e,color:#1e293b style HOOKS fill:#fef3c7,stroke:#f59e0b,color:#1e293b style COMMIT fill:#dcfce7,stroke:#22c55e,color:#1e293b style BLOCK fill:#fee2e2,stroke:#ef4444,color:#1e293b
観点 3: 外部ソースを読み込ませる
MCP(Model Context Protocol)による外部連携
MCP は AI に外部サービスへのアクセスを提供する標準プロトコルです。.mcp.json に設定するだけで、AI が GitHub、DB、ドキュメントサイト等を直接参照できるようになります。
// .mcp.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "..." }
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."]
}
}
}
| MCP サーバー | AI ができるようになること |
|---|---|
| GitHub | Issue / PR の読み書き、コードの検索 |
| Context7 | 最新のライブラリドキュメントの参照 |
| PostgreSQL | DB スキーマの確認、クエリの実行 |
| Slack | チャンネルの閲覧、メッセージの送信 |
CLI ツール + Skills による外部情報取得
MCP サーバーが存在しないツールでも、CLI コマンドをインストールし Skills から実行させることで AI の対応範囲を拡張できます。
# .claude/skills/aws-check/SKILL.md
---
name: aws-check
description: AWS リソースの状態を確認するスキル
---
以下のコマンドを実行して AWS リソースの状態を確認してください:
```bash
# ECS サービスの一覧
aws ecs list-services --cluster production
# RDS インスタンスの状態
aws rds describe-db-instances --query 'DBInstances[].{ID:DBInstanceIdentifier,Status:DBInstanceStatus}'
# 直近のデプロイ状況
aws ecs describe-services --cluster production --services api-service
```
結果を要約し、異常がある場合は警告してください。
観点 4: 継続学習させる仕組みを作る
学習サイクル
Issue 分析
設計方針決定"] EXEC["⚡ 実行
コード生成
テスト作成"] REVIEW["🔍 レビュー
品質チェック
問題の発見"] LEARN["📝 学習
CLAUDE.md 更新
Rules / Skills 追加"] PLAN --> EXEC --> REVIEW --> LEARN --> PLAN style PLAN fill:#dbeafe,stroke:#3b82f6,color:#1e293b style EXEC fill:#dcfce7,stroke:#22c55e,color:#1e293b style REVIEW fill:#fef3c7,stroke:#f59e0b,color:#1e293b style LEARN fill:#fce7f3,stroke:#ec4899,color:#1e293b
学習の永続化先
レビューで発見した知見を、適切な場所に永続化します。
| 学んだこと | 永続化先 | 具体例 |
|---|---|---|
| プロジェクト全体の方針 | CLAUDE.md | 「API レスポンスは必ず envelope 形式で返す」 |
| 特定領域のルール | Rules | 「DB マイグレーションは必ず down も書く」 |
| 繰り返す作業手順 | Skills / Commands | 「リリース前チェックリスト」をコマンド化 |
| 専門的な判断基準 | Agents | パフォーマンスレビューの基準値をエージェントに組み込む |
実践例: レビューから学習への流れ
- コードレビューで「Prisma の findMany でリレーション取得時に N+1 クエリが発生している」と指摘
- AI が
includeを使った実装に修正 - 学習:
.claude/rules/database.mdに「Prisma の findMany でリレーションを取得する際は include を使用し、ループ内での個別取得を禁止する」を追記 - 次回以降、AI がコード生成時にこのルールを自動適用 → 同じ問題が再発しない
観点 5: チーム全体へ展開する
Git で共有される設定ファイル群
観点1〜4で作成した成果物は全て .claude/ ディレクトリと .mcp.json に集約されます。Git にコミットするだけでチーム全員に配布されます。
.claude/
├── CLAUDE.md ← 観点4: 学習結果の蓄積先
├── rules/ ← 観点1: パス別トークン最適化 + 観点4: ルール蓄積
│ ├── security.md
│ ├── database.md (paths: "src/db/**/*")
│ └── api.md (paths: "src/api/**/*")
├── settings.json ← 観点2: Hooks による品質ゲート
├── commands/ ← 観点2: レビュー・作業の標準化
│ ├── code-review.md
│ └── dev-issue.md
├── agents/ ← 観点1,2: 隔離コンテキスト + レビュー専門
│ ├── code-reviewer.md
│ └── security-reviewer.md
└── skills/ ← 観点1,3: オンデマンド知識 + 外部ツール
├── explain-code/
└── aws-check/
.mcp.json ← 観点3: 外部ソース連携
ゼロコンフィグ・オンボーディング
新メンバーは以下の3ステップだけで、シニアエンジニアと全く同じ AI 環境を手に入れます。
Step 1
git clone && cd project
CLAUDE.md + Rules が自動適用
Step 2
claude
プロジェクト規約を即座に理解
Step 3
/dev-issue #42
シニアと同じ手順・品質で作業開始
Plugins による複数プロジェクトへの横展開
社内の複数プロジェクトで共通のルール・エージェント・スキルがある場合、Plugins としてパッケージ化することで一括配布・アップデートが可能です。
(セキュリティルール、レビューエージェント等)"] PJ1["プロジェクト A"] PJ2["プロジェクト B"] PJ3["プロジェクト C"] PLG -->|"導入"| PJ1 PLG -->|"導入"| PJ2 PLG -->|"導入"| PJ3 style PLG fill:#f3e8ff,stroke:#a855f7,color:#1e293b style PJ1 fill:#f1f5f9,stroke:#94a3b8,color:#1e293b style PJ2 fill:#f1f5f9,stroke:#94a3b8,color:#1e293b style PJ3 fill:#f1f5f9,stroke:#94a3b8,color:#1e293b
5つの観点の成熟度モデル
5つの観点は一度に全て導入する必要はありません。現在のチームの状況に応じて段階的に導入してください。
| Level | 状態 | 対応する観点 | 主な成果物 |
|---|---|---|---|
| Lv.0 | 素の Claude Code(設定なし) | -- | なし |
| Lv.1 | 基本設計の導入 | 観点 1 | CLAUDE.md + Rules(パス別含む) |
| Lv.2 | 品質保証の自動化 | 観点 1 + 2 | Commands + Skills + Agents + Hooks |
| Lv.3 | 外部連携の確立 | 観点 1 + 2 + 3 | MCP 設定 + CLI Skills |
| Lv.4 | 継続学習サイクルの運用 | 観点 1 + 2 + 3 + 4 | 学習ワークフロー + 定期的な設定更新 |
| Lv.5 | チーム全体での運用・横展開 | 観点 1 〜 5 | Plugins + オンボーディング手順 + 改善文化 |
次のステップ
5つの観点を理解したら、具体的な実装例で手を動かしましょう。以下のページでは、これらの観点を実際のプロジェクトにどう適用するかを設定ファイル全文付きで解説しています。