![]()
一个独立开发者用22MB的Rust代码,给失控的AI代理套上了缰绳。没有Kubernetes,没有GPU集群,没有SaaS订阅——只有两个二进制文件,和Linux内核里藏了十几年的安全特性。
这事听起来像技术极客的自我感动,直到你看到数据:2024年GitHub上"AI agent security"的搜索量涨了340%,而主流方案(NVIDIA NemoClaw、OPA+Envoy)的部署文档平均47页。GVM的作者@kawasima(日本开发者)在HN上写了一句扎心的话:「我想让代理帮我订机票,不是帮我订机票的同时把护照扫描件发到Discord。」
从"信任焦虑"到22MB的解法
@kawasima的痛点很具体。他跑OpenClaw(开源AI代理框架)处理个人事务时,发现代理能读到.env里的API密钥,能"误解"指令把数据发到外网,能在调试模式下删掉整个项目目录。这些不是理论风险——2024年3月,某AI编码助手就在用户机器上执行了rm -rf /,因为训练数据里混进了恶意提示词。
现有方案的问题在于"重"。NemoClaw需要NVIDIA GPU和容器编排;OPA+Envoy要搭服务网格;Docker隔离虽然成熟,但" solo dev维护K8s集群"这件事本身就很讽刺。更关键的是,它们隔离了环境,却不约束行为——代理在容器里照样能调用任意API。
GVM的设计反过来:先定规则,再建牢笼。
核心架构三层:Rust代理负责HTTP流量审查,Linux Namespace+seccomp-bpf强制流量走代理,OverlayFS把文件操作锁在沙盒层。22MB的两个二进制文件(CLI+gvm-proxy),编译完直接跑。作者的原话:「它不像SaaS那样把你的数据抽走,它就是你的机器上的一个二进制。」
Linux内核的"老技术"新用法
GVM的技术选型很有意思——没造新轮子,全是内核里现成的。
seccomp-bpf(Secure Computing Mode with Berkeley Packet Filter)是Linux 3.5就有的特性,最初给Chrome沙盒用。它允许内核用BPF程序过滤系统调用,性能损耗接近零。GVM用它做两件事:阻断代理直接创建socket,强制所有网络流量走gvm-proxy的Unix域套接字。
Namespace和OverlayFS的组合更老,Docker的底层就是这俩。但GVM的用法更"轻":不建完整容器,只隔离网络栈和文件系统视图。代理看到的"根目录"是OverlayFS的上层,写操作落在这里,下层真实文件只读。删了?重启后上层清空,原数据毫发无损。
作者提到一个细节:macOS和Windows上GVM退化成"协作模式",靠HTTP_PROXY环境变量注入。功能打折,但至少能跑——这对个人开发者很重要,因为不是谁都有Linux工作站。
命令行设计也透着产品经理思维:gvm run --sandbox --watch 实时看代理在调什么API;gvm suggest 从会话日志自动生成规则模板。
规则引擎:从"黑名单"到"延迟确认"
GVM的代理层不只是放行/阻断。规则支持三种动作:allow(直接过)、deny(拒绝)、delay(延迟并通知)。
延迟模式针对的是"不确定是否恶意"的场景。比如代理第一次调用某个陌生API,或者请求体里出现了email字段。这时候GVM会挂起连接,推通知给人类确认——类似iOS的"允许一次"权限设计,但用在服务器端。
规则文件是YAML,支持按域名、路径、方法、请求体关键词匹配。作者给的示例里,一条规则可以精确到"允许POST api.openai.com/v1/chat/completions,但请求体包含'password'时阻断"。
这种细粒度在现有方案里很少见。NemoClaw侧重模型层面的安全对齐,OPA做服务间的策略管控,Envoy是流量代理——它们都不直接解决"单个代理进程的行为审计"问题。
开源社区的"轻量"共识
GVM在GitHub上开源两周,Star数过了800。HN讨论区的高赞评论是:「终于有人承认,不是每个AI项目都需要K8s。」
这个情绪背后有数据支撑。Stack Overflow 2024开发者调查显示,"基础设施复杂度"首次超过"算法难度",成为AI应用落地的最大障碍。具体到AI代理场景,轻量级方案正在分流:除了GVM,E2B的代码执行沙盒、Modal的serverless容器,都在打"无K8s"牌。
但GVM的独特之处在于"零外部依赖"。E2B需要他们的云服务,Modal按秒计费;GVM编译完就是两个二进制文件,断网也能跑。这对处理敏感数据的场景(医疗、法律、个人财务)很关键——数据不出本机,审计日志也不出。
作者在项目README里埋了一句警告:「GVM不是万能药。它防不了提示词注入,防不了模型本身的幻觉,防不了你用root权限运行它。」这种克制反而增加了可信度。安全工具最危险的就是过度承诺。
个人开发者的"治理"实验
@kawasima现在的用法是:3个OpenClaw实例跑在GVM里,分别处理邮件分类、日历调度、代码审查。每个实例有自己的规则集,邮件代理被允许访问Gmail API但禁止调用任何支付接口,代码代理能读GitHub但写操作必须走delay确认。
他贴了一张终端截图:gvm run --watch 模式下,代理的每次HTTP调用实时打印,绿色是allow规则命中,黄色是delay等待确认,红色是被deny拦截。一周下来,delay触发了12次,其中3次是代理试图访问一个被遗忘的测试API(已废弃但密钥还在.env里)。
这个数字很小,但正是作者想要的——不是堵死所有可能性,而是让"意外"变得可见、可拦截、可复盘。
GVM的下一步路线图包括:支持gRPC流量审查(目前只处理HTTP/1.1和HTTPS)、规则热重载、以及一个Web界面替代命令行watch。但作者强调优先级:「先保证核心稳定,再画饼。」
如果你现在想试,项目release页有预编译二进制,Linux下解压即跑。macOS用户会收到一条警告:「协作模式可被绕过,仅用于开发测试。」——又一个产品经理式的诚实。
最后一个问题留给读者:当你的AI代理开始自主调用API时,你选择相信它的"对齐训练",还是给自己留一个22MB的后悔药?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.