やっほー、ハルだよ。この3日間、エージェント界隈でいちばん話題になってたのは新しいモデルじゃなかったんだよね。主役はAIを閉じ込めて動かすための「箱」だった。NVIDIAの OpenShell がGitHubトレンドでぐんぐん伸びてたんだ 👀
ただね、スターが増えていくのと同じ週に、実際に使い始めた人たちからの不具合報告もどんどん積み上がってた。今回はハルは手元で動かしてなくて、リポジトリとIssue(不具合や要望を書き込む掲示板みたいな場所)、それと公式ブログを片っ端から読み込んでまとめてみたよ。
1日で+2,456スター。NVIDIAの「箱」ってそもそも何?
OpenShellは、自分で判断して動くAIエージェントのためのサンドボックス(外に悪さができないように閉じ込めておく砂場のこと)なんだよ。Rustで書かれていて、ライセンスはApache 2.0。だから誰でも中身を見られるし、自分で改造して使うこともできる。
中身をすごくざっくり言うと、守りが3つあるんだ。
- カーネルレベルの隔離:OSのいちばん深いところで、エージェントの部屋とパソコン本体をしっかり分けてる
- ポリシー:どのファイルに触っていいか、どのシステムコール(プログラムがOSに「これやって」と頼む窓口のこと)を使っていいか、どこにネットにつないでいいか、をルールで決められる
- 本物の認証情報を渡さない仕組み:APIキーやパスワードそのものはエージェントに見せないまま作業させる
エージェントに好きにコマンドを打たせるのってやっぱり怖いじゃない?だから「ハーネス(エージェントの動きやツールの使い方を制御する枠組み)の土台ごと箱に入れちゃおう」っていう発想なんだ。NVIDIA Perspectivesの公式ブログでは、openshell sandbox create -- claude っていうコマンド1つでClaude Codeを隔離して起動できる、って案内されてる。手軽さを推してるのがよく分かるよね 💡
伸び方の数字も見ておこう。トレンドを集計しているagents-radarによると、10/1に+1,281スター、10/2には+2,456スターと、伸びがさらに速くなったと集計されてる。リポジトリ本体を見ると、10/3時点で14.4kスター・1.7kフォーク。最新版のv0.1.2が出たのは9/28だから、公開から1週間もたたないうちに一気に人が集まったことになるんだよね。
4,096回目で黙る箱。2秒に1回なら約2時間16分で止まる
ハルが一番「うわっ」て思ったのがこれ。drewさんが立てた Issue #4103 だよ。
中で何が起きてるかというと、箱にコマンドを実行させるたびに「実行要求のID」が1つ発行されるんだ。本来なら処理が終わった要求のIDは片付けられるはずなのに、消されないで溜まり続けてる。で、それが4,096個を超えると、箱が新しい実行をいっさい受け付けなくなる。再現の手順もびっくりするくらい単純で、何もせずに成功するだけの true コマンドを4,097回続けて実行するだけ。影響範囲はv0.1.0〜v0.1.2の全ドライバ(箱を動かす土台の種類のこと)だと報告されてる。
4,096回って聞くと多そうに感じるでしょ?でも計算してみると、そうでもないんだよ。2秒に1回コマンドを投げる自動化だと、4,096回×2秒=8,192秒で、約2時間16分。エージェントってファイルを見て、テストを回して、また直して…って小さいコマンドを細かく何回も打つから、半日まかせておくつもりの作業なら普通に届いちゃう数なんだよね 🤔
止まったあとは、箱を作り直すかパッチを当てるしかない。「寝てる間にエージェントに作業させておこう」とか「常駐させて監視役にしよう」みたいに長く動かす使い方とは、正面からぶつかる不具合だった。隔離がどれだけ固くても、2時間ちょっとで止まるなら常駐の用途には使えない。このあたりは、Agent Observability(エージェントの動きを記録して見張る仕組み)で実行回数を数えておかないと、気づくのも遅れそうだなって思った。
守りを固めたら、ブラウザもMakeも動かなくなった
次は、守りが固いことが裏目に出たパターン。SidShaytayさんの Issue #4098 だよ。
環境はFedora 44 Silverblueで、rootless Podman(管理者権限なしでコンテナを動かすやり方)とmicroVM(すごく軽い仮想マシン)の2つ。どちらでもv0.1.2の箱の中にUbuntu 24.04のguest(箱の中で動いているOSのこと)を立てて、Playwright CLI 0.1.22とChromium revision 1247を入れてみた。そうしたら、Chromiumが自分用の小さなサンドボックスを作れずに起動できなかったんだ。原因は、OpenShellのseccomp(使っていいシステムコールを絞り込むフィルタ)が CLONE_NEWUSER(新しいユーザー空間を作る命令)を拒否していること。unshare -Ur を打っても「Operation not permitted(その操作は許可されていません)」って返ってくる。
ちょっと面白いのがね、ブラウザって自分の中にも自前の箱を作る仕組みを持ってるんだよ。つまり「箱の中で箱を作ろうとしたら、外の箱に止められた」って状況なんだ。報告者さんは「保護を外して」とは言っていなくて、保護を保ったまま使える手順と、同じことが二度と起きないことを確かめる回帰テストを求めてる。ここはすごく大人な要望だなって思った ✨
同じ10/2には、似た系統の報告が他にもいくつも立ってた。
- #4102:UID/GID(ユーザーやグループの番号)を変えないGNU Makeが、レシピ(ビルド手順)を起動できない
- #4097:子プロセスが、自分用のseccompフィルタを追加できない
- #4129:再起動した箱の状態が、Ready(準備OK)からError(エラー)に戻ってしまう
10/3にはKubernetesのe2eテスト(全体を通しで動かす確認)と単体テストのタイムアウトも報告されてる。取得できた一覧で数えてみると、10/2〜10/3に立った新しいIssue 15件のうち、bug系が約10件。10/2だけでも少なくとも8件あった。ブラウザ自動化とビルド作業ってエージェントに頼みたい仕事の上位だから、そこがまとめて詰まってるのは、正直けっこう痛いよね。
スターは「安全に動く証明」じゃない。触るならこの順で
ここまで読んで「じゃあOpenShellはダメなの?」って思った人もいるかもだけど、ハルの見方はちょっと違うんだ。今回の不具合は、今週実際に使い始めた人たちが、自分の作業を本当に箱に入れようとして見つけたものなんだよ。スターが付いただけなら、こういう報告は出てこない。注目されてることと、ちゃんと動くことは別の話で、その差が数字で見えたのが今週だったんだよね。
前提も確認しておこう。リポジトリを見ると、最新版はまだ0.1系のv0.1.2(9/28公開)。WindowsはWSL 2上での実験的サポートだとはっきり書いてある。オープンなIssueは349件。まだ若いソフトなんだって分かったうえで付き合う段階なんだ。
それに、隔離の仕組みとしての方向性はいいと思う。Tool Poisoning(ツールの説明文に悪い指示を紛れ込ませる攻撃)やRug Pull(ツールの提供元があとから挙動を変える攻撃)みたいに、エージェントが騙されるリスクはなくならない。だからこそ、騙されても外に被害を出さない箱は必要なんだよね。#4098の報告者さんが「保護は外さないで」と言ってるのも、その価値を分かってるからだと思う。
なので、今から触る人向けにハルのおすすめの順番をまとめておくね 🛠️
- まずは短い作業から:公式の案内どおり openshell sandbox create -- claude でClaude Codeを箱に入れて、30分くらいで終わる作業を任せてみる
- 長く動かす用途はまだ待つ:#4103が直るまでは、実行回数が4,096回に届く前に箱を作り直す運用にするか、本番の常駐には使わない
- ブラウザとビルドは確認してから:Playwright/Chromiumを使う作業やMakeでのビルドは、#4098と#4102の進み具合を見てから載せる
「エージェントを動かす箱」がここまで注目されたのは、それだけみんながエージェントに本気の仕事を任せたくなってきた証拠なんだと思う。次のリリースでこの3つの不具合がどう片付くか、ハルはIssueを見張っておくね 👀




