返回顶部
n

novita-sandboxNovita沙盒

Run browser operations and untrusted code in a secure Novita cloud sandbox (Firecracker VM). Use when: (1) browsing any external URL or website, (2) executing code from untrusted sources (cloned repos, downloaded scripts, web-fetched code), (3) running build/test commands on unfamiliar projects. NOT for: reading/writing local user files, running trusted local commands, or operating on the user's own workspace.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.8
安全检测
已通过
276
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

novita-sandbox

Novita Sandbox — 安全远程执行

在隔离的 Novita 云沙箱(Firecracker 微虚拟机)中运行浏览器操作和不受信任的代码。

脚本: skills/novita-sandbox/scripts/sandbox.py
参考资料: skills/novita-sandbox/references/

何时使用

在以下情况务必使用此技能:

  • - 浏览任何外部 URL(网页、API、未知链接)
  • 执行来自不受信任来源的代码:
- 新克隆的仓库 - 从互联网下载的脚本 - 来自聊天消息或网页的代码片段 - 在不熟悉的项目中运行 npm install、pip install、make
  • - 运行任何源自网页内容的命令
  • 处理来自不受信任来源的文件

在以下情况不要使用此技能:

  • - 读取/写入用户的本地文件 — 直接使用 read/write/edit
  • 运行用户明确要求的受信任本地命令
  • 在用户自己的工作空间中操作
  • 用户明确表示要在本地运行

设置

1. 安装依赖

bash
pip3 install novita-sandbox>=1.0.5

或者:


pip3 install -r skills/novita-sandbox/scripts/requirements.txt

重要提示: 此技能需要 novita-sandbox>=1.0.5。请勿修改 scripts/sandbox.py — SDK 版本已经过测试并锁定。

2. 设置环境变量

bash
export NOVITAAPIKEY=skyourkey # 必需(注意:沙箱使用按秒计费,会产生 API 费用)
export NOVITA_DOMAIN=sandbox.novita.ai # 可选,默认值如上所示

3. 验证

bash
python3 -c from novitasandbox.codeinterpreter import Sandbox; print(OK)

4. 浏览器模式说明

⚠️ CDP 浏览器模式因 OpenClaw 的 bug 目前已禁用。

当前版本的 OpenClaw 存在一个 bug,config.patch 会无条件发送 SIGUSR1 重启信号,无论 gateway.reload 设置如何。这意味着任何 config.patch 调用(包括设置 browser.profiles.sandbox.cdpUrl)都会导致网关进程崩溃。将 gateway.reload 设置为 hot 并不能阻止此问题 — SIGUSR1 通过一条绕过重载模式检查的独立代码路径发送。

在 OpenClaw 修复此 bug 之前,此技能仅使用 Exec 模式。 所有浏览操作均在沙箱内通过 curl、puppeteer 或 playwright 完成,结果以文本形式返回。

⚠️ 无论出于何种原因,切勿调用 config.patch。 它会导致网关崩溃。

模板

Novita 提供两个预构建的沙箱模板:

模板ID预安装使用场景
浏览器使用browser-chromiumChromium + CDP(端口 9223)浏览 URL、网页抓取、表单填写、JS 渲染
代码解释器
code-interpreter-v1 | Python、Node.js、Shell、常用开发工具 | 运行不受信任的代码、构建、脚本 |

沙箱生命周期

沙箱默认以 auto_pause=True 创建:

create(timeout, auto_pause=True)


[运行中] ─── 超时 ──→ [已暂停](所有状态保留)
│ │
│ connect() / 任意命令
│ │
│ ▼
│ [恢复/运行中]

kill() ─────────────────────→ [已删除](永久)

  • - 超时自动暂停: 所有进程状态(包括 Chromium 浏览器会话、标签页、Cookie)均被保留。
  • 连接时自动恢复: 对已暂停沙箱的任何命令都会自动恢复它。
  • 已删除的沙箱: 如果超时且未启用 auto_pause,沙箱将被删除。命令返回未找到 — 需创建新的沙箱。

沙箱复用策略

在创建新沙箱之前,始终检查现有沙箱:

bash
python3 skills/novita-sandbox/scripts/sandbox.py list

如果存在匹配的沙箱(正确的模板,仍处于活动/暂停状态),则复用。仅在没有匹配时才创建新的。

命令

创建沙箱

bash
python3 skills/novita-sandbox/scripts/sandbox.py create --template <模板> --timeout <秒数>

您必须根据任务估算超时时间:

任务类型建议超时时间
快速 URL 获取 / 简单页面读取60–120 秒
多步骤浏览(登录、导航、提取)
300–600 秒 |
| 克隆 + 安装依赖 | 300–600 秒 |
| 完整构建 + 测试套件 | 600–1200 秒 |
| 长时间运行的计算或大型项目 | 1200–1800 秒 |

在沙箱中执行命令

bash
python3 skills/novita-sandbox/scripts/sandbox.py exec <命令> --timeout 60

在沙箱中读取/写入文件

bash

读取


python3 skills/novita-sandbox/scripts/sandbox.py read /home/user/output.txt

写入(短内容)

python3 skills/novita-sandbox/scripts/sandbox.py write /home/user/script.py print(hello)

写入(通过标准输入的多行内容)

cat < /home/user/run.sh --stdin #!/bin/bash echo hello from sandbox EOF

上传/下载文件

bash

本地 → 沙箱


python3 skills/novita-sandbox/scripts/sandbox.py upload ./local.txt /home/user/file.txt

沙箱 → 本地

python3 skills/novita-sandbox/scripts/sandbox.py download /home/user/result.png ./result.png

状态/列表/终止

bash
python3 skills/novita-sandbox/scripts/sandbox.py status
python3 skills/novita-sandbox/scripts/sandbox.py list
python3 skills/novita-sandbox/scripts/sandbox.py kill

浏览器沙箱 — 通过 Exec 模式浏览

对于浏览任务,创建一个 browser-chromium 沙箱并在隔离的虚拟机中运行命令。所有浏览操作均通过 Exec 模式 完成 — 在沙箱内运行 curl、puppeteer 或 playwright,并将结果以文本形式返回。

⚠️ CDP 模式(通过 config.patch 的原生浏览器工具)已禁用。 当前版本的 OpenClaw 存在一个 bug,config.patch 会无条件发送 SIGUSR1,导致网关崩溃 — 即使 gateway.reload 设置为 hot 也无法避免。无论出于何种原因,切勿调用 config.patch。

简单页面获取

bash
python3 skills/novita-sandbox/scripts/sandbox.py create --template browser-chromium --timeout 120
python3 skills/novita-sandbox/scripts/sandbox.py exec \
curl -sL https://example.com --timeout 30

JS 渲染页面(puppeteer)

bash
python3 skills/novita-sandbox/scripts/sandbox.py exec \
node -e \const p=require(puppeteer);(async()=>{const b=await p.launch({args:[--no-sandbox]});const pg=await b.newPage();await pg.goto(https://example.com,{waitUntil:networkidle2});console.log(await pg.evaluate(()=>document.body.innerText));await b.close()})()\ \
--timeout 60

多步骤交互(编写脚本 + 执行)

bash

将浏览脚本写入沙箱


cat < /home/user/browse.py --stdin
import subprocess, json

使用 puppeteer 或任何浏览器自动化

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 novita-sandbox-1776123146 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 novita-sandbox-1776123146 技能

通过命令行安装

skillhub install novita-sandbox-1776123146

下载

⬇ 下载 novita-sandbox v0.1.8(免费)

文件大小: 9.09 KB | 发布时间: 2026-4-15 13:38

v0.1.8 最新 2026-4-15 13:38
Completely disable CDP mode. OpenClaw bug confirmed: config.patch unconditionally sends SIGUSR1 even with gateway.reload=hot (SIGUSR1 bypasses reload mode via separate restart-C7ane9OU.js code path). Removed all CDP sections. All browsing now via Exec mode only (curl/puppeteer/playwright). Added interactive page example with puppeteer script pattern. Rule 10: NEVER call config.patch for any reason.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部