Claude

Claude Managed Agentsとは?仕組み・料金・Python実装と導入判断【2026年10月】

Claude Managed Agentsとは?仕組み・料金・Python実装と導入判断【2026年10月】

Claude Managed Agentsは、Anthropicが2026年4月8日にパブリックベータとして公開した、Claudeをエージェントとして動かすための実行基盤です。エージェントループ、ツールを実行するサンドボックス、会話履歴の保存をAnthropic側が持ち、開発者はAPIで「どのモデルに・何を・どの環境でやらせるか」を渡します。この記事では、2026年10月時点の公式ドキュメントとリリースノートをもとに、4つの構成要素、料金の計算、Pythonでの実装、公開後に追加された機能、本番で事故になりやすい既定値を整理します。

まとめ:Claude Managed Agentsの要点(2026年10月時点)

  • Anthropicが運用するエージェント実行基盤で、2026年10月時点もパブリックベータです。Agent・Environment・Sessionなどの呼び出しには managed-agents-2026-04-01 ヘッダーが必要で、SDKが自動で付けます。Memory storeの操作だけは agent-memory-2026-07-22 を使い、両方を同時に送ると400エラーになります。
  • Agent(設定)・Environment(実行場所)・Session(実行中の1タスク)・Events(やり取り)の4要素で組み立てます。
  • 料金は通常のトークン料金に、セッションが running の間だけ1時間0.08ドルが加わります。Batch APIの割引は使えません。
  • 公開後、メモリ、マルチエージェント、Outcomes、セルフホスト、スケジュール実行、予算上限が順に加わりました。
  • APIでEnvironmentを作るとネットワークは既定で unrestricted、組み込みツールは既定で承認なしで実行されます。本番前にこの2つを必ず変えます。
  • ZDR(データ非保持)とHIPAA BAAの対象外で、Amazon Bedrockなどパートナー運営のクラウドでは使えません。

Claude Managed Agentsの位置づけとMessages API・Agent SDKとの違い

Anthropicが運用する「ハーネス」としての役割

公式ドキュメントは本製品を「マネージドなインフラで動く、構成可能なエージェントハーネス」と説明しています。ハーネスとは、モデルの呼び出しを繰り返し、ツールを実行し、結果を次の呼び出しに渡す制御部分のことです。自前で組むとループ、コンテキストの圧縮、プロンプトキャッシュ、障害時の再試行を書く必要がありますが、Managed Agentsではこれを基盤側が持ちます。ハーネスを構成する部品の考え方は「AIハーネスとは?LLMエージェントの制御基盤を構成する6部品とSDK別の実装」で詳しく扱っています。

アクセス申請は不要で、全APIアカウントで既定で有効です。ただしベータ内でも、MCPトンネルとドリーミングは申請制のリサーチプレビューに分かれています。

Messages API・Claude Agent SDKとの比較

Anthropicの公式の構築手段は3つあり、違いは「エージェントループとサンドボックスを誰が動かすか」です。

項目 Messages API Claude Agent SDK Managed Agents
ループの実行場所 自社コード 自社のプロセス Anthropic
ツール実行環境 自前で用意 自社のマシン Anthropicのコンテナ(セルフホストも可)
会話履歴の保存 毎回送り直す 自社側 サーバー側に保存
完了の判定 自分で決める SDKが返す idleの停止理由と成果物を確認
Batch割引 あり – なし

公式の移行ガイドによると、Messages APIのループから移ると、履歴配列の管理、tool_use の反復処理、サンドボックスの用意が不要になります。一方、カスタムツールは引き続き自社コードで実行し、agent.custom_tool_use イベントに結果を返す形に変わります。ループを1行ずつ制御したい場合や、モデル呼び出しの間に独自の処理を挟みたい場合は、Messages APIで組むほうが向いています。手順は「AIエージェントの作り方:ツール定義からループ・承認・トレースまでコードで組む」で解説しています。

Agent・Environment・Session・Eventsの4要素

Agent:モデル・システムプロンプト・ツールをまとめたバージョン付きの設定

Agentには、モデル、システムプロンプト、ツール、MCPサーバー、スキル、委任先のエージェントを登録します。対応モデルはClaude 4.5以降です。設定を変えるたびに version が1から順に上がり、Sessionは最新版を使うか、特定の版に固定するかを選べます。2026年6月30日以降は、Agentを書き換えずにSession単位でモデルやツールを上書きできるようになりました。新しいモデルを一部のセッションだけで試すときに使います。

Environment:クラウドサンドボックスとセルフホスト

Environmentは、Sessionが動くコンテナの設定です。1つのEnvironmentを複数のSessionで共有しても、ファイルシステムはSessionごとに別々です。Anthropicのクラウドサンドボックスの仕様は次のとおりです。

項目 値
OS・アーキテクチャ Ubuntu 24.04 LTS・x86_64
メモリ・ディスク 最大8GB・最大10GB
主な言語 Python 3.10〜3.13、Node.js 20〜22、Go 1.24/1.25、Java 21
データベース PostgreSQL 16、Redis 7(既定では停止)
追加パッケージ apt・cargo・gem・go・npm・pip で事前導入

2026年5月19日からは、ツールの実行だけを自社インフラに移すセルフホストサンドボックスも使えます。自社で動かすワーカーがキューから作業を取り、ツールを実行して結果を返す仕組みです。ただし、ツールの入力と出力はモデルが次の判断に使うため、Anthropicの制御プレーンを通ります。データを社外に一切出さない構成にはならない点に注意してください。

Session:4つの状態と停止理由

Sessionは、AgentとEnvironmentを指定して作る、1つのタスクの実行単位です。状態は次の4つです。

状態 意味 課金
idle 指示や承認を待っている 対象外
running エージェントが実行中 対象
rescheduling 一時的なエラーから自動で再試行中 対象外
terminated 回復不能なエラーかアーカイブで終了 対象外

作業を終えたSessionは terminated ではなく idle に戻ります。idle になった理由は stop_reason で区別します。end_turn は完了か中断、requires_action はツール実行の承認やカスタムツールの結果待ち、budget_reached は予算の上限に達した状態です。

Events:SSEでの受信と実行中の割り込み

アプリとエージェントのやり取りはすべてイベントです。指示は user.message で送り、エージェントの発言やツール呼び出しはServer-Sent Events(SSE)で届きます。イベント履歴はサーバー側に残るため、接続が切れても、履歴の取得とストリームの再接続を組み合わせれば取りこぼしを防げます。実行中に方針を変えたいときは user.interrupt を送ってから新しい user.message を続けます。状態の変化だけを受け取るWebhookもありますが、配信順は保証されず重複もありえます。

Pythonで実装する手順:Agent作成から承認待ちへの応答まで

SDKとCLIの準備

PythonはAnthropic公式SDK(pip install anthropic)を使い、APIキーを環境変数 ANTHROPIC_API_KEY に入れます。設定をファイルで管理したい場合は、公式CLIの ant を使うと、Markdownに書いたAgent定義を ant apply で登録できます。2026年9月公開の ant 1.32.0以降では、ant beta:sessions connect でターミナルから実行中のSessionを追跡し、承認待ちのツール呼び出しを許可・拒否できます。

テスト修正用Agentの作成と承認応答の最小例

この例はAgentの作成と承認応答を示すもので、対象コードやテストの投入は含みません。既存プロジェクトを修正するには、リポジトリをSessionに接続するか、Files APIでアップロードしたファイルをマウントして書き込み可能な作業場所にコピーする必要があります。ここでは、bash の実行を毎回承認制にしたうえで、git push という文字列を含むコマンドだけを拒否する応答を返します。Sessionには5ドルの予算上限を付けています。

from anthropic import Anthropic

client = Anthropic()  # ANTHROPIC_API_KEY を環境変数から読む

agent = client.beta.agents.create(
    name="test-fixer",
    model={"id": "claude-sonnet-5-5", "effort": "high"},
    system="Run the test suite, fix failing tests, and report the diff.",
    tools=[{
        "type": "agent_toolset_20260401",
        "configs": [{"name": "bash", "permission_policy": {"type": "always_ask"}}],
    }],
)

environment = client.beta.environments.create(
    name="test-fixer-env",
    config={
        "type": "cloud",
        "packages": {"pip": ["pytest"]},
        "networking": {"type": "limited", "allow_package_managers": True},
    },
)

session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="fix failing tests",
    budget={"type": "limit", "max_list_cost": {"amount": "500", "currency": "USD"}},
)

tool_calls = {}  # 承認待ちの判断に使う tool_use イベント

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": "Run pytest and fix the failures."}]}],
    )
    for event in stream:
        if event.type == "agent.message":
            for block in event.content:
                if block.type == "text":
                    print(block.text, end="")
        elif event.type == "agent.tool_use":
            tool_calls[event.id] = event
            print(f"\n[tool] {event.name}")
        elif event.type == "session.status_idle":
            reason = event.stop_reason.type
            if reason == "requires_action":
                answers = []
                for eid in event.stop_reason.event_ids:
                    command = tool_calls[eid].input.get("command", "")
                    if "git push" in command:
                        answers.append({"type": "user.tool_confirmation", "tool_use_id": eid,
                                        "result": "deny", "deny_message": "push is not allowed"})
                    else:
                        answers.append({"type": "user.tool_confirmation", "tool_use_id": eid,
                                        "result": "allow"})
                client.beta.sessions.events.send(session.id, events=answers)
            else:  # end_turn または budget_reached
                print(f"\n[idle] {reason}")
                break

このコードは、anthropic 0.125.0(2026年10月8日時点)に送信内容を記録する擬似サーバーを当てて動作を確かめました。実際のAPIは呼んでいません。5本のPOSTと1本のストリーム接続のすべてに anthropic-beta: managed-agents-2026-04-01 が自動で付き、git push を含む呼び出しには deny が返ることを確認しています。

予算の amount は、ドルではなくセント単位の整数を文字列で渡します。"500" が5ドルで、"5.00" のような小数表記は400エラーになります。

料金:トークン料金+セッション時間1時間0.08ドル

トークン・セッション実行時間・Web検索の課金条件

課金は2つの軸で決まります。1つはトークンで、Messages APIと同じ単価とプロンプトキャッシュの倍率がそのまま適用されます。もう1つはセッション時間で、Sessionが running の間だけ1時間0.08ドルがミリ秒単位でかかります。指示待ち(idle)や再試行中の時間は課金されません。このほか、セッション内のWeb検索は1,000回あたり10ドルです。

Messages APIとの違いは3点です。Batch APIの50%割引は使えません。モデルの inference_geo を "us" に固定するとトークン料金が1.1倍になります。Amazon BedrockやGoogle Cloudなどパートナーが運営するクラウドでは提供されません。

モデル別の1時間あたり試算

公式の料金ページの計算例と同じく、1時間のセッションで入力5万トークン・出力1万5,000トークンを使った場合を、2026年10月8日時点の単価で計算しました。

モデル 入力 出力 セッション時間 合計
Claude Opus 5.5 $0.20 $0.30 $0.08 $0.58
Claude Sonnet 5.5 $0.10 $0.15 $0.08 $0.33
Claude Haiku 5.5 $0.005 $0.0075 $0.08 約$0.093

この試算では、Haiku 5.5の合計の約86%をセッション時間が占めます。ただし、1回のプロンプトが10万トークンを超える場合は、100万トークンあたり入力0.50ドル・出力2.50ドルの料金帯になります。軽いモデルほど、待ち時間の長いツール(ビルドや外部APIの応答待ち)で running が延びる影響が大きくなります。1日8時間・月22日動かし続けるエージェントなら、セッション時間だけで月14.08ドルです。

Sonnet 5.5のキャッシュ読み取りは2026年10月7日に基本入力単価の0.05倍(100万トークン0.10ドル)へ下がりました。同じ例で入力のうち4万トークンがキャッシュから読まれると、合計は約0.25ドルになります(キャッシュ書き込みの費用は含みません)。複数回のモデル呼び出しで履歴を繰り返し入力すると、セッション全体の入力トークンは増えます。費用は、各呼び出しの入力・出力とキャッシュの利用量を合算して見積もります。モデルの単価は「Claude Sonnet 5.5とは?料金据え置きと破壊的変更5点・Sonnet 5からの移行手順【2026年9月】」も参考にしてください。

セッション予算の設定と上限到達時の動作

2026年8月7日から、Session作成時に budget を渡すとドル建ての上限を設定できます。基盤はトークン、Web検索、セッション時間を公開単価で積算し、上限に達すると次のモデル呼び出しを止めて budget_reached で idle にします。Sessionは終了せず、上限を引き上げるか外せば作業が自動で再開します。ただし、上限をまたぐ実行中のモデル呼び出しは完了するため、最終的な費用が設定額を超える場合があります。一度外した予算は同じSessionに再設定できません。

注意点は2つあります。予算はSession作成時にしか付けられず、後から追加すると400エラーになります。また、判定は公開単価で行うため、割引契約がある組織では請求額より早く上限に届きます。スケジュール実行に予算を付けた場合、上限は累計ではなく1回の実行ごとに適用されます。

2026年4月の公開後に追加された機能の時系列

公開時はリサーチプレビューだった機能の多くが、5月以降に通常のベータへ移りました。公開直後の解説記事を読む場合は、次の日付(Claude Platformのリリースノートによる)と照らし合わせてください。

日付 追加・変更された内容
2026-04-08 パブリックベータで公開
2026-04-23 メモリ(Memory store)がベータに
2026-05-06 マルチエージェント・Outcomesがベータに、ドリーミングがリサーチプレビューで公開、Webhook
2026-05-11 Claude Platform on AWSで提供開始
2026-05-19 セルフホストサンドボックス、MCPトンネル(リサーチプレビュー)
2026-06-09 スケジュール実行、Vaultの環境変数
2026-06-30 Session単位の設定上書き
2026-08-07 セッション予算、advisor、推論リージョンの固定
2026-09-10 権限ポリシー auto、ant beta:sessions connect
2026-10-07 web_fetch の取得先を制限

Outcomes:ルーブリックによる採点と反復上限

Outcomesは、完成物の採点基準(ルーブリック)をMarkdownで渡し、基準を満たすまでエージェントに作り直させる機能です。採点は別のコンテキストで動く採点役が行い、本体の実装方針に引きずられないようにしています。反復回数は max_iterations で指定し、既定は3回、上限は20回です。「データがきれい」のような曖昧な基準では採点がぶれるため、「price列に数値が入っている」のように1項目ずつ判定できる書き方にします。公開時の発表では、構造化ファイルの生成に関する社内テストで、Managed Agentsが通常のプロンプトループよりタスク成功率を最大10ポイント高めたとされています。

マルチエージェント:委任は1階層・同時25スレッドまで

調整役のAgentに委任先のAgentを登録すると、1つのSessionの中で子エージェントを並列に動かせます。全員が同じサンドボックス、ファイルシステム、Vaultの認証情報を共有し、会話の文脈だけがスレッドごとに分かれます。委任できるのは1階層のみで、登録できるAgentは20種類まで、同時に動くスレッドは25本までです。ただし、advisorへの相談用スレッドはこの同時実行上限に含まれません。並列化の設計パターンは「マルチエージェントオーケストレーションとは?仕組み・主要パターン・フレームワーク選定と採用判断を実装者視点で解説【2026年版】」で比較しています。

メモリとドリーミング:保存上限・アクセス権限・提供状況

Memory storeは、Sessionのサンドボックスにディレクトリとしてマウントされるテキストの保存領域です。1件100kBまで、1ストア1万件まで、1Sessionに8ストアまで付けられ、書き換えのたびに版が残ります。既定は読み書き可能なので、外部のWebページなど信頼できない入力を扱うエージェントでは、プロンプトインジェクションで不正な内容を書き込まれるおそれがあります。共有の参照資料は read_only で付けるのが安全です。過去のSessionの記録からストアを整理し直すドリーミングは、まだ申請制のリサーチプレビューです。詳しくは「アンソロピックの新機能「ドリーミング」とは|Claudeエージェントが自己改善する仕組みと使い方」を参照してください。

本番前に変えるべき既定値:ネットワーク・権限・認証情報

APIで作るEnvironmentは既定でunrestricted

Claude Consoleの作成画面は Limited が初期値ですが、APIで networking を省略すると unrestricted(安全上のブロックリスト以外はすべて接続可)になります。さらに組み込みツールの権限ポリシーは既定で always_allow なので、何も指定しなければ「承認なしの bash がインターネット全体に出られる」状態になります。公式ドキュメントも、この組み合わせではファイルや認証情報がサンドボックスの外へ出うると警告しています。

本番では limited を明示し、接続先を allowed_hosts に列挙します。allow_package_managers を true にするとPyPIやnpm、GitHubなどへの接続が加わります。ただし許可は通信先の単位であり、操作の単位ではありません。GitHubを許可すれば git push も通るため、書き込みを止めるには、書き込み権限のない認証情報と、操作内容を確認する承認処理を組み合わせます。前述のコード例は承認応答のデモであり、文字列判定だけでは書き込みを防げません。

権限ポリシーの3種類とautoの限界

ポリシー 動き 既定になる対象
always_allow 確認なしで実行 組み込みツール
always_ask 実行前に止まって承認を待つ MCPツール
auto サーバーが1件ずつ判定(実行・拒否・保留) –

2026年9月10日に加わった auto は、サーバーが安全と判断した呼び出しを人の確認なしで実行します。公式ドキュメントも「人による確認の代わりにはならない」と明記しています。削除や外部への送信など取り消せない操作をするツールは、auto ではなく always_ask にしてください。

Vaultの認証情報管理とweb_fetchのURL制限

APIキーをプロンプトやコードに書く必要はありません。Vaultに環境変数として登録すると、サンドボックスにはプレースホルダーだけが置かれ、許可したドメインへの通信の時点で本物の値に置き換わります。1つのVaultに登録できる認証情報は20件までで、環境変数型はセルフホストのサンドボックスではまだ使えません。

2026年10月7日の変更で、web_fetch はセッション内に既に出てきたURL(ユーザーの指示文、検索結果、取得済みページの本文)しか取得しなくなりました。システムプロンプトや添付文書、bash の出力にしか書かれていないURLは url_not_in_prior_context エラーになります。読ませたいURLは user.message に書いて渡すのが確実です。

導入事例と、Managed Agentsを選ぶべきでないケース

Notion・Rakuten・Asana・Sentryの導入用途と開発期間

公開時の発表では、次の企業の利用が紹介されています。いずれもAnthropicの発表文に基づく内容で、効果の数値は各社のコメントです。

  • Notion:ワークスペース内からClaudeに作業を任せる機能を、Notion Custom Agentsのプライベートアルファで提供
  • Rakuten:プロダクト、営業、マーケティング、財務などの部門向けに、SlackやTeamsから仕事を頼める専門エージェントを各1週間以内で投入。6月の発表では、スプレッドシートを分析して週次・月次のレポートを作るスケジュール実行にも使っています
  • Asana:プロジェクト内で人と並んでタスクを受け持つ「AI Teammates」の機能追加に利用
  • Sentry:デバッグ機能Seerの原因分析から、Claudeのエージェントが修正パッチを書いてプルリクエストを開くまでを連携し、数か月ではなく数週間で実装

選ぶべきでない条件

次のどれかに当てはまる場合は、Messages APIやAgent SDKで自前のループを組むか、別の基盤を選んだほうが安全です。

  • ZDRやHIPAA BAAが契約上必須:Sessionが履歴とサンドボックスの状態をサーバー側に保存する設計のため、どちらの対象にもなりません。
  • AWSの契約に一本化したいが、Bedrockしか使えない:Bedrockでは提供されていません。AWS経由ならAnthropicが運営するClaude Platform on AWSを使いますが、ユーザーからの入力なしで自律実行できるのは6時間までで、それを超えると再認証が要ります。違いは「AWSでClaudeを使う方法|BedrockとClaude Platform on AWSの違いと選び方【2026年9月】」で整理しています。
  • Claude以外のモデルも同じ基盤で動かしたい:対応はClaudeのみです。AWS・Google・Microsoftのエージェント実行基盤は「AgentCore比較:Google Agent Runtime・Foundryと料金と上限を並べて選ぶ」で比較しています。
  • 毎分300回を超えるSession作成を、キューや待機なしで必須とする:レート制限は組織単位で、作成系が毎分300回、取得やストリームなどの読み取り系が毎分1,200回です。

Multicaなど他のエージェント実行基盤との違い

Multicaは、Claude CodeやCodexなど手元で使うエージェントのCLIに、課題管理ボードから仕事を割り振るワークスペースです。GitHubでは「source-available」と説明されており、ライセンスはApache 2.0に独自の追加条件を付けたものです(2026年10月時点の最新版はv0.6.1)。エージェントは利用者のノートPCやクラウドのマシンで動くデーモン上で実行され、Managed Agentsのようにクラウドのサンドボックスやエージェントループを提供するものではありません。Managed Agentsはエージェントを動かす土台、Multicaは複数のエージェントに仕事を配る管理画面です。

よくある質問

Claude Managed Agentsの料金はいくらですか?

使ったトークンの料金に、Sessionが実行中の時間1時間あたり0.08ドルが加わります。Web検索を使うと1,000回あたり10ドルがかかります。公式の料金ページに載っている課金軸はこの2つ(トークンとセッション時間)で、指示待ちの時間は課金されません。

Claude CodeやClaude Agent SDKとは何が違いますか?

Claude CodeとAgent SDKは、利用者のマシンやサーバーでエージェントを動かします。Managed AgentsはAnthropic側がエージェントループを運用し、クライアントの接続を切っても作業が続きます。ツールの実行場所は、Anthropicのクラウドサンドボックスか自社のセルフホスト環境を選べます。

Claude Managed Agentsの「harness」とは何ですか?

モデルの呼び出しを繰り返し、ツールを実行し、コンテキストを管理する制御部分のことです。Managed Agentsでは、プロンプトキャッシュやコンテキストの圧縮を含むハーネスをAnthropicが提供しています。

Amazon Bedrockで使えますか?

Bedrockでは使えません。AWS経由で利用する場合は、Anthropicが運営しAWSで請求されるClaude Platform on AWSを使います。

Claude Managed AgentsのCLIはありますか?

公式CLIの ant があります。macOSはHomebrew、Linuxはリリースバイナリで導入でき、Agentの定義ファイルを ant apply で登録したり、ant beta:sessions connect で実行中のSessionに接続したりできます。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.11.09 テックブログ エディオン不正アクセス第2報:カード番号の対象確認とログ・決済画面の改ざん対策
  2. 2026.11.09 テックブログ LANSCOPE不正アクセス第2報:製品への影響と偽連絡の確認、停止中のライセンス認証の窓口
  3. 2026.11.10 テックブログ Claude Fable 5.2とは:料金・破壊的変更4点とFable 5.1からの移行手順【2026年11月】
  4. 2026.11.10 テックブログ ニトリの情報漏洩:最大3,762万件の対象確認となりすまし連絡の見分け方
  5. 2026.11.09 テックブログ ステップゴルフ不正アクセス:口座情報の対象確認と偽連絡・引き落としの注意点

RELATED POSTS 関連記事

目次