先问你个问题:你电脑上那个 AI 编程工具,知道你多少事?
它知道你项目里每个文件叫什么,知道你上周三凌晨改了哪一行,知道你配置文件里哪个字段是不能外传的密钥,甚至知道你在哪段代码上纠结了四十分钟又改回去了——因为这些东西,你的 Git 提交历史里全写着。
那么问题来了:这些信息,有多少是只留在这台电脑上的?
9 月 17 号之后,这个问题从「哲学问题」变成了「技术问题」。
一、四天时间,事情是怎么滚起来的
9 月 17 日,有开发者在社区爆料:智谱的 AI 编程工具 ZCode,会在用户登录状态下后台打包上传整个工作区——包括完整的 Git 提交历史、LFS 缓存和本地操作记录,加密后直传阿里云 OSS。
注意,这里说的不是「上传一段报错代码让模型帮忙看看」,是整个工作区。
9 月 18 日,智谱发声明致歉,把起因归到一个叫「代码库索引」的功能上——它在上线后是默认开启状态。同时承诺三件事:开源代码库、请第三方审查并公开进展、给全体用户一次周额度重置作为补偿。
9 月 19 日,ZCode 发布 3.14.0 版本。更新日志里有一行很直白:「修复仓库百科异常上传的问题」。
但事情没停在道歉这里。
9 月 19 日晚,一家叫太原承明科技的企业用户公开发函。据《中国新闻周刊》报道,这家公司称自己在智谱公开致歉当天凌晨仍然监测到了上传行为;被上传的工作区有 6 个,其中最大的一个 410MB,里面包含完整的版本控制历史和工程配置。同一篇报道提到,已有近 400 名开发者在多个维权群里沟通。
争议没有结束。
9 月 20 日,智谱的 MaaS 平台宣布将上线「数据内容不留存」功能。9 月 21 日,也就是今天,澎湃新闻独家报道:ZCode 即将正式开源。同时智谱请了中国信息通信研究院和绿盟科技做安全审计——信通院技术评测确认 zcode-prod 的阿里云 OSS 存储桶为「云端零数据」;绿盟科技审查确认该 OSS 内全部数据对象及存储桶本身已删除;3.14.0 客户端已移除 Repo Wiki 功能,本地仓库快照的生成与上传链路已被切断。
智谱的公开表态是:「再次向大家致歉,请大家持续监督。」

二、那个「代码库索引」,到底在传什么
先说这个被点名的功能是干嘛的。
「代码库索引」,通俗讲就是给你的代码建一本目录。AI 要在一个几十万行的项目里帮你干活,得先知道「这个函数在哪个文件里」「这个方法被谁调用过」。做法是把代码切小、编号、算成向量存起来,以后提问时再去里面捞。
问题出在「这本目录建在哪」。
建在本地,要装依赖、占硬盘、还得花你自己机器的 CPU 去算,用户体验差。建在云端,上传一次、所有人秒出结果,体验好,成本还低。
于是产品经理的笔,就落在了第二个选项上。
打个比方:你家有三千本书,来了个图书管理员,说能帮你做个检索系统。最快的做法是什么?把你的书全部搬到图书馆复印一遍,复印完再还给你,顺便说一句「复印件我看完就销毁」。
书的目录是有了。但你家书架上摆的是什么,还由你说了算吗?
还有一件更值得琢磨的事:这条路不是只有 ZCode 在走。 所有做「跨文件理解」的 AI 编程工具,都面对同一个选择——要么在你机器上算,要么把东西拿走算。差别只在于:有没有告诉你、默认开没开、以及留没留。

三、比「上传」更麻烦的,是「默认开启」
这四天里,官方的解释是「索引功能引发」。但争议真正的引信,不是上传本身,是那四个字:默认开启。
默认开启意味着什么?意味着用户没有做任何选择,就已经同意了。
承明科技在受访时提到的细节很关键:他们说公司从来没有打开或使用过所谓的索引功能,一直处在隐私模式,但文件依然被上传了。这一点与「问题由索引功能导致」的说法对不上。(该企业的说法目前仍属单方陈述,智谱未就该点单独回应。)
这里不评判谁对谁错,只说一个更普适的规律:
一个功能如果默认开着、后台静默运行、且不需要用户知道,它在产品文档里的形容词大概率是「无感」「丝滑」「零配置」。而在数据合规的语境里,同一个东西有个更准确的名字,叫「未经明确同意」。
这不是某一家公司的语言习惯,这是整个工具行业过去十年养成的习惯——把「用户没关掉」当成「用户同意」。
这条路现在走不通了。个人信息保护法规摆在那儿,企业客户的合规部门也摆在那儿。一个默认开启的数据出口,随时能把「工具」变成「事故」。
四、「立即销毁」这句话,为什么没法自证
9 月 18 日就说了「上传的数据会被立即销毁,不会保存」。这话可能是真的。但问题在于——它没法被证明。
已经删掉的东西,谁来验证它曾经存在、又曾经被删干净?这个场景里唯一的举证方在云端那一侧,用户拿不到证据。
这就是为什么「云端零数据」这种结论,必须由一个第三方机构出具,而不是自家发一条公告。信通院和绿盟出报告,价值不在于报告上写的是「零」,而在于这份结论有独立的背书主体、有可追责的对象,而且智谱承诺以后每月公布一次代码安全审计报告、建立常态化的漏洞报告机制。
一个能被反复检查的机制,比一句「我们保证」值钱得多。
顺便说,「开源」这件事也容易被高估。它解决的是「你能检查我的代码」,解决不了「你能检查我服务器上存过什么」。所以开源必须跟外部审计一起看,单拎出来只是一个姿态。
五、真正该问的三个问题
把这条新闻抽象一下,任何 AI 编程工具都该被问三个问题:
- 第一,它有没有在传? 不是「它会不会传」,是「现在、此刻、默认状态下,它有没有在往外面发东西」。
- 第二,传的东西有没有必要出门? 一句报错、一个函数签名,和整个仓库的提交历史,是完全不同量级的东西。
- 第三,我能不能自己验证? 如果答案只能是「相信我们的公告」,那这个信任成本就已经落在你头上了。
这三个问题跟工具的国籍无关,跟它在广告里说自己多懂你的代码也无关。它只跟一件事有关:它在设计的时候,把你的数据当成谁的财产。
六、五个动作,今天就能查清你的工具
不用等审计报告,你自己现在就能做这五件事。
- 先看版本号。 ZCode 用户确认升到 3.14.0 及以上。用别的工具的话,去官网更新日志里翻一翻:近一周有没有发过跟「上传」「索引」「遥测」相关的修补版本。没有不代表安全,有就赶紧升。
- 把所有相关开关找出来,看清默认状态。 设置里搜这几个词:索引、知识库、仓库百科、云端同步、遥测、改进计划。找到后别急着关,先记下它默认是开还是关——这一步是在摸清它替你做了哪些决定。
- 看它往哪儿发数据。 非技术读者最快的办法:用系统自带的防火墙或网络监控,看这个客户端连了哪些域名。懂技术的直接抓包。看不懂域名就搜一下归属,这一步花不了十分钟。
- 对一下「签约主体」和「服务器所在地」。 你在服务协议上签的是哪家公司、实际网络请求打到了哪个司法辖区,这两件事未必是同一个答案。这决定了你的数据受哪套法律管——承明科技的质疑正出在这里。
- 敏感项目物理隔离。 涉及商业机密的仓库,用本地模型加断网模式跑,或者干脆别接 AI 工具。省下来的那点时间,不值得拿知识产权去换。

最后说两句
ZCode 这件事,往后大概还会继续更新。开源自证能不能重建信任,审计报告里每月会写出什么,都要看后续。
但有一件事现在就可以确定:过去两年 AI 编程工具狂飙的那部分增长,有很大一块是拿「用户不知道自己给了什么」换来的。
现在这份账,开始被翻了。
对开发者来说这是好事——你终于有理由问清一件事:我每天用它写代码,它拿走了什么,我拿回了什么。
我是老魏,一个专门把 AI 圈的新闻翻译成人话的程序员。这儿不讲参数,不讲架构图,只讲「这事儿到底意味着什么」。
觉得有用就点个关注,咱们下期见。
