Plimsoll Vibe 项目
它告诉你:这次跑代码,墙有多厚。
项目简介
Plimsoll 是一个为运行 AI 智能体写入的不可信代码而设计的自托管沙盒服务。它最有意思的一点是:每次运行结果都会告诉调用方这次隔离墙有多厚,并且调用方可以强制要求最低隔离等级——如果沙盒不够强,请求直接拒绝,不执行任何代码。
名字取自「Plimsoll line」(船舶载重线),就像船身上的吃水线让任何人能一眼看出船的载重上限,Plimsoll 让任何人能一眼看出一次代码运行的隔离强度——以四个明确等级呈现:process、container、kernel、vm,从弱到强。
核心功能
- 声明式隔离等级:每次结果里都带着
Isolation字段,告诉你实际跑在哪个等级 - 最低等级门禁:请求里可以写
MinimumIsolation: IsolationVM,不够就直接ErrInsufficientIsolation拒绝,没有代码被执行 - 四档隔离层级:process(最轻)→ container → kernel → vm(最重),按需选档
- 代码考试功能:内置的 trial runner 能在沙盒里对 agent 写的代码跑场景测试,场景文件在 agent 程序启动前就删除
- 可重放证据:每次运行返回 SHA-256 hash(请求 hash + 结果 hash),客户端能重算验证结果没被改
- 远程签名链:
plimsoll-attest子命令为已校验结果签名,可以回放整次运行 - 官方 Go 客户端:Go SDK 在拿到结果后会再次核对隔离等级是否被满足
特色优势
- 「墙的厚度」是一等公民:不像传统沙盒只说"运行了",Plimsoll 永远告诉你用了什么等级、够不够你要求
- 拒绝失败 = 没运行:
ErrInsufficientIsolation是显式信号,审计和回滚友好 - 可证明可重放:SHA-256 双向校验 + 签名 + 回放工具,运行结果可被独立验证
- 零拷贝集成:官方 Go client 内置 tier 校验,无需调用方自己写
- 跨语言友好:Go SDK + 标准 provider 接口,任何语言都能接入
- 不只是 containment:内置考试机制,可以对 agent 写的代码跑功能性测试而不是只把它关起来
快速上手
Go SDK 调用示例:
res, err := provider.Sandbox.RunJavaScript(ctx, sandbox.Request{
Code: "console.log(6 * 7)",
MinimumIsolation: sandbox.IsolationVM, // 等级不够 = 不跑
})
// res.Isolation 直接告诉你实际用了哪一档墙
完整复现 example:
make docker-images
go run ./examples/oracle
这个 example 会跑三次沙盒:两次用通过的 controller,一次用 agent 的初版(两个增益符号错了,会失败),结果直接可浏览器回放。
适用人群
- 在生产环境运行 AI 智能体生成代码的工程团队
- 做 AI 评测、agent benchmark 的研究人员
- 想给 agent 配可验证沙盒的 DevOps / Platform Engineer
- 关注 LLM agent 输出可审计性的安全团队
- 对「代码隔离的证据链」有合规要求的项目
技术实现
Plimsoll 用 Go 实现,daemon 形式运行;通过 Linux gVisor(kernel tier)和 KVM(vm tier)实现强隔离。审计工作流(audit.yml 和 gvisor.yml)在每次 commit 自动跑。Trial runner 机制允许把 agent 的程序当作黑盒喂给预先准备好的测试场景,每个场景的文件在程序启动前就被删除,场景不能被偷看。
详细安装与运行说明见 GitHub README 与 官方文档站点。
官方链接
- GitHub:
- 示例回放:
- Go pkg:
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议