メインコンテンツへスキップ
Claude システムアーキテクチャ

Claude システムアーキテクチャ全解析

AI アシスト

Claude システムにおける MCP、Skills、Subagents、Hooks、Plugins などのコンポーネントの位置づけ、設計意図、連携関係を深く理解する

はじめに

2025年9月、Anthropic は 1,830億ドル の評価額で130億ドルの資金調達を完了し、世界第4位の非公開企業となりました。その看板製品 Claude Code は2月のリリース以来、11.5万 のアクティブ開発者を獲得し、毎週 1.95億行 のコードを処理し、ユーザー数は 300% 増加しています。

さらに興味深いのは、Anthropic CEO の Dario Amodei が明かした事実です:Claude Code のコードの90%は自分自身で書かれている

なぜそんなことが可能なのか?

AIプログラミングアシスタントが、どうやって「自分で自分を書く」ことができるのか?そのアーキテクチャ設計にはどんな独自性があり、人間の開発者を効率的に補助——さらには代替——できるのか?

The key design principle behind Claude Code is that Claude needs the same tools that programmers use every day. By giving Claude access to the user's computer (via the terminal), it had what it needed to write code like programmers do.

答えは Claude のモジュラーアーキテクチャにあります:MCP がツールを提供し、Skills が使い方を教え、Subagents が並行実行し、Hooks が制御性を確保する——これらのコンポーネントが協調動作することで、Claude は「プログラマーのように働く」能力を獲得しています。

このドキュメントでは、このアーキテクチャの全体像を俯瞰します——各コンポーネントの位置づけ、それらの間の連携関係、そしてクイックスタートの設定例。後続の記事で各コンポーネントの詳細を深掘りします。

全体アーキテクチャ概要

Claude システムはモジュラーアーキテクチャ設計を採用しており、各コンポーネントは機能別に分類され、階層依存ではなく相互補完で動作します:

Claude モジュラーアーキテクチャ
Claude システムのモジュラーアーキテクチャ概要

コアとなる理解:これらのコンポーネントは階層依存ではなく同レベルで相互補完する拡張能力であり、ニーズに応じて自由に組み合わせることができます:

やりたいこと使うもの一言での位置づけ
外部データソースやサービスに接続MCPClaude に「手足」を装着し、データベース、API、ファイルシステムにアクセス
Claude に特定のワークフローを教えるSkillsClaude がある領域で「どうすればいいか」を知るようにする
複雑なタスクを並行処理Subagents大きなタスクを小さなタスクに分割し、複数の Agent が同時に作業
繰り返し操作を素早くトリガーCommandsワンクリックで頻繁に使うワークフローを起動し、繰り返しの指示を省略
特定の操作が必ず実行されることを保証HooksClaude がどう判断しようと、このステップは必ず実行される

コアランタイム

Agent SDK — ランタイムエンジン

Agent SDK は Claude Agent システム全体のランタイムコアエンジンであり、以下を提供します:

  • メインループ (Main Loop):Agent のコアワークループ
  • コンテキスト管理:Token バジェット、自動圧縮(使用率92%でトリガー)
  • ツールディスパッチ:どのツールを使用するか、どう実行するかを決定
  • 権限システム:ツールアクセス権限の制御

Agent のコアワークモードはシンプルなフィードバックループです:

コンテキスト収集 → 操作実行 → 作業検証 → 繰り返し

The agent harness that powers Claude Code (the Claude Code SDK) can power many other types of agents too. To reflect this broader vision, we renamed the Claude Code SDK to the Claude Agent SDK.


Built-in Tools — コアツール

Claude Agent には20以上のコアツールが内蔵されており、3つのカテゴリに分かれています:

カテゴリツール説明
読み取りRead, Glob, Grepファイル読み取り、パターンマッチング、コンテンツ検索
操作Write, Edit, Bashファイル書き込み、編集、コマンド実行
ネットワークWebSearch, WebFetchウェブ検索、ウェブページ取得

これらのツールはデフォルトで利用可能であり、追加設定は不要です。Claude はこれらのツールを通じてコンピュータとやり取りし、プログラマーが IDE を使うのと同じように動作します。


設定とコンテキスト

CLAUDE.md — 永続化コンテキスト

新しい会話を始めるたびに、プロジェクトの背景、コーディング規約、アーキテクチャの約束事を繰り返し説明しなければならない……CLAUDE.md はこれらの情報を一度設定すれば自動ロードにしてくれます。

CLAUDE.md はプロジェクトの AI 用 README のようなもの——Claude にこのプロジェクトの背景知識、作業方法、約束事を伝えます。

階層的オーバーライド

Claude は以下の順序で CLAUDE.md をロードし、より具体的なものほど優先度が高くなります:

Enterprise(最低)

User (~/.claude/CLAUDE.md)

Project (./CLAUDE.md)

Module (./src/module/CLAUDE.md)(最高)

コンテンツの推奨事項

CLAUDE.md には以下のコア情報を含めるべきです:

カテゴリコンテンツ例
技術スタックNext.js 14 + TypeScript, Tailwind CSS
ビルドコマンドnpm run dev, npm run build, npm run test
コード規約命名規則、Lint ツール設定
プロジェクト構造主要ディレクトリの用途説明

キー原則:簡潔に保つこと。CLAUDE.md は毎回の会話でロードされるため、長すぎると貴重な Token を浪費します。


パッケージング・配布

Plugins — インストール可能なユニット

チームの設定が分散し、共有や標準化が難しい。各メンバーが独自の Skills、Commands、Hooks のセットを持っている……どうやって統一管理するのか?

Plugins は Skills + Commands + Subagents + Hooks + MCPインストール可能なユニットにパッケージ化し、ワンクリック配布とチーム標準化を実現します。

ディレクトリ構造

my-plugin/
├── .claude-plugin/
│   └── plugin.json     # プラグインマニフェスト(必須)
├── commands/           # Slash Commands
├── agents/             # Subagents
├── skills/             # Skills
├── hooks/              # Hooks 設定
├── .mcp.json           # MCP Server 設定
└── README.md           # 説明ドキュメント

設定例

// plugin.json
{
  "name": "frontend-toolkit",
  "version": "1.0.0",
  "description": "フロントエンド開発ツールキット",
  "author": "Your Team"
}
# インストール方法
claude plugin install github:your-org/your-plugin  # GitHub から
claude plugin install /path/to/plugin              # ローカルから

関連リソース

リソース説明
claude-plugins-officialAnthropic 公式プラグインリポジトリ
wshobson/agents⭐ 24.3k、高品質 Agent テンプレートコレクション
Claude Plugin Hubコミュニティプラグインマーケットプレイス
awesome-claude-code⭐ 19.3k、厳選 Claude Code リソースリスト

拡張機能(相互補完モジュール)

Claude システムの拡張機能は、それぞれの役割を担い協調動作する複数の相互補完モジュールで構成されています:

モジュール機能の位置づけアクティベーション方法
MCP外部データやサービスへの接続 (WHAT)設定後に利用可能
Skills手続き的知識、Claude にやり方を教える (HOW)自動マッチング
Subagents独立コンテキスト、並行タスク委任明示的な呼び出し
Commands繰り返しワークフロー手動 /cmd
Hooks確定的制御、イベント駆動自動トリガー

MCP — 外部接続

設計理念

Even the most sophisticated models are constrained by their isolation from data—trapped behind information silos and legacy systems.

従来の方法では、各外部データソースにカスタム統合が必要で、N×M の統合地獄に陥っていました。MCP は標準化されたプロトコルを提供し、一度接続すれば、どこでも利用可能を実現します。

MCP (Model Context Protocol) は AIアプリケーションの USB-C インターフェースとして設計されました:

特性説明
オープンスタンダード2024年11月発表、2025年12月に Linux Foundation に寄贈
業界採用OpenAI、Microsoft、Google、AWS などが採用
エコシステム規模月間9,700万以上の SDK ダウンロード、数千のコミュニティサーバー

アーキテクチャパターン

┌─────────────────┐
│   MCP Host      │  (Claude Desktop, IDE, AI ツール)
│   (Main Agent)  │
└────────┬────────┘
         │ 1:N
    ┌────┴────┬────────┬────────┐
    │ Client  │ Client │ Client │  (プロトコルクライアント)
    └────┬────┴────┬───┴────┬───┘
         │         │        │
    ┌────┴────┐ ┌──┴───┐ ┌─┴────┐
    │ Server  │ │Server│ │Server│  (特定の機能を公開)
    │ GitHub  │ │  DB  │ │ Slack│
    └─────────┘ └──────┘ └──────┘

ユースケース:データベース接続、サードパーティサービス統合(GitHub、Slack、Notion)、プライベートAPIアクセス、リアルタイムデータストリーム処理。

設定例

プロジェクトルートに .mcp.json を作成:

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

Commands — 手動ワークフロー

Slash Commands は手動トリガーの繰り返しワークフローを提供します。

特性説明
トリガー方法手動で /command-name を入力
保存場所.claude/commands/
用途繰り返しワークフロー、標準化操作

.claude/commands/review.md を作成

現在の変更についてコードレビューを行ってください。以下に重点を置いてください:
1. コードスタイルと一貫性
2. 潜在的なパフォーマンスの問題
3. セキュリティ脆弱性
4. テストカバレッジ

その後 /review と入力すればトリガーされます。


Hooks — 確定的制御

Hooks は確定的制御のコアです——特定の操作は必ず実行されなければならず、LLM の判断に依存できません。

カテゴリイベントトリガータイミング
ツールPreToolUseツール実行前
PostToolUseツール正常実行後
PostToolUseFailureツール実行失敗後
PermissionRequest権限リクエスト時
セッションSessionStartセッション開始時
SessionEndセッション終了時
StopClaude がレスポンスを完了した時
サブエージェントSubagentStartサブエージェント起動時
SubagentStopサブエージェント停止時
その他UserPromptSubmitユーザーがプロンプトを送信した後
Notification通知イベント
PreCompactコンテキスト圧縮前

設定例

TypeScript ファイルの自動フォーマット:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | { read f; [[ $f == *.ts ]] && npx prettier --write \"$f\"; }"
          }
        ]
      }
    ]
  }
}

実践:自律ループ

Ralph Wiggum は Anthropic 公式プラグインで、Stop hook を利用して自律的なイテレーションループを実現します:

/ralph-loop "TODO API を実装、CRUD とテストを含む" --max-iterations 20

動作原理:Stop hook が Claude の終了をインターセプト → 元のプロンプトを再注入 → タスクが完了するか最大イテレーション数に達するまでイテレーションを継続。

適用シナリオ:複数ラウンドのイテレーションが必要なタスク(テストパス、コードリファクタリング)、自動検証手段があるタスク。


Subagents — タスク委任と並行実行

設計理念

単一の Agent が直面する課題:コンテキストウィンドウの制限、並行処理不可、責任の不明確さ。Subagents は Orchestrator-Worker アーキテクチャパターンでこれらの問題を解決します:

メイン Agent (Orchestrator)
    ├── ユーザーリクエストの分析
    ├── 計画の策定
    ├── タスクの分解
    └── 専門化されたサブエージェントの生成

    ┌────────┬────────┬────────┐
    │ Sub 1  │ Sub 2  │ Sub 3  │  (Workers - 並行実行)
    │ コード │ テスト │ ドキュメント │
    └────────┴────────┴────────┘

    結果の集約 → メインエージェントが総合出力

コア特性

特性説明
コンテキスト分離各 Subagent は独立したコンテキストを持ち、汚染を防止
タスク専門化カスタムシステムプロンプトで専用の役割を定義
ツール権限制御Subagent が使用できるツールを特定のものに制限可能
並行実行複数の Subagent が同時に動作

パフォーマンスデータ:マルチエージェントシステムはシングルエージェントより90.2%高いパフォーマンス、並列化でリサーチ時間を90%削減可能(Token 消費は約15倍だが、複雑なタスクでは価値あり)。

設定例

.claude/agents/ に Markdown ファイルを作成:

---
name: Code Reviewer
description: コードレビュー専門のサブエージェント
tools:
  - Read
  - Grep
  - Glob
---

あなたはシニアコードレビュー専門家です。以下に重点を置いてください:
1. コード品質と保守性
2. 潜在的なバグとエッジケース
3. パフォーマンス最適化の機会
4. セキュリティ脆弱性

Skills — 手続き的知識

設計理念

Claude is powerful, but real work requires procedural knowledge and organizational context.

Skills はAIへの再利用可能なワークブック——モジュール化されたナレッジパッケージで、Claude が必要に応じて動的にロードできます。コア設計原則は段階的開示 (Progressive Disclosure) です:

📚 Skills ワークブック

├─ 📋 目次 ────────────── 【メタデータ層】起動時にプリロード (~30-50 tokens)
│   name: "weekly-report"
│   description: "標準化された週報を生成"

├─ 📖 本文章節 ─────────── 【コアドキュメント層】関連時にロード (~数百-数千 tokens)
│   # Weekly Report Generator
│   ## Instructions
│   以下の構成で週報を生成...

└─ 📎 付録 ────────────── 【参照リソース層】必要時にロード
    references/
    ├── template.xlsx
    └── examples/

MCP vs Skills:MCP は Claude にツールへのアクセス能力を与え(WHAT)、Skills は Claude にこれらのツールを効果的に使う方法を教えます(HOW)。

コア優位性

優位性説明
Token 効率メタデータはわずか 30-50 tokens、数十の Skills を同時に有効化可能
自動アクティベーションタスクコンテキストに応じて自動マッチング、手動トリガー不要
コンポーザブル複数の Skills が自動的に協調動作
ポータブルClaude.ai、Claude Code、API で一貫した体験

設定例

.claude/skills/ にディレクトリを作成:

my-skill/
├── SKILL.md          # コア指示(必須)
├── scripts/          # 実行可能スクリプト(任意)
└── references/       # 参考資料(任意)

SKILL.md のコア構造:

---
name: code-review                        # Skill 名
description: コードレビュー、品質とセキュリティのチェック    # 簡潔な説明(自動マッチングに使用)
---

# Code Review Skill

## Instructions
[具体的な手順の説明...]

## Output Format
[出力フォーマットの要件...]

ポイント:frontmatter の description は自動マッチングに使用されるため、簡潔かつ正確に保ちましょう。


公式参考リンク

設計理念

リソース説明
Building Effective AgentsAgent アーキテクチャの綱領的記事
Building agents with the Claude Agent SDKAgent SDK エンジニアリング実践
Equipping Agents with Agent SkillsSkills 設計理念
Introducing the Model Context ProtocolMCP 発表公告

公式ドキュメント

リソース説明
Skills explainedSkills と他のコンポーネントの比較
Using CLAUDE.md FilesCLAUDE.md 使用ガイド
Claude Code SubagentsSubagents 公式ドキュメント
Claude Code HooksHooks 公式ドキュメント
MCP DocumentationMCP 公式ドキュメント
MCP SpecificationMCP プロトコル仕様

深層分析

リソース説明
Understanding Claude Code's Full Stackアーキテクチャ図を含む
Claude Agent Skills: Deep DiveSkills 原理の詳細分析
How Claude Code is builtClaude Code 構築の内幕
Claude Skills vs. MCPSkills と MCP の技術比較

さらに読む

Skills のコンセプトと実践をさらに深く理解したい方は、以下をご覧ください:

コメント

目次