Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как Claude Code создал собственный аналог за 15 минут: эксперимент с разработкой консольного агента

Как Claude Code создал собственный аналог за 15 минут: эксперимент с разработкой консольного агента

Современные инструменты генерации кода на базе больших языковых моделей давно вышли за рамки простой выдачи сниппетов: они способны автономно исследовать репозитории, запускать тесты и вносить правки. В ходе недавнего эксперимента была проверена гипотеза о том, насколько успешно система способна воспроизвести саму себя: создание автономного ИИ-агента для кодинга было полностью поручено утилите Claude Code без использования готовых агентных фреймворков.

Результатом работы стал полноценный терминальный помощник XDACode, написанный на Python, который получил собственный цикл принятия решений, систему разграничения прав доступа, поддержку нескольких провайдеров нейросетей и набор инструментов для манипуляции файлами в рабочей директории проекта.

Финальный отчет Claude Code о создании проекта Clonecode с перечнем ограничений
Итоговая сводка Claude Code после завершения сборки основного каркаса приложения.
Сводка прохождения 40 автоматических тестов для созданного агента кодинга
Отчет об успешном прохождении тестового набора после завершения сборки.

Предыстория: как Claude Code пишет собственный код

Идея создания альтернативы силами самого инструмента опирается на реальную практику разработки внутри Anthropic. Создатель Claude Code Борис Черный ранее неоднократно подчеркивал, что проект активно совершенствуется с помощью самого себя: около 90% кодовой базы утилиты генерируется моделью. В конце 2025 года он сообщал, что на протяжении месяца абсолютно все его коммиты и пулреквесты (сотни изменений и десятки тысяч строк) формировались через связку Claude Code и Opus 4.5, а написание кода вручную было практически прекращено. Кроме того, внутренние инструменты вроде Claude Cowork собирались в сжатые сроки с опорой на уже имеющиеся наработки.

Реклама

Если команда создателей столь масштабно полагается на автономную генерацию при развитии основного продукта, задача спроектировать работающий терминальный аналог с нуля выглядела выполнимой технической задачей.

Формирование подробного промпта и технических ограничений

Обычно тестирование языковых моделей начинают с лаконичных или намеренно размытых запросов, чтобы оценить их самостоятельное мышление и инициативу. Однако для воспроизведения архитектуры полноценного терминального ассистента потребовался предельно четкий набор базовых требований. Главной задачей было исключить создание поверхностной обертки вокруг существующего интерфейса или прямое задействование готового Anthropic Agent SDK, так как это обесценило бы суть теста.

От модели не требовалось построить стопроцентную копию коммерческого продукта со всеми сложными режимами планирования. Техническое задание фокусировалось на ключевых механиках:

Реклама
  • полноценный интерактивный интерфейс командной строки;
  • возможность считывать структуру проекта, создавать, изменять и удалять файлы;
  • выполнение shell-команд и запуск тестовых наборов;
  • способность самостоятельно диагностировать и исправлять ошибки сборки или тестов;
  • изоляция операций в пределах текущего рабочего каталога.

При этом выбор языка программирования, конкретных библиотек и архитектуры самого цикла выполнения был полностью оставлен на усмотрение ИИ.

Командная строка с авторизацией XDACode в ChatGPT и списком моделей
Интерфейс XDACode после успешного входа в аккаунт ChatGPT и обнаружения доступных моделей.

Разработка за 15 минут: архитектура и возможности XDACode

Для генерации использовалась модель Fable 5.1 от Anthropic. Процесс проектирования и сборки занял 15 минут и 12 секунд. За это время система сформировала проект XDACode, решив основные технические вопросы без вмешательства извне.

Запуск интерфейса XDACode с провайдером ChatGPT и выбранной моделью
Интерактивная сессия XDACode при работе через подключенного провайдера ChatGPT.

Стек технологий и собственный цикл выполнения

В качестве технологической основы Claude Code выбрал Python 3. Для оформления консольного интерфейса и обработки пользовательского ввода были подключены библиотеки Rich и prompt_toolkit. За взаимодействие с нейросетевыми сервисами отвечал официальный SDK Anthropic.

Вместо готовых шаблонов сторонних фреймворков был написан собственный автономный цикл (agentic loop). Этот компонент отличает настоящего агента от стандартного чат-бота: получив задачу, инструмент самостоятельно формулирует план, выполняет системную команду или операцию с диском, считывает вывод терминала и на основе полученных данных принимает решение о следующем шаге.

Система безопасности и встроенные инструменты

В базовую версию помощника вошли восемь специализированных инструментов: семь из них отвечали за манипуляции с файловой системой (поиск, чтение, создание, редактирование, удаление), а восьмой позволял выполнять команды операционной системы. Для безопасной эксплуатации была заложена модель подтверждения действий пользователем, исключающая бесконтрольное применение правок, а также ограничение рабочей области границами заданного каталога.

Реклама

В дополнение к базовой функциональности были реализованы интерактивный терминальный диалог, поддержка цепочки контекста и его автоматическое сжатие при длительных сессиях. В процессе сборки модель самостоятельно выявила и устранила ряд системных ошибок, подготовила тестовый стенд из 40 автоматизированных тестов и продемонстрировала работу утилиты на специально подготовленном учебном микропроекте, доведя число успешных тестов с 5 до 7.

Интеграция с OpenAI: от API-ключей к подписке ChatGPT

Первоначальная редакция XDACode требовала прямого подключения через API-ключ Anthropic с отдельной оплатой токенов. Для пользователя, уже обладающего подписками на популярные сервисы, оплата дополнительных кредитов платформы является нежелательным расходом. Поэтому возникла задача добавить поддержку авторизации через учетную запись ChatGPT, как это реализовано в некоторых открытых проектах вроде OpenCode.

На первом этапе Claude Code отказался реализовывать этот сценарий, ссылаясь на правила использования сервиса и предложив вместо этого стандартный API OpenAI, что снова требовало отдельных средств на балансе. Проблему удалось решить предоставлением ссылок на официальную документацию OpenAI, где описывается процедура Sign in with ChatGPT для локальных и open-source приложений.

После предоставления спецификаций Claude Code за 10 минут и 59 секунд дополнил архитектуру:

  • появилась OAuth-аутентификация с открытием браузера для входа;
  • были настроены защищенное локальное хранение учетных данных и автоматическое обновление токенов;
  • интегрирован отдельный провайдер на базе OpenAI Responses API с автоматическим определением доступных моделей;
  • тестовый набор расширился до 54 успешно пройденных проверок.

Практические тесты XDACode: от сортировки до веб-приложения

Работоспособность сгенерированного инструмента проверялась на двух задачах разной степени сложности с использованием модели GPT под учетной записью ChatGPT.

Базовая проверка логики на алгоритме пузырьковой сортировки

Первый тест носил калибровочный характер: агенту поручили написать функцию пузырьковой сортировки на Python и сопроводить ее модульными тестами. XDACode создал рабочий модуль, отдельный тестовый файл с пятью сценариями, запустил процесс тестирования через виртуальное окружение и зафиксировал успешное завершение всех тестов, запросив подтверждение пользователя лишь на этапе записи файлов на диск.

Создание полноценного таймера Pomodoro

Вторым заданием стала разработка веб-приложения для тайм-менеджмента по методу Pomodoro под названием Still. Запуск производился в той же рабочей папке. Перед генерацией кода агент просканировал директорию и изучил структуру уже имеющихся файлов, подтвердив правильную работу алгоритма исследования окружения.

Итоговый проект таймера получил адаптивный интерфейс, раздельные режимы для фокусировки, коротких и длинных перерывов, настраиваемую продолжительность сессий, журнал ежедневного прогресса, встроенный список задач с сохранением состояния, горячие клавиши и звуковые оповещения об окончании интервалов. Агент полностью взял на себя разметку, стилизацию, логику и сборку проекта.

Итоги эксперимента и перспективы кастомных инструментов

Несмотря на то что итоговый код создается underlying-моделью, ценность подобного инструмента заключается в слаженной оркестрации: чтении репозитория, вызове системных утилит, анализе вывода и итеративном исправлении ошибок. Самостоятельно сгенерированный агент XDACode уступает зрелым коммерческим экосистемам по глубине аналитики и набору встроенных эвристик, однако он доказывает, что базовую архитектуру сложного консольного помощника сегодня можно развернуть менее чем за полчаса, адаптируя ее под собственные сценарии, провайдеры и интерфейсные требования.

01.