9月18日晚上,道歉;9月21日上午,代码挂上GitHub。中间隔了三天。
这条时间线的主角是智谱旗下的AI编程工具ZCode。三天前,有开发者发现客户端在静默打包上传整个代码仓库——一个313MB的加密文件,客户端尝试上传了564次。这件事我前几天写过。三天后,智谱正式把ZCode开源了,还附上了两份第三方审计结果。按常理,这算是教科书式的危机应对:认错、整改、开放、请人检查。
但今天冲上知乎热榜的一个提问,却给它泼了盆冷水:「如何看待ZCode道歉三天后开源:零git历史,注释写明开源版不享受活动权益?」
代码交出来了,“历史”没有
先把官方动作摆清楚,这部分有据可查。据凤凰网科技、澎湃新闻等报道,ZCode的开源地址放在github.com/zai-org/ZCode。整改后做了两道审计:中国信息通信研究院的技术评测确认,zcode-prod阿里云OSS存储桶状态为「云端零数据」;绿盟科技的审查确认,桶内全部数据对象及存储桶本身已删除。v3.14.0客户端移除了Repo Wiki功能,切断了本地仓库快照生成与上传链路。智谱同时承诺:代码数据无留存、从未用于模型训练,此后每月公布代码安全审计报告,并建立常态化的漏洞回报机制。
9月20日晚,智谱MaaS平台还宣布上线「数据内容不留存」功能——用户申请开通后,输入输出不再静态存储,数据仅用于完成当次调用。不过官方自己也写明了例外:Batch API、File API这类需要平台侧持久化的功能不在覆盖范围内,因法律法规要求或核查违规嫌疑,数据仍可能留存30天及以上。
动作不可谓不实在。问题在于,知乎那个提问戳中的是另一样东西:开源仓库里没有git提交历史。
这条我自己动手验证过:写这篇稿子之前,我调GitHub API拉了zai-org/ZCode的提交记录,整个仓库的commit列表一共只有两条——9月20日的「Initial commit」,和随后的「feat: open source」,全部代码是在一次提交里整体放进来的。
懂版本控制的人马上明白这意味着什么。git历史记录的从来不只是代码,还有痕迹——谁在什么时候改了哪一行、上传链路是哪天加进去的、又是哪天被删掉的。一次性放出一份「干净」的代码快照,相当于交卷时不让人看草稿。社区想验证「你从什么时候开始上传、什么时候停的」,一份没有历史的仓库回答不了这个问题。
另一处被指出的细节,是代码注释中写明开源版不享受活动权益。若属实,这份「开源」就把用户分成了两拨:能看代码的,和能享受权益的。开源本是把监督权交给社区的姿态,加上这一条,观感上更像一份商业授权条款。
为什么“开源”换不来自动信任
平心而论,智谱似乎明白这个道理。它对澎湃新闻说,做ZCode的初衷很简单:「Claude Code做得很牛,国内也应该有一个,让大家都能用上。」它也说,这次开源只是「回应外界担忧的第一步」,未来要推动ZCode更彻底地走向社区化。
第一步、每月、常态化——这些词的价值,恰恰在于承认了信任没法一次性重建。这件事给所有AI工具用户提的醒不是「开源没用」,而是:开源是验证的开始,不是验证的结论。看到「已开源」三个字之后,你还可以从容地多做三件事:
第一,翻提交记录。 打开仓库的commits页面,连续、可追溯的提交历史,比任何声明都让人安心。一个刚挂出来、几乎翻不到往事的仓库,不管出自谁家,都值得多给它一点观察时间。
第二,看开了什么、没开什么。 有的「开源」只开客户端外壳,核心服务照旧闭源;有的代码开了,权益却和版本绑定。README和LICENSE读完,才知道这是透明,还是活动。
第三,找第三方。 审计报告是不是独立机构出的、结论有没有具体到存储桶和版本号、做一次还是每月做——差别巨大。这次信通院和绿盟科技的审计把结论写到了「zcode-prod桶零数据」「v3.14.0已切断上传链路」这个颗粒度,是对的方向;接下来要看的,是「每月公布」能不能坚持。
工具的信任从来不靠声明,靠可验证的细节。代码已经挂在那里,任何人都可以去看——这本身就是这场风波留下的、实实在在的进步。我把这类自查动作整理进了 spark1.cn 的 /tools/ 板块,装任何AI工具之前,先花五分钟翻一翻它的仓库和条款,这个习惯值得养成。
💬 评论