Claude Code стал одним из наиболее интересных проектов в сфере искусственного интеллекта и обработки естественного языка в последние годы. Появившись на рынке в начале 2025 года, он быстро зарекомендовал себя как мощный агент, построенный на основе крупных языковых моделей (LLM). Несмотря на превосходство его возможностей, официальная поддержка со стороны разработчиков Anthropic не предусматривает простых или открытых способов изучения внутреннего устройства проекта. Тем не менее сообщество энтузиастов, среди которых выделяется разработчик под псевдонимом Yuyz0112, представило новый метод обратной разработки Claude Code, направленный на детальное понимание его работы через анализ взаимодействий с внешними API и поведение во время выполнения. Первый этап исследований, названный v1, представлял собой попытку исследовать сложный минифицированный код Claude Code с помощью крупных языковых моделей.
В то время регистрация в системе была недоступна, что подтолкнуло авторов к экспериментам с анализом статически скомпилированного кода. Однако этот подход оказался скорее исследовательским экспериментом, а не эффективным инструментом для глубокого понимания архитектуры протокола и связи между его внутренними компонентами. Более того, существовавший альтернативный проект, который восстанавливли исходный код на основе карт исходников sourcemaps, вскоре был удалён, что косвенно подтверждает нежелание компании Anthropic легализовать подобные методы. Ключевым прорывом стала версия v2, которая сменила фокус с анализа статического кода на изучение поведения Claude Code во время выполнения и его взаимодействия с API LLM. Этот метод состоит в том, чтобы не пытаться разбирать запутанный внутренний код, а отслеживать запросы, которые Claude Code отправляет на серверы искусственного интеллекта, а также ответы, которые он получает.
Поскольку сервис LLM фактически является ядром всей системы, логика построения и содержания этих запросов является центральным элементом, отражающим глубинное понимание агентом мира и задач. В практическом смысле, для реализации проекта v2 была применена техника monkey patching — модификация уже установленного кода клиента Claude Code, а именно скрипта cli.js. Сначала оригинальный файл с помощью инструмента js-beautify подвергается форматированию для удобства чтения и последующего поиска ключевых фрагментов кода. В частности, в работе выяснилось, что все взаимодействия с API проходят через TypeScript SDK, а точнее через метод beta.
messages.create. Именно этот метод был замещён патчем, который сохраняет в специальный лог-файл все передаваемые сообщения и получаемые ответы. Такой подход позволяет собирать подробные данные о запросах в реальном времени без необходимости проникать в устройство исходного кода. Одним из важных аспектов работы с логами является их объём и сложность.
Стандартные логи содержат длинные блоки общих подсказок (prompts) и определений инструментов (tools), что усложняет ручной просмотр. Чтобы решить эту проблему, был разработан инструментарий для анализа и визуализации логов, включающий парсер на JavaScript и удобный HTML-интерфейс. Этот инструмент автоматически выявляет критические части обмена сообщениями и позволяет исследователям быстро и понятно изучать работу системы. Такой визуальный подход значительно ускоряет процесс выявления внутренних паттернов и архитектурных решений Claude Code. Детальное изучение логов привело к выявлению нескольких ключевых компонентов внутреннего устройства Claude Code.
В частности, был найден механизм проверки квоты, который представляет собой первоначальный запрос с небольшим текстом «quota». Система использует модель Haiku 3.5 для проверки достаточности ресурсов. Также была обнаружена система определения темы разговора, которую LLM проводит на основе текущего пользовательского ввода без учёта предыдущего контекста. Для этой задачи тоже применяется модель Haiku 3.
5. Такой подход обеспечивает быстрый и универсальный переход между разными тематиками. Основной жизненный цикл агента построен на концепции Core Agent workflow — системе, описываемой комплексным системным workflow prompt. Здесь подробно прописаны правила добавления сообщений в контекст, управление состояниями, загрузка инструментов и напоминаний. Неординарным оказалось использование так называемых system reminder start и end prompts.
Первый динамически подгружает информацию из текущего окружения, в то время как второй контролирует управление «короткой памятью» в рамках текущей сессии, в частности посредством Todo инструмента, который сохраняет и обновляет задачи в JSON-файлах. Потоковое сжатие контекста (context compaction) — ещё одна значимая функциональность. При необходимости уменьшить объём текущего контекста оно преобразует существующие сообщения в один блок текста, который затем используется в качестве стартовой базы для последующего диалога. Это позволяет сохранять баланс между объёмом данных, передаваемых модели, и полнотой информации. В процессе сжатия применяется отдельный компактный промпт, а модель Sonnet 4 обеспечивает аккуратное и информативное сжатие.
Специально реализован модуль интеграции с IDE, который позволяет системе учитывать открытые в редакторе файлы, предоставляя агенту дополнительный контекст для эффективного ответа. Помимо простого чтения путей файлов, Claude Code использует отдельные IDE-инструменты, такие как получение ошибок из среды разработки или выполнение кода. Такая интеграция раскрывает потенциал агента как помощника в программировании. Замечательным решением стал менеджмент краткосрочной памяти, реализованный через Todo списки. Они функционируют как локальное хранилище задач, поддерживаемое JSON-файлами в домашней директории пользователя, что облегчает координацию и отслеживание прогресса в работе.
При каждом обновлении модель взаимодействует с этими списками, что обеспечивает более организованное выполнение задач и улучшенный пользовательский опыт. Архитектурной изюминкой Claude Code является система подагентов (Sub Agents). Основной агент может делегировать независимые задачи своим подагентам, каждый из которых имеет собственный контекст, что позволяет изолировать «шумные» данные и сохранить чистоту основного диалога. После завершения работы подагент возвращает итог как результат, что оптимизирует использование контекстного окна LLM и структурирует многошаговые процессы. Такая архитектура подчёркивает продуманный многоканальный подход к реализации интеллектуальных агентов.
При запуске Claude Code происходит суммирование предыдущих разговоров, позволяя сохранить контекст диалога и не терять накопленную информацию между сессиями. Для этой задачи вновь используется Haiku 3.5. Это повышает качество общения и комфорт пользователя при работе с системой. Результаты обратной разработки Claude Code открывают новые перспективы для исследователей и разработчиков, стремящихся понять лучшие практики построения современных интеллектуальных систем.
Благодаря сочетанию анализа поведения при работе с API, инструментам визуализации и глубокому изучению логики взаимодействия, теперь можно более прозрачно изучать как отдельные компоненты агента, так и его комплексную архитектуру. В заключение, проект по обратной разработке Claude Code демонстрирует эффективность подхода, основанного на динамическом анализе и мониторинге взаимодействия с крупными языковыми моделями, а не на статическом изучении запутанного исходного кода. Такой метод открывает путь к созданию собственных мощных агентов, наследующих удачные решения и избегающих уязвимостей. Уникальные идеи по управлению контекстом, распределению задач и интеграции с другими инструментами делают Claude Code примером для подражания в эволюции систем искусственного интеллекта.