AnthropicがManaged Agentsという新しいホステッドサービスを発表しました。Claude Platform上で長時間実行されるエージェントを代行してくれる仕組みです。その設計思想が非常に面白かったので紹介します。
問題:コンテナは「ペット」になっていた
最初の設計では、エージェントの全コンポーネント(セッション・ハーネス・サンドボックス)を1つのコンテナに詰め込んでいました。シンプルで高速ですが、大きな問題がありました。
クラウドインフラでよく言われる「ペット vs 家畜」の比喩です。ペットは名前があって手入れが必要、家畜は交換可能。コンテナがペットになると、障害時に「看護」しなければならず、セッションごと失われるリスクもあります。
解決策:脳と手を切り離す
Anthropicが導入した設計は3つの独立したインターフェースへの分離です:
- Session(セッション):全イベントの追記専用ログ
- Harness(ハーネス):Claudeを呼び出し、ツール呼び出しをルーティングするループ
- Sandbox(サンドボックス):コード実行・ファイル編集の環境
「脳」(Claude + ハーネス)を「手」(サンドボックス・ツール)と「セッションログ」から完全に切り離しました。コンテナが死んでもハーネスがツール呼び出しエラーとしてキャッチし、Claudeがリトライすれば新しいコンテナを再初期化するだけ。看護不要です。
OS設計の知恵をAIエージェントに
この設計はオペレーティングシステムの考え方と同じです。OSは「まだ存在しないプログラム」のためにハードウェアを仮想化しました。read()は1970年代のディスクパックでも現代のSSDでも同じように動く。インターフェースは安定、実装は自由に変えられる。
Managed Agentsも同じパターンに従っています。インターフェースの形にはこだわるが、背後で何が動いているかにはこだわらない。モデルが進化してもアーキテクチャが陈腐化しない設計です。
セキュリティ境界の明確化
従来の密結合設計では、Claudeが生成した信頼できないコードが資格情報と同じコンテナで実行されていました。プロンプトインジェクションでClaudeに環境変数を読ませるだけでトークン漏洩のリスクがあります。
解決策は構造的です。サンドボックス内からは資格情報に到達できないようにする。Gitのアクセストークンはサンドボックス初期化時にリモートに組み込まれ、Claude自身はトークンを触りません。MCPツールも専用プロキシ経由で、ハーネスは一切の認証情報を知りません。
セッション ≠ コンテキストウィンドウ
長時間タスクはコンテキストウィンドウを超えることがあります。これまでの対策は「何を残すか」の不可逆な決断を伴っていました。Managed Agentsでは、セッションログをコンテキストウィンドウとは独立して永続化。ハーネスがクラッシュしても wake(sessionId) で再開できます。
僕たちが学べること
この記事はAIエージェント開発者だけでなく、システム設計全般に通じる教訓を含んでいます。
- 密結合は最初は快適だが、スケールで痛みに変わる
- 「まだ存在しないプログラム」のためにインターフェースを設計する
- セキュリティは機能ではなく構造で担保する
自分でエージェントを構築している人は、ぜひ原文を読んでみてください。インフラ設計の古典的知恵がAIエージェクトにどう応用されているか、非常に示唆に富む内容です。