Claude Code: работа с coding-агентом2. Как устроен coding-агент
Turn: что происходит между вашим промптом и ответом
Засчитывается, когда отвечены все вопросы квиза
Зачем это нужно
Вы пишете агенту «почини падающие тесты» и через пару минут получаете ответ «готово». Снаружи это выглядит как один вопрос и один ответ. Но если спросить себя, сколько раз за эти две минуты Claude Code обратился к модели, большинство разработчиков не ответит. А от этого числа зависят и скорость, и цена, и то, почему длинная сессия со временем начинает работать хуже.
Чтобы дальше разговаривать про контекст, кэш и стоимость, нужен общий словарь: model provider request, tool call, tool result и turn. В этом Bite разберём, что они значат и как связаны.
Как это устроено
Claude Code работает на вашей машине, а модель — у провайдера, в облаке. Документация называет Claude Code слоем вокруг модели: он даёт модели tools и управляет контекстом, который модель видит. Этот слой и есть agentic harness.
Model provider request — один обмен с моделью: harness отправляет запрос, модель возвращает ответ. Модель сама ничего не делает в вашем репозитории: она умеет только отвечать текстом. Чтобы она могла действовать, harness передаёт в запросе описания tools — какие инструменты есть и какие у них параметры. Документация делит встроенные tools на пять групп: работа с файлами, поиск, выполнение команд, веб и code intelligence.
Если модели нужно действие, она отвечает не текстом для вас, а tool call — указанием вызвать инструмент с конкретными параметрами: например, записать файл с таким-то путём и содержимым. Tool call — это только намерение. Выполняет его harness: пишет файл, запускает команду, читает вывод. Результат выполнения, tool result, harness отправляет модели в следующем запросе. Модель смотрит на результат и решает, что дальше: ещё один tool call или ответ вам.
Turn — весь этот цикл от вашего сообщения до финального ответа агента, со всеми tool calls и tool results между ними. Простой ответ на «привет» — один запрос. Задача «почини тесты» — десятки: документация описывает, как Claude прогоняет тесты, читает ошибки, ищет нужные файлы, читает их, правит и снова запускает тесты, и каждый шаг даёт новую информацию для следующего. Это и есть agentic loop.
Главное, что стоит запомнить: каждый запрос несёт всю историю. Модель ничего не помнит между запросами, поэтому harness каждый раз отправляет system prompt, описания tools, все ваши прошлые сообщения, все ответы модели и все tool results. Документация о стоимости говорит то же: Claude Code отправляет весь разговор с каждым запросом, а каждое использование tools — это ещё один запрос с пачкой результатов. Запросы растут с каждым шагом сессии.
Кроме того, не каждый запрос — ваш turn. Когда включены подсказки следующего промпта, Claude Code после ответа отправляет модели ещё один короткий запрос, чтобы предложить, что вы напишете дальше. Всё, что в интерфейсе выглядит сгенерированным, пришло из какого-то запроса к модели.
Практика
Дайте Claude Code в учебном репозитории задачу, которой нужен tool:
Create compliments.md in the repository root with three compliments for me.
Пока агент работает, смотрите в терминал: перед ответом вы увидите, какие tools он вызвал и с какими параметрами — например, запись файла с путём. Посчитайте вызовы tools: каждый из них означает минимум ещё один запрос к модели внутри этого turn. Сами запросы целиком вы увидите в Lab-е этого раздела.
Подводные камни
- «Один вопрос — один запрос» — неверная модель. Короткая просьба может развернуться в десятки запросов, если агенту нужно искать, читать и проверять.
- Большой tool result остаётся в истории. Вывод длинной команды или огромный файл, прочитанный один раз, уходит модели во всех следующих запросах сессии, пока его не вытеснит compaction или новая сессия.
- Tool call ещё не действие. Модель только предлагает вызов; выполняет и ограничивает его harness — отсюда permissions, о которых пойдёт речь дальше в курсе.
Вывод: turn — это цикл запросов, а не один запрос, и каждый запрос везёт с собой всю историю. Всё, что попало в сессию, вы оплачиваете снова и снова.
Проверь себя
Вы попросили агента исправить падающий тест. Он запустил тесты, прочитал два файла, внёс правку и снова запустил тесты, после чего ответил вам. Сколько turns прошло?
Модель вернула tool call с параметрами file_path и content. Кто создаёт файл на диске?
В начале сессии агент прочитал лог на 5 000 строк. Через десять сообщений вы задаёте короткий вопрос. Что модель получит в запросе?
В интерфейсе после ответа агента появилась подсказка, что написать дальше. Откуда она взялась?
Источники
- Anthropic, How Claude Code works
- Anthropic, Manage costs effectively
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.