WorkBuddy 不只是"会写代码",更关键的是能执行代码。它内置了四种语言运行时,在受限沙箱中执行命令,让你从"看方案"直接跳到"拿结果"。无论是运维排障、数据分析、自动化脚本还是项目构建,代码执行都是核心引擎。
WorkBuddy 的代码执行并非直接在宿主机上裸跑,而是在受限沙箱中执行。沙箱机制的核心设计:
运行时:GNU Bash 5.x
适用平台:Linux / macOS
预装工具:git, curl, wget, jq, make, docker-cli
典型用途:系统运维、文件管理、进程操作、CI/CD 脚本
运行时:PowerShell 7.x
适用平台:Windows(也跨平台可用)
预装模块:Az, SqlServer, IISAdministration
典型用途:Windows 运维、.NET 操作、注册表、Active Directory
运行时:Python 3.11+
预装库:pandas, numpy, requests, beautifulsoup4, matplotlib, openpyxl
典型用途:数据分析、爬虫、自动化、API 调用
运行时: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 请求
# 查看磁盘使用情况
> 查看一下当前目录的磁盘使用情况
# 查找大文件
> 找出 /var/log 下大于 100MB 的文件
# 分析 Nginx 访问日志
> 统计 access.log 中最近 1 小时各状态码的数量
# 查看 Windows 服务状态
> 查看所有正在运行的 Windows 服务
# 检查 IIS 站点
> 列出 IIS 上所有的网站及其绑定信息
# 查询事件日志
> 查看系统事件日志中最近 24 小时的错误
# 数据分析
> 用 pandas 读取 sales.csv,按月份汇总销售额,给出统计摘要
# 爬虫脚本
> 写一个 Python 脚本,抓取这个页面的所有链接
# 批量处理 Excel
> 把 data/ 下所有 Excel 文件的第一个 sheet 合并成一个总表
# 前端构建
> 运行 npm run build 构建前端项目
# JSON 数据处理
> 用 Node 脚本把这个 JSON 文件里的数据按日期排序并去重
# API 批量调用
> 写一个 Node 脚本,批量调用这个 API 并收集响应时间
默认 120 秒(2 分钟),可通过参数调整,最大 600 秒(10 分钟)。超时后任务自动终止。
stdout + stderr 合计最大 2000 行或 51200 字节。超出部分截断,完整输出写入临时文件供查阅。
沙箱内存上限默认 512MB。数据分析等内存密集型任务可申请提升至 2GB。
默认允许 HTTP/HTTPS 出站。可配置白名单限制访问域名,防止数据泄露。
对有风险的操作,先用 Ask 模式让 WorkBuddy 解释命令会做什么,确认后再切到 Craft 执行:
# Ask 模式:先问清楚
> 这个 sed 命令会做什么? sed -i 's/old/new/g' config.yaml
# 确认后 Craft 模式执行
> /craft
> 执行这个 sed 命令
Shell 的管道(pipe)是强大武器,一行命令胜过十行脚本:
# 找出最耗内存的进程
> 运行 ps aux | sort -nrk 4 | head -10
# 统计日志中各 HTTP 状态码数量
> 运行 cat access.log | awk '{print $9}' | sort | uniq -c | sort -rn
超过 2 分钟的任务,拆分为多个步骤分步执行,避免超时:
# 不要:一次性处理 100 个文件
> 批量压缩 images/ 下所有图片
# 要:分批处理
> 先处理 images/ 下前 20 个图片
> 再处理下一批 20 个
大量输出时,重定向到文件再读取,避免截断丢失信息:
> 把命令输出保存到 /tmp/result.txt,然后读取前 100 行
代码执行很少单独使用,最常见的组合模式: