智谱这次的风波,始于一次清理磁盘。
按ferstar的自述,他的那台256GB的MacBook Air空间吃紧,清理磁盘时,发现ZCode的本地数据目录占了700多MB。直觉不对劲的他,继续往里找,发现了一份313MB的加密包。
9月18日,智谱ZCode用户ferstar在x上发布了一条推文。推文中写到(译文):
嘿@Zai_org,为什么ZCode在登录时会悄悄地把整个工作区加上完整的.git历史打包上传到阿里云OSS?
服务器持有唯一的解密密钥,
没有UI开关可以禁用,
隐私政策中零披露。
ferstar在推文中@了智谱的X账号Zai_org,并附上完整取证文章的链接。(https://blog.ferstar.org/en/posts/zcode-silent-workspace-snapshot-upload/)
这个大包没有上传成功。ferstar后来补充,它在本地反复失败,而另一个小型公开仓库的快照,则留下了服务端已接收的记录。
两者不能混为一谈,但都指向同一件事:软件在用户没有主动提交整个仓库的情况下,另行准备了上传包。
9月18日,另一位用户luwanglin也在智谱官方反馈仓库提交报告,质疑“仓库快照索引”开关无法阻止上传。
当日傍晚,智谱致歉。智谱的回应中,将上传与云端生成Repo Wiki联系起来,并承认相关功能上线初期默认开启。
Repo Wiki,可以简单理解为一份项目说明书。AI要在项目里干活,读说明书并不奇怪。但这份说明书怎样写,需要读哪些材料,又为什么会把版本历史也装进上传包?
写一份“说明书”,到底需要带走什么
智谱在致歉声明中写道:
此次问题源于 ZCode 的“代码库索引”功能。该功能旨在帮助用户在本地生成仓库索引,以支持包括历史版本在内的会话检查点恢复、历史版本回退及 Repo Wiki 等功能。
Repo Wiki 功能在生成 Wiki 页面时可能会触发仓库数据上传。Wiki 页面在云端生成后,相关上传数据会立即销毁,不会保存。
声明中解释列出了几种用途,其中与云端上传直接相连的是生成Wiki。至于它为什么有用,得从AI接手一个现成项目时遇到的问题说起。
现在,假设,你交给AI一个任务:修复“密码正确,却登不上去”的故障。模型会写登录代码,却未必知道你的项目把登录功能写在哪些文件里。动手之前,它得先找到相关代码,弄清这些代码如何配合。
为方便理解,假设这个项目把登录逻辑分在三个文件里:文件A接收账号和密码,交给文件B核验;核验通过后,文件C发放登录凭证,供后续请求证明用户已经登录。另外还有测试,检查成功响应里是否包含这份凭证。
AI得先找到这些文件,弄清结果从哪里传到哪里,才能判断应该检查密码核验,还是凭证发放。只给它一句“修好登录”,这些项目细节不会随之自动出现。