Как работает Claude Code
Чтобы уверенно пользоваться агентом, нужно понимать, что у него внутри. Здесь ничего сложного: языковая модель, набор инструментов, цикл, который их связывает, и ограниченная память под названием «контекстное окно». Плюс система прав, которая решает, что агент может сделать без вашего подтверждения. Разберём каждую часть.
Агентный цикл
Когда вы отправляете задачу, Claude Code не генерирует один ответ. Он проходит через повторяющийся цикл, который документация описывает тремя фазами: собрать контекст, выполнить действие, проверить результат. Фазы перемешиваются: поиск по файлам, правка, запуск тестов — всё это инструменты, которые модель вызывает по ходу дела.
Механика цикла выглядит так:
- Модель читает ваш запрос и всё, что уже есть в контексте.
- Она решает, какой инструмент вызвать, и с какими параметрами: «прочитай файл
src/auth/session.ts», «выполниnpm test». - Claude Code (программа-обёртка, документация называет её harness — «упряжь») выполняет вызов и возвращает результат: содержимое файла, вывод команды.
- Результат добавляется в контекст, и модель снова думает: что делать дальше.
Так продолжается, пока модель не решит, что задача выполнена, или пока вы её не остановите. Возьмём запрос «почини падающие тесты». Документация приводит типичную цепочку: запустить тесты и увидеть, что падает; прочитать вывод; найти поиском исходники; прочитать их; внести правку; снова запустить тесты. Шесть вызовов инструментов, и каждый следующий выбирается по результату предыдущего. Никто не писал этот сценарий заранее — модель строит его на ходу.
Вы тоже часть цикла. В любой момент можно нажать Esc и остановить агента, добавить контекст или попросить пойти другим путём. Можно и не останавливать: набрать поправку и нажать Enter — модель прочитает её после завершения текущего действия и учтёт на следующем шаге.
Инструменты
Без инструментов модель может только отвечать текстом. Инструменты дают ей возможность действовать. Встроенный набор Claude Code документация делит на пять групп.
- Файлы: прочитать файл, отредактировать фрагмент, создать новый. Внутри это инструменты
Read,Edit,Write. - Поиск: найти файлы по маске (
Glob) и по содержимому регулярным выражением (Grep). - Выполнение: запуск команд оболочки через
Bash— тесты, сборка, git, любые утилиты, которые доступны вам в терминале. - Веб: поиск в интернете и загрузка страниц документации.
- Интеллект кода: ошибки типов после правок, переход к определению — требует установки плагинов code intelligence для вашего языка.
Кроме этого есть инструмент запуска субагентов (Agent) и инструмент для вопросов вам. Названия инструментов пригодятся позже: они используются в правилах прав и в хуках. Полный список — в справочнике по инструментам.
Когда мы говорим «Claude решает», речь идёт о модели. Claude Code — это обёртка, которая предоставляет инструменты, следит за контекстом и запускает команды. Модель можно менять: /model во время сессии или claude --model <имя> при запуске. Sonnet справляется с большинством задач, Opus сильнее в архитектурных решениях.
Что агент видит
Запуск claude в папке проекта даёт агенту доступ к нескольким вещам:
- Проект: файлы в текущей папке и подпапках. Файлы за пределами — только с вашего разрешения.
- Терминал: всё, что можете запустить вы: сборка, git, менеджеры пакетов, скрипты.
- Состояние git: ветка, незакоммиченные изменения, недавние коммиты.
- CLAUDE.md: файл с инструкциями для проекта, который читается в начале каждой сессии.
- Автоматическая память: заметки, которые Claude сохраняет сам по ходу работы — ваши предпочтения, поправки.
- Расширения: MCP-серверы, навыки, субагенты, если вы их настроили.
Для команды, где в одном репозитории живут Next.js-фронтенд и Python-бэкенд, это означает: агент, запущенный в корне, видит обе части и может внести согласованную правку в API и в клиентский код. Если запустить его в подпапке, он увидит только её.
Контекстное окно
Контекстное окно — это всё, что модель «держит в голове» в данный момент: системные инструкции, содержимое CLAUDE.md, автоматическая память, описания навыков, ваша переписка, содержимое прочитанных файлов и вывод команд. Оно ограничено, и это главное практическое ограничение при работе с агентом.
Окно заполняется быстро. Один разбор бага с чтением десятка файлов и парой прогонов тестов — это десятки тысяч токенов. Когда окно близко к пределу, Claude Code сначала убирает старые результаты инструментов, потом сжимает разговор в краткое резюме. Ваши запросы и ключевые фрагменты кода сохраняются, а подробные инструкции из начала разговора могут потеряться. Отсюда правило: всё, что должно действовать постоянно, кладите в CLAUDE.md, а не в первое сообщение.
Посмотреть, чем занято окно, можно командой /context. Управлять им — /clear (новый разговор с пустым контекстом) и /compact (сжать текущий). Этому посвящён отдельный урок.
Права
Агент, который может выполнять команды в вашем терминале, требует контроля. У Claude Code он многоуровневый.
Режимы прав задают базовое поведение сессии. В ручном режиме (в конфигурации он называется default) агент спрашивает разрешение перед правкой файла и перед запуском большинства команд; чтение файлов и встроенный набор безопасных команд вроде git status разрешения не требуют. Режим acceptEdits разрешает правки файлов внутри рабочей папки без вопросов, но по-прежнему спрашивает про команды. Режим plan запрещает правки вовсе: агент только исследует и предлагает план. Режим auto заменяет ваше подтверждение отдельной моделью-классификатором, которая проверяет действия в фоне; на планах Pro, Max и Team это стартовый режим для терминала и VS Code. Переключаются режимы клавишами Shift+Tab; подробнее — в уроке про первый промпт.
Правила прав уточняют режим. В settings.json можно перечислить, что разрешено всегда, что запрещено всегда и о чём спрашивать:
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git status)"],
"deny": ["Read(./.env)", "Bash(rm -rf *)"]
}
}Правило Bash(npm run *) разрешает любую команду, начинающуюся с npm run, без запроса. Правило deny действует в любом режиме. Когда в диалоге подтверждения вы выбираете «Да, и больше не спрашивать», Claude Code сам записывает такое правило в .claude/settings.local.json в корне репозитория. Управлять правилами можно командой /permissions.
Важная деталь: правила прав применяет сама программа Claude Code, а не модель. Инструкция «не трогай .env» в CLAUDE.md — это пожелание, которому модель обычно следует. Правило deny для Read(./.env) — запрет, который нельзя обойти. Для того, что действительно нельзя делать, используйте правила и хуки, а не инструкции.
Контрольные точки
Перед каждой правкой файла Claude Code сохраняет его снимок. Если что-то пошло не так, двойное нажатие Esc открывает меню отката: можно вернуть разговор, код или и то и другое к любому предыдущему состоянию. Это работает отдельно от git и сохраняется при возобновлении сессии. Учтите, что снимки покрывают только правки через инструменты редактирования — изменения через команды в Bash и действия на удалённых системах (база, деплой) откатить так нельзя.
Сессии сохраняются локально в ~/.claude/projects/. Продолжить последнюю можно командой claude --continue, выбрать из списка — claude --resume или /resume внутри сессии.
Попробуйте сами
10–15 мин на рабочем месте- Запустите Claude Code в любом проекте и попросите: «объясни, как здесь устроена конфигурация окружения». Посмотрите на список вызовов инструментов: какие файлы он искал, что читал, в каком порядке. Это агентный цикл в чистом виде.
- В той же сессии наберите
/contextи посмотрите, чем занято окно ещё до того, как вы начали серьёзную работу. - Откройте
~/.claude/settings.json(или/permissions) и найдите, есть ли уже правилаallow. Если работали с Claude Code раньше, там наверняка что-то накопилось от кнопки «больше не спрашивать».
Коротко
- Агентный цикл: модель выбирает инструмент → Claude Code выполняет вызов → результат возвращается в контекст → модель думает дальше.
- Инструменты: чтение и правка файлов, поиск, команды оболочки, веб, субагенты. Их имена используются в правилах и хуках.
- Контекстное окно ограничено и заполняется быстро; постоянные инструкции живут в CLAUDE.md, а не в переписке.
- Режимы прав задают базу (ручной, acceptEdits, plan, auto), правила
allow/denyуточняют её. - Правила прав применяет программа, а не модель — они не обходятся инструкциями.
- Контрольные точки (
Escдважды) откатывают правки файлов; команды и удалённые системы они не покрывают.
Видеоверсия
Сценарий озвучки · 516 слов, ≈ 4 мин
Чтобы уверенно работать с агентом, полезно понимать, что у него внутри. В этом ролике разберём четыре вещи: агентный цикл, инструменты, контекстное окно и права.
Начнём с цикла. Когда вы отправляете задачу, Claude Code не выдаёт один ответ. Модель читает запрос, решает, какой инструмент вызвать — например, прочитать файл или запустить тесты. Программа выполняет вызов и возвращает результат. Результат попадает в контекст, и модель снова думает, что делать дальше. И так по кругу, пока задача не выполнена или пока вы не остановите процесс.
Возьмём запрос «почини падающие тесты». Типичная цепочка: запустить тесты, прочитать вывод, найти поиском исходники, прочитать их, внести правку, снова запустить тесты. Шесть шагов, и каждый следующий выбран по результату предыдущего. Никто не писал этот сценарий заранее.
Вы тоже участник цикла. Клавиша Escape останавливает агента в любой момент. А можно не останавливать: набрать поправку, нажать Enter, и модель учтёт её на следующем шаге.
Теперь инструменты. Без них модель умеет только отвечать текстом. С ними — действовать. Есть инструменты для файлов: прочитать, отредактировать, создать. Есть поиск: по именам файлов и по содержимому. Есть выполнение команд в оболочке — всё, что вы сами можете запустить в терминале. Есть работа с вебом. И есть запуск субагентов. Названия инструментов пригодятся позже, когда будем писать правила прав и хуки.
Что видит агент, когда вы запускаете его в папке проекта? Файлы в этой папке и ниже. Ваш терминал. Состояние git: ветку, незакоммиченные изменения, последние коммиты. Файл клод-эм-дэ с инструкциями. И автоматическую память — заметки, которые Claude оставляет себе сам. Если в одном репозитории фронтенд на Next и бэкенд на Python, агент из корня видит обе части и может внести согласованную правку в обе.
Дальше — контекстное окно. Это всё, что модель держит в голове прямо сейчас: системные инструкции, файл с правилами проекта, переписка, прочитанные файлы, вывод команд. Окно ограничено и заполняется быстро. Один разбор бага с десятком прочитанных файлов — это десятки тысяч токенов. Когда место кончается, Claude Code убирает старые результаты и сжимает разговор в резюме. Ключевое сохраняется, но подробные инструкции из начала могут потеряться. Поэтому правило: всё постоянное — в файл клод-эм-дэ, а не в первое сообщение.
И права. Агент, который запускает команды в вашем терминале, требует контроля. Первый уровень — режимы. В ручном режиме агент спрашивает перед правкой файла и перед большинством команд. Режим «принимать правки» разрешает менять файлы без вопросов, но команды по-прежнему подтверждаются. Режим плана запрещает правки вовсе: только исследование и предложение. А режим авто заменяет ваше подтверждение отдельной моделью-классификатором. Переключаются режимы сочетанием Shift и Tab.
Второй уровень — правила. В файле настроек можно перечислить, что разрешено всегда, а что запрещено всегда. Например, разрешить любую команду, начинающуюся с «npm run», и запретить чтение файла с секретами. Важно: правила применяет сама программа, а не модель. Просьба «не трогай файл с секретами» в инструкциях — пожелание. Правило запрета — граница, которую нельзя обойти.
И последнее — контрольные точки. Перед каждой правкой файла Claude Code сохраняет его снимок. Двойное нажатие Escape открывает меню отката: можно вернуть код, разговор или всё вместе. Это работает отдельно от git. Но снимки покрывают только правки через инструменты редактирования — изменения через команды и действия на удалённых системах так не откатить.
В следующем уроке установим Claude Code во всех вариантах: терминал, VS Code, JetBrains, десктоп и веб.
