skills/bundled/sandbox-executor/SKILL.md
沙盒执行器 — 在安全隔离环境中运行 Python/Shell 脚本获取外部数据
npx skillsauth add claude-office-skills/claude-office-plugin sandbox-executorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
当任务需要 Python 或 Shell 脚本(如安装第三方库、调用外部 API、网页抓取),使用 sandboxExec() 在安全沙盒中执行。
var result = sandboxExec(language, code, options);
| 参数 | 类型 | 说明 |
|------|------|------|
| language | string | "python" 或 "shell" |
| code | string | 要执行的代码 |
| options.pip | string[] | Python 依赖包列表(可选) |
| options.timeout | number | 超时秒数,默认 60,最大 120 |
{
"ok": true,
"stdout": "脚本输出内容",
"stderr": "错误信息(如有)",
"exitCode": 0,
"timedOut": false
}
核心原则:sandboxExec 获取数据 → WPS JavaScript 写入表格
// 第一步:在沙盒中用 Python 获取数据
var result = sandboxExec("python", `
import json
from google_play_scraper import reviews, Sort
result, _ = reviews(
'com.example.app',
lang='zh',
country='cn',
sort=Sort.NEWEST,
count=50
)
print(json.dumps(result, ensure_ascii=False, default=str))
`, { pip: ["google-play-scraper"], timeout: 90 });
if (!result.ok) return "Python 执行失败: " + result.error;
// 第二步:解析数据并写入表格
var data = JSON.parse(result.stdout);
var ws = Application.ActiveSheet;
ws.Range("A1").Value2 = "用户名";
ws.Range("B1").Value2 = "评分";
ws.Range("C1").Value2 = "评论";
ws.Range("D1").Value2 = "日期";
for (var i = 0; i < data.length; i++) {
var row = i + 2;
ws.Range("A" + row).Value2 = data[i].userName || "";
ws.Range("B" + row).Value2 = data[i].score || 0;
ws.Range("C" + row).Value2 = (data[i].content || "").substring(0, 200);
ws.Range("D" + row).Value2 = data[i].at || "";
}
return "已写入 " + data.length + " 条评论数据";
var result = sandboxExec("python", `
import json, urllib.request
url = "https://api.example.com/data"
resp = urllib.request.urlopen(url)
data = json.loads(resp.read())
print(json.dumps(data))
`, { timeout: 30 });
var result = sandboxExec("python", `
import json, pandas as pd
df = pd.read_csv("https://example.com/data.csv")
print(df.to_json(orient="records", force_ascii=False))
`, { pip: ["pandas"], timeout: 60 });
var result = sandboxExec("shell", `
curl -s "https://api.exchangerate-api.com/v4/latest/USD" | python3 -c "
import sys, json
data = json.load(sys.stdin)
print(json.dumps(data['rates']))
"
`, { timeout: 30 });
sandboxExec() 获取数据 + WPS API 写入表格print(json.dumps(...)) 输出结构化数据result.ok:沙盒执行可能失败,必须处理错误os.system("pip install ...")dataBridgePull)business
自动生成月度报告工作流
tools
专属助理人格引擎 — 控制助理的身份、口吻和行为风格
tools
首次见面引导 — 在用户完成 Onboarding 后的第一次对话中使用
tools
长记忆管理器 — 隐式学习用户偏好,生成对话摘要