Ingénierie inverse du code Claude : un guide technique
Dans le paysage en rapide évolution de l'IA, la compréhension du fonctionnement interne des modèles avancés comme Claude Code est essentielle. Cet article propose un guide technique détaillé sur l'ingénierie inverse de Claude Code, en se concentrant sur les méthodologies et les outils développés pour disséquer sa base de code JavaScript complexe de 4,6 Mo minifiée. Nous explorerons une approche pratique qui contourne la restauration traditionnelle du code, se concentrant plutôt sur le comportement à l'exécution et les données de l'API.
Le Défi du Code Minifié
Claude Code, un puissant agent IA, représente un défi important en raison de son client JavaScript fortement minifié. Alors que les premières tentatives d'ingénierie inverse se concentraient sur les sourcemaps, ces méthodes se sont révélées insuffisantes pour comprendre l'architecture globale et ont finalement été découragées. Ce guide présente une approche "v2" plus efficace, centrée sur le "monkey patching" du code des requêtes API et l'analyse des journaux résultants.
Méthodologie : Monkey Patching et Analyse des Journaux
La stratégie principale implique la modification du fichier cli.js
de Claude Code pour intercepter et journaliser les requêtes et réponses API. Ceci est réalisé en :
- Localisation de
cli.js
: Identification du script client principal dans l'installation de Claude Code. - Beautification du Code : Utilisation d'outils comme
js-beautify
pour formater le code minifié afin d'en faciliter la lecture. - Correction de
beta.messages.create
: Injection de logique personnalisée dans la méthode responsable des interactions avec l'API LLM. Cette correction crée un fichiermessages.log
, capturant des journaux détaillés de chaque appel et réponse API.
Ce processus nous permet de collecter des données cruciales sur la manière dont Claude Code interagit avec les API LLM dans divers scénarios de tâches. En analysant ces journaux, les développeurs peuvent déduire la structure et la logique des opérations de Claude Code.
Accélérer l'Analyse avec la Visualisation
Pour rationaliser le processus d'ingénierie inverse, l'approche "v2" comprend un outil d'analyse de journaux (parser.js
) et un outil de visualisation interactif (visualize.html
). Cet outil permet aux utilisateurs de charger les fichiers journaux générés, facilitant ainsi l'analyse des conversations longues. La visualisation tente d'identifier automatiquement les invites courantes, aidant à comprendre l'injection dynamique d'invites et la gestion du contexte.
Composants Clés d'Ingénierie Inverse
Grâce à cette analyse méticuleuse, plusieurs processus internes clés de Claude Code ont été soumis à une ingénierie inverse, notamment :
- Vérification du Quota : Vérifie le quota API à l'aide de Haiku 3.5.
- Détection de Sujet : Identifie les nouveaux sujets à l'aide d'une invite spécifique avec Haiku 3.5, bien qu'elle fonctionne sans contexte de conversation.
- Workflow de l'Agent Principal : Piloté par une invite de workflow système et augmenté d'invites de début/fin de rappel système pour le chargement dynamique d'informations et l'intégration de la mémoire à court terme. Ce workflow utilise principalement le modèle Sonnet 4.
- Compactage de Contexte : Un processus qui compresse l'historique des conversations en un seul bloc pour conserver l'espace de contexte, utilisant également le modèle Sonnet 4.
- Intégration IDE : Intègre les chemins de fichiers ouverts des IDE dans les invites et enregistre les outils spécifiques aux IDE pour une meilleure sensibilisation contextuelle.
- Gestion de la Mémoire à Court Terme des TODO : Utilise l'outil
TodoWrite
pour gérer les tâches et la mémoire à court terme via des fichiers JSON, la récupération de la mémoire étant intégrée au workflow principal.
Apprendre des Invites et de la Conception des Outils
Les répertoires prompts
et tools
du dépôt contiennent des informations précieuses sur la manière dont Claude Code est conçu pour interagir avec les LLM et gérer les tâches. L'étude de ces composants offre une compréhension plus approfondie des principes d'ingénierie des invites et de conception d'agents.
Cette exploration technique détaillée fournit une feuille de route pour toute personne intéressée à comprendre l'architecture sophistiquée d'agents IA comme Claude Code. En exploitant les LLM pour l'analyse et en utilisant des techniques pratiques de modification de code, nous pouvons acquérir une compréhension plus profonde de ces technologies puissantes.