この記事ではClaude Codeに特化して解説します。Claude Code全般は Claude Code完全ガイド2026:インストールから本番運用まで をご覧ください。

Claude Managed Agentsとは——なぜ今、Anthropicがインフラを提供するのか

2026年4月8日、AnthropicはClaude Managed Agentsをパブリックベータとして公開した。「本番対応のAIエージェントをゼロから構築するのに数ヶ月かかっていたものが数日に短縮できる」という主張を掲げた、クラウドホスト型のエージェント実行基盤だ。

従来、Claudeを使ったエージェントシステムを本番稼働させるには、ハーネス(実行制御フレーム)の設計・サンドボックス環境の構築・認証情報管理・セッション永続化・スケーリング設計を開発者が自前で行う必要があった。Claude Agent SDK(旧Claude Code SDK)はハーネス部分を標準化したが、インフラ部分は依然として自前管理だった。

Claude Managed Agentsはその問題を丸ごと解決する。エージェントの「何をするか」(Agent定義)だけを記述すれば、「どこでどう動かすか」はAnthropicが管理する。Claude Code Auto Modeが開発者の作業を自動化したように、Managed Agentsはエージェントの本番デプロイ全体を自動化する位置づけだ。


なぜ今マネージドインフラが必要なのか——ハーネスの陳腐化問題

Anthropicのエンジニアリングブログでは、Claude Managed Agentsが生まれた技術的背景としてハーネスの陳腐化問題が挙げられている。

エージェントハーネスとは、Claudeのツール呼び出しをルーティングし、コンテキストを管理するコードのことだ。問題は、ハーネスが「Claudeにできないこと」を前提に設計されている点にある。モデルが賢くなるにつれて、その前提が次々に崩れ、ハーネスの更新が追いつかなくなる。

加えて、METRのベンチマーク(Task Completion Time Horizons)でClaude Opus 4.6の50%ホライゾンが10時間超を記録するなど、エージェントのタスク実行時間は急速に伸びている。長時間実行に対応するには、コンテナ障害への耐性・セッション状態の永続化・セキュアな認証管理が不可欠であり、これらはアプリケーションレイヤーではなくインフラレイヤーの問題だ。

flowchart LR subgraph 従来["従来のエージェント構成"] A1["Claude API"] --> B1["ハーネス(自前)"] B1 --> C1["サンドボックス(自前)"] B1 --> D1["認証管理(自前)"] B1 --> E1["セッション永続化(自前)"] end subgraph managed["Claude Managed Agents"] A2["Claude API"] --> B2["ハーネス(Anthropic管理)"] B2 --> C2["サンドボックス(Anthropic管理)"] B2 --> D2["認証管理(Anthropic管理)"] B2 --> E2["セッション永続化(Anthropic管理)"] end style managed fill:#e8f5e9,stroke:#66bb6a style 従来 fill:#fbe9e7,stroke:#ef9a9a

アーキテクチャ:Brain・Hands・Sessionの3層分離

Claude Managed Agentsの設計思想の核心は、モデルが進化しても腐らないインターフェースの構築だ。Anthropicのエンジニアリングチームは、システムを3つの責務に分離した。

別名 役割
Brain Claude本体 + エージェントハーネス(推論・ツール選択)
Hands サンドボックスコンテナ + 外部ツール(コード実行・ファイル操作)
Session セッション イベントログの永続化層(会話履歴・ツール実行結果の記録)

各層は execute(name, input) → string という最小限のインターフェースでのみ通信する。これにより、ハーネスが更新されてもサンドボックスには影響せず、サンドボックスが障害を起こしてもセッションログは保全される。

sequenceDiagram participant U as ユーザー/アプリ participant S as Session層
(イベントログ) participant B as Brain層
(Claude + ハーネス) participant H as Hands層
(サンドボックス) U->>S: user.messageイベント送信 S->>B: イベントストリーム配信 B->>B: ツール選択(推論) B->>H: execute("bash", "python fib.py") H-->>B: 実行結果を返却 B->>S: agent.messageイベント記録 S-->>U: イベントストリーミング配信 Note over H: コンテナ障害時はwake(sessionId)
で復旧。ログはS層に保全される

コンテナの「ペット→家畜」化

旧来のアーキテクチャでは、コンテナが1つ落ちるとセッション全体が失われた。Managed Agentsでは、コンテナは動的にプロビジョニングされる使い捨てリソースとして扱われる。wake(sessionId) APIでセッションを再開でき、コンテナ障害がエージェントの作業を中断させない設計になっている。

セキュリティ設計:認証情報がコードに届かない

認証情報管理も従来とは根本的に異なる。Gitトークンはリポジトリクローン時に消費されるだけでコンテナ内には残らず、MCPサーバーの認証情報はOAuthプロキシ経由で外部Vaultに保管される。コンテナがプロンプトインジェクションで乗っ取られても、認証情報は漏洩しない設計だ。


3つのコアコンセプト

Claude Managed Agentsを使う上で理解が必要な概念は3つだ。

Agent——エージェントのバージョン管理された設定ファイル。使用するモデル・システムプロンプト・ツール・MCPサーバー・スキルを定義する。1度作成してIDで参照する。

Environment——コンテナのテンプレート設定。ランタイムの種類・ネットワークポリシー・インストールパッケージを指定する。セッションごとに新鮮なコンテナがこのテンプレートから生成される。

Session——特定タスクのエージェント実行インスタンス。1つのAgentから多数のSessionを生成できる。セッションは状態を保持し、中断・再開が可能だ。

graph TD A["Agent
(設定の定義)
モデル・ツール・プロンプト等"] --> S1["Session 1
コード生成タスク"] A --> S2["Session 2
データ分析タスク"] A --> S3["Session 3
ドキュメント作成"] E["Environment
(サンドボックステンプレート)
ランタイム・ネットワーク・パッケージ"] --> S1 E --> S2 E --> S3 S1 --> EV1["Events
(イベントログ)"] S2 --> EV2["Events
(イベントログ)"] S3 --> EV3["Events
(イベントログ)"] style A fill:#e3f2fd,stroke:#1565c0 style E fill:#f3e5f5,stroke:#7b1fa2 style S1 fill:#e8f5e9,stroke:#2e7d32 style S2 fill:#e8f5e9,stroke:#2e7d32 style S3 fill:#e8f5e9,stroke:#2e7d32

クイックスタート:Python SDKで最初のセッションを動かす

1. CLIのインストール

ant CLI(Anthropic CLI)をインストールする。SDKと組み合わせて使う場合も、エージェント・環境のセットアップにCLIが便利だ。

# macOS (Homebrew)
brew install anthropics/tap/ant
xattr -d com.apple.quarantine "$(brew --prefix)/bin/ant"

# Linux/WSL (curl)
VERSION=1.0.0
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
curl -fsSL "https://github.com/anthropics/anthropic-cli/releases/download/v${VERSION}/ant_${VERSION}_${OS}_${ARCH}.tar.gz" \
  | sudo tar -xz -C /usr/local/bin ant

# 動作確認
ant --version

2. Python SDKのインストールとエージェント作成

from anthropic import Anthropic

client = Anthropic()  # ANTHROPIC_API_KEY を環境変数に設定

# ── Step 1: Agentを作成(1度だけ実行、IDを保存)
agent = client.beta.agents.create(
    name="Coding Assistant",
    model="claude-sonnet-4-6",
    system="You are a helpful coding assistant. Write clean, well-documented code.",
    tools=[{"type": "agent_toolset_20260401"}],  # bash・ファイル操作・Web検索等
)
print(f"Agent ID: {agent.id}")  # 後続処理で使用

# ── Step 2: Environmentを作成(サンドボックステンプレート)
environment = client.beta.environments.create(
    name="python-sandbox",
    config={
        "type": "cloud",
        "networking": {"type": "unrestricted"},
    },
)
print(f"Environment ID: {environment.id}")

3. セッションを開始してストリーミング受信

# ── Step 3: Sessionを作成(タスクごとに実行)
session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="フィボナッチ数列の計算",
)

# ── Step 4: メッセージ送信 & ストリーミング
with client.beta.sessions.events.stream(session.id) as stream:
    client.beta.sessions.events.send(
        session.id,
        events=[{
            "type": "user.message",
            "content": [{"type": "text", "text": (
                "最初の20個のフィボナッチ数を計算し、"
                "fibonacci.txtに保存するPythonスクリプトを作成して実行してください"
            )}],
        }],
    )
    for event in stream:
        match event.type:
            case "agent.message":
                for block in event.content:
                    if hasattr(block, "text"):
                        print(block.text, end="", flush=True)
            case "agent.tool_use":
                print(f"\n[ツール実行中: {event.name}]")
            case "session.status_idle":
                print("\n\n✅ エージェント完了")
                break

TypeScript版クイックスタート

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

// エージェント・環境は事前作成済みとして、セッションを開始
const session = await client.beta.sessions.create({
  agent: process.env.AGENT_ID!,
  environment_id: process.env.ENVIRONMENT_ID!,
  title: "TS quickstart session",
});

// ストリームとメッセージ送信を並列で実行
const stream = client.beta.sessions.events.stream(session.id);

await client.beta.sessions.events.send(session.id, {
  events: [{
    type: "user.message",
    content: [{ type: "text", text: "Hello! What tools do you have access to?" }],
  }],
});

for await (const event of stream) {
  if (event.type === "agent.message") {
    for (const block of event.content) {
      if ("text" in block) process.stdout.write(block.text);
    }
  }
  if (event.type === "session.status_idle") break;
}

CLIでエージェントをYAML管理する

プロダクション運用では、AgentをYAMLファイルで定義してGit管理し、CIパイプラインで ant apply する構成が推奨されている。

# agent.yaml
name: "code-reviewer"
model: "claude-opus-4-6"
system: |
  You are a senior code reviewer. Review PRs for:
  - Security vulnerabilities
  - Performance issues
  - Code style consistency
  Review the provided diff and output structured feedback.
tools:
  - type: agent_toolset_20260401
mcp_servers:
  - name: github
    url: "https://mcp.example.com/github"
    auth_type: oauth
# YAML定義を適用してAgentを作成/更新
ant agents apply -f agent.yaml

# セッションをCLIで直接起動(スクリプトやCIから)
ant sessions create \
  --agent <AGENT_ID> \
  --environment <ENV_ID> \
  --title "PR #123 review"

# セッションのイベントログを確認
ant sessions events <SESSION_ID>

4つのユースケースパターン

graph LR subgraph patterns["主なユースケースパターン"] E["Event-triggered
イベント駆動
---
バグ検知→PR自動生成
(Sentryの事例)"] S["Scheduled
スケジュール実行
---
毎日定時にX/GitHub
の活動サマリー生成"] F["Fire-and-forget
Slackで依頼
---
スプレッドシート
スライドを生成"] L["Long-horizon
長時間タスク
---
研究リポジトリの
自律探索・実験"] end style E fill:#e3f2fd,stroke:#1565c0 style S fill:#f3e5f5,stroke:#7b1fa2 style F fill:#e8f5e9,stroke:#2e7d32 style L fill:#fff8e1,stroke:#f57f17

Event-triggered(イベント駆動) — 監視システムがバグを検出すると、Managed Agentが自動でパッチを書いてPRを開く。Sentryが採用しているパターンだ。人間はPRのレビューと承認だけに集中できる。

Scheduled(スケジュール実行) — 毎日定時にエージェントが起動し、X投稿やGitHubのアクティビティをサマリーして報告する。Lance Martin自身もこのパターンで日次ブリーフを生成している。

Fire-and-forget(依頼型) — Slack/Teamsでタスクを投げると、エージェントがスプレッドシート・スライド・Webアプリを成果物として返す。Rakutenは1週間で複数部門にこのパターンを展開した。

Long-horizon(長時間タスク) — 数時間〜数日単位の作業をエージェントが自律的に実行する。METRベンチマークでClaude Opus 4.6は50%ホライゾン10時間超を記録しており、このユースケースが最も恩恵を受ける。


競合比較:Claude Managed Agents vs 他エージェント基盤

OpenHandsBrowser UseのようなOSSエージェントフレームワークと比較すると、Claude Managed Agentsの位置づけは明確だ。

特徴 Claude Managed Agents Claude Agent SDK LangChain/LangGraph AWS Bedrock Agents
インフラ管理 Anthropic管理 自前 自前 AWS管理
サンドボックス ✅ 組み込み
セッション永続化 △(自前実装)
認証情報管理 ✅ Vault
多言語SDK 6言語 Python/TS Python/JS Python/Java
モデル非依存 ❌(Claude専用)
OSS ✅(部分的)
料金 $0.08/時 + トークン トークンのみ トークンのみ リクエスト + トークン
TTFT改善 p95で90%以上削減

Claude Managed Agentsはモデルがクロードに固定される代わりに、インフラ全体をマネージドで提供する。モデルを問わずフレームワークだけ使いたい場合はLangChainが選択肢となるが、Claude前提の本番エージェントを最速でデプロイしたい場合はManaged Agentsが最適解だ。


Claude Codeから試す:マネージドエージェントオンボーディング

最も手軽な入口は、公式のClaude Codeスキルを使ったオンボーディングだ。

# Claude Codeを最新版に更新
claude update

# Claude Codeを起動してスキルを実行
claude
/claude-api managed-agents-onboarding

このスキルが対話形式でAPIキーの設定・最初のAgent作成・サンプルセッション実行まで案内してくれる。/claude-api スキルはGitHubの anthropics/skills リポジトリでオープンソース公開されており、仕組みを確認できる。


パフォーマンス:TTFT(初回トークン出力時間)の改善

Anthropicのエンジニアリングブログでは、従来構成と比較したTTFT(Time to First Token)の改善数値が公開されている。

パーセンタイル 改善率
p50(中央値) 大幅削減
p95(上位5%の遅延) 大幅削減

改善の主因はコンテナのプロビジョニング戦略だ。セッション作成時にコンテナを即座には起動せず、初回メッセージ受信のタイミングで必要なコンテナのみを起動する遅延プロビジョニングを採用している。さらに、セッション待機中はリソースを解放するため、課金も実行時間のみとなる。


関連記事: Claude Code完全ガイド2026:インストールから本番運用まで

まとめ

Claude Managed Agentsは「Claudeを使ったエージェントの本番デプロイに必要なインフラをすべて提供する」というシンプルな価値提案で、2026年4月8日にパブリックベータを開始した。

Brain(Claudeハーネス)・Hands(サンドボックス)・Session(イベントログ)の3層分離アーキテクチャにより、モデル進化に追従しながら長時間タスクを安全に実行できる設計になっている。Python/TypeScript/Go/Java/Ruby/PHPの6言語SDKと ant CLIで、既存の開発フローに組み込みやすい。

まず試すなら Claude Code の /claude-api managed-agents-onboarding スキルが最短経路だ。エージェントをコアの一機能として持つClaudeプラットフォームの方向性を確認する上でも、注目に値するリリースだ。


参照ソース