企业中的编程 AI:保护专有代码、保密协议及机密 industriel
一名开发者将业务函数粘贴到云端助手中进行重构。在一秒钟内,一段受转让条款和 NDA 保护的代码片段便离开了您的管辖范围,经由某美国第三方的服务器传输。对于软件出版商、设计事务所或受工业秘密保护的 ESN 而言,这一看似无害的操作构成了法律和合同上的漏洞。本指南面向希望为开发人员配备高效副驾驶,同时确保任何一行专有代码都不离开企业网络的技术负责人或 CIO。我们将探讨为何 GitHub Copilot 和 Cursor 尽管提供“企业”选项仍存在问题,GDPR 和 AI Act 实际要求的内容,以及如何部署 100% 本地化的技术栈(Ollama、Cline、Aider、Tabby),无论是在工作站还是共享 GPU 服务器上,并实施可审计的非数据外泄策略。
#真正的风险:你的代码会传给第三方
源代码并非普通数据。它承载着您的算法、生产工艺机密、硬编码的 API 密钥(这种情况确实会发生)以及安全架构;从法律角度看,它还常常受到向客户转让权利的条款约束。云端代码助手会读取光标周围的上下文,有时还会读取整个代码仓库以建立索引,并将这些片段发送给远程模型。这种风险并非纸上谈兵:它涉及工业机密泄露、违反保密协议(NDA),而只要有一条注释包含个人数据,还会涉及不符合《通用数据保护条例》(GDPR)的问题。
- 工业机密
- 向第三方暴露的专有算法将丧失其机密性(《商法典》第 L151-1 条):法律保护随之失效。
- 转让条款
- 对于交付给客户的代码,合同通常禁止向未经批准的分包商披露任何内容。云端助手属于未申报的分包商。
- 供应商 NDA
- 您正在根据保密协议处理合作伙伴的代码:将此类内容发送至OpenAI或Anthropic属于直接违规。
- 个人数据
- 测试数据集、内联日志或代码注释中只要包含电子邮件地址,发送这些内容就会受到 GDPR 的约束。
#为何 Copilot 和 Cursor 会违反您的 NDA
在工作场所部署本地 AI:GDPR、AI 法案、多用户架构、成本、供管理层参考的说明材料。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
GitHub Copilot 和 Cursor 是优秀的生产力工具,但其商业模式依赖于托管的大型语言模型(Copilot 基于 Azure/OpenAI 基础设施,Cursor 基于 OpenAI 和 Anthropic)。即使使用企业或商业套餐,您的代码也会离开本地设备,由服务器端完成补全。'内容排除'或'隐私模式'可降低数据留存,但仍然存在流向第三方的网络流量。对于禁止向未命名第三方披露的保密协议,此类流量构成违规,无论数据留存策略如何。
- Copilot Business
- 代码会被发送至 GitHub/Azure,用于代码补全。默认启用“不用于训练”,但数据仍会传输至欧盟境外,并受 CLOUD Act 管辖。
- Cursor(隐私模式)
- 隐私模式会阻止 Cursor 端保留数据,但请求仍会经过 OpenAI 和 Anthropic 的 API。
- 未启用 Privacy Mode 的 Cursor
- 代码可保留并用于产品优化。在严格NDA约束下不可接受。
- 共同的合同限制
- 这些方案均不会签署涵盖将客户代码转让给特定第三方分包商条款的数据处理协议(DPA)。
#GDPR 和 AI Act 对源代码的要求
GDPR 讨论的不是“源代码”,而是个人数据。代码包含个人数据的情况比人们想象的更常见:注释中的电子邮件地址、测试用标识符、初始化数据、日志记录。一旦其中任何一项被发送给云端助手,就发生了数据传输,因此需要具备合法依据、与受托处理者签订数据处理协议(DPA,第 28 条),以及在向欧盟境外传输时采用有效的传输机制(标准合同条款)。AI Act 则将大多数代码助手归为有限风险,主要要求履行透明度义务;但对您而言,真正的关键在更上游,即模型输入数据的治理。
- RGPD 第28条
- 所有处理您数据的云端助手均为受托方,需签署数据处理协议。许多团队在未签订合同的情况下使用该服务。
- GDPR:向欧盟以外传输数据
- 如果数据不托管在欧盟境内,就需要保障措施(SCC)和数据传输分析。本地部署则完全消除了这个问题。
- AI法案(透明度要求)
- 代码助手属于有限风险类别:需告知用户相关内容由 AI 生成。要求不多,但应记录在案。
- 从设计上实现最小化
- 最简单的合规途径:完全不传输数据。本地技术栈本身就能实现数据最小化。
#100% 本地栈:Ollama、Cline、Aider、Tabby
本地编程助手的技术栈由两层构成:一层是推理服务器,在您的硬件上运行模型;另一层是客户端,从 IDE 或终端连接到该服务器。作为参考的服务器是 Ollama,它提供本地 HTTP API,并管理 GGUF 模型的下载。在服务器之上,三个相互补充的客户端覆盖不同用途:Cline 用于 VS Code 中的智能体,Aider 用于终端中以 Git 提交为导向的结对编程,Tabby 用于类似 Copilot 的自动补全,并通过共享服务器模式供整个团队使用。
- Ollama
- 本地推理服务器(MIT 许可证)。通过 http://localhost:11434 提供模型服务。不收集代码遥测数据,推理过程中也不会发起出站调用。
- Cline
- VS Code 扩展(智能体)。可读写文件、执行命令、规划涉及多个文件的任务。可连接 Ollama,将其用作本地模型提供程序。
- Aider
- 结对编程命令行工具(Apache 2.0)。可编辑代码并执行 Git 提交,非常适合在指导下进行重构。连接到 Ollama API。
- Tabby
- 自托管的自动补全服务器(Apache 2.0)。可替代 Copilot 提供行内建议;尤其适合共享 GPU 服务器的部署模式。
使用 Cline 时,在 VS Code 的扩展设置中选择提供商 'Ollama',并填写服务器 URL(本地地址或内部 GPU 服务器的地址)。不填写任何云 API 密钥:这从技术上保证了不会有任何片段发送到 OpenAI 或 Anthropic。Tabby 则以容器形式部署在 GPU 服务器上,各工作站连接其内部端点。
#架构:隔离工作站 vs 共享 GPU 服务器
主要有两种部署拓扑。独立工作站直接在开发者的机器(Mac M 系列或配备 RTX 显卡的 PC)上运行 Ollama:代码始终不离开这台机器,非常适合最严格的保密协议(NDA),但受限于单台机器的显存容量,而且为大量工作站配备硬件的成本很高。共享 GPU 服务器将一个或多个 GPU 集中部署在内部网络中;各工作站通过 API 连接到服务器。这样可以共享更大的模型,更合理地配置硬件,而且数据流始终严格限定在内部网络(局域网或企业 VPN)中。
| 标准 | 独立工作站(本地 Ollama) | 共享GPU服务器(Tabby/Ollama) |
|---|---|---|
| 代码范围 | 始终留在本机 | 仍处于内部网络(LAN/VPN)中 |
| 模型大小 | 受设备VRAM限制 | 更大规模的共享模型(24-80GB) |
| 硬件成本 | 较高(每个开发者配备1块GPU) | 优化(1台服务器供N名开发者使用) |
| 实时自动补全 | 若本地使用GPU则表现良好 | 结合 Tabby 和批处理时表现出色 |
| 严格NDA的合规性 | 最高(无网络流量) | 强(数据仅在内部流转,且可追溯) |
| 维护 | 去中心化、异构 | 集中管理,更新受控 |
#不同显存容量适合哪些代码模型
本地编程助手的质量取决于模型。2026 年,三类开放模型在编程领域占据主导地位:Qwen3-Coder(Alibaba,MoE 30B-A3B,256k 上下文,凭借仅 3B 的活跃参数实现较快速度,Apache 2.0)、Devstral(Mistral AI,专为配合 Cline 和 OpenHands 执行智能体任务而设计的 24B 模型,Apache 2.0),以及编程能力强的通用模型,如 Qwen 3.8 27B 或 GLM 4.7 Flash。选择应根据可用显存和用途来确定:Tabby 自动补全适合小而快的模型,Cline 的智能体推理则适合更大的模型。
| VRAM | 推荐模型 | 典型用途 |
|---|---|---|
| 8 GB | Qwen2.5-Coder 7B 基础模型(FIM) | Tabby 内联自动补全(2026 年 FIM 领域的标杆),快速补全 |
| 16 GB | Devstral 24B / gpt-oss 20B | 在中等规模的代码仓库中使用 Cline 智能体和 Aider |
| 24 GB | Qwen3-Coder 30B-A3B / Qwen 3.8 27B | 多文件重构,推理 |
| 48-80 GB | Qwen3-Coder 30B-A3B Q8 / Granite 4.2 30B | 多名开发者共用的服务器,长上下文 |
#“仅使用本地模型提供方”策略
本地技术栈只有在受到政策严格约束时才能起到保护作用。“Provider local only”意味着任何开发工具都不能连接到云端 AI API。这一政策包含三个互补层面:工具配置(不设置云端密钥)、网络封锁(开发电脑无法访问云端 AI 端点)和组织规则(签署相关规范文件)。只有结合这三个层面,才能使该政策在审计时真正具备可据以要求遵守的约束力。
- 01禁止使用云API密钥开发机上不得设置 OPENAI_API_KEY、ANTHROPIC_API_KEY 或同类变量。Cline 和 Aider 均配置为仅连接内部 Ollama 端点。
- 02通过防火墙封锁端点过滤发往 api.openai.com、api.anthropic.com 以及 Copilot 和 Cursor 域名的出站流量。这样,补全内容就无法再从网络中传出。
- 03固定扩展程序配置通过 GPO 或 MDM 部署 VS Code/Cline 设置,防止开发者将配置重新指向云服务提供商。
- 04使用章程与培训签署的使用规范会提醒大家,禁止将代码粘贴到云端聊天机器人中(剩余风险并非来自技术,而是来自人的行为)。
- 05记录推理服务器的访问日志Ollama/Tabby 服务器的日志证明,代码补全由内部服务器提供。这是审计的关键证据。
#审计以确认数据未被外泄
“本地运行”这一说法只有得到证明才站得住脚。无数据外泄审计需要以记录为证,证明使用 AI 编程助手期间没有任何代码片段离开既定边界。最有说服力的方法是观察网络流量:在一次高强度编程会话期间捕获一台工作电脑的流量,并检查是否有连接发往云端 AI 服务端点。还需检查配置和服务器日志,作为补充。
- 网络证据
- tcpdump/Wireshark 抓包:仅出现内部服务器和内部 Git 仓库的 IP 地址。没有任何云端 AI 端点。
- 配置证明
- 导出的 Cline/Aider 设置,显示使用的是内部 Ollama 服务提供方,且未配置云服务密钥。
- 拦截生效的证据
- 反向测试:从开发工作站手动尝试访问 api.openai.com,结果失败(被防火墙阻止)。
- 服务器端证据
- 带时间戳的Ollama/Tabby日志,将代码补全记录与内部工作站关联起来。
#坦诚权衡:本地部署与云端服务
公平地说:云端在最大规模模型的实际输出质量以及无需操心基础设施方面仍然领先。在某些复杂推理任务上,专有云端助手可能优于本地运行的 Qwen3-Coder 30B-A3B。本地部署需要硬件投入和维护推理服务器的团队,而且在要求最高的任务上,质量会略逊一筹。合理的权衡并非意识形态问题,而是取决于您代码的敏感性。
- 以下情况请选择本地部署
- 您有受NDA约束的代码、转让条款、工业秘密,或客户禁止使用未经批准的第三方分包商。
- 满足以下条件时,云端服务可能就够用了
- 您的代码是开源的,不包含个人数据,也没有对第三方承担合同上的保密承诺。
- 本地部署的真实成本
- GPU 服务器(24-48 GB)按团队分摊通常在 2-3 年内比按席位计费的云许可更经济。
- 云服务的隐藏风险
- 单次违反 NDA(合同损失、诉讼)的成本超过多年本地许可费用。
#结论与实施
如今,为开发团队配备高性能的代码协作者,同时始终不暴露专有代码,已经切实可行:使用 Ollama 作为推理服务器,Cline 和 Aider 分别用于智能体和终端,Tabby 用于共享自动补全,整套方案遵循“provider local only”策略,并进行可复现的数据不外泄审计。GDPR 和 AI Act 合规可以通过做减法来实现:没有数据传输,没有受托处理方,也就没有相关疑问。为节省搭建时间,付费指南《本地代码协作者》提供一套开箱即用的 Ollama + Cline + Aider 方案:可直接使用的配置、按 VRAM 预算选择模型的方法、阻止访问云端端点的网络策略,以及数据不外泄审计脚本。借助这些内容,您可以在几小时内部署一套能够向法务部门和客户充分说明其合理性的技术栈。
Copilot Enterprise 真的与 NDA 不兼容吗?+
本地 Ollama 技术栈的性能是否足以替代 Copilot?+
为一个由 10 名开发者组成的团队配备哪种 GPU?+
GDPR 真的要求用于代码的 AI 必须在本地运行吗?+
如何向客户证明没有任何一行代码泄露?+
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。