9月18日,开发者ferstar做了一件很多人周末都会做的事:清理磁盘。他发现AI编程工具ZCode的缓存目录占掉了700多MB,顺着挖下去,在检查点文件夹里看到一个313MB的加密文件。再往下,事情变了性质——这个文件是他的商业项目的全量快照,剔除依赖后约345MB核心资产,客户端已经尝试把它上传了564次,每次失败就躺在本地等重传。
他把客户端拆开逆向,还原出完整链路:登录状态下,ZCode会向服务器申请上传凭证和一把加密公钥,在本地把整个工作区——包括完整的Git提交历史、大文件缓存、操作日志和全局配置——打包加密,直传阿里云OSS。界面里没有任何开关能关掉它。当天傍晚,智谱在官方社群道歉,解释是"代码库索引"功能上线初期默认开启所致,宣布已修复、将开源ZCode客户端并接受第三方审查,并给全体用户补偿一次周额度重置。凤凰网、DoNews、OSCHINA等媒体都跟进报道了此事。
上传的不是代码,是你的"历史底裤"
这件事最值得琢磨的,是ferstar对那份快照清单的统计:42411个文件里,Git历史相关文件占了86.6%,真正的源码和文档只占13.4%。
换句话说,云端拿到的大头不是你今天写的代码,而是这个仓库自创建以来的全部痕迹——旧提交里早已删除的密钥和口令、配置文件里的内网主机名、还没推到远端的本地分支名、被回滚操作抹掉的记录。分支名这种东西,懂行的人看一眼就能猜出你在做什么没公开的产品。
为什么一个AI编程工具需要这么多?答案藏在功能清单里:会话检查点恢复、历史版本回退、仓库Wiki生成。这些确实是好功能——AI要"懂"你的项目,就得看到项目的完整上下文。问题不在于要不要上传,而在于默认开启、没有开关、用户毫不知情。便利和边界之间,缺了"同意"这一环。
连你自己都解不开的加密
还有一个细节被讨论得最多:加密方式。内容用AES-256-CTR加密,密钥再用RSA包裹,看起来很专业。但公钥是服务端动态下发的,私钥从头到尾只存在云端。ferstar试遍了本机所有私钥,都解不开自己硬盘上那个313MB的文件。
这意味着什么?加密保护的不是你对数据的掌控权,而是传输路上别人的窥探。数据一旦落地云端,能不能看、看多久、什么时候删,全凭厂商的承诺。智谱这次说"Wiki生成后数据会立即销毁",但截至DoNews发稿,官方尚未逐项说明上传范围与Git历史的去向——这也是为什么"开源客户端、请第三方审查"这个动作,比道歉本身更关键。
信任,正在变成AI工具的硬指标
把视线拉远一点:这已经不是AI工具第一次在数据问题上翻车,也不会是最后一次。AI产品的天性就是要吃掉大量上下文才能干活——你的代码、文档、聊天记录、使用习惯,都是它的原料。原料越多,功能越强,边界越模糊。
对普通用户来说,这不是"要不要用AI"的问题,因噎废食不划算;而是"怎么用得明白"的问题。给你三个装任何AI工具前都值得做的动作:
第一,看看它在你硬盘上安了什么家。 Mac和Linux用户检查家目录下以工具名命名的隐藏文件夹(比如 .zcode 这种),Windows用户看AppData。体积异常大,往往说明它在本地存了你不知道的东西。
第二,敏感项目和日常项目分开。 涉及公司代码、客户资料、财务数据的项目,别随手用消费级AI工具打开;确有需要,先问清楚厂商的数据政策,或者选择明确承诺"不用于训练、可本地化"的方案。
第三,把"开源"和"第三方审计"当作加分项。 一个敢把客户端代码摊开给人看的厂商,和一个只发公告的厂商,可信度不在一个量级。这次智谱选择开源回应质疑,方向是对的——希望更多AI工具把这变成标配,而不是危机公关。
数据边界这件事,从来不靠厂商自觉,靠的是用户看得懂、问得出口。你多检查一次目录,多问一句"我的数据去哪了",整个行业就会往透明多走一步。AI工具可以帮你干活,但方向盘始终应该在你手里。
💬 评论