把代码粘进 AI 对话框的那一刻,它就离开了你的电脑。这个动作太自然了,自然到几乎没人追问:代码去了哪里,谁在看着它。
晚上十一点,CI 第三次红了,报错栈指向一个五年没人动过的支付模块。盯了十分钟没头绪,把整个函数连同定义一起粘了进去 ------ 是整段,不是我平时会给出去的那种片段。
关掉对话框继续赶工,没人注意到:这段代码已经不在只有你的电脑上了。
1. 上传不只是 "粘贴" 那么简单
主流 AI 编程助手的工作方式:把你的代码作为 "上下文" 发送到云端大模型,推理后再返回结果。问 AI 一个问题,实质是把问题连同代码原件一起寄出去。
这个过程有三种形态,隐私敞口依次递增:
主动粘贴:最可控,但形成习惯后,单次粘贴的片段会越来越长;
插件自动补全:IDE 插件为了 "更懂你",自动把光标附近甚至整个文件带出去 ------ 你没粘,它替你粘了;
仓库级索引:企业方案对整个代码库建索引,方便是真的方便,敞口也是真的敞口。
容易被忽略的还有元数据:文件名、目录结构、依赖列表。它们不算源代码,但一个 payment/strategy/enterprise_v2.py 的路径,泄露的商业信息不比代码本身少。
2. 为什么这事值得认真对待
源代码就是核心资产:算法逻辑、业务规则、未发布的功能,全在里面。一次粘贴就是一次外流,且在企业审计里通常不可见。
行业已经给出信号:Stack Overflow 调查显示超七成开发者已在用或计划用 AI 编程工具,与此同时多国企业陆续出台限制政策,甚至一度禁用生成式 AI 写代码。工具越普及,防线越收紧。
更关键的是,泄露是 "乘法" 不是 "加法":一个人偶尔粘一段风险有限;一千个开发者每人每天粘十次,企业面对的就是一条全天候运转的数据外流通道。技术负责人焦虑的从来不是某一次粘贴,而是无法回答 "我们到底流出去过什么"。
3. 行业的三条路,为什么都走不通
政策管控,禁了正式渠道,挡不住深夜赶版本时顺手粘进网页版的个人账号;信任厂商,把源码交出去换回一句承诺,兑现靠对方的存储策略和合规水平;本地部署,数据不出门但 GPU 集群加专职运维的门槛,多数团队接不住。
三条路指向同一个困境:要么牺牲便利,要么交出代码,要么付不起钱。
4. 另一种答案:让代码 "可调用,但不可见"
这是我们在设计自研语言 Phoenix 和 ObjectSense 时写进语言机制的答案 ------ 编译期闭源。
机制不复杂:代码编译分发后,产出的包里只有函数签名(接口),不含实现源码。外部开发者可以正常调用、享受生态协作,但拿到手的永远是 "目录和章节标题",正文锁在作者的抽屉里。
它改变了一个前提:过去我们默认 "要用一个东西,就必须先看到它的内部"。编译期闭源让调用方只拿接口和文档,不必接触实现源码 ------ 生态协作和源码透明,本来就不必绑定。把保护写进编译器,比任何条款都更可靠。
5. 你的选择
这个默认不一定适合所有人。对多数团队,更现实的第一步是今晚打开 AI 工具的设置页,看看数据保留条款,再决定明天什么代码能粘、什么不能。
你怎么看?你会把什么代码交给 AI,什么代码绝不交出去?评论区聊聊。