Ingeniería inversa del código de Claude: Guía técnica

July 29, 2025

En el vertiginoso panorama de la IA, comprender el funcionamiento interno de modelos avanzados como Claude Code es crucial. Este artículo ofrece una guía técnica detallada sobre la ingeniería inversa de Claude Code, centrándose en las metodologías y herramientas desarrolladas para diseccionar su compleja base de código JavaScript de 4.6 MB minificada. Exploraremos un enfoque práctico que evita la restauración tradicional del código, enfocándose en cambio en el comportamiento en tiempo de ejecución y los datos de la API.

El Desafío del Código Minificado

Claude Code, un potente agente de IA, presenta un desafío significativo debido a su cliente JavaScript fuertemente minificado. Si bien los intentos iniciales de ingeniería inversa se centraron en los mapas de origen, estos métodos resultaron insuficientes para comprender la arquitectura general y, finalmente, se desaconsejaron. Esta guía introduce un enfoque "v2" más efectivo, centrado en el "monkey patching" del código de solicitud de API y el análisis de los registros resultantes.

Metodología: Monkey Patching y Análisis de Registros

La estrategia principal implica modificar el archivo cli.js de Claude Code para interceptar y registrar las solicitudes y respuestas de la API. Esto se logra:

  1. Localizando cli.js: Identificando el script cliente principal dentro de la instalación de Claude Code.
  2. Formateando el Código: Utilizando herramientas como js-beautify para dar formato al código minificado y facilitar su lectura.
  3. Parcheando beta.messages.create: Inyectando lógica personalizada en el método responsable de las interacciones de la API de LLM. Este parche crea un archivo messages.log, capturando registros detallados de cada llamada y respuesta de la API.

Este proceso nos permite recopilar datos cruciales sobre cómo Claude Code interactúa con las API de LLM en varios escenarios de tareas. Al analizar estos registros, los desarrolladores pueden inferir la estructura y la lógica de las operaciones de Claude Code.

Acelerando el Análisis con Visualización

Para agilizar el proceso de ingeniería inversa, el enfoque "v2" incluye una herramienta de análisis de registros (parser.js) y una herramienta de visualización interactiva (visualize.html). Esta herramienta permite a los usuarios cargar los archivos de registro generados, facilitando el análisis de conversaciones extensas. La visualización intenta identificar automáticamente indicaciones comunes (prompts), ayudando a comprender la inyección dinámica de indicaciones y la gestión del contexto.

Componentes Clave de Ingeniería Inversa

A través de este meticuloso análisis, se han realizado ingeniería inversa varios procesos internos clave de Claude Code, entre ellos:

  • Verificación de Cuotas: Verifica la cuota de la API utilizando Haiku 3.5.
  • Detección de Temas: Identifica temas nuevos usando una indicación específica con Haiku 3.5, aunque opera sin contexto de conversación.
  • Flujo de Trabajo del Agente Central: Impulsado por una indicación de flujo de trabajo del sistema y aumentado con indicaciones de inicio/fin de recordatorios del sistema para la carga dinámica de información y la integración de memoria a corto plazo. Este flujo de trabajo utiliza principalmente el modelo Sonnet 4.
  • Compresión de Contexto: Un proceso que comprime el historial de conversaciones en un solo bloque para conservar el espacio de contexto, utilizando también el modelo Sonnet 4.
  • Integración de IDE: Incorpora rutas de archivos abiertas de los IDE en las indicaciones y registra herramientas específicas del IDE para mejorar la conciencia contextual.
  • Gestión de Memoria a Corto Plazo de Tareas Pendientes: Aprovecha la herramienta TodoWrite para administrar tareas y memoria a corto plazo a través de archivos JSON, con la recuperación de memoria integrada en el flujo de trabajo central.

Aprendiendo de las Indicaciones y el Diseño de Herramientas

Los directorios prompts y tools dentro del repositorio contienen información valiosa sobre cómo Claude Code está diseñado para interactuar con LLM y administrar tareas. Estudiar estos componentes ofrece una comprensión más profunda de la ingeniería de indicaciones y los principios de diseño de agentes.

Esta exploración técnica detallada proporciona una hoja de ruta para cualquiera interesado en comprender la sofisticada arquitectura de agentes de IA como Claude Code. Al aprovechar los LLM para el análisis y emplear técnicas prácticas de modificación de código, podemos desbloquear una comprensión más profunda de estas poderosas tecnologías.

Artículo original: Ver original

Compartir este artículo

Tabla de contenidos

Saltar a cualquier sección