NVIDIA/OpenShell

OpenShell is the safe, private runtime for autonomous AI agents.

OpenShell – 自律型AIエージェント用のサンドボックスランタイム

何であるか – OpenShell (Apache-2.0) は、軽量でポリシー駆動型のプラットフォームであり、LLM駆動エージェント(Claude、OpenCode、Codex、GitHub Copilotなど)を隔離されたコンテナ内で実行できるようにします。各サンドボックスは、ファイルシステムアクセス、ネットワーク出力、システムコール、モデルAPIルーティングを制御する宣言的YAMLポリシーで保護されており、エージェントが資格情報やデータを漏洩することを防ぎます。

なぜ重要か – 自律エージェントがより強力になるにつれて、セキュリティリスクも増大しています。OpenShellは、開発者がエージェントに必要なコンピューティングリソース(CPU、GPU、あるいはMicroVM)を提供しつつ、ホストおよび企業リソースを安全に保つ手段を提供します。


コアコンセプト

コンポーネント 役割
Gateway サンドボックスの作成・削除・監視を行う制御プレーンAPI。認証境界としても機能します。
Sandbox エージェントとそのツールチェーンを実行するコンテナ(Docker/Podman/MicroVM/K8s)。
Policy Engine YAMLで定義されたファイルシステム、プロセス、ネットワーク、推論ポリシーを強制します。
Privacy Router LLM呼び出しを傍受し、ユーザーの機密情報を削除、管理されたプロバイダ資格情報を挿入して、選択されたモデルバックエンドに転送します。

クイックスタート(Linux/macOS/WSL-2)

# バイナリのインストール(推奨)
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

# エージェント(例:Claude Code)を含むサンドボックスを作成
openshell sandbox create -- claude

# サンドボックス内にシェルを開く
openshell sandbox connect <sandbox-name>

サンドボックスには最小限のツールセット(Python 3.14、Node 22、git、vim、ネットワークユーティリティなど)が同梱されています。

エージェントの行動制御

  1. サンドボックスの作成 – 外部ネットワークへの出力はなしで開始されます。
  2. ポリシーの適用 – 短いYAMLファイルで許可されるホスト、HTTPメソッド、ファイルパスなどを記述します。
  3. ホットリロードopenshell policy set … コマンドで、再起動せずに実行中のサンドボックスのネットワークまたは推論ルールを更新できます。
# examples/sandbox-policy-quickstart/policy.yaml
network:
  allow:
    - host: api.github.com
      methods: [GET]
process:
  deny: ["sudo", "chmod"]
filesystem:
  readOnly: ["/home/user/.config"]

READMEには、ポリシーが適用されるまでcurlがGitHubにアクセスできなくなるライブデモが示されています。

プロバイダ管理(資格情報)

プロバイダは、APIキーまたはサービスアカウントトークンの名前付きバンドルです。OpenShellは、サポートされているエージェントのAPIキーを環境から検出し、それらをランタイム専用の環境変数として挿入します。これらはサンドボックスのファイルシステムに触れないようにします。

openshell provider create --type anthropic --name claude_key   # ANTHROPIC_API_KEY を自動検出
openshell sandbox create --provider claude_key -- claude

GPUサポート(実験的)

サンドボックス作成時に --gpu を追加すると、ホストGPUをパススルーできます(NVIDIAドライバ、Container Toolkit、および必要なCUDAライブラリを含むサンドボックスイメージが必要)。

openshell sandbox create --gpu -- claude

拡張性

  • カスタムサンドボックスopenshell sandbox create --from ./my-sandbox-dir または任意のOCIイメージから作成可能。
  • Helmチャート – 実験的Kubernetesデプロイ(helm install openshell oci://ghcr.io/nvidia/openshell/helm-chart)。
  • カスタムコンテナの導入 – GPU対応イメージの構築については examples/bring-your-own-container フォルダを参照。

ユーザー向けツール

コマンド 機能
openshell sandbox create … 選択したエージェントで新しいサンドボックスを起動。
openshell sandbox connect <name> サンドボックス内へのSSH風のターミナル接続。
openshell policy set <name> --policy file.yaml 実行中のサンドボックスにポリシーを適用または更新。
openshell provider create … 後続の挿入用に資格情報を登録。
openshell term ゲートウェイ、サンドボックス、プロバイダを監視するTUI(k9sスタイル)ダッシュボード。

OpenShellを使うべき場面

  • セキュアな自律エージェント – 資格情報の漏洩リスクなしにコード生成や意思決定ボットを実行。
  • RAGパイプライン – インターナルサービスからデータを取得させつつ、意図しない外部呼び出しをポリシーでブロック。
  • GPU加速推論 – サンドボックス内でローカルモデルのファインチューニングや実行を行い、ホスト環境をクリーンに保つ。
  • 企業コンプライアンス – 宣言的ポリシーにより、監査担当者が各エージェントの許可範囲を明確かつバージョン管理可能な記録で確認可能。

ヘルプと貢献

  • Discussions – 使用に関する質問はGitHub Discussionsで。
  • Issues – バグ報告や機能要望(ユーザー体験と受容基準を含む必要あり)。
  • エージェントファーストワークフロー – リポジトリには .agents/skills/ が同梱されており、AIアシスタントが問題診断、ポリシー生成、新機能のスケルトン作成を支援。
  • テレメトリ – オプションの匿名利用統計。実行時またはコンパイル時に無効化可能。

結論 – OpenShellは、開発者が隔離されたコンテナ内で自律型LLMエージェントを安全に実行できる本格的なオープンソースプラットフォームです。ファイル、プロセス、ネットワーク、推論の振る舞いを細かく制御できるホットリロード可能なポリシーを備え、ローカルGPUワークロード、Kubernetesデプロイ、日常的な操作に適した豊富なCLI/TUIをサポートしています。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト