先回答一个问题:为什么 Agent 不能直接在裸 macOS 上跑
很多团队的第一反应是「反正只是测试,让 Agent 用 SSH 登录云端 Mac 直接干活就行」。
问题在于:现代 Agent 框架(LangGraph、AutoGen、Cursor Background Agent 等)默认以当前用户身份执行工具调用——
读文件、起子进程、访问网络,权限边界与你自己登录终端时完全一致。
我们在一次内部试点里,让 Agent 扫描 Swift 仓库并自动修复编译警告;
它在第三次迭代时尝试读取 ~/Library/Keychains 并执行 security find-identity,
目的是「帮用户找签名证书」——逻辑上说得通,对承载 Distribution 证书的构建机却是灾难。
换用户账号或每次任务后重装系统,成本太高;Docker 在 macOS 上又无法覆盖完整 Xcode 工具链。
OpenClaw 的思路是:Agent 仍跑在真实 macOS 上(能调 xcodebuild、Apple Neural Engine),
但每次系统调用前经过策略引擎判定,越权即拦、全量记入审计日志。
这篇只覆盖「从零到首个沙箱任务跑通」的最短路径;架构细节、多用户零信任与 CI 接线见
OpenClaw 完整使用指南。
硬件:Mac mini M4 · 10 核 CPU · 16 GB 统一内存 · 256 GB NVMe · 1 Gbps 独享带宽(PixVPS 中国香港节点)。
系统:macOS 15 Sequoia。OpenClaw CLI 0.9.4,策略格式 v2。
样例任务:Agent 克隆公开仓库 → 用 rg 扫描 TODO 注释 → 输出 Markdown 报告(只读、无出站网络)。
全程在 SSH 终端完成,未使用 VNC。
动手前:你需要准备的三样东西
整个流程不依赖本地 Mac——Windows 或 Linux 笔记本只要能 SSH 即可。 开始前确认以下三项就绪,否则会在中途卡住:
云端节点:若尚未开通,在下单页选择节点与租期。
五节点(新加坡、日本东京、韩国首尔、中国香港、美国东部)硬件与价格一致,按延迟就近选即可。
付款后 1–5 分钟 SSH 凭据会出现在工作台。
instance-token:首次在工作台「安全与沙箱」启用 OpenClaw 时生成,只显示一次,务必存入团队密钥库。
策略文件:下文第四节提供可直接复制的只读模板,存为 ~/policies/quickstart-readonly.yaml 即可。
五分钟操作流程:从开通到首个沙箱任务
下面按实际耗时标注。我们在新加坡节点重复测了 5 次,熟练后全程约 4 分 20 秒; 首次操作预留 5–8 分钟足够。每一步都有明确验收标准——看到对应输出再进下一步。
-
01
第 1 分钟:工作台启用 OpenClaw
登录 PixVPS 工作台 → 实例详情 →「安全与沙箱」→ 打开 OpenClaw 开关。 复制弹出的
instance-token到 1Password / Bitwarden。 验收:页面显示 OpenClaw 状态为「已启用」。 -
02
第 2 分钟:SSH 登录并安装 CLI
从工作台「接入信息」复制 SSH 命令,登录实例后执行安装脚本与鉴权。 验收:
openclaw status三项(Policy Engine、Sandbox Runtime、Audit Bus)均为healthy。 -
03
第 3 分钟:写入最小只读策略
创建
~/policies/目录,粘贴第四节 YAML 模板。 用openclaw policy validate -f ~/policies/quickstart-readonly.yaml校验语法。 验收:输出policy valid,无路径冲突警告。 -
04
第 4 分钟:创建沙箱并执行探测命令
openclaw sandbox create --name quickstart --policy ~/policies/quickstart-readonly.yaml, 随后openclaw sandbox exec quickstart -- /bin/zsh -lc 'ls -la /workspace'。 验收:沙箱内能看到空工作区目录列表,无权限错误。 -
05
第 5 分钟:跑 Agent 入口脚本并查审计
在沙箱内执行你的 Agent 入口(或下方示例脚本), 另开终端跑
openclaw audit tail --sandbox quickstart --follow观察实时日志。 任务结束后openclaw sandbox stop quickstart。 验收:审计日志中有decision: allow与decision: deny记录(若 Agent 触碰了被禁路径)。
在实例 SSH 会话中执行:
curl -fsSL https://api.pixvps.com/openclaw/install.sh | bash
openclaw auth login --token <instance-token>
openclaw status
最小权限 YAML:只读代码扫描模板
快速上手的原则是先严后松:第一份策略只开放 Agent 完成任务所需的最小集合。
下面的模板允许读 /workspace、运行 git / rg / python3,禁止访问钥匙串与 SSH 目录,禁止一切出站网络。
对「克隆公开仓库 → 静态扫描 → 写报告」类任务足够用。
apiVersion: openclaw.pixvps.com/v2
kind: SandboxPolicy
metadata:
name: quickstart-readonly
spec:
filesystem:
allow:
- path: /workspace
access: [read, write]
deny:
- path: "**/Keychains/**"
- path: "**/.ssh/**"
process:
allow: [git, rg, python3, zsh]
network:
egress: deny-all
注意:/workspace 给了写权限,因为 Agent 需要把扫描报告落盘;
若你的任务纯只读,可把 access 改为 [read]。
需要访问 GitHub 拉代码时,必须把 network.egress 改为 allow-list 并加入 github.com:443——
这是快速上手后最常见的「第二步放开」项,完整网络白名单写法见
完整指南第五节。
跑通首个 Agent 任务:可复制的入口脚本
在接入 LangGraph / 自研编排框架之前,建议先用一段 20 行的 shell 脚本验证「策略 + 沙箱 + 审计」闭环。
把下面内容存为 /workspace/agent-entry.sh(在宿主机上创建后,沙箱会自动映射该目录):
#!/bin/zsh
set -euo pipefail
cd /workspace
git clone --depth 1 https://github.com/apple/swift-sample-code.git repo 2>/dev/null || true
rg -n "TODO|FIXME" repo/ > scan-report.txt || true
echo "Scan done: $(wc -l < scan-report.txt) matches" > summary.txt
cat summary.txt
若策略仍为 egress: deny-all,git clone 会被网络策略拦截——
这正是我们想要的演示效果:打开审计 tail,你会看到 decision: deny 的 network 记录。
把 GitHub 加入白名单后重跑,应出现 decision: allow 并成功生成 summary.txt。
执行命令:
openclaw sandbox exec quickstart -- /bin/zsh /workspace/agent-entry.sh。
我们在 M4 节点上测得该脚本(含 clone)耗时约 38 秒,策略判定累计开销不足 200 ms,可忽略。
确认无误后执行 openclaw sandbox stop quickstart 释放工作区;僵尸沙箱会占用磁盘,默认单实例上限 5 个并发会话。
三个最常见卡点与秒级修复
首次上手几乎每个人都会撞上下面三条之一。不必翻长篇文档——按表操作即可。
| 现象 | 原因 | 一行修复 |
|---|---|---|
openclaw auth login 报 token 无效 |
复制时多了空格,或 token 已轮换 | 控制台重新复制;旧 token 轮换后立即失效 |
Agent 报 E_POLICY_DENY: filesystem |
访问路径不在 allow 列表 | openclaw audit query --decision deny --since 1h 查目标路径后补 YAML |
git clone 失败但无文件错误 |
网络策略 deny-all | YAML 中 network.egress 改为 allow-list 并加 github.com:443 |
不要把 instance-token 写进 Git 仓库或截图发到 Slack。
快速试点完成后,若团队多人需要接入,请在工作台配置零信任设备证书与 viewer / operator / admin 角色分级——
流程见完整指南第六节。
试点通过后:按节奏扩展权限与规模
五分钟跑通只读沙箱只是起点。真实业务里 Agent 往往要调 xcodebuild、访问 npm registry、
在 CI 里每次 push 自动创建沙箱。这些属于「从试点到生产」的范畴,需要更细的策略分层与审计导出——
我们在OpenClaw 完整使用指南里按章节展开了权限 YAML 进阶、
GitHub Actions 接线与 90 天审计保留策略。
若你还没有云端 Mac,常见替代方案各有短板:本地笔记本 7×24 跑 Agent 耗电且无法固定海外 IP; 公有云 macOS 虚拟机缺少 OpenClaw 原生集成与操作级审计;办公室自购 Mac mini 则要承担硬件折旧与运维人力。 PixVPS 提供独享物理 Mac mini M4(16 GB 统一内存、38 TOPS、1 Gbps 独享带宽), OpenClaw 随标准实例内置,付款后 1–5 分钟交付,按天 $21.1 起租—— Agent 实验期按天开通、验证通过后转按月 $105.7 常驻,比为不确定需求提前买机器更灵活。
推荐路径:今天用本文跑通只读沙箱 → 明天按任务类型复制策略模板(构建 / 文档抓取 / 运维巡检,见完整指南对比表)→
第三周把 YAML 纳入 Git 并在 CI 中强制 openclaw audit export。
需要并行多个构建 Agent 时,单台 M4 16 GB 实测可稳跑 2 个含 DerivedData 的沙箱;
更多并行可选购 Thunderbolt 5 并联服务组成 80 Gbps 集群。
五分钟给 Agent 一台带 OpenClaw 的云端 Mac
PixVPS Mac mini M4 独享节点内置 OpenClaw 沙箱:操作级隔离、零信任接入、审计日志可追溯, 16 GB 统一内存适合 Agent 与 Xcode 并行,按天 $21.1 起,全球五节点可选。