アーキテクチャ

NemoClawは2つの主要コンポーネントから成ります。OpenClaw CLIと統合するTypeScriptプラグインと、OpenShellリソースをオーケストレーションするPythonブループリントです。

NemoClawプラグイン

プラグインは軽量なTypeScriptパッケージで、openclaw nemoclaw配下にコマンドを登録します。 OpenClaw gatewayとインプロセスで実行され、ユーザー向けのCLIインタラクションを処理します。

nemoclaw/
├── src/
│   ├── index.ts                    プラグインエントリ — 全コマンド登録
│   ├── cli.ts                      Commander.jsサブコマンド配線
│   ├── commands/
│   │   ├── launch.ts               OpenShellへの新規インストール
│   │   ├── connect.ts              サンドボックスへの対話シェル
│   │   ├── status.ts               ブループリント実行状態 + サンドボックスヘルス
│   │   ├── logs.ts                 ブループリント・サンドボックスログのストリーム
│   │   └── slash.ts                /nemoClawチャットコマンドハンドラ
│   └── blueprint/
│       ├── resolve.ts              バージョン解決、キャッシュ管理
│       ├── fetch.ts                OCIレジストリからブループリントをダウンロード
│       ├── verify.ts               ダイジェスト検証、互換性チェック
│       ├── exec.ts                 ブループリントランナーのサブプロセス実行
│       └── state.ts                永続状態(実行ID)
├── openclaw.plugin.json            プラグインマニフェスト
└── package.json                    openclaw.extensions配下にコマンド宣言

NemoClawブループリント

ブループリントは独自のリリースストリームを持つバージョン管理されたPythonアーティファクトです。 プラグインがブループリントの解決、検証、サブプロセスとしての実行を行います。 ブループリントがOpenShell CLIとのすべてのやり取りを駆動します。

nemoclaw-blueprint/
├── blueprint.yaml                  マニフェスト — バージョン、プロファイル、互換性
├── orchestrator/
│   └── runner.py                   CLIランナー — plan / apply / status
├── policies/
│   └── openclaw-sandbox.yaml       厳格なベースラインネットワーク + ファイルシステムポリシー

ブループリントのライフサイクル

flowchart LR
    A[resolve] --> B[verify digest]
    B --> C[plan]
    C --> D[apply]
    D --> E[status]
  1. Resolve. プラグインがブループリントアーティファクトを検出し、blueprint.yamlmin_openshell_versionmin_openclaw_version制約に対してバージョンを確認。
  2. Verify. プラグインがアーティファクトのダイジェストを期待値と照合。
  3. Plan. ランナーが作成・更新すべきOpenShellリソース(gateway、プロバイダー、サンドボックス、推論ルート、ポリシー)を判断。
  4. Apply. ランナーがopenshell CLIコマンドを実行してプランを適用。
  5. Status. ランナーが現在の状態を報告。

サンドボックス環境

サンドボックスは ghcr.io/nvidia/openshell-community/sandboxes/openclaw コンテナイメージを実行します。サンドボックス内では:

  • OpenClawにNemoClawプラグインがプリインストール済み。
  • 推論コールはOpenShellを通じて設定済みプロバイダーにルーティング。
  • ネットワークアウトバウンドはopenclaw-sandbox.yamlのベースラインポリシーで制限。
  • ファイルシステムアクセスは/sandbox/tmpが読み書き可能、システムパスは読み取り専用。

推論ルーティング

エージェントからの推論リクエストはサンドボックスから直接出ません。 OpenShellがインターセプトして設定済みプロバイダーにルーティングします:

Agent (sandbox)  ──▶  OpenShell gateway  ──▶  NVIDIA cloud (build.nvidia.com)

プロバイダー設定の詳細は推論プロファイルを参照してください。