codecamp

Ollama NemoClaw

NemoClaw 是 NVIDIA 开源的安全栈,用来给 OpenClaw 上锁。它用 NVIDIA OpenShell 运行时把 OpenClaw 包起来,提供内核级沙箱、网络策略控制和审计日志。

一句话理解:OpenClaw 给 AI 代理装了手脚,NemoClaw 给它装了笼子。

版本基线 v0.40.12,官方 docs.ollama.com/integrations/nemoclaw。Ollama 支持目前处于实验阶段。

一、为什么需要它

OpenClaw 这类代理能读文件、跑命令、发消息。一旦接入聊天平台,就等于把「能操作你电脑的东西」暴露给了外部消息入口。风险是实实在在的:

  • 恶意提示词注入 → 代理执行危险命令
  • 联网搜索拉回不可信内容 → 二次注入
  • 缺少审计 → 出事无法追溯

NemoClaw 的三个机制分别对应这三点:内核级沙箱限制能碰什么,网络策略限制能连哪里,审计日志记录做了什么。

二、快速开始

第一步:拉模型

ollama pull nemotron-3-nano:30b

第二步:跑安装器

curl -fsSL https://www.nvidia.com/nemoclaw.sh | \
  NEMOCLAW_NON_INTERACTIVE=1 \
  NEMOCLAW_PROVIDER=ollama \
  NEMOCLAW_MODEL=nemotron-3-nano:30b \
  bash

三个环境变量分别指定:非交互模式、provider 用 ollama、模型用 nemotron-3-nano:30b。

第三步:连进沙箱

nemoclaw my-assistant connect

第四步:打开 TUI

openclaw tui

三、平台支持

平台 运行时 状态
Linux(Ubuntu 22.04+) Docker 主要支持
macOS(Apple Silicon) Colima 或 Docker Desktop 支持
Windows WSL2 + Docker Desktop 支持

⚠️ Windows 上的 CMD 和 PowerShell 不支持,必须用 WSL2。

四、系统要求

项 最低 推荐
CPU 4 vCPU —
内存 8 GB 16 GB
磁盘 20 GB 40 GB(跑本地模型)
Node.js 20+ —
npm 10+ —
容器运行时 必需 Docker

五、两个前置条件

  1. Ollama 必须在安装器运行前就已启动
  2. 在 WSL2 或容器里跑时,必须保证 Ollama 从沙箱内可达

第二条的典型处理:

OLLAMA_HOST=0.0.0.0 ollama serve

不这样设,沙箱里的 NemoClaw 连不上宿主机的 Ollama。

六、和直接跑 OpenClaw 的取舍

维度 OpenClaw 直接跑 NemoClaw
隔离 无,直接操作宿主机 内核级沙箱
网络 完全放行 可按策略限制
审计 无 有
部署复杂度 一条命令 需要容器运行时 + 更多资源
适合 个人试用、可信环境 接外部消息入口、多人共用

个人在本地玩玩,ollama launch openclaw 足够。一旦要接 Telegram/WhatsApp 这类外部入口,或者给团队用,上 NemoClaw 是更稳妥的选择。

常见问题

现象 原因 处理
安装器连不上 Ollama Ollama 未运行或未绑 0.0.0.0 先启动并设 OLLAMA_HOST=0.0.0.0
Windows 上跑不起来 用了 CMD/PowerShell 改用 WSL2
资源不足报错 内存/磁盘低于最低要求 加到 16 GB / 40 GB
nemoclaw connect 失败 沙箱未创建成功 重跑安装器并看日志
Ollama 支持异常 实验特性 关注官方后续版本

动手试

## ① 确认资源够
docker info | head -5
free -g   # 或 macOS: vm_stat

## ② 让 Ollama 对沙箱可达
OLLAMA_HOST=0.0.0.0:11434 ollama serve

## ③ 拉模型
ollama pull nemotron-3-nano:30b

三条都就绪,再跑安装器。因为还是实验特性,建议先在非生产机器上验证。

Ollama marimo
Ollama API 总览
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Ollama Cloud

Ollama CLI 命令行参考

Ollama Modelfile 参考

Ollama 上下文长度

Ollama 导入自定义模型

Ollama 常见问题

Ollama 硬件支持

Ollama 故障排查

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }