Brain/Hands分離でP95レイテンシを90%削減した設計:Anthropic Managed Agentsのアーキテクチャ解剖

グラレコ

P95で90%以上のTTFT削減——この数字を見て「すごいね」で終わらせるのはもったいない。どういう設計変更がこれほどの改善をもたらしたのか。従来のエージェント実行基盤がどこで詰まっていたのかを理解すると、この数値は「当然そうなる」と思えてくる。

2026年4月8日、AnthropicはClaude Managed Agentsの公開ベータリリースと同時に、エンジニアリングブログ「Scaling Managed Agents: Decoupling the brain from the hands」を公開した。サービス概要については別記事で詳しく取り上げたので、本稿はアーキテクチャと設計思想に絞って掘り下げる。Claude CodeのSkillsを活用している開発者や、独自ハーネスを実装している方には特に関係が深い内容だ。

「コンテナが起動するまで待て」という構造的な問題

従来のエージェント実行環境では、Brain(LLMと制御ループ)とHands(サンドボックスやツール)が同一コンテナに同居していた。これが何を意味するかというと、セッションを開始するたびにコンテナ全体の初期化が終わるまで推論を始められない。

Claude(Brain)はすでに回答できる状態にあるのに、実行環境(Hands)の準備が終わるまで最初のトークンが出てこない。TTFT(Time-to-First-Token)が実行環境の起動時間に引きずられていたわけだ。

しかも密結合の弊害はレイテンシだけではない。コンテナがクラッシュすると、制御ループごとセッション全体が消える。ステートレスなはずのBrainが、ステートフルなHands(コンテナ)の死と運命を共にしてしまう。「ツールの実行に失敗した」のに「会話の文脈ごと消えた」という体験は、エージェントを本番運用してきた人なら心当たりがあるはずだ。

tool call でコンテナを呼び出す:分離設計の核心

新しい設計では、ハーネスがコンテナを「ツール」として扱う。

execute(name, input) → string

このシンプルなインターフェースが設計の核心だ。ハーネスから見ると、コンテナはBashツールやWeb検索ツールと同じ粒度の「呼び出し可能なもの」になった。コンテナが必要な時だけ provision({resources}) で起動し、不要なセッションはコンテナを一切立ち上げない。

結果として何が変わるか。Brainは独立した環境で動くため、コンテナ起動を待たずに推論を開始できる。ツールコールが実際に必要になった瞬間にHandsを呼び出せばいい。これがTTFT中央値60%削減の実態だ。P95で90%を超える削減が出た理由も明快で、上位5%の遅いケースの多くが「コンテナ起動に時間がかかったセッション」だったということだ。

セッションとコンテキストの扱い方

分離設計と合わせて、状態管理の仕組みも大きく変わった。

Sessionは外部の永続イベントログとして機能する。Claudeのコンテキストウィンドウの外に存在し、getEvents() で位置指定のスライスアクセスが可能だ。ハーネス自体もクラッシュから復旧できる使い捨てコンポーネントに変わった。ハーネスが落ちてもセッションは残り、新しいハーネスが引き継げる。

これは地味に重要な変化だと思う。「ハーネスは壊れない前提で実装する」から「ハーネスは壊れるものとして設計する」へのシフトだ。従来型の密結合ではハーネスの死がセッション消滅を意味していたが、分離設計ではそれぞれが独立して復旧できる。

セキュリティ境界の引き直し

もうひとつ見逃せない変化がセキュリティ設計だ。

従来の同居型では、認証情報がコンテナ内に混在しがちだった。新設計では認証情報をサンドボックスの外に保管する。GitアクセスはリポジトリトークンでローカルURL設定を行い、MCPツールはセキュアなコンテナのプロキシ経由でアクセス制御される。

コンテナが侵害されても、認証情報が漏れない構造になっている。エージェントが実行するコードの安全性とインフラの認証情報を分離するという考え方だ。本番運用のエージェントで長らく曖昧にされてきた境界がようやく設計として明示されたという印象がある。

複数の実行環境を統一インターフェースで扱う

execute() を共通インターフェースにした副産物として、BrainがコンテナだけでなくPhoneやエミュレータとも同じ方法で対話できるようになる。

コンテナ、電話、エミュレータが同一インターフェースで管理されると、「Brain + 複数のHands」という構成も現実的になる。1つの制御ループが複数の実行環境と並行してやりとりする。これはマルチエージェント調整の議論とは少し違う話で、単一のBrainが異種環境を統一的に制御するという発想だ。

Claude Code と Skills 開発者への影響

この設計変更はAnthropicが「メタ・ハーネス」と呼ぶ考え方につながる。Claude Codeと複数のタスク特化ハーネスを並立させる場合、それぞれのハーネスが異なる実装を持っていても、Managed Agentsがそれらをまとめて扱える共通基盤として機能するということだ。

Skillsを活用している開発者にとって具体的に何が変わるかというと、コンテナの有無に関係なくスキルの起動が速くなること、そしてSkillsが呼び出す外部ツールをHands側に分離した設計で実装しやすくなること、の2点が大きい。

「将来の新機能をハーネス層で自由に試行できる」という言い方を公式ブログはしている。これはつまり、新しいツールや実行環境をHandsとして追加するだけで、Brain側の実装を変えずに機能拡張できるという設計的な余地を意図的に残しているということだ。

ハーネスを自前で実装している開発者にとっては、「コンテナをtool callとして扱う」という設計パターンそのものが参考になる。セッション管理とコンテナ管理を切り離す発想は、マネージドサービスを使わない自前実装でも適用できる考え方だ。

設計が示すエージェント基盤の方向性

Brain/Hands分離は「エージェントを速くする」テクニックではない。これは「エージェントを壊れにくくする」設計思想の表れだ。

コンポーネントが密結合していると、一部の障害が全体に波及する。分離することで障害を局所化し、それぞれが独立して復旧できる。可用性と拡張性の両立はシステム設計の原則論だが、AIエージェントの文脈でそれが具体的なアーキテクチャとして実装されたのが今回の発表だと読める。

P95 TTFTが90%削減されたのは「速くしようとした結果」ではなく「分離した結果として速くなった」という順番だ。そこに、この設計変更の本質がある。


関連記事


Sources

この記事をシェア