先还原一个日常场景。你给 Claude Code 挂上跳过权限确认的参数,让它整夜自己跑。它要读你的 ssh 私钥,没人拦;它要改你的 git 配置,没人拦。本站 9 月 6 日聊过 GitSpawn 那批 .git/config 劫持——七个编码 agent 产品栽在同一个坑里。当时评论区的问题其实很自然:那正确的姿势是什么?
9 月 7 日,Trail of Bits 的开源项目 Coop 上了 HN,给了一个工程答案:别管权限清单了,直接把 agent 关进一台一次性虚拟机。整个虚拟机就是爆炸半径——这是他们信任模型文档里的原话,the whole VM is the blast radius。
项目本身朴素得可以。Rust 写的命令行工具,4 月 2 日建的仓库,目前 106 颗星,Apache-2.0 协议,最新版本 v0.5.4。用法三条命令:coop setup 装环境,coop up 开机器,coop claude 或 coop codex 把对应的 agent 放进去。支持的 agent 就这两个,没有更多。
有意思的是底层。同一套命令,两个平台走两条完全不同的虚拟化路线:
flowchart TD
A[“你的电脑”] –> B[“coop up”]
B –> C{“什么系统”}
C — “macOS arm64” –> D[“Apple 虚拟化框架
经 Lima 接管”]
C — “Linux x86_64” –> E[“Firecracker microVM
KVM 之上”]
D –> F[“一次性虚拟机”]
E –> F
F –> G[“agent 带着全权限在里面折腾”]
G –> H[“搞砸了就销毁
coop commit 可存档 coop restore 可回滚”]
Firecracker 是 AWS 给 Lambda 用的那类微型虚拟机,开机以百毫秒计;Apple 这边用的是系统自带虚拟化框架,不依赖 QEMU。快照和回滚是隐藏彩蛋——coop commit 和 coop restore 已经能用,README 里一个字没提,我是翻代码翻到的。
信任模型文档写得比 README 直白。虚拟机里的东西按”不可信”对待,甚至专门写了一类叫 agent-controlled 的资产——承认这台机器的日常用户就是一个会自己敲命令的模型。为了让 agent 能全速干活,权限确认在虚拟机里是全部放行的:反正炸也只炸这台机器。
诚实起见,两个坑要说破。第一,虚拟机默认带 NAT 出网,agent 能访问互联网,这不是断网的保险箱;想关掉出口得自己动手。第二,也是最好的部分——HN 讨论里有人问这防不防得住 agent 越狱,回复者是 Trail of Bits 自己的工程师,他写了 11 次 Coop 的提交,原话是”a motivated agent would probably be able to escape it :)”。句尾带着笑脸。安全公司给自己产品的评价,比任何营销文案都可信。
讨论串里被点名的同类方案还有 microsandbox、Eclipse Enclave 这些,各有取舍。但 Coop 的立场最清楚:它不试图列举 agent 能做什么不能做什么——前几天的漏洞清单证明了枚举必挂——只圈一块地,说清楚地有多大。
28 个开放 issue,5 个月仓库,没有官方博客宣传。它更像一群做渗透测试的人给自己写的顺手工具,写完顺手开放出来,连一篇配套的官方博客都没写。对每天放 agent 出笼的人来说,值得花十分钟装一台。
> 来源:github.com/trailofbits/coop(2026-04-02 建仓,v0.5.4);docs/trust-model.md;HN 49593842。核心引语均核对自原文。
