9月18日,一篇开发者博客把智谱旗下的AI编程工具ZCode推到了风口浪尖。作者在清理磁盘时发现,用户目录下的~/.zcode文件夹占了 700 多 MB,里面有一个 313MB 的加密文件,状态信息显示它包含了自己某个 10GB 商业项目的几乎全部核心资产——由于上传一直失败,这个文件在本机已经重试了 564 次。据多家媒体报道,随后更多开发者做了类似排查,争议迅速从"是不是偷传"扩散到"云端到底留了什么"“有没有拿去训练模型”。
事情的定性在9月19日就有了。智谱发说明称,问题出在产品的"代码库索引"功能:为支持会话断点恢复、历史版本回退、Repo Wiki 这些能力,需要在本地生成仓库索引,其中 Repo Wiki 在云端生成页面时会触发仓库数据上传。官方强调数据"立即销毁、不留存",并承认该功能上线初期是默认开启的,部分用户在不知情的情况下被上传。9月19日推送的 3.14.0 版本更新日志写明"修复仓库百科异常上传的问题";9月21日,智谱进一步宣布开源 ZCode 代码库、邀请第三方审计,并在 MaaS 平台上线"数据内容不留存"功能。到9月28日,官方披露仓库快照上传链路已移除、涉事云端数据已删除并"经第三方核查确认",同时给出新一轮补偿:付费用户及一个月内回归的付费用户获赠 4 张周额度重置卡和 4 张 5 小时额度重置卡,9 月 28 日至 10 月 7 日期间全体用户每日可领"1 亿 Token×10 万份"。公告里那句"信任不能一键重置",被转得最多。
技术本质:不是"偷",是默认值和数据边界没讲清楚
抛开情绪看,这件事的技术内核其实不复杂。
- 一个"云端加速"的工程选择,被做成了默认开启。仓库索引、跨文件问答这类能力,本地算力往往撑不住,把仓库打包送上去算一次,是行业里常见的做法。
- 上传的是"快照",不是几行代码。争议里那个 313MB 的文件,本质是对工作区的打包,Git 历史往往一并带上——而密钥、内部配置、业务逻辑恰恰就藏在这里。
- 加密不等于可控。数据加密上传、开发者本地无法解包,这在合规上说得通,在信任上说不通:你看不见,就只能靠对方的承诺。
据报道,第三方审计方面,中国信通院技术评测确认相关 OSS 存储桶状态为"云端零数据",绿盟科技确认相关数据对象及存储桶已删除;开源版本也已更新到 3.14.3。
- 加密不等于可控。数据加密上传、开发者本地无法解包,这在合规上说得通,在信任上说不通:你看不见,就只能靠对方的承诺。
变了的地方是:厂商在压力下切断链路、开源代码、请了第三方核查。没变的地方是:“代码要不要出本机”,行业至今没有统一的默认规则,各家工具的默认值也不一样。换句话说,这次不是某一家独有的问题,而是整个 AI 编程工具赛道共同欠下的一笔"透明度账"。
对开发者意味着什么,以及几个能落地的动作
最直接的影响是:企业选型时,"数据不出域"从加分项变成了必答题。据媒体报道,已有企业向智谱发函,提出删除已上传数据、披露处理与访问记录、说明是否用于训练、是否跨境存储等 12 项要求。这不是个别现象,是采购流程在变。
对个人和小团队,能做的事不复杂,先摸清本地家底:
# 1. 看看这些 AI 工具的本地目录到底存了什么、有多大du-sh~/.zcode ~/.cursor ~/.continue ~/.ollama2>/dev/null# 2. 揪出体积异常的缓存文件(几十 MB 以上的通常就是打包快照)find~/.zcode-typef-size+50M-execls-lh{}\;2>/dev/null再有就是三件"用之前先问"的事:
- 默认值。首次安装后进设置,把云端索引、云端 Wiki、遥测逐条看清楚,不确定就先关掉,用完再说。
- 仓库隔离。含密钥的
.env、证书、生产配置要单独管理,跑 AI 工具尽量用独立工作目录,别让一个 10GB 的商业仓库裸奔。
- 仓库隔离。含密钥的
- 网络侧兜底。企业环境用代理或出站白名单,能拦掉相当一部分"本地没关掉、云端已经连上"的情况。
需要说清楚的是,上面的排查只能证明"本地有哪些文件",加密快照的内容本身本地解不开;要确认云端留存情况,仍然得依赖厂商披露和第三方审计。
- 网络侧兜底。企业环境用代理或出站白名单,能拦掉相当一部分"本地没关掉、云端已经连上"的情况。
结尾
AI 编程工具已经很难绕开,真正要回答的不是"用不用",而是"数据边界画在哪、谁来验证"。开源代码、公开审计是好事,但透明度是长期工程,不是一次公告就能结清的。你的项目,敢不敢让 AI 工具看全部代码?评论区聊聊。