Agent 能干活,也得有边界
Cursor、Claude Code 这类工具已经不只是补全代码——它们会主动改文件、跑终端、拉依赖。
问题出在权限模型:默认情况下,Agent 和你登录用户共享同一套系统权限。
一次误判就可能动到 ~/.ssh、误删构建产物,或在后台悄悄发起你没注意到的出站连接。
macOS 场景下隔离更难:Docker 跑的是 Linux 内核,codesign、Xcode 模拟器、
Apple Neural Engine 在容器里不可用;再套一层 macOS 虚拟机又带来明显性能损耗。
OpenClaw 的思路是:在真实物理 macOS 上,用操作系统原生能力划定每次任务的操作边界,
而不是把 Agent 关进什么都做不了的笼子里。
硬件:Mac mini M4 · 10 核 CPU · 16 GB 统一内存 · 256 GB SSD · 1 Gbps 独享带宽(SpinMac 新加坡节点)。
系统:macOS Sequoia 15.3 · OpenClaw 1.4.2。所有命令与截图均在该独享物理机上复现。
三层隔离:文件、系统调用、网络
动手配置前,先理解 OpenClaw 如何把「完整 macOS 能力」和「可控边界」放在一起。 它用三层机制叠加,而不是单一黑名单:
文件系统命名空间:每个会话在指定目录下建立独立工作区,读写默认被重定向到该空间;
对系统路径的访问通过 readonly_mounts 与 deny 列表精细控制。
系统调用过滤:借助 macOS Endpoint Security 拦截 exec、ptrace、
setuid 等敏感调用;可用预设模板(如 agent、dev)快速起步。
网络访问控制:按域名或 IP 白名单放行出站流量,其余请求静默丢弃并写入审计日志, 避免 Agent 感知到「被墙」后尝试绕行。
开通 SpinMac 节点(前置条件)
OpenClaw 内置于每台 SpinMac Mac mini M4,无需单独购买附加项。 若你还没有可用实例,按以下步骤开通:
-
01
选择节点与周期
前往配置下单页,选择新加坡、日本(东京)、韩国(首尔)、中国香港或美国东部节点。AI Agent 任务 256 GB 基础盘即可,按天起租 $21.2。
-
02
付款后等待自动交付
支持 USDT-TRC20 与 Stripe 卡支付。确认收款后 1–5 分钟内完成分配,邮件下发 SSH 与 VNC 凭证。
-
03
登录控制台验证就绪
浏览器 VNC 可零客户端接入;SSH 示例:
ssh admin@<公网IP> -p <端口>。确认 macOS 桌面或 shell 可正常登录后继续。
控制台启用 OpenClaw
在 SpinMac 控制台打开对应订单,进入「OpenClaw」标签页。
首次使用会执行零信任初始化:生成实例绑定的 Ed25519 密钥对、安装
com.spinmac.openclaw.daemon 后台服务,并创建审计日志目录
/var/log/openclaw/。
终端验证守护进程与 CLI:
# Check daemon
launchctl list | grep openclaw
# Expected: 0 com.spinmac.openclaw.daemon
# Install CLI if not present
curl -fsSL https://cdn.spinmac.com/openclaw/install.sh | bash
claw --version
# openclaw 1.4.2 (darwin/arm64)
claw status
# daemon: running | auth: valid
claw status 同时显示 daemon: running 与有效 session token,
即可进入权限配置。若初始化卡住,先运行 claw doctor 查看 Endpoint Security 授权是否完整。
用 YAML 划定 Agent 权限
OpenClaw 用 YAML 描述每个沙箱会话的策略。对 AI Agent,建议从内置 agent 模板导出再微调:
claw template list
# readonly | dev | agent
claw template export agent > ~/openclaw-agent.yaml
核心字段说明(节选):
filesystem:
workspace: "~/agent-workspace"
readonly_mounts:
- /Applications
- /usr/local/bin
deny:
- ~/.ssh
- ~/Library/Keychains
network:
allow_domains:
- "api.openai.com"
- "api.anthropic.com"
- "*.github.com"
block_all_others: true
Agent 只能在 ~/agent-workspace 内写入;可读取已装应用与 Homebrew 工具路径;
SSH 密钥与钥匙串被硬拒绝;出站网络仅限白名单域名。
初次配置时未把 /usr/local/bin 加入只读挂载,git、python3 调用全部失败。
OpenClaw 会解析 symlink 真实目标——若工具指向 Cellar 目录,需把对应 Cellar 路径一并加入
readonly_mounts,否则审计日志里会看到一连串 BLOCK exec。
跑通第一个隔离任务
策略文件就绪后,启动会话并在沙箱内运行 Agent:
claw run --config ~/openclaw-agent.yaml --attach
# Prompt becomes: (claw:my-agent-session) admin@mac-xxx:~$
# Run agent inside sandbox (example: Claude Code)
claude --dangerously-skip-permissions
--attach 让你直接进入受控 shell;此后启动的进程均在 OpenClaw 监控下。
Claude Code 的「跳过权限确认」在沙箱内仍受 YAML 边界约束——越权写入或非法网络访问会被拦截。
另开终端实时查看审计流:
claw audit tail my-agent-session --follow
# [10:23:41] ALLOW exec /usr/local/bin/git clone ...
# [10:23:45] BLOCK network outbound → 142.250.x.x — policy: block_all_others
审计日志与零信任意味着什么
上面那条被拦下的外连请求来自某依赖库的初始化 ping——在普通环境下几乎不可见, 在 OpenClaw 里却留下完整记录。零信任不是「不信 Agent」,而是不预设每一步都符合预期, 用可导出的日志回答「它到底做了什么」。
合规场景下,可将日志导出为 JSON 供安全团队审查:
claw audit export my-agent-session \
--format json \
--output audit-report-$(date +%Y%m%d).json
需要生产级多用户协作、CI 集成与故障排查时,可继续阅读 OpenClaw 完整使用指南。
常见场景策略速查
| 场景 | syscall 预设 | 网络策略要点 | 注意 |
|---|---|---|---|
| 代码生成 / 重构 | agent |
放行 npm / pip registry | 包管理器域名需入白名单 |
| Xcode 编译 | dev |
放行 Apple CDN | 挂载 Xcode 与 DerivedData |
| 敏感数据只读分析 | readonly |
全部阻断 | 最高隔离级别 |
| CI 自动化审查 | dev |
GitHub + AI API | 每次流水线独立会话 |
建议每个独立任务新建会话,审计按任务隔离;调好的 YAML 可存为命名模板,
claw run --template xcode-build 一键复用,避免重复手写策略。
对于需要反复调试策略的团队,可以把模板文件放进 Git 仓库的 .openclaw/ 目录,
与业务代码同版本管理——每次合并请求都能追溯当时生效的权限边界,安全审查时也不必再口头描述「当时大概允许了什么」。
为什么不用 Docker 或嵌套虚拟机?
Docker Desktop 在 macOS 上本质是 Linux VM——没有完整 Apple 工具链,Neural Engine 也无法直通。 嵌套 macOS 虚拟机虽能跑 Xcode,但 M4 的 38 TOPS 算力在虚拟化链路中大幅折损,且缺少内置操作级审计。
OpenClaw 在物理机上用 Endpoint Security 做拦截,开销约 3% CPU,Agent 仍可使用真实
codesign、模拟器与 Core ML——只是边界事先写进策略文件。
这与「在笔记本上裸跑 Agent」或「自己搭虚拟机再套一层监控脚本」相比,运维路径更短:
你不需要维护镜像、快照或额外的日志采集 Agent,SpinMac 控制台与 claw CLI 已经覆盖开通、策略、审计的闭环。
若你本地 8 GB MacBook 跑 Agent 频繁 swap,或团队需要可审计的共享节点, SpinMac 按天 $21.2 起租的 M4 物理机提供 16 GB 独占内存与开箱即用的沙箱能力, 比拼凑临时方案更省时间,也更符合安全团队对「可证明边界」的期望。