AIエージェントアーキテクト入門

AI駆動開発で成果を出すには、「AIに何を指示するか」だけでなく「AIが最大限の力を発揮できる環境をどう設計するか」が鍵です。このページでは、AIエージェントをアーキテクトする上で意識すべき5つの観点を解説します。

なぜ「5つの観点」が必要なのか

Claude Code をインストールして対話するだけでも AI の恩恵は得られます。しかし、プロジェクトが大規模化しチームで運用するにつれ、以下の課題が顕在化します。

設計なしで AI を使い続けると...

  • トークン(記憶)が膨れ上がり、回答精度が低下する
  • AI が対応できるタスクの範囲が限られたまま
  • 最新のドキュメントや社内情報にアクセスできない
  • 同じミスが何度も繰り返される
  • メンバーごとに AI の品質がバラバラ

5つの観点で設計すると...

  • 必要な情報だけ効率的にAIに渡せる
  • レビュー・テスト・セキュリティチェックまで AI が自律的に対応
  • 外部の最新情報をリアルタイムに参照できる
  • 失敗から学び、AI の出力品質が使うほど向上する
  • チーム全員が同じ品質で作業できる

5つの観点の全体像

5つの観点は独立した要素ではなく、土台から順に積み上げる構造です。観点1の最適化が観点2〜4の効果を高め、観点5で全体をチームに展開します。

flowchart TB P5["観点 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
5つの観点の積み上げ構造
# 観点 一言で 主な 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: トークン消費を最適化する

この観点が解決する課題: AI は会話のコンテキスト(トークン)に上限があります。プロジェクトの全ルール・全コード・全履歴を一度に読み込ませると、本当に必要な情報が埋もれて回答精度が低下します。「必要な情報を、必要なときにだけ、必要な分だけ」AI に渡す設計が重要です。

Rules のパス別適用でコンテキストを節約

全てのルールを常時読み込むのではなく、paths フロントマターで対象ファイルを絞ります。

---
paths:
  - "src/api/**/*.ts"
---
# API 開発ルール
- 全エンドポイントに入力バリデーションを実装する
- 統一されたエラーレスポンス形式を使用する

API ファイルを触るときだけこのルールが読み込まれ、フロントエンド作業時にはコンテキストを消費しません。

サブエージェントによる隔離コンテキスト

メインの会話コンテキストを汚さずに、専門作業を別のエージェントに委譲できます。各サブエージェントは独立したコンテキストで動作するため、メインエージェントのトークンを消費しません。

flowchart LR MAIN["メインエージェント
(設計・指示)"] 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 呼び出し時のみ 専門知識、手順書、テンプレート
サブエージェント 隔離(メインに影響なし) レビュー、分析などの独立タスク
設計指針: 「この情報は毎回必要か?」を自問してください。YES なら CLAUDE.md、特定ファイルだけなら Rules(paths 付き)、たまにしか使わないなら Skills。この振り分けだけでトークン消費を大幅に削減できます。

観点 2: 対応範囲を拡張し品質を向上させる

この観点が解決する課題: AI に「コードを書いて」と指示するだけでは、品質のばらつきや見落としが発生します。AI が対応できる範囲を広げつつ、「書いて → チェックして → 修正して」のサイクルを自動化する仕組みが必要です。

レビュー専門サブエージェントの準備

コードを書くエージェントとレビューするエージェントを分離します。人間のチーム開発と同じように、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"
          }
        ]
      }
    ]
  }
}
flowchart LR CODE["AI がコード生成"] REVIEW["サブエージェントが
レビュー"] 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
多層的な品質保証フロー
設計指針: 品質保証は「指示」と「仕組み」の二段構え。ルールやサブエージェントの指示で 80% をカバーし、Hooks で残り 20% の「うっかりミス」を機械的にブロックします。

観点 3: 外部ソースを読み込ませる

この観点が解決する課題: AI の学習データには鮮度の限界があります。最新のライブラリドキュメント、社内 DB の現在のスキーマ、外部サービスの状態などは、AI 単体ではアクセスできません。AI に「外の世界への窓」を提供する仕組みが必要です。

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
```

結果を要約し、異常がある場合は警告してください。
設計指針: まず MCP サーバーの有無を確認し、あれば MCP で接続。なければ CLI ツールを Skills でラップして AI に実行させます。どちらの場合も、AI が自律的に外部情報を取得できる状態を目指します。

観点 4: 継続学習させる仕組みを作る

この観点が解決する課題: AI は会話が終わると学んだことを忘れます。同じバグ、同じ質問、同じミスが何度も繰り返されるのは、学びが蓄積されないためです。「計画 → 実行 → レビュー → 学習」のサイクルで AI の知識を永続化する仕組みが必要です。

学習サイクル

flowchart LR PLAN["📋 計画
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 パフォーマンスレビューの基準値をエージェントに組み込む

実践例: レビューから学習への流れ

具体的なシナリオ:
  1. コードレビューで「Prisma の findMany でリレーション取得時に N+1 クエリが発生している」と指摘
  2. AI が include を使った実装に修正
  3. 学習: .claude/rules/database.md に「Prisma の findMany でリレーションを取得する際は include を使用し、ループ内での個別取得を禁止する」を追記
  4. 次回以降、AI がコード生成時にこのルールを自動適用 → 同じ問題が再発しない
設計指針: 「このミスは二度目か?」と感じたら、それは学習を永続化すべきサインです。一度のミスは修正で十分ですが、繰り返すパターンは仕組みで防ぎましょう。CLAUDE.md への1行の追記が、チーム全体の品質を永続的に引き上げます。

観点 5: チーム全体へ展開する

この観点が解決する課題: 一人のエンジニアが観点1〜4を整備しても、チームの他メンバーが活用しなければ効果は限定的です。観点1〜4の成果物を Git リポジトリで一元管理し、チーム全員が自動的に同じ設定・ルール・ツールを使える仕組みを構築します。

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 としてパッケージ化することで一括配布・アップデートが可能です。

flowchart TB PLG["共通 Plugin パッケージ
(セキュリティルール、レビューエージェント等)"] 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
Plugins による横展開
設計指針: チーム展開の本質は「1人の天才が全てを設定する」ことではなく、「チーム全員が少しずつ改善を重ねる文化を作る」ことです。CLAUDE.md や Rules への改善 PR は、コードの PR と同じくらい価値があります。

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つの観点を理解したら、具体的な実装例で手を動かしましょう。以下のページでは、これらの観点を実際のプロジェクトにどう適用するかを設定ファイル全文付きで解説しています。