nemoclaw-setup
Linux 上で NVIDIA NemoClaw(サンドボックス型 OpenClaw エージェントプラットフォーム)のインストールと設定を行います。cloudflared トンネル、Docker の cgroup 修正、OpenShell、サンドボックス作成、Cloudflare Tunnel 経由のリモートアクセス、および既知のバグ回避策を一括で処理します。NemoClaw のインストール、OpenClaw のセットアップ、サンドボックスエージェント向けの NVIDIA Spark / DGX の設定、または NemoClaw デプロイのトラブルシューティングが必要なときに使用してください。
description の原文を見る
Install and configure NVIDIA NemoClaw (sandboxed OpenClaw agent platform) on Linux. Handles cloudflared tunnels, Docker cgroup fixes, OpenShell, sandbox creation, remote access via Cloudflare Tunnel, and known bug workarounds. Use whenever the user mentions installing NemoClaw, setting up OpenClaw, configuring an NVIDIA Spark or DGX for sandboxed agents, or troubleshooting NemoClaw deployment.
SKILL.md 本文
NemoClaw セットアップ
NVIDIA NemoClaw をインストール — Landlock + seccomp + ネットワークネームスペース分離を備えた OpenClaw ベースのサンドボックス AI エージェントプラットフォーム。Docker 内の k3s (OpenShell) で実行されます。
提供されるもの
- Web UI とターミナル CLI を備えたサンドボックス AI エージェント
- NVIDIA Nemotron モデル (クラウドまたはローカル) を搭載
- ネットワークポリシー制御による外部サービスへのアクセス
- Cloudflare Tunnel経由のオプションのリモートアクセス
前提条件
| 要件 | 確認 | インストール |
|---|---|---|
| Linux (Ubuntu 22.04+) | uname -a | — |
| Docker | docker ps | sudo apt install docker.io |
| Node.js 20+ (22 推奨) | node --version | nvm install 22 |
| NVIDIA GPU (オプションだが推奨) | nvidia-smi | — |
| NVIDIA API キー | — | https://build.nvidia.com/settings/api-keys |
ワークフロー
ステップ 1: 事前確認
# Docker 確認
docker ps 2>/dev/null || echo "Docker not running or no access"
# Node.js 確認
node --version
# 既にインストール済みか確認
which nemoclaw && nemoclaw --version
which openshell && openshell --version
nemoclaw が既にインストール済みの場合は、ステップ 4 をスキップしてください。
ステップ 2: NemoClaw をインストール
curl -fsSL https://nvidia.com/nemoclaw.sh | bash
これは npm 経由で NemoClaw と OpenClaw をグローバルにインストールします (~/.npm-global/bin/ に)。
インストーラーが Node.js を見つけられない場合は、まずインストールしてください:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
ステップ 3: OpenShell をインストール
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
~/.local/bin/openshell にインストールされます。
ステップ 4: Docker パーミッションと cgroup を修正
Docker グループ — ユーザーが docker グループに属している必要があります:
sudo usermod -aG docker $USER
newgrp docker
# または一度ログアウトしてもう一度ログイン
cgroup v2 修正 — Docker 内の k3s に必要:
# 必要か確認
grep cgroup2 /proc/filesystems && echo "cgroup v2 detected — fix needed"
# 修正を適用 (sudo が必要)
sudo $HOME/.npm-global/bin/nemoclaw setup-spark
これは /etc/docker/daemon.json に "default-cgroupns-mode": "host" を追加し、Docker を再起動します。
重要: nemoclaw setup-spark コマンドは NVIDIA API キーも要求します。用意しておいてください (nvapi- で始まります)。https://build.nvidia.com/settings/api-keys で取得できます。
ステップ 5: オンボーディングを実行
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw onboard
インタラクティブウィザードは以下の処理を実行します:
- Docker と OpenShell を確認
- OpenShell ゲートウェイ (Docker 内の k3s) を起動
- サンドボックス名を要求 —
clawまたは任意の名前を使用 - NVIDIA API キーを構成
- 推論をセットアップ (クラウド API 経由で Nemotron 3 Super 120B)
- サンドボックス内で OpenClaw を起動
- ネットワークポリシープリセットを適用 — 必要なものを選択
ポート競合の一般的なケース: ポート 8080 が使用中の場合は、プロセスを見つけて終了してください:
fuser -k 8080/tcp
ステップ 6: 確認
# サンドボックスが実行中か確認
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw status
# ターミナルで接続
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw connect
ステップ 7: Web UI アクセスをセットアップ
Web UI はサンドボックス内で実行され、ポート転送が必要です:
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH openshell forward start 18789 claw
その後、以下を開きます: http://127.0.0.1:18789/
既知のバグ (OpenClaw ≤ v2026.3.11): 「device identity required」エラー。回避策 — ゲートウェイトークンを URL に追加:
# トークン取得
ssh -F /tmp/nemoclaw-ssh-config openshell-claw \
"python3 -c \"import json; print(json.load(open('/sandbox/.openclaw/openclaw.json'))['gateway']['auth']['token'])\""
その後、以下にアクセス: http://127.0.0.1:18789/#token=<gateway-token>
修正: OpenClaw v2026.3.12+ に更新してください (下記の更新セクションを参照)。
ステップ 8: ポート転送を永続化
ヘルスチェック付きのキープアライブスクリプトを作成:
cat > ~/.local/bin/nemoclaw-keepalive.sh << 'KEEPALIVE'
#!/bin/bash
export PATH="$HOME/.npm-global/bin:$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin"
cleanup() { kill %1 2>/dev/null; exit 0; }
trap cleanup SIGTERM SIGINT
while true; do
fuser -k 18789/tcp 2>/dev/null; sleep 1
openshell forward start 18789 claw &
FORWARD_PID=$!; sleep 3
while kill -0 $FORWARD_PID 2>/dev/null; do
if ! curl -sf -o /dev/null --connect-timeout 3 http://127.0.0.1:18789/ 2>/dev/null; then
echo "$(date): Health check failed, restarting..."
kill $FORWARD_PID 2>/dev/null; wait $FORWARD_PID 2>/dev/null; break
fi
sleep 10
done
echo "$(date): Forward died, restarting in 3s..."; sleep 3
done
KEEPALIVE
chmod +x ~/.local/bin/nemoclaw-keepalive.sh
systemd サービスを作成:
sudo tee /etc/systemd/system/nemoclaw-forward.service << 'SERVICE'
[Unit]
Description=NemoClaw Port Forward with Health Check
After=docker.service
Requires=docker.service
[Service]
Type=simple
User=$USER
Group=docker
Environment=PATH=/home/$USER/.npm-global/bin:/home/$USER/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/home/$USER/.local/bin/nemoclaw-keepalive.sh
Restart=always
RestartSec=5
KillMode=control-group
[Install]
WantedBy=multi-user.target
SERVICE
sudo systemctl daemon-reload
sudo systemctl enable nemoclaw-forward
sudo systemctl start nemoclaw-forward
ステップ 9: Cloudflare Tunnel 経由のリモートアクセス (オプション)
既に Cloudflare Tunnel が実行中の場合は、NemoClaw を追加します。
DNS ルートを追加:
cloudflared tunnel route dns <tunnel-name> nemoclaw.<domain>
トンネル設定を更新 (/etc/cloudflared/config.yml):
- hostname: nemoclaw.<domain>
service: http://localhost:18789
originRequest:
httpHostHeader: "127.0.0.1:18789"
トンネルを再起動:
sudo systemctl restart cloudflared
サンドボックスの許可されたオリジンを更新 — サンドボックスに SSH でアクセスしてドメインを追加:
openshell sandbox ssh-config claw > /tmp/nemoclaw-ssh-config
ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'python3 -c "
import json
with open(\"/sandbox/.openclaw/openclaw.json\") as f:
config = json.load(f)
config[\"gateway\"][\"controlUi\"][\"allowedOrigins\"].append(\"https://nemoclaw.<domain>\")
config[\"gateway\"][\"trustedProxies\"] = [\"127.0.0.1\", \"::1\", \"172.0.0.0/8\", \"10.0.0.0/8\"]
config[\"gateway\"][\"allowRealIpFallback\"] = True
with open(\"/sandbox/.openclaw/openclaw.json\", \"w\") as f:
json.dump(config, f, indent=2)
print(\"Done. Token:\", config[\"gateway\"][\"auth\"][\"token\"])
"'
Cloudflare Access で保護 — Zero Trust ダッシュボードで Access アプリケーションにホスト名を追加します。
アクセス URL: https://nemoclaw.<domain>/#token=<gateway-token>
ステップ 10: カスタムスキルをインストール
スキルは /sandbox/.openclaw/skills/<name>/SKILL.md のマークダウンファイルです。サンドボックスに SSH でアクセスして作成:
ssh -F /tmp/nemoclaw-ssh-config openshell-claw
mkdir -p /sandbox/.openclaw/skills/my-skill
cat > /sandbox/.openclaw/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: What this skill does.
tools: [exec, read, write]
---
# My Skill
Instructions for the agent...
EOF
確認: openclaw skills list
ステップ 11: ワークスペースを設定
エージェントがあなたのことを知るようにワークスペースファイルを更新:
/sandbox/.openclaw/workspace/USER.md— あなたのプロフィール、設定/sandbox/.openclaw/workspace/TOOLS.md— 利用可能なツールとアクセス/sandbox/.openclaw/workspace/SOUL.md— エージェントのパーソナリティと行動
OpenClaw を更新
サンドボックスはインストール時に OpenClaw をバンドルします。更新するには:
# 1. ホスト側パッケージを更新
npm install -g openclaw@latest
# 2. サンドボックスを削除して再作成
nemoclaw claw destroy
nemoclaw onboard
# 3. リモートアクセス (ステップ 9) とスキル (ステップ 10) を再度設定
注: サンドボックスネットワークポリシーはサンドボックス内の npm/PyPI をブロックします。更新は再構築によって行う必要があります。
トラブルシューティング
| 問題 | 原因 | 修正 |
|---|---|---|
Docker is not running | Docker サービスが停止しているか、ユーザーが docker グループに属していない | sudo systemctl start docker その後 newgrp docker |
cgroup v2 detected | Docker が cgroupns=host 用に構成されていない | sudo nemoclaw setup-spark |
| ポート 8080 使用中 | そのポートで別のサービスが実行中 | fuser -k 8080/tcp |
nemoclaw: command not found | PATH に含まれていない | PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH |
device identity required | OpenClaw ≤ v2026.3.11 のバグ | URL に #token=<gateway-token> を追加するか、v2026.3.12+ に更新 |
gateway token mismatch | サンドボックス再構築後にトークンが変更 | サンドボックス設定から新しいトークンを取得 |
too many failed auth attempts | 古いトークン試行からレート制限 | ゲートウェイを再起動: ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'pkill -f "openclaw gateway"; sleep 2; openclaw gateway &' |
origin not allowed | ドメインが allowedOrigins に含まれていない | サンドボックス設定の gateway.controlUi.allowedOrigins に追加 |
| ポート 18789 応答なし | SSH トンネルが切断 | sudo systemctl restart nemoclaw-forward (13秒以内に自動回復) |
| サンドボックス内の npm 403 Forbidden | ネットワークポリシーが TLS をブロック | サンドボックス内にパッケージをインストールできません — 代わりに再構築してください |
DNS ルートで Tunnel not found | Cloudflare アカウント/証明書が違う | cloudflared tunnel list があなたの証明書と一致するか確認 |
| Cloudflare で Error 502 | トンネル接続がドロップ | sudo systemctl restart cloudflared |
| Cloudflare 経由の Assets 404 | ブラウザが部分リクエスト認証されていない | Cloudflare Access ログイン後にハード更新 (Ctrl+Shift+R) |
アーキテクチャ
Docker (openshell-cluster-<name>)
└─ k3s cluster
├─ NVIDIA device plugin
└─ OpenShell sandbox
├─ OpenClaw agent
├─ NemoClaw plugin
├─ Gateway (WebSocket + REST)
└─ Workspace (SOUL.md, USER.md, TOOLS.md, skills/)
ポート転送 (systemd): localhost:18789 ←SSH トンネル→ sandbox:18789
Cloudflare Tunnel (オプション): nemoclaw.domain → localhost:18789
参考資料
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jezweb
- リポジトリ
- jezweb/claude-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jezweb/claude-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。