Как работает 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 категории работают из коробки. Актуальная информация — в официальной документации.
А как он решает, какой инструмент использовать? Это не вы ему указываете, это сама модель выбирает на основе ваших слов и текущего прогресса.
Вот официальный пример. Вы говорите «Исправь упавшие тесты», внутри него это выглядит примерно так:
- Запускает набор тестов, чтобы посмотреть, что упало — использует Выполнение
- Читает вывод ошибки — Выполнение
- Ищет связанные исходные файлы — Поиск
- Читает эти файлы, чтобы понять логику — Работа с файлами
- Изменяет файлы для исправления бага — Работа с файлами
- Снова запускает тесты для проверки — Выполнение
Заметили? Эти 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):
mkdir -p ~/cc-demo && cd ~/cc-demo
claudeШаг второй: После входа переключитесь в Plan Mode (режим планирования), чтобы посмотреть, как он «думает».
Дважды нажмите Shift+Tab, внизу интерфейса появится сообщение о переходе в Plan Mode. Затем введите:
Напиши мне Python скрипт add.py, в нем одну функцию add(a, b), которая возвращает сумму двух чисел,
затем напиши несколько тест-кейсов для проверки и запусти их. Сначала дай мне план, ничего сразу не делай.Ожидаемый результат: Он не станет сразу создавать файлы, а сначала выдаст вам план, примерно такой:
План:
1. Создать add.py, реализовать add(a, b)
2. Создать тесты (используя assert или pytest)
3. Запустить тесты, убедиться, что все проходят
Мне начать?Это и есть «Думать» — он прояснил ход мыслей перед началом работы. Обратите внимание, что он остановился и ждет вашего одобрения, это особенность режима планирования.
Шаг третий: Одобрить, чтобы увидеть «Делать» + «Проверять».
Ответьте: «Да, начинай». Далее вы увидите, как он последовательно:
- Создает файл (инструмент работы с файлами) — возможно, сначала появится запрос на подтверждение прав, нажмите согласиться
- После написания запускает тесты (инструмент выполнения), например выполняет
python add.pyилиpytest - Вставляет вывод тестов, ожидается примерно следующее:
Тесты пройдены: 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 — только после этого всё, что мы узнали о циклах и инструментах, сможет заработать на полную мощность.