Skip to content

Как работает Claude Code

📚 Навигация по серии: В предыдущей статье 02 · Установка и использование мы установили и запустили Claude Code. В этой статье мы заглянем под капот и разберемся, как именно он работает — почему он сам читает код, изменяет файлы и выполняет команды, а не просто ведет беседу.

При первом использовании Claude Code часто можно встретить такой диалог:

Вы: «Почему этот тест упал?» Claude: «Сначала я запущу набор тестов, чтобы посмотреть.» (Запускает команду) Claude: «В ошибке сказано, что validateEmail вернул undefined, пойду посмотрю эту функцию.» (Читает файл) Claude: «Нашел, здесь не хватает return. Я исправлю это, а затем перезапущу тесты для проверки.» (Исправляет и снова запускает) Claude: «Тест пройден.»

Глядя на это, можно немного растеряться: я задал всего один вопрос, как он сам запустил команды, сам прочитал файлы, сам исправил и сам же проверил?

По сути, это и есть главное отличие Claude Code от обычного ИИ-чата. Обычный чат только «ответит вам текстом», а Claude Code будет сам выполнять работу. За этим стоит фиксированный рабочий механизм, который мы сегодня разберем от и до.

Прочитав эту статью, вы получите:

  • Понимание «цикла работы агента» (agentic loop) Claude Code по одной схеме — три действия, которые он повторяет при выполнении любой задачи
  • Понимание 5 категорий «инструментов», которые есть у него в арсенале, для чего они нужны и как он решает, какой из них использовать
  • Знание о том, что именно он может видеть на вашем компьютере, а что не может (что касается безопасности)
  • Небольшой эксперимент, который вы можете провести сами, чтобы своими глазами увидеть полный цикл его работы

01 Цикл агента: Думать → Делать → Проверять

Сразу к выводу: Что бы ни делал Claude Code, он повторяет три действия — сбор контекста, выполнение действия, проверка результата. Официально этот механизм называется «циклом агента (agentic loop)».

Говоря проще: Думать → Делать → Проверять.

  • Думать (сбор контекста): сначала разобраться в ситуации — прочитать нужные файлы, посмотреть ошибки, проверить статус git
  • Делать (выполнение действия): приступить к работе — изменить код, запустить команды, создать новые файлы
  • Проверять (проверка результата): убедиться, что сделанное правильно — запустить тесты, посмотреть вывод, если неправильно — начать цикл заново

Аналогия: надежный автомеханик. Вы загоняете машину в сервис и говорите «руль бьет», механик не станет сразу всё разбирать. Сначала он осмотрит всё, проедет пару метров (Думать), затем возьмет гаечный ключ (Делать), а после ремонта проедет еще раз, чтобы убедиться, что не бьет (Проверять). Если всё еще бьет — вернется к первому шагу. Claude Code — это такой же механик, только чинит он ваш код.

Вернемся к диалогу в начале статьи и сопоставим его:

Слова ClaudeК какому шагу цикла относится
«Сначала я запущу набор тестов»Думать (сбор контекста)
«В ошибке сказано undefined, пойду посмотрю эту функцию»Думать (продолжение сбора)
«Здесь не хватает return, я исправлю это»Делать (выполнение действия)
«Затем перезапущу тесты для проверки»Проверять (проверка результата)
«Тест пройден»Конец цикла

Он связывает эти три шага в цепочку, и результат одного шага определяет, что делать на следующем. Исправление бага может потребовать несколько циклов, а вопрос «что означает этот код» может завершиться только на шаге «Думать». Количество циклов определяется сложностью задачи, оно не фиксировано.

Цикл агента: Думать → Делать → Проверять

Изображение выше — это тот самый круг, по которому Claude Code ходит каждый раз при выполнении задачи: от «Думать» к «Делать» и к «Проверять», и если его не устраивает результат, он сворачивает от «Проверять» обратно к «Думать» и начинает новый круг. Вы в любой момент можете нажать Esc, чтобы остановить его.

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

Этот цикл приводят в движение две вещи: Модель отвечает за «Думать», а Инструменты отвечают за «Делать» и «Проверять».

Модель — это мозг Claude: Sonnet достаточно для повседневного программирования, Opus сильнее в рассуждениях и подходит для сложной архитектуры. Во время сеанса можно ввести /model, чтобы переключиться, или указать при запуске claude --model sonnet.

💡 Краткий итог: Claude Code — это не «ответ текстом», это цикл «Думать → Делать → Проверять», который крутится, пока работа не будет выполнена. В этом и заключается его принципиальное отличие от чата.


02 Вы тоже в цикле: можно прервать в любой момент

В конце предыдущего раздела было сказано: вы тоже являетесь частью этого цикла. Развернем эту мысль. Обычный ИИ-чат работает так: «вы спросили, он ответил, раунд завершен». Claude Code работает иначе — когда он крутится в своем цикле, вам не нужно сидеть и ждать, вы можете вмешаться в любой момент.

Например, вы просите его провести рефакторинг модуля. Видите, что он свернул не туда и собирается изменить кучу файлов — просто нажимаете Esc. Он немедленно остановится, и текущая выполняемая команда тоже будет отменена. Добавьте: «Не трогай этот файл, измени только эту функцию», и он продолжит работу в соответствии с новым указанием.

Есть два способа прерывания, важно различать их:

ДействиеЭффектКогда использовать
Нажать EscНемедленная остановка, текущий вызов инструмента отменяется, ждет вашей следующей инструкцииОн пошел не туда, делает что-то не то — срочно остановить
Ввод текста + EnterНе прерывает текущую операцию, отправляет дополнительное сообщение, он прочитает его, как только закончит текущее делоПросто хотите добавить контекст или напомнить, без срочной остановки

Вам не нужно выдавливать из себя «идеальный промпт». Опишите суть, посмотрите, что он делает, и поправьте, если нужно — это диалог, а не одноразовая команда.

Это слова из официальной документации, и их особенно стоит запомнить. Когда только начинаешь пользоваться, хочется «всё расписать одной фразой» и долго сидишь, подбирая слова. На самом деле это не нужно: задайте общее направление, а если он ошибется — остановите. Итерации работают гораздо быстрее, чем ожидание «идеального удара».

💡 Краткий итог: Он работает автономно, но всегда подчиняется вам — экстренная остановка по Esc или уточнение на ходу. Руль всегда в ваших руках.


03 Инструменты: причина, по которой он может действовать

В предыдущем разделе мы сказали, что Модель отвечает за «Думать». А за счет чего он «Делает» и «Проверяет»? Инструменты (Tools).

Это самая важная фраза, которую нужно запомнить о Claude Code: без инструментов Claude может отвечать только текстом; с инструментами он может по-настоящему читать ваш код, изменять файлы и выполнять команды.

Аналогия: помощник с умным браслетом. Помощник, который умеет только говорить, может лишь давать советы. Если дать ему устройство, открывающее двери, печатающее текст и ищущее информацию, он сможет делать работу за вас. Инструменты — это «руки» Claude Code.

Официально встроенные инструменты делятся на 5 больших категорий. Опишу их простыми словами:

Категория инструментовЧто умеетЧему соответствует из ваших действий
Работа с файламиЧитать файлы, изменять код, создавать, переименовывать, реорганизовыватьВы открываете файл в редакторе, печатаете, сохраняете
ПоискИскать файлы по имени, использовать регулярные выражения для поиска внутри, сканировать всю кодовую базуВы нажимаете Ctrl+F или используете grep
Выполнение (Execute)Выполнять shell-команды, запускать серверы, тесты, использовать gitВы вводите команду в терминале и нажимаете Enter
СетьИскать веб-страницы, получать документацию, искать информацию об ошибкахВы открываете браузер, чтобы загуглить ошибку
Анализ кодаПросматривать ошибки и предупреждения типов, переходить к определению, искать ссылки«Перейти к определению» или «Найти ссылки» в IDE

⚠️ Внимание: 5-я категория «Анализ кода» требует дополнительной установки плагинов для анализа кода, первые 4 категории работают из коробки. Актуальная информация — в официальной документации.

А как он решает, какой инструмент использовать? Это не вы ему указываете, это сама модель выбирает на основе ваших слов и текущего прогресса.

Вот официальный пример. Вы говорите «Исправь упавшие тесты», внутри него это выглядит примерно так:

  1. Запускает набор тестов, чтобы посмотреть, что упало — использует Выполнение
  2. Читает вывод ошибки — Выполнение
  3. Ищет связанные исходные файлы — Поиск
  4. Читает эти файлы, чтобы понять логику — Работа с файлами
  5. Изменяет файлы для исправления бага — Работа с файлами
  6. Снова запускает тесты для проверки — Выполнение

Заметили? Эти 6 шагов — это развертывание цикла «Думать → Делать → Проверять» на уровне инструментов. При каждом использовании инструмента он получает немного новой информации, передает ее модели для определения следующего шага — так и крутится этот цикл.

Типичный сценарий: попросить его «разобраться в структуре каталогов» в старом проекте без документации. Вам не нужно скармливать ему файлы — он сам сделает ls, сам поищет ключевые слова через grep, прочитает семь-восемь файлов и в итоге нарисует схему структуры. И всё это без указания конкретных файлов с вашей стороны — это и есть то, что официально называется «делегируйте, а не инструктируйте»: задайте направление, а в деталях он разберется сам.

Что касается Skill, MCP, Hook, Subagent — это уровни расширения, построенные поверх этих 5 категорий встроенных инструментов, которые позволяют Claude знать больше и подключаться к большему количеству внешних сервисов. Мы разберем их в следующих статьях, пока просто знайте, что они существуют.

💡 Краткий итог: Инструменты — это «руки» Claude Code. Каждая из 5 категорий отвечает за свое. Какой использовать и сколько раз — решает он сам, вам нужно только обозначить цель.


04 Что он может видеть на вашем компьютере

Этот раздел касается безопасности, поэтому нужно всё прояснить. У многих при первом использовании возникает сомнение: а не просканировал ли он весь мой жесткий диск и не отправил ли куда-нибудь? Нет.

Запомните правило: «Область видимости» Claude Code в основном равна тому, до чего может дотянуться ваш терминал в текущей директории. В какой папке вы запустили claude, там и будет центр его активности.

Согласно официальной документации, когда вы запускаете claude в определенной директории, он может получить доступ к:

  • Вашему проекту: файлам в текущей директории и поддиректориях (чтобы трогать файлы в других местах, вы должны дать ему права)
  • Вашему терминалу: любым командам, которые вы можете запустить — инструменты сборки, git, пакетные менеджеры, скрипты. Что может командная строка, то может и он
  • Статусу вашего git: текущей ветке, незакоммиченным изменениям, недавней истории коммитов
  • Вашему CLAUDE.md: спецификации проекта, которую вы написали. Он читает ее при каждом сеансе (о ней будет отдельная статья)
  • Настроенным расширениям: MCP, Skill, Subagent и т.д.

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

Как же обеспечивается безопасность? Есть два рубежа защиты —

Первый рубеж: Контрольные точки (checkpoints), как сохранения в играх. Перед изменением любого файла он делает снимок (snapshot) текущего состояния. Если он что-то сломал, дважды нажмите Esc (или введите /rewind), пока поле ввода пустое — появится «Меню возврата (rewind)», выберите «Восстановить код (Restore Code)», и файл вернется в состояние до изменений. Или можно просто сказать «отмени последние изменения».

Контрольные точки работают только для файлов, измененных инструментами редактирования Claude — команды bash или внешние побочные эффекты не покрываются. Операции с базами данных, API, деплой на прод и другие необратимые действия не могут быть сохранены, поэтому перед выполнением таких команд Claude всегда спрашивает вас.

Здесь часто бывает ловушка: иногда он изменяет пять-шесть файлов, вы смотрите и понимаете, что направление выбрано неверно. Раньше пришлось бы вручную откатывать каждый через git checkout, а теперь — дважды нажать Esc, выбрать «Восстановить код», и все пять файлов разом вернутся к исходному состоянию. С этой функцией гораздо спокойнее позволять ему менять код.

Второй рубеж: Режимы разрешений, как стажер, спрашивающий перед действием. Нажмите Shift+Tab для циклического переключения:

Режим разрешенийПоведение Claude
По умолчанию (Default)Спрашивает перед изменением файлов или запуском команд
Автоматически принимать правки (Auto-accept edits)Не спрашивает перед изменением файлов и распространенными командами для файлов (например, mkdir, mv), но всё еще спрашивает для других команд
Режим планирования (Plan Mode)Может читать файлы и запускать исследовательские команды, но не редактирует исходный код; сначала дает вам план, и только после вашего одобрения приступает к делу
Автоматический режим (Auto Mode)Использует фоновые проверки безопасности для оценки всех действий (экспериментальная функция, превью-версия, может меняться)

Самая полезная привычка — использовать Plan Mode: перед сложной задачей дважды нажмите Shift+Tab, чтобы он «только анализировал, выдавал план, но ничего не менял». Просмотрите план, подкорректируйте, и только после подтверждения дайте ему выполнить. Это помогает избежать необходимости переделывать работу, если «направление изначально было неверным» — посмотреть чертеж перед стройкой гораздо эффективнее, чем строить и ломать на ходу.

Надоело постоянно подтверждать? Вы можете добавить доверенные команды (например, npm test, git status) в белый список в .claude/settings.json проекта. Подробнее о настройках расскажем позже.

💡 Краткий итог: Его видимость ≈ ваши права в терминале текущей папки. Контрольные точки отвечают за «отмену поломок», а режимы разрешений — за «спрашивать ли перед действием». С этими двумя рубежами использовать его можно без опаски.


05 Практика: своими глазами увидеть полный цикл

Чтение теории быстро забывается, поэтому давайте проведем минимальный эксперимент, чтобы своими глазами увидеть цикл «Думать → Делать → Проверять». Этот эксперимент не зависит от существующих проектов, просто создайте пустую папку.

Шаг первый: Создайте пустую директорию, перейдите в нее и запустите Claude Code.

Выполните в терминале (для Mac / Linux; в Windows PowerShell замените mkdir -p на mkdir):

bash
mkdir -p ~/cc-demo && cd ~/cc-demo
claude

Шаг второй: После входа переключитесь в Plan Mode (режим планирования), чтобы посмотреть, как он «думает».

Дважды нажмите Shift+Tab, внизу интерфейса появится сообщение о переходе в Plan Mode. Затем введите:

text
Напиши мне Python скрипт add.py, в нем одну функцию add(a, b), которая возвращает сумму двух чисел,
затем напиши несколько тест-кейсов для проверки и запусти их. Сначала дай мне план, ничего сразу не делай.

Ожидаемый результат: Он не станет сразу создавать файлы, а сначала выдаст вам план, примерно такой:

text
План:
1. Создать add.py, реализовать add(a, b)
2. Создать тесты (используя assert или pytest)
3. Запустить тесты, убедиться, что все проходят

Мне начать?

Это и есть «Думать» — он прояснил ход мыслей перед началом работы. Обратите внимание, что он остановился и ждет вашего одобрения, это особенность режима планирования.

Шаг третий: Одобрить, чтобы увидеть «Делать» + «Проверять».

Ответьте: «Да, начинай». Далее вы увидите, как он последовательно:

  • Создает файл (инструмент работы с файлами) — возможно, сначала появится запрос на подтверждение прав, нажмите согласиться
  • После написания запускает тесты (инструмент выполнения), например выполняет python add.py или pytest
  • Вставляет вывод тестов, ожидается примерно следующее:
text
Тесты пройдены: add(2, 3) == 5 ✓  add(-1, 1) == 0 ✓  add(0, 0) == 0 ✓

На этом этапе вы увидели полный цикл: Думать (выдача плана) → Делать (создание файлов, написание кода) → Проверять (запуск тестов и отчет о результатах).

Шаг четвертый (опционально): Намеренно спровоцируйте «перезапуск цикла».

Скажите ему: «Измени add на вычитание, но имя функции не меняй, а затем снова запусти тесты.»

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

Каждому новичку стоит провести этот эксперимент. Это гораздо полезнее, чем десять раз прочитать слова «цикл агента» — увидеть своими глазами, как он останавливается для выдачи плана, затем выполняет, а потом проверяет, позволяет понять суть намного быстрее.

💡 Краткий итог: Проведите этот минимальный эксперимент, и вы увидите цикл «Думать → Делать → Проверять» в действии — особенно тот момент, когда он сам находит ошибку и автоматически начинает заново.


06 Заключение

В этой статье мы прояснили одну вещь: Почему Claude Code может работать самостоятельно.

Кратко вспомним главное:

Ключевой моментВ одной фразе
Цикл агентаДумать → Делать → Проверять, крутится до завершения; в этом его отличие от чата
Модель + ИнструментыМодель отвечает за мысли, инструменты — за действия и проверки
5 категорий инструментовФайлы / Поиск / Выполнение / Сеть / Анализ кода; он сам решает, что использовать
Что он может видеть≈ ваши права в терминале текущей папки, может координировать несколько файлов
Два рубежа защитыКонтрольные точки (отмена при ошибке) + Режимы разрешений (когда спрашивать)

Теперь вы должны понимать, что происходит на экране, когда Claude Code выполняет задачу — каждый прочитанный файл, каждая запущенная команда являются шагами в его цикле. Вы также знаете, как использовать Esc для экстренной остановки, режим планирования для просмотра плана и контрольные точки, чтобы без страха разрешать ему менять код.

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


В следующей статье 04 · Конфигурация API: Claude Code установлен, принципы его работы ясны, но для реальной работы ему нужно подключиться к модели. В следующей статье мы настроим API — только после этого всё, что мы узнали о циклах и инструментах, сможет заработать на полную мощность.


Рекомендуется к прочтению