返回顶部
p

ppio-sandboxPPIO沙箱

Run browser operations and untrusted code in a secure PPIO 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
安全检测
已通过
252
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

ppio-sandbox

PPIO Sandbox — 安全远程执行

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

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

何时使用

在以下情况下始终使用此技能:

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

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

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

设置

1. 安装依赖

bash
pip3 install ppio_sandbox>=1.0.5

或者:


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

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

2. 设置环境变量

bash
export PPIOAPIKEY=skyourkey # 必需(注意:沙箱使用按秒计费)
export E2B_DOMAIN=sandbox.ppio.cn # 可选,默认如上所示

3. 验证

bash
python3 -c from ppiosandbox.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。 它会导致网关崩溃。

模板

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

模板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)均保留。
  • 连接时自动恢复:对已暂停沙箱的任何命令都会自动恢复它。
  • 已删除的沙箱:如果超时到期且未启用自动暂停,沙箱将被删除。命令返回未找到——需创建新沙箱。

沙箱复用策略

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

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

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

命令

创建沙箱

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

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

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

在沙箱中执行命令

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

在沙箱中读取/写入文件

bash

读取


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

写入(短内容)

python3 skills/ppio-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/ppio-sandbox/scripts/sandbox.py upload ./local.txt /home/user/file.txt

沙箱 → 本地

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

状态/列表/终止

bash
python3 skills/ppio-sandbox/scripts/sandbox.py status
python3 skills/ppio-sandbox/scripts/sandbox.py list
python3 skills/ppio-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/ppio-sandbox/scripts/sandbox.py create --template browser-chromium --timeout 120
python3 skills/ppio-sandbox/scripts/sandbox.py exec \
curl -sL https://example.com --timeout 30

JS渲染页面(puppeteer)

bash
python3 skills/ppio-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或任何浏览器自动化工具


将结构化结果输出到标准输出


print(json.dumps({title: ..., content: ...}))
PYEOF

执行它

python3 skills/ppio-sandbox/scripts/sandbox.py exec

标签

skill ai

通过对话安装

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

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ppio-sandbox-1776123140 技能

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

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

通过命令行安装

skillhub install ppio-sandbox-1776123140

下载

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

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

v0.1.8 最新 2026-4-15 13:58
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
返回顶部