Analiza del código fuente de Claude: ¿Por qué es más útil que otras herramientas de programación AI?

Título original:《Una guía para conocer el código fuente de Anthropic de Claude Code: por qué es más fácil de usar que el de los demás?》

Autor original: Yuker, analista de IA

31 de marzo de 2026, el investigador en seguridad Chaofan Shou descubrió que el paquete de Claude Code publicado por Anthropic en npm no tenía sus archivos source map despojados.

Esto significa: el código fuente completo en TypeScript de Claude Code, 512,000 líneas, 1,903 archivos, queda así expuesto públicamente en Internet.

Por supuesto que no puedo leer tanto código en cuestión de unas cuantas horas, así que me acerqué a esta base de código con tres preguntas:

  1. ¿Cuál es la diferencia esencial entre Claude Code y otras herramientas de programación con IA?

  2. ¿Por qué la «sensación» al escribir código es mejor que la de los demás?

  3. ¿Qué se esconde en 510,000 líneas de código?

Al terminar, mi primera reacción fue: esto no es un asistente de programación con IA, es un sistema operativo.

I. Primero cuéntame una historia: si tuvieras que contratar a un programador remoto

Imagina que contratas a un programador remoto y le das permisos de acceso remoto a tu computadora.

¿Qué harías?

Si fuera la forma de Cursor: le dices que se siente a tu lado y, cada vez que vaya a teclear comandos, tú echas un vistazo y le das clic en «Permitir». Es simple y brusco, pero tienes que estar vigilando todo el tiempo.

Si fuera la forma de GitHub Copilot Agent: le das una máquina virtual completamente nueva para que se ponga a trastear libremente. Cuando termine, envía el código y lo combinas después de que lo apruebes. Es seguro, pero no puede ver tu entorno local.

Si fuera la forma de Claude Code:

Le dejas usar directamente tu computadora—pero le ajustas un sistema de seguridad de inspección extremadamente preciso. Puede hacer ciertas cosas y otras no; qué operaciones requieren tu confirmación y cuáles puede hacer por su cuenta; incluso si quiere usar rm -rf, tiene que pasar por 9 capas de revisión antes de ejecutarse.

Estos son tres filosofías de seguridad completamente distintas:

¿Por qué Anthropic eligió el camino más difícil?

Porque solo así la IA puede trabajar con tu terminal, tu entorno y tu configuración—esto es lo que de verdad significa «ayudarte a escribir código», no «escribir un fragmento de código en una habitación limpia y luego copiarlo».

Pero, ¿cuál es el costo? Para hacerlo, escribieron 510,000 líneas de código.

II. Claude Code: lo que crees vs el Claude Code real

La mayoría de la gente piensa que las herramientas de programación con IA son así:

Entrada del usuario → llamada a la API de LLM → devuelve un resultado → se muestra al usuario

Claude Code en realidad funciona así:

Entrada del usuario
→ ensamblaje dinámico de 7 capas de system prompts
→ inyección del estado de Git, convenciones del proyecto y recuerdos históricos
→ 42 herramientas con su propio manual de uso adjunto
→ el LLM decide qué herramienta usar
→ revisión de seguridad en 9 capas (análisis AST, clasificador ML, verificación de sandbox…)
→ resolución de conflictos de permisos (competencia simultánea: teclado local / IDE / Hook / clasificador de IA)
→ retraso de protección anti-errores de 200ms
→ ejecutar la herramienta
→ devolución en streaming del resultado
→ ¿contexto cerca del límite? → tres capas de compresión (microcompresión → compresión automática → compresión completa)
→ ¿necesitas paralelismo? → generar un enjambre de sub-Agents
→ repetir hasta que se complete la tarea

Si todos tienen curiosidad por lo de arriba, no se preocupen: desmenucémoslo una por una.

III. El primer secreto: no se escriben prompts, se «ensamblan»

Abre src/constants/prompts.ts y verás esta función:

¿Te diste cuenta de SYSTEM_PROMPT_DYNAMIC_BOUNDARY?

Esto es una línea de separación de caché. Lo que está por encima de la línea es estático; la API de Claude puede cachearlo, ahorrando el costo de tokens. Lo que está por debajo es dinámico: tu rama actual de Git, la configuración del proyecto de tu CLAUDE.md y las preferencias/memorias que le contaste antes… cambia en cada conversación.

¿Qué significa esto?

Anthropic trata los prompts como si fueran una salida optimizada del compilador. La parte estática es como «el binario compilado», y la parte dinámica como «parámetros en tiempo de ejecución». Las ventajas de esto son:

  1. Ahorrar dinero: la parte estática pasa por caché y no se vuelve a cobrar

  2. Ser más rápido: si hay acierto de caché, se salta el procesamiento de esos tokens

  3. Ser flexible: la parte dinámica permite que cada conversación perciba el entorno actual

Cada herramienta tiene un «manual de uso» independiente

Lo que más me sorprendió es que en cada directorio de herramientas existe un archivo prompt.ts—este es un manual de uso escrito específicamente para que lo lea el LLM.

Mira el BashTool (src/tools/BashTool/prompt.ts, ~370 líneas):

Esto no es documentación hecha para humanos; son reglas de conducta hechas para IA. Cada vez que Claude Code arranca, estas reglas se inyectan en el system prompt.

Esta es la razón por la que Claude Code nunca hace git push --force por iniciativa propia, mientras que algunas herramientas sí—no es que el modelo sea más inteligente, es que las reglas ya están explicadas en el prompt.

Y además, la versión interna de Anthropic no es la misma que la que usas

En el código aparecen ramas como estas muchas veces:

ant es un empleado interno de Anthropic. Su versión tiene guías de estilo de código más detalladas («no escribir comentarios a menos que WHY no sea evidente»), estrategias de salida más agresivas («método de escritura de pirámide invertida») y algunas funcionalidades experimentales que todavía están en pruebas A/B (Verification Agent, Explore & Plan Agent).

Esto demuestra que Anthropic es el usuario número uno de Claude Code: usan su propio producto para desarrollar su propio producto.

IV. El segundo secreto: 42 herramientas, pero solo has visto un pedazo del iceberg

Abre src/tools.ts y verás el centro de registro de herramientas:

Hay 42 herramientas, pero la mayoría de ellas tú nunca las ves directamente. Porque muchas herramientas se cargan con retraso: solo cuando el LLM las necesita, se inyectan bajo demanda mediante ToolSearchTool.

¿Por qué se hace así?

Porque mientras más herramientas haya, el system prompt necesita añadir más descripciones, y el token gastará otra parte del presupuesto. Si solo quieres que Claude Code te ayude a cambiar una línea de código, no necesita cargar el «planificador de tareas programadas» ni el «gestor de colaboración del equipo».

También hay otro diseño más inteligente:

Si configuras CLAUDE_CODE_SIMPLE=true, Claude Code se queda con solo tres herramientas: Bash, leer archivos y modificar archivos. Esto es una puerta trasera para los minimalistas.

Todas las herramientas salen de la misma fábrica

Observa los valores predeterminados: isConcurrencySafe es false por defecto, isReadOnly es false por defecto.

Esto se llama diseño fail-closed: si el autor de una herramienta olvida declarar sus propiedades de seguridad, el sistema asume que es «no segura y con capacidad de escritura». Mejor ser demasiado conservador que pasar por alto un riesgo.

La ley férrea de «primero leer, luego modificar»

FileEditTool comprueba si ya leíste ese archivo con FileReadTool. Si no, lanza un error directamente y no permite modificar.

Esta es la razón por la que Claude Code no puede, como algunas herramientas, «escribir por su cuenta un fragmento de código que sobrescriba tus archivos»—está obligado a entender primero y luego modificar.

V. El tercer secreto: el sistema de memoria—por qué puede «recordarte»

Las personas que han usado Claude Code sienten algo: parece que de verdad te conoce.

Le dices «no mockees la base de datos en los tests», y en la siguiente conversación ya no hará mock. Le dices «soy ingeniero de backend, soy principiante en React», y al explicar código de frontend usará analogías de backend.

Detrás de esto hay un sistema de memoria completo.

Usar IA para recuperar memoria

Claude Code usa otra IA (Claude Sonnet) para decidir «qué memorias son relevantes para la conversación actual».

No es coincidencia por palabras clave, ni búsqueda vectorial—es hacer que un modelo pequeño escanee rápidamente los títulos y descripciones de todos los archivos de memoria, seleccione como máximo los 5 más relevantes y luego inyecte el contenido completo de esos en el contexto de la conversación actual.

La estrategia es «precisión por encima de recall»: mejor omitir una memoria que podría ser útil que meter una memoria no relevante para contaminar el contexto.

Modo KAIROS: “soñar” en la noche

Esta es la parte que más me parece ciencia ficción.

En el código hay una característica llamada KAIROS. En este modo, la memoria de conversaciones largas no se guarda en archivos estructurados, sino en un registro append-only por fecha. Luego, hay una habilidad /dream que se ejecuta «en la noche» (horas de baja actividad), y destila esos registros originales en archivos de temas estructurados.

La IA ordena la memoria mientras «duerme». Esto ya no es ingeniería; es biónica.

VI. El quinto secreto: no es un Agent, son varios

Cuando le pides a Claude Code que haga una tarea compleja, puede que en silencio haya hecho esto:

Generó unsub Agent.

Y además, al sub Agent se le inyecta una «autoconciencia» estricta para evitar que genere más sub Agents de forma recursiva:

Este fragmento de código dice: «Eres un trabajador, no un gerente. No pienses en contratar más gente; hazlo tú mismo.»

Modo Coordinador: modo gerente

En el modo coordinador, Claude Code se convierte en un orquestador puro de tareas: no hace el trabajo él mismo, solo asigna:

Los principios centrales están escritos en comentarios del código:

«Parallelism is your superpower» para tareas de investigación de solo lectura: ejecutarlas en paralelo. Para tareas de escritura de archivos: agrupar por archivo y ejecutarlas en serie (para evitar conflictos).

Optimización extrema del Prompt Cache

Para maximizar la tasa de aciertos del caché de los sub Agents, los resultados de las herramientas de todos los sub-agentes fork usan el mismo texto de marcador de posición:

«Fork started—processing in background»

¿Por qué? Porque el prompt cache de la API de Claude se basa en el emparejamiento de prefijos a nivel de bytes. Si los prefijos en bytes de 10 sub Agents son completamente idénticos, solo el primero necesita un «arranque en frío», y los otros 9 ya aciertan en caché directamente.

Es una optimización que ahorra unos cuantos centavos por llamada, pero a gran escala puede ahorrar muchos costos.

VII. El sexto secreto: tres capas de compresión para que la conversación «nunca exceda el límite»

Todos los LLM tienen límites de ventana de contexto. Cuanto más larga es la conversación, más mensajes históricos hay y, al final, inevitablemente se excede el límite.

Claude Code diseñó tres capas de compresión para esto:

Primera capa: microcompresión—el costo más bajo

La microcompresión solo modifica los resultados de llamadas de herramientas antiguas: reemplaza el «contenido del archivo de 500 líneas leído hace 10 minutos» por [Old tool result content cleared].

Se conserva por completo el prompt y la línea principal de la conversación.

Segunda capa: compresión automática—retracción activa

Cuando el consumo de tokens se acerca al 87% de la ventana de contexto (window size - 13,000 buffer), se activa automáticamente. Hay un «cortacircuitos»: después de fallar 3 veces seguidas en comprimir, se detiene el intento para evitar ciclos infinitos.

Tercera capa: compresión completa—resumen de la IA

Hacer que la IA genere un resumen de toda la conversación, y luego reemplazar todos los mensajes históricos por el resumen. Al generar el resumen, hay una instrucción de precondición severa:

¿Por qué es tan severo? Porque si durante el proceso de resumen la IA vuelve a usar herramientas, se generarán más tokens, lo cual es lo contrario de lo que se busca. Ese prompt está diciendo: «Tu tarea es resumir; no hagas otra cosa».

Presupuesto de tokens después de la compresión:

· Restauración de archivos: 50,000 tokens

· Límite por archivo: 5,000 tokens

· Contenido de habilidades: 25,000 tokens

Estos números no se decidieron al azar—son el punto de equilibrio entre «mantener suficiente contexto para seguir trabajando» y «dejar espacio suficiente para recibir mensajes nuevos».

VIII. Qué aprendí después de leer esta base de código

El 90% del trabajo de un AI Agent está fuera del «AI»

En 510,000 líneas de código, la parte que realmente llama la API del LLM quizá sea menos del 5%. Entonces, ¿qué es el 95% restante?

· Comprobaciones de seguridad (18 archivos solo para un BashTool)

· Sistema de permisos (decisión de cuatro estados: allow/deny/ask/passthrough)

· Gestión de contexto (tres capas de compresión + recuperación de memoria con IA)

· Recuperación ante errores (cortacircuitos, backoff exponencial, persistencia de Transcript)

· Coordinación de múltiples Agents (orquestación de enjambres + comunicación por correo)

· Interacción UI (140 componentes React + IDE Bridge)

· Optimización de rendimiento (estabilidad del prompt cache + precarga en paralelo al iniciar)

Si estás construyendo un producto de AI Agent, estos son los problemas que realmente tienes que resolver. No si el modelo es lo bastante inteligente, sino si tu andamiaje es lo bastante sólido.

Un buen prompt engineering es un sistema

No basta con escribir un prompt bonito y listo. El prompt de Claude Code es:

· ensamblaje dinámico en 7 capas

· cada herramienta viene con su manual de uso independiente

· límites de caché divididos con precisión

· conjunto de instrucciones diferente entre versión interna y versión externa

· orden de herramientas fijo para mantener la estabilidad del caché

Esto es gestión de prompts hecha a nivel de ingeniería, no artesanía manual.

Diseñado para fallar

Cada dependencia externa tiene su estrategia de fallo correspondiente:

Anthropic trata a Claude Code como un sistema operativo

42 herramientas = llamadas del sistema + sistema de permisos = gestión de permisos de usuario habilidades = sistema de aplicaciones MCP protocolo = drivers de dispositivos Agent de enjambre = gestión de procesos compresión de contexto = gestión de memoria Transcript persistente = sistema de archivos

Esto no es «un chatbot con algunas herramientas». Es un sistema operativo con LLM como núcleo.

Resumen

510,000 líneas de código. 1,903 archivos. 18 archivos de seguridad solo para una herramienta Bash.

Las 9 capas de revisión solo existen para que la IA te ayude a ejecutar de forma segura un comando.

Esa es la respuesta de Anthropic: para que la IA sea realmente útil, no puedes encerrarla en una jaula ni dejarla suelta sin control. Tienes que construirle un sistema completo de confianza.

Y el costo de ese sistema de confianza es de 510,000 líneas de código.

Enlace del texto original

Haz clic para conocer en qué está reclutando律动BlockBeats.

Bienvenido a unirte a la comunidad oficial de律动 BlockBeats:

Grupo de suscripción de Telegram: https://t.me/theblockbeats

Telegram交流群: https://t.me/BlockBeats_App

Cuenta oficial de Twitter: https://twitter.com/BlockBeatsAsia

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