我拆解了一个开源AI编程代理的源码,发现了三个传统行业做AI最该关注的安全设计
深度拆解 ZoroCoding 源码后,最让我意外的不是它怎么调大模型——而是文件身份锁定、命令沙箱执行、物理离线存储这三个安全设计。这不是技术问题,是信任问题。
我最近深度拆解了一个开源的 AI 编程代理项目(叫 ZoroCoding,MIT 协议)。代码从头读到尾,最让我意外的不是它怎么调用大模型——那部分谁都会。让我停下来反复琢磨的,是它在安全设计上做的三件事。
这三件事,跟「写代码」关系不大,但跟「传统行业能不能放心把业务交给 AI」关系极大。
第一件事:AI 读文件之前,先"锁定身份"
想象一个场景:你让 AI 帮你整理一份合同。AI 说"好,我去读取项目里的合同文件"。但就在它读文件的前一秒,有人把那个文件替换成了一个符号链接,指向你电脑上的 SSH 私钥。
普通程序会直接读——它只检查了文件路径,没检查"这个文件还是不是原来那个"。
ZoroCoding 的做法是三层验证:
- 读之前:记录文件的设备号 + inode 号(文件系统的"身份证")
- 读过程中:用 O_NOFOLLOW 标志打开文件(拒绝跟随符号链接)
- 读完之后:再验证一次设备号 + inode 号,确认中间没有被替换
这三步合在一起,专业术语叫 TOCTOU 防护(Time-of-check-time-of-use)。翻译成大白话:"我说的这个文件,必须从头到尾是同一个文件。你想半路偷换?没门。"
这不是教科书上的概念。这是被攻击过、或者审计过别人系统的人,才会在代码里埋的防御。
对一个传统行业的老板来说,这意味着什么?意味着如果你用这套架构来构建自己的 AI 工具,你的客户数据不会被"偷梁换柱"。
第二件事:让 AI 在"笼子"里运行命令
AI Agent 跟聊天机器人的本质区别是:Agent 会执行操作。它不只是说话,它会读写文件、运行命令。
这就带来了一个核心问题:你怎么保证 AI 不会把你的系统搞崩?
ZoroCoding 的做法分两层。
第一层:命令白名单。 不是什么命令都放行。只有项目内的常规开发命令自动执行——比如 npm test、git status。任何涉及 sudo、rm -rf、磁盘操作、全局安装的命令,一律弹窗让用户确认。
第二层:沙箱执行。 在 macOS 上,它用系统自带的 sandbox-exec 给 AI 的命令画了一个笼子:只允许读写项目目录和临时目录,禁止访问系统文件,禁止访问网络。AI 想偷偷发数据到外部服务器?网络直接给你断了。
这在开源 AI 编程工具里极为罕见。大部分工具的做法是"相信 AI 不乱来"——或者更诚实的说法是"我们没做"。
对于传统行业来说,这意味着:你可以让 AI 帮你做事,但它的"行动范围"是你事先划好的。这不是不信任 AI——这是不让任何工具拥有超出它职责范围的权限。
第三件事:拔了硬盘,一切安全停止
ZoroCoding 有一个我一开始没看懂的设计:它必须从移动硬盘启动。
不是"支持"移动硬盘,是必须。你把应用复制到 Mac 内置硬盘上,它不工作。
后来我想明白了:这不是技术限制,是安全设计。
整个应用的数据——数据库、加密后的 API Key、项目文件、任务日志——全部保存在移动硬盘上。应用进程实时监控这个硬盘的状态。一旦检测到硬盘被拔出:
- 正在进行的 AI 模型请求 → 立即中止
- 正在运行的文件操作和终端命令 → 立即中止
- 数据库写入 → 锁定,拒绝任何修改
- 所有在内存里的密钥引用 → 失效
即使你把同一块硬盘重新插回去,应用也要求重启并重新验证存储位置。
这个设计的潜台词是:"如果存储不在你手里,就不该有任何人能访问你的数据。"
对个人用户,这意味着你拔了硬盘、装进口袋,你的 AI 工作环境就物理离线了。
对企业用户,这意味着合规审计的时候,你可以说:"我们的 AI 数据存储在物理可移除介质上,断开即不可访问。"
这是一种从硬件层面解决问题的思路——跟互联网公司"把所有数据放云端加密"的思路正好相反。
传统行业做 AI,安全不是技术问题,是信任问题
我在装修行业干了 17 年。工地上最头疼的问题从来不是"有没有好材料",而是"信息对不对齐、责任落没落地、每个人愿不愿意面对事实"。
AI 也一样。技术能力只是底线。真正决定一个企业敢不敢把核心业务交给 AI 的,是信任。
而信任不是靠 PPT 讲出来的,是靠这些藏在代码里的设计决策堆出来的:
- 你要读文件?先证明它没被替换。
- 你要运行命令?先确认它在允许范围内。
- 你问我数据在哪?在你手里的硬盘上,拔了就没。
这就是我拆解 ZoroCoding 源码之后最大的感受。
这篇文章是我拆解开源 AI Agent 项目源码系列的第一篇。我正在探索如何把这种级别的 AI Agent 能力带给传统行业的个人 IP 和企业。如果你在自己的业务里有类似的场景想聊聊,欢迎联系我。