Perplexityは オープンソース化されたSPACE, Perplexity Computerにおけるすべてのタスクを支えるサンドボックスプラットフォームです。Perplexity SPACEサンドボックスは、各エージェントタスクに専用のFirecracker microVMを割り当てます。認証情報とアウトバウンドトラフィックは、そのVMの外部から制御されます。コードは次のライセンスで公開されています: GitHub上のApache 2.0コーディングやブラウジングのエージェントを構築するチームにとって、これはセルフホストできる、本番環境で実績のあるアイソレーションレイヤーです。
要旨
- サイズ: Rustコードベース、リリース 0.8.0、公開ベースライン。HTTP API と server-sent events を備えています。
- 動作環境: A Linux x86_64ホストとKVM,
/dev/kvm, btrfs および Docker に対応。ローカルの Kind(Kubernetes)またはダイレクトモード。macOS は非対応。 - パフォーマンス: 本番環境では、作成レイテンシの中央値はから低下しました。 「185 ms から 60 ms へ」 Perplexityの以前のプロバイダーと比較して。
- 最良: 0 / 108 9つのフロンティアモデルすべてで、VMからホストへの脱出の試みが成功しました。
- 最悪: 修正前、エージェントは以下の箇所でegressポリシーを回避していました。 11 / 54 部分ネットワーク実行。
Perplexity SPACEとは何ですか?
SPACE(Sandboxed Platform for Agentic Code Execution)は、Perplexityが隔離されたマイクロVM上でエージェントコードを実行するためのプラットフォームです。アプリケーションはその HTTP API Linux環境を作成し、コマンドを実行して出力をストリーミングします。
A template は開始時のファイルシステムを提供します。A sandbox はそのテンプレートの1インスタンスであり、専用のVMと書き込み可能なディスクを持ちます。1つのsandbox内で多数のコマンドを実行できます。
Perplexityの launch thread がこの設計目標を説明しています。エージェントはsandbox内でrootとしてコマンドの実行、パッケージのインストール、サービスの呼び出しを行います。ホストはゲストの制御下に置かれません。エージェントの作業は長時間実行・ステートフル・分岐を伴うため、再起動を越えて存続できなければなりません。
SPACEはエージェントをどのように分離するのか?
各sandboxは、独自のゲストカーネルを持つ Firecracker microVMです。ホスト上のsandboxごとのネットワークゲートウェイが、すべての外向き接続に対してegressポリシーを強制します。
シークレットは決してゲストに入りません。Perplexityの 7月のエンジニアリング投稿によれば、認証情報はネットワーク層で注入されます。クレデンシャルストアには階層的なスコープ設定、レート制限、監査ログが追加されています。
この architecture guide はシステムを4つの部分に分けています。すなわち、PostgreSQLバックエンドのAPI、コントローラー、ワーカーサービス、データプレーンです。ワーカーサービスはVM、ネットワーク、ボリューム、テンプレート、認証情報を管理します。btrfsのコピーオンライトにより各ルートファイルシステムが作成されます。
pause、suspend、restoreはどのように動作するのか?
sandboxは4つの状態を遷移します:running、paused、suspended、deletedです。
- Paused: VMのメモリはワーカー上に常駐したままです。これは永続的なスナップショットではありません。
- Suspended: VMのメモリ、実行時状態、ルートファイルシステムがスナップショットされます。アクティブなリソースは解放されます。
- アイドル時のデフォルト: sandboxは 6時間 アクティビティがないとsuspendします。
高速な作成のために、Kubernetesデプロイメントでは起動済みsandboxの warm pools を使用します。シングルノード構成では代わりに base snapshots を使用します。
本番環境では、90パーセンタイルの作成レイテンシが 447 msから89 msに低下しました。Perplexityによると、Computerセッションの100%がSPACE上で実行されています。
SPACEはレッドチームテストを乗り越えたのでしょうか?
Perplexityの 「Escaping SPACE: Part I」 レポートは、ゲスト内でroot権限を持つ9つのモデルをテストしました。この研究は、2つのタスクと4つの設定にわたって216回のランを実施しました。
- サンドボックス脱出: 108回のランのうち0回がホスト側のシークレットに到達しました。
- ネットワークなしのバイパス: 54回のランのうち0回が成功しました。
- 部分的なネットワークのバイパス: 修正前は54回のランのうち11回が成功しました。4つのモデルが経路を発見しました。
Claude Opus 5.0、GPT-5.6 Sol、GPT-5.6 Cyber、Kimi K3がバイパスを発見しました。攻撃はDNSスプーフィングと共有CDNのIPアドレスを利用しました。
Perplexityはその後、nftablesによる送信元アドレス検証を追加しました。ゲートウェイは現在TLSを終端し、SNIとHTTPホストの両方を許可リストと照合してチェックします。再テストでは、検証済みのバイパスを生み出したモデルはありませんでした。
同じチームは10のサードパーティプラットフォームをテストしました。8つが少なくとも1つのネットワークポリシーバイパスを示しました。Perplexityは影響を受けるすべてのベンダーに結果を開示しました。
戻る</button><button class="btn" id="psx-next">次の状態 </button></div> </div> <div class="pane" data-p="2"> <div class="bars" id="psx-rt"></div> <div class="note">9モデル、216ラン、ゲスト内でのroot権限。修正: nftablesによる送信元アドレス検証、SNI + Host許可リストチェック付きTLS終端。出典: Perplexity、Escaping SPACE: Part I(2026年9月23日)。</div> </div> <div class="pane" data-p="3"> <div class="bars" id="psx-lat"></div> <div class="note">本番ローンチウィークのトラフィックにおける、SPACEとPerplexityの以前のサンドボックスプロバイダーの比較。低いほど良い。出典: Perplexityエンジニアリングブログ(2026年7月15日)。</div> </div> <div class="pane" data-p="4"> <div class="tw"><table> <tr><th>機能</th><th>SPACE</th><th>E2B Runtime</th><th>microsandbox</th></tr> <tr><td>分離</td><td>Firecracker microVM</td><td>Firecracker microVM</td><td>libkrun microVM</td></tr> <tr><td>ライセンス</td><td>Apache 2.0</td><td>Apache 2.0</td><td>Apache 2.0</td></tr> <tr><td>言語</td><td>Rust</td><td>Go</td><td>Rust</td></tr> <tr><td>Perplexityの送信テスト</td><td>修正後はバイパス0件</td><td>HTTPSバイパス、緩和策は計画中</td><td>HTTP + HTTPSバイパス、v0.6.18で修正</td></tr> </table></div> <div class="note">2026年8月31日から9月1日にかけてPerplexityが実施したテストにおける、テスト対象バージョンの送信結果。</div> </div> <div class="ft"><span>出典: github.com/perplexityai/SPACE · perplexity.ai/hub/blog</span><b>© Marktechpost</b></div> </div> <script> (function(){ var R=document.getElementById('pplx-space-x'); function post(){try{parent.postMessage({psxHeight:R.offsetHeight+40},'*')}catch(e){}} var tabs=R.querySelectorAll('.tab'),panes=R.querySelectorAll('.pane'); var D=['<b>ゲストmicroVM。</b>各タスクは、独自のゲストカーネルを備えた独自のFirecracker microVMを割り当てられます。エージェントはrootとしてコマンドを実行し、パッケージをインストールできます。ホストはその制御の外にあります。', '<b>サンドボックスごとのゲートウェイ。</b>ゲストからのすべての送信トラフィックはホスト側のゲートウェイを通過します。現在はTLSを終端し、SNIとHTTP Hostの両方が許可リストに登録されDNSで帰属確認されていることを要求します。', '<b>外部サービス。</b>認証情報がゲストに入ることはありません。認証情報はネットワーク層で注入され、スコープ設定、レート制限、監査ログが伴います。']; var det=document.getElementById('psx-detail'),boxes=R.querySelectorAll('.box'); function showD(i){boxes.forEach(function(b,j){b.classList.toggle('act',i==j)});det.innerHTML=D[i];post()} boxes.forEach(function(b){b.addEventListener('click',function(){showD(+b.dataset.d)});b.addEventListener('mouseenter',function(){showD(+b.dataset.d)})}); showD(0); var L=['<b>実行中。</b>プロセスが実行されます。ライブVMメモリと書き込み可能なファイルシステムは保持されます。', '<b>一時停止。</b>実行が停止します。VMメモリはワーカー上に常駐したままです。これは永続的なスナップショットではありません。', '<b>サスペンド。</b>VMメモリ、ランタイム状態、rootファイルシステムがスナップショットされます。アクティブなVMリソースは解放されます。デフォルト: アイドル6時間後にサスペンド。', '<b>削除済み。</b>サンドボックスはAPI経由ではもう利用できません。']; var li=0,sts=R.querySelectorAll('.st'),ld=document.getElementById('psx-life'); function life(){sts.forEach(function(s,j){s.classList.toggle('on',j==li)});ld.innerHTML=L[li];post()} document.getElementById('psx-next').onclick=function(){li=(li+1)%4;life()}; document.getElementById('psx-prev').onclick=function(){li=(li+3)%4;life()}; sts.forEach(function(s,j){s.style.cursor='pointer';s. onclick=function(){li=j;life()}}); life(); function bars(el,data){el.innerHTML=data.map(function(d){return '<div class="row"><div class="lbl"><span>'+d[0]+'</span><em>'+d[1]+'</em></div><div class="track"><div class="fill" data-w="'+d[2]+'" style="background:'+d[3]+'"></div></div></div>'}).join('')} bars(document.getElementById('psx-rt'),[ ['VM-to-host escape','108回中0回',1.5,'#76B900'], ['ネットワークバイパス、ネットワークなし','54回中0回',1.5,'#76B900'], ['ネットワークバイパス、一部ネットワークあり(修正前)','54回中11回',20.4,'#E5675A'], ['ネットワークバイパス、修正後','確認されたバイパス0件',1.5,'#76B900'], ['バイパスが存在したサードパーティプラットフォーム','10件中8件',80,'#1FB8CD']]); bars(document.getElementById('psx-lat'),[ ['作成の中央値、従来のプロバイダ','185 ms',41.4,'#5E5B66'], ['作成の中央値、SPACE','60 ms',13.4,'#20808D'], ['作成のp90、従来のプロバイダ','447 ms',100,'#5E5B66'], ['作成のp90、SPACE','89 ms',19.9,'#20808D']]); function anim(p){p.querySelectorAll('.fill').forEach(function(f){f.style.width='0';setTimeout(function(){f.style.width=f.dataset.w+'%'},60)})} tabs.forEach(function(t){t.onclick=function(){var i=+t.dataset.t;tabs.forEach(function(x,j){x.classList.toggle('on',j==i)});panes.forEach(function(p,j){p.classList.toggle('on',j==i)});anim(panes[i]);post()}}); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </body> </html> ">SPACEは他のオープンソースのサンドボックスとどう比較されますか?
| 機能 | Perplexity SPACE | E2B Runtime | microsandbox | Daytona |
|---|---|---|---|---|
| 分離方式 | サンドボックスごとのFirecracker microVM | サンドボックスごとのFirecracker microVM | libkrun microVM | サンドボックスごとの専用カーネル |
| ライセンス | Apache 2.0 | Apache 2.0 | Apache 2.0 | 公開リポジトリあり、 2026年6月以降メンテナンスされていない |
| 言語 | Rust | Go | Rust | 非公開 |
| ホスト要件 | Linux x86_64 + KVM | 非公開 | KVM搭載のLinux | 非公開 |
| 送信制御 | サンドボックスごとのゲートウェイ、TLS終端 | nftablesファイアウォール、SNI/Hostリスト | 非公開 | 非公開 |
| Perplexity 送信テスト | 修正後のバイパスは 0 件 | HTTPS バイパス、緩和策を計画中 | HTTP + HTTPS バイパス、v0.6.18 で修正済み | HTTPS バイパス、緩和策をリリース済み |
| E2B SDK サポート | はい、ECW ラッパー経由で対応 | ネイティブ対応 | 非公開 | 非公開 |
開発者は SPACE をどのようにデプロイするのか?
この インストールガイド では、SPACE をローカルの Kind クラスタにデプロイします。ホストには /dev/kvm, /dev/net/tun、ループデバイスおよび btrfs が必要です。VM 内で実行するにはネステッド仮想化が必要です。
すでに E2B を利用しているチームは、 E2B Compatibility Wrapperを試すことができます。テスト済みのベースラインは Python パッケージの e2b==2.21.1です。リポジトリには AWS EKS のリファレンスデプロイも同梱されています。
重要なポイント
- SPACE は各エージェントタスクをそれぞれ専用の Firecracker マイクロVM で実行します。
- 認証情報と送信(egress)ポリシーはゲスト VM の外部に置かれます。
- レッドチームテストでは、108 回の脱出試行のうちホストに到達できたのは 0 回でした。
- 送信バイパスは修正前に 54 回中 11 回発生し、修正後は 0 回でした。
- Apache 2.0 ライセンス、Rust 製、KVM 搭載の Linux x86_64 ホストが必要です。
ぜひ GitHub リポジトリ、 ドキュメント 、そして レッドチームレポートもご覧ください。このプロジェクトの研究者にすべての功績があります。また、私たちのフォローもお気軽にどうぞ Twitter また、私たちの 150k+ML SubReddit への参加や、 our Newsletterの購読もお忘れなく。お待ちください!Telegramを利用していますか? 現在、Telegramでも参加できるようになりました。
この記事 Perplexity、AIエージェント向けFirecracker MicroVMサンドボックス「SPACE」をオープンソース化 は最初に以下に掲載されました: MarkTechPost.