◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-04-10上級

Claude Managed Agents を本番へ移すときに躓く境界 — Agent / Environment / Session の分離と、鍵をサンドボックスへ渡さない構成

Claude Managed Agents の本番設計を、SDK の実際の型で確かめながら整理します。サンドボックス制御・永続メモリ・認証情報・マルチエージェント・コスト計測が、それぞれどのオブジェクトに属しているかを扱います。

managed-agents6production87architecture7api39enterprise5security10

✦ プレミアム記事

設定ブロックを書き足せば済む、と思っていました

Managed Agents のプロトタイプを本番想定へ寄せる作業を始めたとき、私は agents.create() の引数に sandbox や memory や audit といったブロックを足していけば形になる、と考えていました。設定は一箇所に集まっているはずだ、という思い込みです。

実際には、そのブロックはどれも存在しませんでした。

手元で確かめたほうが早いので、SDK を入れて型を直接読みました。@anthropic-ai/sdk 0.120.0 で AgentCreateParams のトップレベルに並んでいたのは、次の10個だけです。

フィールド役割
name / description人間が読むための識別子
modelモデルID。文字列、または id と speed を持つオブジェクト
systemシステムプロンプト
tools組み込みツールセット / MCP ツール / カスタムツール
mcp_serversMCP サーバー接続
skillsスキル参照
multiagent委任先のロスター
metadata / betas任意のキー値 / ベータヘッダ

sandbox・memory・observability・optimization・audit・permissions・checkpoint・lifecycle。いずれも0件でした。instructions もありません(system です)。

さらに client.agents そのものが undefined で、入口は client.beta.agents でした。client.beta.agents.batch・.pipelines・.secrets、client.beta.sessions.run も、すべて undefined を返します。

つまり「エージェント設定に全部書く」という設計図が、そもそも成立していなかったわけです。ここを取り違えたまま設計レビューまで進むと、実装フェーズで骨格ごと引き直すことになります。以下では、私がどこで境界を読み違えたのかを順に整理していきます。

なお、Managed Agents そのものが初めてという場合は、Managed Agents の基本概念と導入手順を先にご覧いただくとスムーズです。

骨格は Agent・Environment・Session の三つに割れている

設定が一箇所に集まらないのは、責務が三つのオブジェクトに分かれているからです。

オブジェクト担うもの寿命
Agentモデル・システムプロンプト・ツール・MCP・スキル・委任先永続。バージョン付き
Environmentコンテナをどう起こすか(実行基盤・ネットワーク方針)永続。使い回す
Session1回の対話。Agent と Environment を参照し、資材と鍵と予算を添える使い捨て

エージェントループ自体は Anthropic 側のオーケストレーション層で回り、コンテナはツールが実行される場所として使われます。この分業を頭に入れておくと、「なぜサンドボックスの設定が Agent 側にないのか」が腑に落ちます。エージェントの人格と、その人格が手を動かす作業場は、別々に定義して組み合わせるものだからです。

最小の形はこうなります。

import Anthropic from "@anthropic-ai/sdk";
 
const client = new Anthropic();
 
// 1. 作業場のテンプレート(使い回す)
const env = await client.beta.environments.create({
  name: "report-workspace",
  config: {
    type: "cloud",
    networking: { type: "unrestricted" },
  },
});
 
// 2. エージェント(永続・バージョン付き。リクエストパスで作らない)
const agent = await client.beta.agents.create({
  name: "sales-report-agent",
  model: "claude-sonnet-4-6",
  system: "月次営業レポートを生成します。数値は必ず添付データから引きます。",
  tools: [{ type: "agent_toolset_20260401" }],
});
 
// 3. セッション(毎回。agent は ID で参照する)
const session = await client.beta.sessions.create({
  agent: agent.id,
  environment_id: env.id,
  title: "2026-04 月次レポート",
});

ここで一つ、運用に効く注意があります。agents.create() をリクエストパスの中で呼ばないことです。エージェントは永続オブジェクトなので、1リクエストごとに作ると同名の設定が積み上がっていきます。生成した ID を保存し、以降は参照だけにします。

環境名も一意です。同じ名前で作り直そうとすると 409 が返ります。CI から冪等に流したい場合は、作成を試みて 409 なら既存を引く、という分岐を先に用意しておくと素直に回ります。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Agent / Environment / Session のどこに何を書くのかを取り違えたまま設計を進めてしまう事故を、SDK の型を根拠に手前で止められるようになる
✦MCP の認証情報をサンドボックスへ渡さずに済ませる Vault の境界と、そこで守られる範囲・守られない範囲を線引きできるようになる
✦セッションが自己申告する active_seconds と list_cost を使い、ランタイム費用を推定ではなく実測で扱えるようになる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-04-26
Claude API × WebSocket × Redis Pub/Sub でスケーラブルなリアルタイム AI チャットサーバーを構築する — Node.js 本番設計・マルチユーザー対応・コスト制御の実装
Claude API × WebSocket × Redis Pub/Sub でリアルタイム AI チャットサーバーを本番運用する設計と実装。SSE との判断基準、マルチインスタンス対応、停止遅延がユーザーごとの予算精度をどう崩すかまで、計測コードつきで扱います。
⬡ API & SDK2026-04-23
Claude API の tool_choice で無駄な推論を減らす — 4モードの使い分けとコスト最適化パターン
Claude API の tool_choice パラメータは、ツール呼び出しの挙動とコストの両方を左右します。auto / any / tool / none の4モードを実運用で使い分けるパターンを、動くコードとともに整理します。
⬡ API & SDK2026-03-27
Claude API プロダクション耐障害設計パターン — モデルルーティング・サーキットブレーカー・フォールバック戦略の実装ガイド
Claude APIを本番運用で支える耐障害設計の実装パターン。サーキットブレーカー、モデルルーティング、フォールバックチェーン、リトライ戦略、ディザスタリカバリをTypeScriptの実装コードと、運用で気づいた注意点を添えて整理しました。