Título original: "Entendiendo el código fuente de Claude Code de Anthropic en un artículo: ¿Por qué es simplemente mejor que los demás?"
Autor original: Yuker, Investigador de IA
El 31 de marzo de 2026, el investigador de seguridad Chaofan Shou descubrió que en la versión npm de Anthropic del paquete Claude Code, el archivo de mapa de origen no fue eliminado.
Esto significa que el código fuente completo en TypeScript de Claude Code, con 512.000 líneas y 1903 archivos, quedó expuesto en la internet pública.
Por supuesto, no podía leer tanto código en solo unas horas, así que abordé este código fuente con tres preguntas:
1. ¿Cuál es la diferencia fundamental entre Claude Code y otras herramientas de programación con IA?
2. ¿Por qué su escritura de código "se siente" mejor que la de otros?
3. ¿Qué hay exactamente oculto en 510.000 líneas de código?
Después de leerlo, mi reacción inicial fue: esto no es solo un asistente de programación con IA; es un sistema operativo.
Imagina que contrataste a un programador remoto y le diste acceso remoto a tu computadora.
¿Cómo lo manejarías?
Si fueras Cursor: harías que se sentara a tu lado, y cada vez que necesite escribir un comando, mirarías y harías clic en "permitir". Es sencillo, pero tienes que vigilarlos en todo momento.
Si fueras un agente de GitHub Copilot: les darías una máquina virtual nueva para jugar. Después de que terminen, envían el código, tú lo revisas y luego lo fusionas. Es seguro, pero no pueden ver tu entorno local.
Si fueras Claude Code:
Les dejarías usar tu computadora directamente, pero la has equipado con un sistema de seguridad extremadamente sofisticado. Qué pueden hacer, qué no pueden hacer, qué acciones requieren tu aprobación, cuáles pueden hacer por sí mismos, e incluso si quieren usar rm -rf, debe pasar por 9 niveles de revisión antes de ejecutarse.
Aquí hay tres filosofías de seguridad completamente diferentes:

¿Por qué did Anthropic eligió el camino más difícil?
Porque solo de esta manera, la IA puede trabajar con tu terminal, tu entorno, tu configuración; esto es lo que significa "ayudarte realmente a programar", en lugar de "escribir una pieza de código en una sala limpia y luego copiarla".
¿Pero cuál es el costo? Escribieron 510.000 líneas de código para esto.
La mayoría de la gente piensa que las herramientas de programación con IA funcionan así:
Entrada del usuario → Llamar a la API de LLM → Obtener resultado → Mostrar al usuario
El Claude Code real funciona así:
Entrada del usuario
→ Ensamblar dinámicamente 7 capas de prompts del sistema
→ Inyectar estado de Git, convenciones del proyecto, memoria histórica
→ 42 herramientas, cada una con un manual
→ El LLM decide qué herramienta usar
→ 9 capas de revisión de seguridad (análisis AST, clasificadores ML, comprobaciones de sandbox...)
→ Resolución de conflictos de permisos (teclado local/IDE/hook/clasificador de IA compitiendo simultáneamente)
→ Retraso anti-fatiga de 200ms
→ Ejecutar herramienta
→ Devolver resultados en modo streaming
→ ¿El contexto se acerca al límite? → Compresión de tres etapas (micro-compresión → auto-compresión → compresión completa)
→ ¿Necesitas paralelismo? → Generar un enjambre de sub-agentes
→ Bucle hasta completar la tarea
Creo que todos tienen mucha curiosidad sobre lo anterior, pero no se preocupen, vamos a desglosarlos uno por uno.
Abre src/constants/prompts.ts y verás esta función:

¿Notas ese SYSTEM_PROMPT_DYNAMIC_BOUNDARY?
Este es un delimitador de caché. El contenido por encima del delimitador es estático y puede ser almacenado en caché por la API de Claude para ahorrar costos de tokens. El contenido por debajo del delimitador es dinámico: tu rama de Git actual, tu configuración de proyecto CLAUDE.md, tus preferencias proporcionadas anteriormente... cada interacción es única.
¿Qué significa esto?
Anthropic trata las palabras clave como salida del compilador para optimizar. La parte estática es el "binario compilado" y la parte dinámica son los "parámetros de tiempo de ejecución". Los beneficios de este enfoque son:
1. Ahorro de costos: La parte estática se almacena en caché, evitando cargos redundantes
2. Velocidad: Los aciertos de caché omiten directamente el procesamiento de esos tokens
3. Flexibilidad: La parte dinámica permite que cada interacción sea consciente del entorno actual
Cada herramienta tiene su propio "Manual de usuario"
Lo que es aún más sorprendente es que cada directorio de herramientas contiene un archivo prompt.ts: este es un manual de usuario diseñado específicamente para LLM.
Mira el BashTool (src/tools/BashTool/prompt.ts, alrededor de 370 líneas):

Este no es un documento para humanos, es un código de conducta para el comportamiento de la IA. Cada vez que Claude Code se inicia, estas reglas se inyectan en los prompts del sistema.
Es por eso que Claude Code nunca fuerza git push --force por sí solo, mientras que algunas herramientas podrían hacerlo; no es que el modelo sea más inteligente, es que las instrucciones ya han detallado las reglas.
Además, la versión interna de Anthropic es diferente a la que estás usando
El código tiene numerosas ramas como esta:

ant se refiere al personal interno de Anthropic. Su versión tiene pautas de estilo de código más detalladas ("No escribas comentarios a menos que el PORQUÉ no sea obvio"), una estrategia de salida más agresiva ("Escritura de pirámide invertida") y algunas características experimentales aún en pruebas A/B (Agente de verificación, Agente de exploración y planificación).
Esto ilustra que Anthropic es el mayor usuario de Claude Code. Están usando su propio producto para desarrollar su propio producto.
Abre src/tools.ts y verás el registro de herramientas:

42 herramientas, pero la mayoría de ellas nunca las has visto directamente. Eso es porque muchas herramientas se cargan de forma perezosa: solo cuando el LLM las necesita, se inyectan bajo demanda a través de ToolSearchTool.
¿Por qué se hace esto?
Porque por cada herramienta adicional, el prompt del sistema necesita una descripción adicional y el token necesita gastar más dinero. Si solo quieres que Claude Code te ayude a cambiar una línea de código, no necesita cargar el 'Programador de tareas Cron' y el 'Gestor de colaboración de equipo'.
Hay un diseño aún más inteligente:

Establece CLAUDE_CODE_SIMPLE=true, y a Claude Code solo le quedarán tres herramientas: Bash, Leer archivo, Modificar archivo. Esta es una puerta trasera para minimalistas.

Presta atención a esos valores predeterminados: isConcurrencySafe es false por defecto, isReadOnly es false por defecto.
Esto se llama diseño de cierre por fallo: si el autor de una herramienta olvida declarar los atributos de seguridad, el sistema asumirá que es 'insegura y escribible'. Es mejor ser demasiado cauteloso que pasar por alto un solo riesgo.

FileEditTool comprobará si ya has leído este archivo usando FileReadTool. Si no, lanzará un error directamente y no permitirá la modificación.
Es por eso que Claude Code no "escribirá mágicamente un fragmento de código para sobrescribir tu archivo" como algunas herramientas; **se requiere entender primero antes de modificar**.
Cualquiera que haya usado Claude Code tiene una sensación: parece conocerte realmente.
Le dices "no simules la base de datos en las pruebas" y no lo hará en la siguiente interacción. Le dices "soy ingeniero backend, novato en React" y explicará el código front-end usando analogías de backend.
Detrás de esto hay un sistema de memoria completo.

Claude Code usa otra IA (Claude Sonnet) para determinar "qué recuerdos son relevantes para la conversación actual"
No es coincidencia de palabras clave, no es búsqueda vectorial; permite que un modelo pequeño escanee rápidamente todos los títulos y descripciones de los archivos de memoria, seleccionando hasta los 5 más relevantes, y luego inyectando su contenido completo en el contexto de la conversación actual.
La estrategia es "precisión sobre recuperación": mejor perder un recuerdo potencialmente útil que inyectar uno irrelevante que contamine el contexto.
Modo KAIROS: "Soñar" durante la noche
Esta es la parte más de ciencia ficción para mí.
Hay una bandera de característica en el código llamada KAIROS. En este modo, los recuerdos de largas conversaciones no se almacenan en archivos estructurados, sino en entradas tipo registro con fecha. Luego, hay una habilidad /dream que se ejecuta durante la "noche" (baja actividad) destilando estos registros sin procesar en archivos temáticos estructurados.

La IA organiza los recuerdos mientras "duerme". Esto ya no es ingeniería; es biónica.
Cuando haces que Claude Code realice una tarea compleja, podría hacer esto silenciosamente:

Genera un sub-agente.
Y el sub-agente tiene una inyección estricta de "autoconciencia" para evitar que genere recursivamente más sub-agentes:

Este fragmento de código dice: "Eres un trabajador, no un gerente. No pienses en contratar a más personas, haz el trabajo tú mismo".
Patrón de coordinador: Patrón de gerente
En el patrón de coordinador, Claude Code se convierte en un orquestador de tareas puro, no haciendo el trabajo él mismo, solo delegando:

Principios básicos escritos en comentarios de código:
"El paralelismo es tu superpoder" para tareas de investigación de solo lectura: ejecutar en paralelo. Para tareas de escritura de archivos: ejecutar en serie por grupo de archivos (evitando conflictos).
Optimización del caché de prompts al extremo
Para maximizar la tasa de aciertos de caché de los sub-agentes, todos los resultados de utilidad de los sub-agentes bifurcados usan el mismo texto de marcador de posición:
"Fork iniciado: procesando en segundo plano"
¿Por qué? Porque el caché de prompts de la API de Claude se basa en la coincidencia de prefijos a nivel de bytes. Si los bytes de prefijo de 10 sub-agentes son idénticos, solo el primero necesita un "arranque en frío", los 9 restantes golpean directamente el caché.
Esta es una optimización que ahorra unos centavos por llamada, pero a escala, puede ahorrar una cantidad significativa de costos.
Todos los LLM tienen un límite de ventana de contexto. Cuanto más larga sea la conversación, más mensajes históricos, eventualmente excederá el límite.
Claude Code ha diseñado una compresión de triple capa para esto:

La micro-compresión solo toca los resultados de llamadas de herramientas antiguas, reemplazando "Contenido del archivo de 500 líneas leído hace 10 minutos" con [Contenido del resultado de la herramienta antigua borrado].
Las palabras de aviso y el hilo de diálogo se conservan por completo.
Cuando el consumo de tokens se acerca al 87% de la ventana de contexto (tamaño de ventana - 13.000 búfer), se activa automáticamente. Hay un disyuntor: detener los intentos después de 3 fallos de compresión consecutivos para evitar un bucle.
Hacer que la IA genere un resumen de toda la conversación y luego reemplazar todos los mensajes históricos con el resumen. Hay un precepto estricto durante la generación del resumen:

¿Por qué tan estricto? Porque si la IA realiza llamadas de herramientas adicionales durante el proceso de resumen, incurriría en un mayor consumo de tokens, lo cual sería contraproducente. Este prompt esencialmente dice: "Tu tarea es resumir, no hagas nada más".
Presupuesto de tokens comprimidos:
· Recuperación de archivos: 50.000 tokens
· Límite por archivo: 5.000 tokens
· Contenido de habilidades: 25.000 tokens
Estos números no son arbitrarios: representan un punto de equilibrio entre "conservar suficiente contexto para seguir trabajando" y "liberar suficiente espacio para recibir nuevos mensajes".
Dentro de 510.000 líneas de código, la parte que realmente llama a la API de LLM es probablemente menos del 5%. ¿Qué pasa con el 95% restante?
· Comprobaciones de seguridad (18 archivos solo para una sola BashTool)
· Sistema de permisos (permitir/denegar/preguntar/pasar a través de decisión cuadrática)
· Gestión de contexto (compresión de tres capas + recuperación de memoria por IA)
· Recuperación de errores (disyuntor, retroceso exponencial, persistencia de transcripción)
· Coordinación multi-agente (orquestación de enjambre + comunicación de buzón)
· Interacción de interfaz de usuario (140 componentes React + puente IDE)
· Optimización del rendimiento (estabilidad del caché de prompts + pre-captura paralela al inicio)
Si estás construyendo un producto de agente de IA, estos son los problemas reales que debes resolver. No se trata de cuán inteligente sea tu modelo; se trata de cuán robusto sea tu andamiaje.
No se trata solo de elaborar un buen prompt. Los prompts de Claude Code incluyen:
· Ensamblaje dinámico de 7 capas
· Cada herramienta viene con un manual de usuario independiente
· Los límites de caché están definidos con precisión
· Las versiones interna y externa tienen diferentes conjuntos de instrucciones
· El orden de las herramientas es fijo para mantener la estabilidad del caché
Esto es gestión de prompts diseñada, no artesanía.
Cada dependencia externa tiene una política de fallo correspondiente:

42 herramientas = Sistema de permisos de llamadas al sistema = Sistema de habilidades de gestión de permisos de usuario = Protocolo MCP de la tienda de aplicaciones Protocol = Enjambre de agentes de controladores de dispositivos = Gestión de procesos Compresión de contexto = Gestión de memoria Persistencia de transcripción = Sistema de archivos
Esto no es un "chatbot más unas pocas herramientas"; es un sistema operativo con LLM en su núcleo.
510.000 líneas de código. 1903 archivos. 18 archivos seguros solo para una sola herramienta Bash.
9 capas de escrutinio solo para que la IA te ayude de forma segura a escribir un comando.
Esta es la respuesta de Anthropic: Para hacer que la IA sea realmente útil, no puedes encerrarla en una jaula ni dejarla correr libremente. Tienes que construir un marco de confianza completo a su alrededor.
Y el costo de este sistema de confianza es de 510.000 líneas de código.
Este contenido se ofrece únicamente con fines informativos generales y no constituye asesoramiento financiero, de inversión, legal ni fiscal. Cualquier evento, recompensa, promoción en línea o información relacionada que se mencione en el presente documento no debe considerarse como una recomendación, solicitud o invitación a comprar, vender, tradear o de negociar de otra manera con cualquier criptoactivo. Los criptoactivos son sumamente volátiles y pueden provocar pérdidas. La disponibilidad de los servicios, productos y eventos relacionados de WEEX puede variar según la región. Tienes la responsabilidad de asegurarte de que tu participación esté de acuerdo con las leyes y regulaciones locales vigentes.





























