B3 · 核心能力

代码执行沙箱(Bash / PowerShell / Python / Node)

2026-07-27

WorkBuddy 不只是"会写代码",更关键的是能执行代码。它内置了四种语言运行时,在受限沙箱中执行命令,让你从"看方案"直接跳到"拿结果"。无论是运维排障、数据分析、自动化脚本还是项目构建,代码执行都是核心引擎。

🛡️沙箱机制说明

WorkBuddy 的代码执行并非直接在宿主机上裸跑,而是在受限沙箱中执行。沙箱机制的核心设计:

🖥️四种语言环境配置

🖥️

Bash

运行时:GNU Bash 5.x
适用平台:Linux / macOS
预装工具:git, curl, wget, jq, make, docker-cli
典型用途:系统运维、文件管理、进程操作、CI/CD 脚本

PowerShell

运行时:PowerShell 7.x
适用平台:Windows(也跨平台可用)
预装模块:Az, SqlServer, IISAdministration
典型用途:Windows 运维、.NET 操作、注册表、Active Directory

🐍

Python

运行时:Python 3.11+
预装库:pandas, numpy, requests, beautifulsoup4, matplotlib, openpyxl
典型用途:数据分析、爬虫、自动化、API 调用

🟢

Node.js

运行时:Node.js 20 LTS
包管理:npm / pnpm
预装工具:typescript, esbuild, prettier
典型用途:前端构建、API 调用、JSON 处理

环境检测

你可以让 WorkBuddy 检测当前环境信息:

# 检测 Bash 环境
> 运行 bash -c "echo $BASH_VERSION && which python3 && which node"

# 检测 Python 环境
> 运行 python3 -c "import sys; print(sys.version); import pandas; print('pandas:', pandas.__version__)"

# 检测 Node 环境
> 运行 node -e "console.log(process.version); console.log(process.arch)"

🔒安全边界:高危操作确认

WorkBuddy 将操作分为三个安全级别

绿级:自动执行

无副作用的只读操作,无需确认:

ls, cat, head, tail, grep, find    # 文件查看
git status, git log, git diff       # Git 只读
python3 -c "..."                    # 纯计算脚本
node -e "..."                       # 纯计算脚本
curl -I (HEAD 请求)                 # 网络探测

黄级:需确认执行

有副作用但可逆的操作,WorkBuddy 会提示并等待确认:

git add, git commit                 # Git 写操作
npm install, pip install            # 安装依赖
mkdir, cp, mv                       # 文件管理
docker start, docker restart        # 容器操作

红级:必须授权

不可逆或高风险操作,必须用户手动授权:

rm -rf                              # 递归删除
DROP TABLE, TRUNCATE                # 数据库危险操作
docker rm, docker system prune      # 容器/镜像删除
git push --force                    # 强制推送
chmod 777                           # 危险权限修改
curl -X DELETE (删除 API)           # 破坏性 HTTP 请求
⚠️ 安全提示:红级操作即使在 Craft 模式下也需要手动授权。不要为了省事关闭安全确认——一次误删的代价远超每次确认的几秒钟。

💻执行示例

Bash 示例

# 查看磁盘使用情况
> 查看一下当前目录的磁盘使用情况

# 查找大文件
> 找出 /var/log 下大于 100MB 的文件

# 分析 Nginx 访问日志
> 统计 access.log 中最近 1 小时各状态码的数量

PowerShell 示例

# 查看 Windows 服务状态
> 查看所有正在运行的 Windows 服务

# 检查 IIS 站点
> 列出 IIS 上所有的网站及其绑定信息

# 查询事件日志
> 查看系统事件日志中最近 24 小时的错误

Python 示例

# 数据分析
> 用 pandas 读取 sales.csv,按月份汇总销售额,给出统计摘要

# 爬虫脚本
> 写一个 Python 脚本,抓取这个页面的所有链接

# 批量处理 Excel
> 把 data/ 下所有 Excel 文件的第一个 sheet 合并成一个总表

Node.js 示例

# 前端构建
> 运行 npm run build 构建前端项目

# JSON 数据处理
> 用 Node 脚本把这个 JSON 文件里的数据按日期排序并去重

# API 批量调用
> 写一个 Node 脚本,批量调用这个 API 并收集响应时间

性能与限制

⏱️

执行超时

默认 120 秒(2 分钟),可通过参数调整,最大 600 秒(10 分钟)。超时后任务自动终止。

📏

输出限制

stdout + stderr 合计最大 2000 行或 51200 字节。超出部分截断,完整输出写入临时文件供查阅。

💾

内存限制

沙箱内存上限默认 512MB。数据分析等内存密集型任务可申请提升至 2GB。

🌐

网络限制

默认允许 HTTP/HTTPS 出站。可配置白名单限制访问域名,防止数据泄露。

🎯最佳实践

1. 选择合适的语言

2. 先测试再执行

对有风险的操作,先用 Ask 模式让 WorkBuddy 解释命令会做什么,确认后再切到 Craft 执行:

# Ask 模式:先问清楚
> 这个 sed 命令会做什么? sed -i 's/old/new/g' config.yaml

# 确认后 Craft 模式执行
> /craft
> 执行这个 sed 命令

3. 善用管道组合

Shell 的管道(pipe)是强大武器,一行命令胜过十行脚本:

# 找出最耗内存的进程
> 运行 ps aux | sort -nrk 4 | head -10

# 统计日志中各 HTTP 状态码数量
> 运行 cat access.log | awk '{print $9}' | sort | uniq -c | sort -rn

4. 长时间任务拆分

超过 2 分钟的任务,拆分为多个步骤分步执行,避免超时:

# 不要:一次性处理 100 个文件
> 批量压缩 images/ 下所有图片

# 要:分批处理
> 先处理 images/ 下前 20 个图片
> 再处理下一批 20 个

5. 输出重定向到文件

大量输出时,重定向到文件再读取,避免截断丢失信息:

> 把命令输出保存到 /tmp/result.txt,然后读取前 100 行

🔄与其他能力组合

代码执行很少单独使用,最常见的组合模式:

📚 参考资料

💬 你对 WorkBuddy 有什么疑问?或者已经在用了,有什么心得想分享?欢迎在下方留言讨论!