Давайте честно: мы все уже привыкли к AI-ассистентам. GitHub Copilot, Cursor, JetBrains AI — они плотно прописались в наших редакторах. Но положа руку на сердце, работают он�� по принципу «очень умного Т9». Ты пишешь начало функции — он дописывает тело. Ты выделяешь кусок кода — он предлагает рефакторинг. Это удобно, но это все еще микро-менеджмент. Вы по-прежнему «водитель», а AI — просто навигатор.
И тут Anthropic выкатывает Claude Code.
Сначала я подумал: «Окей, еще одна обертка над API, теперь в консоли». Но когда начал копать глубже, понял, что концепция поменялась. Это не плагин. Это CLI-утилита, которая живет в вашем терминале и ведет себя как автономный агент. Разница примерно как между «помоги мне написать SQL-запрос» и «пойди в базу, посмотри схему и вытащи мне тех пользователей, которые не платили 3 месяца».
Мне стало интересно, как это чудо не разоряет разработчиков на токенах, сканируя весь проект. Я потратил время, чтобы разобрать архитектуру, и хочу показать вам «подкапотку».
Разберем сухую инженерию:
Как работает REPL-цикл и почему он страшнее для джуниоров, чем Copilot.
Зачем нейросети доступ к grep и ls (и почему это гениально).
И главное — реальные сценарии, когда консоль уделывает навороченную IDE.
1. Архитектура: Не чат-бот, а Агентный цикл
Главное отличие, которое реально меняет правила игры, — это Agentic Loop (Агентный цикл).
В обычной IDE (будь то VS Code с Copilot) нейросеть видит только контекст открытых вкладок. Она слепа к тому, что происходит в соседней папке, если вы явно не ткнете её носом. Claude Code работает иначе. Он видит файловую систему и, что важнее, имеет право исполнять команды.
Согласно разбору Pragmatic Engineer, под капотом там крутится классический REPL (Read-Eval-Print Loop), но на стероидах. Взаимодействие выглядит не как "Вопрос-Ответ", а как цепочка действий:
Research (Разведка): Вы говорите: «Почини баг в модуле авторизации». Агент не начинает галлюцинировать код сразу. Сначала он ведет себя как нормальный разработчик: запускает ls, чтобы посмотреть структуру, потом grep или find, чтобы найти релевантные файлы.
Plan (Планирование): Модель строит в "голове" (Chain of Thought) план: "Ага, ошибка в контроллере, но надо проверить еще и мидлвар".
Act (Действие): Он редактирует файлы. Причем использует умный diff, чтобы не переписывать файл целиком и не тратить токены.
Verify (Проверка): Вот тут киллер-фича. Он может сам запустить npm test или билд. Если тесты упали, он сам читает стэк-трейс, понимает, где накосячил, исправляет код и прогоняет тесты заново.
Проблема «Контекстного ожирения»
У любого инженера сразу возникает вопрос: «Если он сканирует весь проект, я разорюсь на токенах за 5 минут?»
Разработчики Anthropic решили это довольно элегантно. Они не грузят в контекст LLM весь репозиторий (это было бы безумием). Агент использует стратегию ленивой загрузки контекста.
Сначала он видит только список файлов (результат ls).
Потом он читает только те файлы, которые счел нужными.
Он выкусывает определения функций и типов, не забирая весь «мусор».
По сути, он работает как человек: мы ведь тоже не держим в оперативной памяти мозга весь код проекта, мы подгружаем нужные куски по мере необходимости.
2. Инструментарий: Руки и глаза нейросети
Давайте заглянем под капот. Сама по себе LLM (даже Claude 3.5 Sonnet) — это «мозг в банке». Она не может создать файл или запустить сервер. Она умеет только генерировать текст.
Чтобы этот текст превратился в действие, Claude Code использует концепцию Tool Use (или Function Calling). CLI-клиент на вашем компьютере выступает в роли «рук», а модель выдает инструкции в специальном формате (обычно это XML-подобные блоки), которые клиент парсит и исполняет.
Набор примитивов у агента довольно спартанский, но достаточный:
View: Чтение файла. Причем агент может читать не весь файл, а конкретные строки (например, с 10 по 50), чтобы экономить токены.
Edit: Изменение файла. Вместо того чтобы переписывать файл целиком (как это любят делать чат-боты, обрываясь на середине), он использует search-and-replace блоки. Это работает быстро и точечно.
Run: Доступ к терминалу. Это самое мощное оружие. Он может запустить npm install, git status или даже curl, чтобы проверить ответ API.
Трюк с grep
Отдельно хочется отметить, как агент работает с поиском. Вместо того чтобы просить вас «скинь мне файл с контроллером», он сам запускает grep.
Зачем? Это экономика токенов.
Искать строку через системный grep — бесплатно и мгновенно. Загружать гигабайты кода в контекст, чтобы LLM сама нашла там строку — дорого и медленно. Агент делегирует рутину утилитам ОС, оставляя себе только высокоуровневое мышление.
А он мне rm -rf / не сделает?
У любого нормального админа при словах «AI с доступом к терминалу» начинает дергаться глаз.
Разработчики это понимали, поэтому параноики могут (частично) выдохнуть.
В системе реализован механизм Human-in-the-loop для опасных операций.
Безопасные команды (типа ls, cat, grep) агент выполняет молча и быстро.
Опасные команды (изменение файлов, удаление, пуш в репозиторий, сетевые запросы) требуют явного подтверждения.
Вы видите в консоли:> I want to run: rm -rf ./temp_build_folder. Allow? [y/n]
Пока вы не нажмете y, ничего не произойдет. Хотя, признаюсь, когда ты в потоке, есть соблазн просто жать y на автомате — и вот тут кроется главная уязвимость. Не в AI, а в нашей лени.
3. Реальные кейсы: Где это работает, а не бесит
Окей, теория — это здорово. Но зачем мне в 2025 году вылезать из уютного VS Code в черно-белую консоль?
Я выделил три сценария, где агентный подход реально уделывает классические IDE.
А. Онбординг в «Легаси-ад» (/init и /ask)
Это, пожалуй, киллер-фича. Представьте: вы клонируете незнакомый репозиторий 5-летней давности. Документация протухла, авторы уволились.
Обычно вы тратите день, прыгая по файлам (Ctrl+Click), пытаясь понять, откуда ноги растут.
С Claude Code вы просто пишете:> claude "explain high level architecture and how auth flow works"
Агент не галлюцинирует общие фразы. Он:
Смотрит package.json.
Находит входную точку.
Трейсит вызовы по файлам.
Выдает вам саммари: «Используется Express, роуты лежат в /controllers, за логин отвечает Passport.js в файле auth.js».
Это как иметь под рукой сеньора, который знает проект, но не раздражается от глупых вопросов.
Б. Рефакторинг через тесты (TDD на стероидах)
Вот тут начинается магия агентного цикла.
Допустим, вам нужно отрефакторить старый класс. В IDE вы меняете код, запускаете тесты, видите красноту, чертыхаетесь, чините, перезапускаете.
В Claude Code вы ставите задачу иначе:
> "Refactor UserClass to use new API format. Run npm test after changes. If fails - fix it."
Вы идете наливать кофе. Агент:
Меняет код.
Запускает тесты.
Видит, что 3 теста упали.
Читает стэк-трейс ошибки (сам!).
Понимает, что забыл обновить моки.
Чинит моки.
Снова запускает тесты — GREEN.
Вы возвращаетесь — задача закрыта. Вы делегировали не написание кода, а обеспечение работоспособности.
В. «Почини то, не знаю что» (/bug)
Бывает, билд падает с ошибкой, в которую лень вникать. Какая-нибудь мутная зависимость или конфликт типов в TypeScript.
Вы просто скармливаете выхлоп консоли агенту.
Он сам находит нужный файл, строку, понимает контекст ошибки и предлагает патч. В отличие от StackOverflow, он предлагает решение именно для вашего кода, с учетом ваших версий библиотек.
4. Где больно: Деньги и Лаги
Звучит как магия? Увы, у физики и экономики свои законы. За автономность приходится платить — и временем, и долларами.
1. Token Burn (Сжигание денег)
В отличие от Copilot с его фиксированной подпиской за $10/мес, Claude Code работает через API. Вы платите за токены.
И тут кроется подвох «Агентного цикла». Поскольку агент читает, думает, ошибается и пробует снова — он гоняет контекст туда-сюда много раз.
Одна сложная задача (рефакторинг с тестами) может легко сжечь $1–2.
Если не следить за размером контекста, счет в конце месяца может неприятно удивить.
Лайфхак: Есть команда /compact. Она принудительно сжимает историю диалога, выкидывая старый контекст, чтобы сэкономить токены. Пользуйтесь ей чаще.
2. Latency (Это не для спешки)
Copilot выдает подсказку за 100 миллисекунд. Claude Code может «думать» над задачей от 10 секунд до минуты.
В это время вы сидите и смотрите на спиннер в терминале.
Это инструмент для ленивых, а не для спешащих. Если вам нужно просто дописать скобку — пишите руками. Если нужно перелопатить модуль — запускайте агента и идите наливать чай.
3. «У меня на машине работает»
Агент иногда путается в флагах системных утилит. Например, он может попытаться использовать флаги grep из GNU-версии (Linux), а у вас macOS (BSD-версия grep), и команда упадет. Обычно он сам видит ошибку и исправляется, но наблюдать за этим больно.
5. Итог: Удаляем Copilot?
Нет. И даже не отключаем подписку.
После недели тестов становится понятно, что эти инструменты живут в разных измерениях:
Copilot / Cursor — это ниша Micro-interactions. Быстро дописать, быстро поправить, здесь и сейчас. Это «экзоскелет» для ваших рук.
Claude Code — это ниша Macro-interactions. Это автономный джуниор, которому можно скинуть задачу «разберись и сделай», пока вы заняты архитектурой.
Но одно можно сказать точно: мы наблюдаем сдвиг парадигмы. Мы перестаем быть «писателями кода» и становимся «ревьюерами решений». И если честно, иметь в терминале напарника, который может сам запустить тесты и пофиксить баги, — это чертовски приятное будущее.