Claude Managed Agentsとは

2026年4月8日、AnthropicはClaude Managed Agentsを正式リリースしました。 これは、従来の Messages API(/v1/messages)とは別に新設された サーバー側で完全管理されるエージェント実行基盤です。

これまで自前で実装していたエージェントループ、ツール実行、会話状態の永続化、 コンテナ管理といった「ハーネス」部分の大半を、Anthropic側が肩代わりしてくれます。 開発者は/v1/agentsでエージェント設定を作り、 /v1/sessionsでセッションを開始するだけで、長時間実行Agentを動かせるようになりました。

なぜ今、マネージド型が必要だったのか

Messages APIで長時間Agentを動かそうとすると、開発者側で以下を全部実装する必要がありました:

  • ツール呼び出しの検出とツール実行ループ
  • 会話履歴の保存とコンテキスト圧縮
  • タイムアウト・リトライ・中断からの再開
  • ツール実行用のサンドボックスコンテナ管理
  • プロンプトキャッシュの最適化

これらは「本質的な差別化要素ではないが、実装しないと動かない」部類の作業で、 ほとんどのチームが車輪の再発明をしていました。 Managed Agentsはこの定型作業を丸ごと吸収することを狙っています。

graph LR
    subgraph "Messages API(自前ハーネス)"
        A1["Client"] -->|messages| B1["/v1/messages"]
        B1 -->|tool_use| A1
        A1 -->|tool実行| C1["Tool Runtime<br/>(自前)"]
        C1 -->|結果| A1
        A1 -->|tool_result| B1
    end
    subgraph "Managed Agents(マネージド)"
        A2["Client"] -->|user.message| B2["/v1/sessions"]
        B2 -->|内部ループ| D2["Anthropic側<br/>Tool Runtime"]
        D2 -->|自動実行| B2
        B2 -->|SSE stream| A2
    end

Messages APIとの違い

両者は完全に置き換え関係ではなく、用途が明確に分かれています。 短時間タスクや細かい制御が必要な場合はMessages API、 長時間実行や複数ツール連携が必要な場合はManaged Agentsが適しています。

観点 Messages API Managed Agents
エージェントループ 開発者が実装 サーバー側で自動
ツール実行 開発者が結果を返す サーバー側で直接実行
会話状態 クライアント管理 サーバー側で永続化
想定実行時間 数秒〜数分 数分〜数時間
コンテナ 自前用意が必要 /v1/environmentsで管理
制御の細かさ 高い(全て手元) 低い(抽象化されている)
向くユースケース チャットUI、カスタムワークフロー 自動化タスク、長時間Agent、背景ジョブ

主要エンドポイントの全体像

Managed Agentsは4つのリソース(agent / environment / session / event)を組み合わせて使います。 慣れるまでは概念が多く感じますが、一度整理すると非常に素直な設計です。

リソース エンドポイント 役割
Agent POST /v1/agents モデル・システムプロンプト・ツール定義をまとめた「エージェントの設計図」
Environment POST /v1/environments ツール実行用のコンテナテンプレート(ネットワーク制限等を指定)
Session POST /v1/sessions Agent × Environmentで起動する実行インスタンス。会話状態を保持
Event POST /v1/sessions/{id}/events セッションに送るユーザーメッセージや、SSEで受け取るモデル応答

最小構成で動かしてみる

Python SDKを使った最小限のコーディングアシスタントを作ってみます。 以下のコードは、Agentを作成 → Environmentを作成 → Sessionを開始 → メッセージ送信 → SSEでストリーミング受信 という典型的な流れを示しています。

import anthropic

client = anthropic.Anthropic()

# 1. Agent(設計図)を作成
agent = client.beta.agents.create(
    name="Coding Assistant",
    model="claude-sonnet-4-6",
    system="You are a helpful coding assistant. Use tools to explore the codebase.",
    tools=[{"type": "agent_toolset_20260401"}],  # 組み込みツールセット
)

# 2. Environment(実行コンテナテンプレート)を作成
env = client.beta.environments.create(
    name="default-sandbox",
    network_access="unrestricted",  # または "restricted"
)

# 3. Session(実行インスタンス)を開始
session = client.beta.sessions.create(
    agent_id=agent.id,
    environment_id=env.id,
    title="Refactor task",
)

# 4. ユーザーメッセージを送信してストリーミング受信
client.beta.sessions.events.send(
    session_id=session.id,
    events=[{
        "type": "user.message",
        "content": [{"type": "text", "text": "src/ 配下のTypeScriptファイルを一覧化して"}],
    }],
)

with client.beta.sessions.events.stream(session_id=session.id) as stream:
    for event in stream:
        if event.type == "agent.message":
            print(event.content[0].text)
        elif event.type == "agent.tool_use":
            print(f"[tool] {event.name}: {event.input}")

注目すべきは、tool_use / tool_result のやり取りが完全に消えている点です。 Messages APIではtool_useブロックを受け取ったらクライアント側で実行して tool_resultを返す必要がありましたが、Managed Agentsではそれが全てサーバー内で完結します。

組み込みツールセット agent_toolset_20260401

agent_toolset_20260401を指定すると、Agentは以下のツール群を即座に使えるようになります。 全てAnthropic側のサンドボックスコンテナ内で実行されるため、自前で準備する必要はありません。

ツール 用途 Claude Code相当
bash シェルコマンド実行 Bash
read ファイル読み取り Read
write ファイル書き込み(新規) Write
edit ファイル編集(差分) Edit
glob ファイルパターンマッチ Glob
grep ファイル内容検索 Grep
web_fetch URLから取得 WebFetch
web_search Web検索 WebSearch

一覧を見て気付いた方もいるでしょう——これはほぼClaude Codeそのものです。 実際、Managed Agentsは「Claude Codeのハーネスを誰でも使えるAPIとして開放した」 と考えると理解しやすいです。

カスタムツールの追加

組み込みツールに加え、開発者独自のツールも定義できます。 この場合、ツール呼び出しはサーバー側で検出されますが、 実行はクライアント側で行い、結果をイベントとして返却する必要があります。

agent = client.beta.agents.create(
    name="Support Bot",
    model="claude-sonnet-4-6",
    system="You help users with their orders.",
    tools=[
        {"type": "agent_toolset_20260401"},
        {
            "type": "custom",
            "name": "lookup_order",
            "description": "Look up an order by ID",
            "input_schema": {
                "type": "object",
                "properties": {"order_id": {"type": "string"}},
                "required": ["order_id"],
            },
        },
    ],
)

いつManaged Agentsを選ぶべきか

Managed Agentsは強力ですが、万能ではありません。 次のような判断軸で使い分けます。

2026年4月時点での制限と注意点

GA直後のため、いくつか把握しておくべき制限があります。

  • Beta扱い: anthropic-beta: managed-agents-2026-04-01 ヘッダ必須。仕様変更の可能性あり
  • レート制限: Create系60req/分、Read系600req/分(組織全体)
  • Research Previewの機能: outcomes(目標管理)、multiagent(マルチエージェント連携)、memory(長期記憶)は個別申請が必要
  • 料金体系: モデル料金に加えてコンテナ実行費用が発生。長時間実行ではコストが見えにくくなりがち
  • Session永続性: 明示的に削除するまでセッションは残り続けるため、定期クリーンアップの仕組みが必要
  • ネットワーク制限: network_accessrestrictedにしないと、組み込みbashから任意URLにアクセス可能

まとめ — 「どこまで任せるか」の選択肢が増えた

Claude Managed Agentsは、AI Agent開発における 「どこまで自前で作り、どこから任せるか」のスペクトラムに 新しい選択肢を追加しました。ポイントを振り返ります:

  • Managed Agentsはサーバー側で完全管理されるエージェント実行基盤: エージェントループ・ツール実行・会話状態を肩代わり
  • Messages APIとは用途で使い分ける: 短時間・カスタム制御はMessages、長時間・運用任せはManaged
  • 4リソース構成: Agent(設計図)+ Environment(コンテナ)+ Session(インスタンス)+ Event(やり取り)
  • 組み込みツールセット: agent_toolset_20260401でbash/read/write/grep/web_search等が即利用可能
  • Claude Code相当のハーネスをAPIで使える: 自前実装では再現が難しかった成熟度を享受できる
  • Beta段階・料金体系に注意: 仕様変更とコンテナ実行費用の把握は必須

「ハーネスを自前で作るか、借りるか」——この問いは、Webアプリで 「インフラを自前で運用するか、マネージドサービスを使うか」という問いに似てきました。 2026年のAI Agent開発は、まさにその岐路に立っています。

理解度チェック

問題 0 / 60%
Q1

Claude Managed AgentsとMessages APIの最も本質的な違いはどれですか?

キーボード: 1〜4 で選択、Enter で回答