¿¿¿Qué está haciendo exactamente el Agente AI??? Análisis completo de la filtración de 500,000 líneas de código de Claude Code

51.2 万 líneas de código, 1906 archivos, 59.8 MB de source map. En la madrugada del 31 de marzo, Chaofan Shou de Solayer Labs descubrió que el producto insignia Claude Code de Anthropic exponía el código fuente completo en un repositorio público de npm. En pocas horas, el código se replicó en GitHub y las cifras de forks superaron las 4.1 万.

Esto no es el primer error de Anthropic. Cuando Claude Code se publicó por primera vez en febrero de 2025, ocurrió una filtración similar del mismo source map. En esta ocasión, el número de versión era v2.1.88; el motivo de la filtración era el mismo: la herramienta de construcción Bun genera source map de forma predeterminada y, en .npmignore, se omitió este archivo.

La mayoría de las noticias se dedican a recopilar los huevos de pascua de la filtración, como un sistema de mascotas virtuales o un «modo infiltrado» para que Claude, de forma anónima, envíe código a proyectos de código abierto. Pero la pregunta realmente valiosa para desarmar es por qué el mismo modelo de Claude se comporta tan distinto en la versión web y en Claude Code. ¿Qué está haciendo realmente ese 51.2 万 líneas de código?

El modelo es solo la punta del iceberg

La respuesta está escondida en la estructura del código. Según un análisis inverso de la fuente filtrada por la comunidad de GitHub, de las 51.2 万 líneas de TypeScript, solo unas 8000 líneas de código están directamente a cargo de llamar a la API del modelo de IA, lo que representa el 1.6% del total.

¿En qué se ocupa el 98.4% restante? Los dos módulos más grandes son el motor de consultas (46,000 líneas) y el sistema de herramientas (29,000 líneas). El motor de consultas gestiona las llamadas a la API de LLM, la salida en streaming, la orquestación de caché y la administración de conversaciones de múltiples turnos. El sistema de herramientas define alrededor de 40 herramientas integradas y 50 comandos con barra diagonal, formando una especie de arquitectura tipo complemento, donde cada herramienta cuenta con control de permisos independiente.

Además, hay 25,000 líneas de código para renderizado de la UI del terminal (entre ellas, un archivo llamado print.ts que llega a 5594 líneas, y una sola función abarca 3167 líneas), 20,000 líneas de control de seguridad y permisos (incluye 23 comprobaciones de seguridad Bash numeradas y 18 comandos internos de Zsh enmascarados) y 18,000 líneas del sistema de orquestación de agentes múltiples.

Tras analizar el código filtrado, el investigador en aprendizaje automático Sebastian Raschka señaló que la razón por la que Claude Code es más fuerte que la versión web con el mismo modelo no está en el modelo en sí, sino en el andamiaje de software construido alrededor del modelo, incluyendo carga del contexto del repositorio, programación de herramientas específicas, estrategias de caché y colaboración entre subagentes. Incluso cree que si se aplica la misma arquitectura de ingeniería a otros modelos como DeepSeek o Kimi, también se podría obtener una mejora de rendimiento de programación cercana.

Un contraste intuitivo ayuda a entender esta diferencia. Si introduces una pregunta en ChatGPT o en Claude versión web, el modelo procesa y devuelve la respuesta, y al terminar la conversación no queda nada. Pero la forma de hacer las cosas de Claude Code es completamente distinta: al iniciarse, primero lee los archivos de tu proyecto, entiende la estructura de tu repositorio, recuerda tus preferencias de lo que dijiste antes, como «no simules un base de datos en las pruebas». Puede ejecutar comandos directamente en tu terminal, editar archivos y correr pruebas; cuando enfrenta tareas complejas, las divide en múltiples subtareas y las asigna a diferentes subagentes para procesarlas en paralelo. En otras palabras, la IA de la versión web es una ventana de preguntas y respuestas, mientras que Claude Code es un colaborador que vive dentro de tu computadora.

Alguien comparó esta arquitectura con un sistema operativo: las 42 herramientas integradas equivalen a llamadas al sistema, el sistema de permisos equivale a la administración de usuarios, el protocolo MCP equivale a los controladores de dispositivos, y la orquestación de subagentes equivale a la planificación de procesos. Cada herramienta, al salir de fábrica, se marca por defecto como «no segura, escribible», a menos que el desarrollador declare explícitamente que es segura. La herramienta para editar archivos te obliga a comprobar si ya has leído ese archivo: si no lo has leído, no se te permite modificarlo. Esto no es que un chatbot externo agregue algunas herramientas; es un entorno de ejecución con el LLM como núcleo y con mecanismos de seguridad completos.

Esto significa una cosa: la barrera competitiva de los productos de IA puede no estar en el nivel del modelo, sino en el nivel de la ingeniería.

Cada ruptura de caché incrementa el costo 10 veces

En el código filtrado hay un archivo llamado promptCacheBreakDetection.ts, que rastrea 14 vectores posibles que pueden hacer que la caché de prompts quede inutilizable. ¿Por qué los ingenieros de Anthropic iban a invertir tanto esfuerzo para evitar la ruptura de caché?

Mira la tarificación oficial de Anthropic. Por ejemplo, para Claude Opus 4.6, el precio estándar de entrada es 5 dólares por cada millón de tokens; pero si se acierta la caché, el precio de lectura es solo 0.5 dólares, un 90% más barato. Por el contrario, cada vez que la caché se rompe, el costo de inferencia se multiplica por 10.

Esto explica las muchas decisiones arquitectónicas que parecen «sobre-diseñadas» en el código filtrado. Cuando Claude Code se inicia, carga la rama git actual, los registros de commits recientes y el archivo CLAUDE.md como contexto; esos contenidos estáticos se almacenan en caché global, separados del contenido dinámico con marcas de límites, para asegurar que en cada conversación no haya que reprocesar el contexto ya existente. En el código también hay un mecanismo llamado sticky latches, que evita que el cambio de modo destruya la caché ya establecida. Los subagentes están diseñados para reutilizar la caché del proceso padre, en lugar de reconstruir su propia ventana de contexto.

Hay un detalle que vale la pena ampliar. Quienes han usado herramientas de programación con IA saben que cuanto más larga es la conversación, más lenta es la respuesta de la IA, porque en cada turno hay que reenviar al modelo todo el historial previo. La práctica habitual es eliminar los mensajes antiguos para liberar espacio, pero el problema es que eliminar cualquier mensaje rompe la continuidad de la caché, lo que obliga a reprocesar todo el historial de la conversación: la latencia y el costo aumentan al mismo tiempo.

En el código filtrado existe un mecanismo llamado cache_edits: no elimina los mensajes de verdad, sino que en la capa de la API marca los mensajes antiguos con un atributo de «saltar». El modelo ya no puede ver esos mensajes, pero la continuidad de la caché no se rompe. Esto significa que, para una conversación larga continua de varias horas, tras limpiar cientos de mensajes antiguos, la velocidad de la siguiente respuesta queda casi igual a la de la primera. Para el usuario común, esta es la respuesta subyacente a «por qué Claude Code puede soportar conversaciones infinitamente largas sin volverse más lento».

Según los datos internos de monitoreo filtrados (procedentes de los comentarios del código de autoCompact.ts, con fecha marcada 10 de marzo de 2026), antes de introducir un límite de fallos de compresión automática, Claude Code desperdiciaba unas 250,000 llamadas diarias a la API. Hubo 1279 sesiones de usuarios en las que ocurrieron 50 o más fallos consecutivos de compresión, y la más grave falló 3272 veces seguidas. La solución fue simplemente agregar una sola línea de límite: MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3.

Así que, para los productos de IA, el costo de la inferencia del modelo podría no ser la capa más cara; los fallos en la gestión de caché son los que cuestan.

44 interruptores apuntan en la misma dirección

En el código filtrado se esconden 44 feature flags: interruptores de funciones ya compiladas, solo que no se publicaron al público. Según el análisis de la comunidad, estos flags se dividen en cinco categorías según el dominio funcional, y la más densa es la de «agentes autónomos» (12), que apuntan a un sistema llamado KAIROS.

KAIROS aparece citado más de 150 veces en el código fuente; es un modo de demonio en segundo plano permanente. Claude Code ya no es solo una herramienta que responde cuando tú la llamas activamente, sino un agente que se ejecuta continuamente en segundo plano: observa, registra y actúa de forma proactiva en los momentos adecuados. El requisito es no interrumpir al usuario: cualquier operación que pudiera bloquearlo más de 15 segundos se ejecuta con retraso.

KAIROS también incorpora detección de foco del terminal. Hay un campo terminalFocus en el código que detecta en tiempo real si el usuario está viendo la ventana del terminal. Cuando cambias a un navegador u otra aplicación, el agente determina que «no estás», pasa a modo autónomo y ejecuta tareas de forma proactiva, enviando código directamente sin esperar tu confirmación. Cuando vuelves al terminal, el agente regresa de inmediato al modo colaborativo: primero informa lo que hizo justo antes y luego solicita tu opinión. El grado de autonomía no es fijo, sino que fluctúa en tiempo real según tu atención. Esto resuelve una incomodidad que arrastran las herramientas de IA desde hace mucho tiempo: una IA completamente autónoma no inspira confianza, y una IA completamente pasiva es demasiado ineficiente. La elección de KAIROS es ajustar dinámicamente la iniciativa de la IA en función de la atención del usuario; si lo miras, se queda quieta; si te alejas, se pone a trabajar por su cuenta.

Otro subsistema de KAIROS se llama autoDream: después de acumular 5 sesiones o transcurridas 24 horas, el agente inicia en segundo plano un proceso de «reflexión» de cuatro pasos. Primero, escanea memorias existentes para entender qué es lo que ya tiene. Luego, extrae conocimientos nuevos de los registros de conversación. Después, fusiona el conocimiento nuevo y el antiguo, corrige contradicciones y elimina duplicados. Por último, simplifica el índice y borra entradas obsoletas. Este diseño toma prestada la teoría de la consolidación de la memoria de las ciencias cognitivas. Las personas organizan los recuerdos del día mientras duermen; KAIROS organiza el contexto del proyecto cuando el usuario se ausenta. Para los usuarios comunes, esto significa que cuanto más usas Claude Code, más precisa se vuelve su comprensión de tu proyecto, y no solo «recordar lo que dijiste».

La segunda categoría es «anti-destilación y seguridad» (8 flags). El mecanismo más digno de mención aquí es fake_tools: cuando se cumplen 4 condiciones a la vez (flag habilitado en compilación, entrada CLI activada, se usa una API de primera parte y el switch remoto de GrowthBook está en true), Claude Code inyecta definiciones de herramientas falsas en la petición de API, con el objetivo de contaminar posibles datasets que se registren en el tráfico de la API y que se usen para entrenar modelos competidores. Esta es una nueva forma de defensa en la carrera armamentista de la IA: no es impedir que copies, sino hacer que copies cosas equivocadas.

Además, en el código aparece un código de nombre del modelo Capybara (dividido en tres niveles: versión estándar, versión fast y versión de ventana de contexto de un millón), ampliamente sospechado por la comunidad como el código interno de la serie Claude 5.

Huevos de pascua: en 512 mil líneas de código hay una mascota electrónica

Entre toda la seria arquitectura de ingeniería y los mecanismos de seguridad, los ingenieros de Anthropic también construyeron en secreto un sistema completo de mascotas virtuales, con el código interno BUDDY.

Según el código filtrado y los análisis de la comunidad, BUDDY es una mascota terminal con apariencia figurativa (utiliza elementos para simular objetos); aparece en el lado del cuadro de entrada del usuario en forma de burbuja ASCII. Tiene 18 especies (incluyendo capibaras, salamandras, hongos, fantasmas, dragones y una serie de criaturas originales como Pebblecrab, Dustbunny, Mossfrog), divididas en cinco niveles según rareza: común (60%), raro (25%), poco común (10%), épico (4%) y legendario (1%). Cada especie también tiene una «variante brillante»; la aparición del rarísimo Shiny Legendary Nebulynx tiene una probabilidad de solo uno entre diez mil.

Cada BUDDY tiene cinco atributos: DEBUGGING (depuración), PATIENCE (paciencia), CHAOS (caos), WISDOM (sabiduría) y SNARK (sarcasmo). También puede llevar sombreros: opciones como corona, bombín, gorra con hélice, halo, sombrero de mago e incluso un patito miniatura. El hash del ID del usuario determina qué mascota eclosionarás; Claude generará un nombre y personalidad para ella.

Según el plan de lanzamiento filtrado, BUDDY estaba originalmente programada para iniciar la prueba interna del 1 de abril al 7 de abril, y el 5 de mayo se lanzaría oficialmente, empezando por empleados internos de Anthropic.

En 512 mil líneas de código, el 98.4% está haciendo ingeniería dura, pero al final alguien se tomó el tiempo de hacer una salaman(d)ra electrónica que se pone un sombrero con hélice. Tal vez esta sea la línea de código más humana de toda la filtración.

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
Añadir un comentario
Añadir un comentario
Sin comentarios
  • Anclado