Ikeraq

NVIDIA/OpenShell

AI エージェントに、決めた範囲のものだけを触らせて動かす

Apache-2.0 · 商用可 Rust ★ 16,617 (今日 +85) 今日 更新
GitHub で見る NVIDIA/OpenShell
GitHub の説明(原文)
OpenShell is the safe, private runtime for autonomous AI agents.

どういうものか

NVIDIA が作っている、AI エージェントを安全に動かすための実行環境だ。エージェントは、ファイルを読み、パッケージを入れ、API を呼び、認証情報を使えるほど役に立つが、そのぶん危ない。OpenShell では、エージェントごとに何に触ってよいかを「ポリシー」に書き、それを守らせる。

エージェントは1体ずつ隔離されたサンドボックスで動く。OS のカーネルの段階で、触れるファイルと使えるシステムコールを絞り、外への通信はすべてポリシーの確認を通ってから出ていく。認証情報はエージェントに見せない。許可された宛先へ向かう通信にだけ、OpenShell が後から付け足す。

ポリシーを変えるときは、形式検証(数学的に調べる手法)で、その変更が新たに何を許すかを調べる。認証情報を持って新しいホストへ出る、新しい API の操作を呼ぶ、といった危ない広がりが見つかれば、人が確かめるまで止めておく。動かせるのは Linux、Apple Silicon の macOS、WSL 2 の Windows(試験的)で、Docker、Podman、仮想化のいずれかが要る。Kubernetes の上にも置ける。

エージェントの操作は、すべてポリシーを通る エージェント (隔離されたサンドボックス) ポリシーの確認 (ファイル・システムコール・通信) 許可した宛先 (ここへ向かう通信にだけ認証情報が付く) 危ない広がりを生む変更は、形式検証で見つけて人の確認を待たせる
エージェントは本物の鍵を持たないまま仕事をし、許した宛先へ出るときだけ鍵が付く。

どんなときに使うか

コーディングエージェントに作業を任せたいが、手元の秘密情報や社内のネットワークには触らせたくないとき

何を読めて、どこへ通信できるかをポリシーで先に決めてから動かせる。

チームで複数のエージェントを、同じ規則のもとで動かしたいとき

サンドボックス、ポリシー、アクセスを管理する「ゲートウェイ」を1か所に置き、Kubernetes の上でも運用できる。

注意点

既定のサンドボックスに、エージェントは入っていない。 既定のイメージは最小構成の Ubuntu だ。動かすときは、エージェント入りのイメージを指定してサンドボックスを作る。公式の手順書は、OpenCode のイメージと OpenRouter の無料モデルを例にしている。

匿名の利用統計を送る。 送るのは動作の種類や件数に限るとしている。止めるには、ゲートウェイで OPENSHELL_TELEMETRY_ENABLED=false を設定する。

Kubernetes に置くなら、ネットワークの設定に条件がある。 使っている CNI が NetworkPolicy を強制できる必要がある。

開発の様子

8 か月
公開してからの期間。2026-02-25 が最初のコミットです
99 回
リリースの回数です
126 人
開発に参加した人数です
0 日前
最後のコミットです
551 件
未解決の Issue とプルリクエストの合計です(GitHub はこの2つを同じ数に含めます)
X で共有 この記事がよかったら

この記事の更新日は 2026-10-05 です。 内容は公開されている README と GitHub のデータに基づいています。 数値は GitHub から取得したもの、警告は判定の基準にある条件での自動判定です。事実誤認を見つけた場合はお知らせください。