IA para programar en la empresa: proteger el código propietario, los NDA y el secreto industriel
Un desarrollador pega una función de negocio en un asistente en la nube para refactorizarla. En un segundo, un fragmento de código cubierto por una cláusula de cesión y un NDA acaba de salir de tu perímetro, pasando por los servidores de un tercero estadounidense. Para una empresa de software, una oficina de ingeniería o una empresa de servicios informáticos sujeta a obligaciones de secreto industrial, este gesto aparentemente inocuo supone una vulneración jurídica y contractual. Esta guía está dirigida al responsable técnico o al director de sistemas de información que quiere equipar a sus desarrolladores con un copiloto eficaz sin que jamás salga una línea de código propietario de la red de la empresa. Veremos por qué GitHub Copilot y Cursor plantean problemas a pesar de sus opciones 'empresa', qué exigen realmente el RGPD y el AI Act, y después cómo desplegar una pila 100% local (Ollama, Cline, Aider, Tabby) en un equipo o en un servidor GPU compartido, con una política auditable de no exfiltración.
#El verdadero riesgo: tu código va a un tercero
El código fuente no es un dato como cualquier otro. Contiene tus algoritmos, tus secretos de fabricación, tus claves de API incrustadas en el código (esto ocurre), tu arquitectura de seguridad y, jurídicamente, a menudo está cubierto por una cláusula de cesión de derechos en beneficio de un cliente. Un asistente de código en la nube lee el contexto alrededor del cursor, a veces todo el repositorio para su indexación, y envía estos fragmentos a un modelo remoto. El riesgo no es teórico: combina filtración de secretos industriales, incumplimiento de acuerdos de confidencialidad (NDA) e incumplimiento del RGPD en cuanto un comentario contiene datos personales.
- Secreto industrial
- Un algoritmo de propiedad exclusiva expuesto a terceros pierde su cualidad de secreto (art. L151-1 del Código de Comercio): la protección jurídica desaparece.
- Cláusula de cesión
- Para código entregado a un cliente, el contrato suele prohibir cualquier comunicación de ese código a un subcontratista no autorizado. Un asistente en la nube es un subcontratista no declarado.
- NDA con un proveedor
- Trabajas en el código de un partner bajo un acuerdo de confidencialidad: enviarlo a OpenAI o Anthropic constituye una violación directa.
- Datos personales
- Un conjunto de pruebas, un log inline o un comentario con una dirección de correo electrónico hacen que el envío quede sujeto al RGPD.
#Por qué Copilot y Cursor vulneran tus NDA
Desplegar una IA local en el trabajo: RGPD, AI Act, arquitectura multiusuario, costes, nota para la dirección.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
GitHub Copilot y Cursor son excelentes herramientas de productividad, pero su modelo de negocio se basa en LLM alojados (Copilot en la infraestructura de Azure/OpenAI, Cursor en OpenAI y Anthropic). Incluso con los planes Business o Enterprise, tu código sale del equipo para que se complete en el servidor. Las opciones 'content exclusion' o 'privacy mode' reducen la retención, pero el flujo de datos por la red hacia un tercero sigue existiendo. En el caso de una cláusula de NDA que prohíba cualquier divulgación a un tercero no identificado, este flujo constituye un incumplimiento, independientemente de la política de retención.
- Copilot Business
- Código enviado a GitHub/Azure para completar código. 'No training' activado por defecto, pero con transferencia fuera de la UE y sujeción al CLOUD Act.
- Cursor (Privacy Mode)
- El modo privado evita la retención por parte de Cursor, pero las consultas siguen pasando por las API de OpenAI y Anthropic.
- Cursor sin Privacy Mode
- El código puede ser conservado y utilizado para mejorar el producto. Inaceptable bajo NDA estricto.
- Límite contractual común
- Con ninguna de estas ofertas se firma un DPA que cubra una cláusula de cesión del código del cliente a un subcontratista tercero específico.
#Lo que exigen el RGPD y el AI Act en materia de código fuente
El RGPD no habla de «código fuente», sino de datos personales. El código los contiene con más frecuencia de lo que se cree: direcciones de correo electrónico en los comentarios, identificadores de pruebas, datos de inicialización y trazas de registros. En cuanto uno de estos elementos se envía a un asistente en la nube, realizas una transferencia de datos, lo que exige una base jurídica, un encargado del tratamiento sujeto a un DPA (art. 28) y, fuera de la UE, un mecanismo de transferencia válido (cláusulas contractuales tipo). El AI Act, por su parte, clasifica la mayoría de los asistentes de código como de riesgo limitado, con obligaciones principalmente de transparencia; pero lo que realmente está en juego para ti viene antes, en la gobernanza de los datos de entrada del modelo.
- RGPD artículo 28
- Cualquier asistente en la nube que trate tus datos es un encargado del tratamiento y requiere un DPA firmado. Muchos equipos lo utilizan sin contrato.
- RGPD: transferencias fuera de la UE
- Sin alojamiento en la UE, se necesitan garantías (SCC) y un análisis de transferencia. El alojamiento local elimina completamente la cuestión.
- AI Act (transparencia)
- Riesgo limitado para el asistente de código: informar que el contenido es generado por IA. Poco restrictivo, pero debe documentarse.
- Minimización por diseño
- La vía más sencilla para cumplir los requisitos: no transferir nada en absoluto. Una arquitectura local aplica la minimización por diseño.
#Pila 100% local: Ollama, Cline, Aider, Tabby
Una pila de copiloto local se basa en dos capas: un servidor de inferencia que ejecuta el modelo en tu hardware y clientes que se conectan a él desde el IDE o el terminal. El servidor de referencia es Ollama, que expone una API HTTP local y gestiona la descarga de modelos GGUF. Sobre esta capa, tres clientes complementarios cubren los distintos usos: Cline para el agente en VS Code, Aider para la programación en pareja desde el terminal, orientada a commits de Git, y Tabby para la autocompletación al estilo de Copilot, en modo de servidor compartido para todo el equipo.
- Ollama
- Servidor de inferencia local (MIT). Sirve los modelos mediante http://localhost:11434. Sin telemetría de código ni llamadas salientes para la inferencia.
- Cline
- Extensión de VS Code (agente). Lee y escribe archivos, ejecuta comandos y planifica tareas que abarcan varios archivos. Se conecta a Ollama como proveedor local.
- Aider
- CLI de programación en pareja (Apache 2.0). Edita el código y realiza los commits de Git; excelente para la refactorización guiada. Apunta a la API de Ollama.
- Tabby
- Servidor de autocompletado autoalojado (licencia Apache 2.0). Reemplaza a Copilot para las sugerencias dentro del código; ideal para un servidor con GPU compartida.
Para Cline, en VS Code, seleccionas el proveedor 'Ollama' en las configuraciones de la extensión e introduces la URL del servidor (local o la de tu servidor GPU interno). No se introduce ninguna clave de API de nube: es la garantía técnica de que ningún fragmento se envía a OpenAI o Anthropic. Tabby, en cambio, se despliega en un contenedor en el servidor GPU y los equipos apuntan a su endpoint interno.
#Arquitectura: equipo aislado vs servidor GPU compartido
Predominan dos topologías. El equipo aislado ejecuta Ollama directamente en la máquina del desarrollador (Mac de la serie M o PC RTX): el código nunca abandona el equipo, lo que resulta ideal para los NDA más estrictos, pero esta opción está limitada por la VRAM individual y resulta costosa si hay que equipar muchos puestos. El servidor GPU compartido centraliza una o varias GPU en la red interna; los equipos se conectan a él a través de la API. Se comparte un modelo más grande, se racionaliza el hardware y el flujo permanece estrictamente dentro de la red (LAN o VPN empresarial).
| Criterio | Estación aislada (Ollama local) | Servidor GPU compartido (Tabby/Ollama) |
|---|---|---|
| Ámbito del código | Nunca sale de la máquina | Permanece en la red interna (LAN/VPN) |
| Tamaño del modelo | Limitada por la VRAM del equipo | Modelo más grande compartido (24-80 GB) |
| Coste del hardware | Alto (1 GPU por desarrollador) | Racionalizado (1 servidor para N desarrolladores) |
| Autocompletado en tiempo real | Buena si hay una GPU local | Excelente con Tabby + batching |
| Cumplimiento de un NDA estricto | Máxima (cero tráfico de red) | Fuerte (solo flujo interno, trazable) |
| Mantenimiento | Descentralizada, heterogénea | Centralizada, actualizaciones gestionadas |
#¿Qué modelos de código para qué VRAM?
La calidad de un copiloto local depende del modelo. Tres familias abiertas dominan la programación en 2026: Qwen3-Coder (Alibaba, MoE 30B-A3B, 256k de contexto, rápido gracias a sus 3B de parámetros activos, Apache 2.0), Devstral (Mistral AI, un 24B pensado para su uso con agentes como Cline y OpenHands, Apache 2.0) y los modelos generalistas con buenas capacidades de programación, como Qwen 3.8 27B o GLM 4.7 Flash. La elección se ajusta a la VRAM disponible y al uso: un modelo pequeño y rápido para el autocompletado de Tabby, uno más grande para el razonamiento basado en agentes de Cline.
| VRAM | Modelo recomendado | Uso típico |
|---|---|---|
| 8 GB | Qwen2.5-Coder 7B base (FIM) | Autocompletado en línea con Tabby (la referencia FIM de 2026), sugerencias rápidas de código |
| 16 GB | Devstral 24B / gpt-oss 20B | Agente Cline y Aider en repositorios medianos |
| 24 GB | Qwen3-Coder 30B-A3B / Qwen 3.8 27B | Refactorización de múltiples archivos, razonamiento |
| 48-80 GB | Qwen3-Coder 30B-A3B Q8 / Granite 4.2 30B | Servidor compartido entre varios desarrolladores, contexto largo |
#Política 'provider local only'
Una pila de software local solo protege si está sujeta a una política que la restrinja. 'Provider local only' significa que ninguna herramienta de desarrollo puede apuntar a una API de IA en la nube. Esto se concreta en tres niveles complementarios: configuración de las herramientas (sin claves de servicios en la nube), bloqueo de red (los endpoints de IA en la nube son inaccesibles desde los equipos de desarrollo) y norma organizativa (documento de normas firmado). La combinación de los tres es lo que hace que la política sea realmente exigible durante una auditoría.
- 01Prohibir las claves de API en la nubeNinguna variable OPENAI_API_KEY, ANTHROPIC_API_KEY o equivalente en los equipos de desarrollo. Cline y Aider están configurados exclusivamente en el endpoint interno de Ollama.
- 02Bloquear los endpoints en el firewallFiltrar el tráfico saliente hacia api.openai.com, api.anthropic.com y los dominios de Copilot y Cursor. Así, las sugerencias de autocompletado ya no pueden salir físicamente de la red.
- 03Fijar la configuración de las extensionesDesplegar los ajustes de VS Code/Cline mediante GPO o MDM para impedir que un desarrollador vuelva a configurarlos para apuntar a un proveedor en la nube.
- 04Política de uso y formaciónUna política de uso firmada recuerda la prohibición de pegar código en un chatbot en la nube (el riesgo residual no es técnico, sino humano).
- 05Registrar accesos al servidor de inferenciaLos logs del servidor Ollama/Tabby demuestran que las completaciones se sirven internamente. Pieza clave de la auditoría.
#Auditar la ausencia de exfiltración
El argumento 'es local' solo tiene valor si se demuestra. La auditoría de ausencia de exfiltración consiste en demostrar, con registros que lo respalden, que ningún fragmento de código abandona el perímetro durante el uso del copiloto. El método más convincente es la observación del tráfico de red: se captura el tráfico de un equipo durante una sesión de programación intensiva y se comprueba que ninguna conexión se dirija a un endpoint de IA en la nube. Se completa con la inspección de la configuración y de los registros del servidor.
- Evidencia de red
- Captura con tcpdump/Wireshark: solo aparecen las IP del servidor interno y de los repositorios Git internos. Ningún endpoint de IA en la nube.
- Prueba de configuración
- Exportación de ajustes Cline/Aider mostrando el proveedor Ollama interno y la ausencia de clave en la nube.
- Prueba de bloqueo
- Prueba negativa: un intento manual de acceder a api.openai.com desde un equipo de desarrollo falla (cortafuegos).
- Evidencia del servidor
- Registros de Ollama/Tabby con marcas de fecha y hora que relacionan los autocompletados con los equipos internos.
#Una valoración honesta: local vs nube
Seamos justos: la nube sigue por delante en la calidad bruta de los modelos más grandes y en no requerir ningún esfuerzo de infraestructura. Un asistente propietario en la nube puede superar a un Qwen3-Coder 30B-A3B local en determinadas tareas de razonamiento complejo. La ejecución local exige una inversión en hardware y un equipo para mantener el servidor de inferencia, y ofrece una calidad ligeramente inferior en las tareas más exigentes. La decisión adecuada no es ideológica: depende de la sensibilidad de tu código.
- Elige la opción local si
- Tienes código sujeto a un NDA, cláusulas de cesión, secretos industriales o clientes que prohíben recurrir a subcontratistas externos no autorizados.
- La nube puede ser suficiente si
- Tu código es de código abierto, sin datos personales, sin compromiso contractual de confidencialidad con un tercero.
- Coste real de la ejecución local
- Un servidor con GPU (24-48 GB), cuyo coste se amortiza entre los miembros de un equipo, suele salir más barato que las licencias en la nube por usuario en un plazo de 2 a 3 años.
- El riesgo oculto del cloud
- El costo de una sola violación de NDA (pérdida de contrato, litigio) supera varios años de licencias locales.
#Conclusión y puesta en marcha
Equipar a un equipo de desarrollo con un copiloto de alto rendimiento sin exponer nunca el código propietario es hoy una opción realista: Ollama como servidor de inferencia, Cline y Aider para el agente y el terminal, Tabby para el autocompletado compartido, todo bajo una política 'provider local only' y una auditoría reproducible de ausencia de exfiltración. El cumplimiento del RGPD y del AI Act se consigue por sustracción: sin transferencias, sin subcontratistas, sin preguntas. Para ahorrar tiempo en la puesta en marcha, la guía de pago «Copiloto de código local» proporciona un paquete llave en mano de Ollama + Cline + Aider: configuraciones listas para usar, selección de modelos según el presupuesto de VRAM, una política de red que bloquea los endpoints en la nube y el script de auditoría de ausencia de exfiltración. Con ello puedes desplegar en pocas horas una pila tecnológica defendible ante tu departamento jurídico y tus clientes.
¿Es realmente Copilot Enterprise incompatible con un NDA?+
¿Una pila de software local con Ollama ofrece suficiente rendimiento para reemplazar a Copilot?+
¿Qué GPU para equipar un equipo de 10 desarrolladores?+
¿El RGPD exige realmente trabajar con el código en local?+
¿Cómo demostrar a un cliente que no se filtra ninguna línea de código?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.