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_accessをrestrictedにしないと、組み込み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開発は、まさにその岐路に立っています。
理解度チェック
Claude Managed AgentsとMessages APIの最も本質的な違いはどれですか?
キーボード: 1〜4 で選択、Enter で回答