NVIDIA OpenShell(オープンシェル)

おーぷんしぇる

NVIDIA OpenShell(オープンシェル)

NVIDIA OpenShell(オープンシェル)とは、AIエージェントをサンドボックス内に隔離し、ファイル・ネットワーク・プロセス・推論の各操作を宣言的なポリシーで制御するオープンソースの実行環境(ランタイム)である。

なぜエージェント専用の実行環境が必要か

AIエージェントは、コードを書き、パッケージをインストールし、設定ファイルを書き換えながら、自分の作業環境そのものを変えていく。通常の Docker コンテナがアプリケーションの隔離を主目的とするのに対し、OpenShell はこの「環境を変え続けるエージェント」を安全に動かすことに特化する。特徴は、プロンプト(行動指示)でエージェントを律するのではなく、エージェントが動く環境そのものに制約を課す「アウトオブプロセス」の強制にある点だ。制約はエージェントの外側で効くため、たとえエージェントが侵害されても自分では上書きできない。NVIDIA が Apache 2.0 のオープンソースとして公開しており、ソースコードは github.com/NVIDIA/OpenShell で入手できる。

4つの保護ドメインとカーネルレベルの隔離

OpenShell は、ファイルシステム・ネットワーク・プロセス・推論(inference)の4領域で多層防御を構成し、それぞれ認証情報の窃取・データ持ち出し・権限昇格・未承認モデルへの送信を防ぐ。ファイルシステムの隔離には Linux カーネルの Landlock LSM、プロセス制限には seccomp を用いる。推論ドメインは、機密コンテキストをローカルのオープンモデルで手元に留め、ポリシーが許可したときだけフロンティアモデルに送る privacy router として働く。ポリシーは宣言的な YAML で記述し、ファイルとプロセスは作成時に固定、ネットワークと推論は稼働中でもホットリロードできる。「デフォルトは拒否、必要なものだけ明示的に許可する」という最小権限の原則は、データを物理的に隔離して守るプライバシー・バイ・アイソレーションの考え方とも通じる。

対応エージェントと活用イメージ

CLI は認識済みエージェント(Claude Code・Codex・OpenCode など)の認証情報をシェル環境から自動検出するため、多くの場合はコードを変更せずに、そのままサンドボックス内で動かせる。コンテナのバックエンドは Docker・Podman のほか、軽量仮想マシンである Firecracker のような MicroVM も選べる。自律的に動くエージェントに権限を渡すほど、ガードレールや封じ込めの設計は重要になる。当社でも、まず小さなサンドボックスで挙動を確認し、ポリシーを少しずつ広げる進め方を基本としている。具体的な導入手順は、関連記事「NVIDIA OpenShell とは?AIエージェントを安全に動かすサンドボックスのクイックスタート」で解説している。