Начнём с факта, который часто упускают: языковая модель — это функция «текст на входе → текст на выходе». Она не умеет открывать файлы, ходить в интернет или запускать команды. Она заперта в комнате и общается только записками.
Как же тогда Claude Code правит ваши файлы и деплоит проекты? Ответ: не модель выполняет действия — их выполняет программа-обвязка вокруг модели, а модель лишь говорит ей, что сделать.
Современные модели обучены особому навыку — вызову инструментов. Вместо обычного текстового ответа модель может вернуть структурированный запрос: «выполни инструмент read_file с параметром путь=отчёт.md». Обвязка выполняет это действие и отправляет результат обратно в модель — как новое сообщение в диалоге.
Каждый инструмент описан модели заранее (в системном промпте): название, что делает, какие параметры принимает. Модель выбирает инструмент так же, как подбирает слова — предсказывая, что уместно. Источники: доки Anthropic по tool use, доки OpenAI по function calling.
Один вызов инструмента — ещё не агент. Агент появляется, когда вызовы замыкаются в цикл:
Модель смотрит на задачу и весь накопленный контекст, выбирает следующее действие, получает результат — и снова решает. Так повторяется, пока она не сочтёт задачу выполненной и не ответит обычным текстом — это и есть сигнал выхода из цикла. Источник: How the Agent Loop Works, доки Claude Agent SDK.
Модель сама не выполняет ничего — она умеет только писать текст. «Вызов инструмента» — это текст особого формата: модель пишет заявку «вызываю send_email, кому: …, тема: …» (технически — фрагмент в формате JSON, машиночитаемой записи).
Заявку перехватывает обвязка — обычная программа вокруг модели. Она выполняет настоящее действие (дёргает почтовый сервис, читает файл) и кладёт результат обратно в контекст следующим сообщением. Для модели это выглядит так, будто собеседник ответил.
Отсюда важное следствие: что агент реально может, определяет обвязка, а не модель. Модель решает, «что сделать», — делает всегда обвязка. На этом построена вся безопасность агентов (дойдём в уроке 8).
Так это текст или отдельная сущность? И то и другое — на разных уровнях. Изнутри модели это текст: заявка на бланке строгой формы, которому модель специально обучена.
Но «секретарь» на стороне провайдера этот бланк распознаёт и проверяет: корректен ли JSON, совпадают ли поля со схемой инструмента. Вашей программе он отдаёт уже отдельную структурированную сущность — блок tool_use с именем инструмента и аргументами.
Может ли модель ответить текстом и вызовом одновременно? Да, это обычное дело. Ответ модели — не одна реплика, а список блоков: рядом могут лежать текст («Сейчас проверю расписание…») и один или даже несколько вызовов инструментов сразу — это называют параллельными вызовами.
Вы видите это в Claude Code каждый день: пояснение перед запуском команды — текстовый блок, сама команда — блок вызова из того же ответа.
Когда в ответе есть вызов, он помечен причиной остановки stop_reason: "tool_use" — «остановилась, жду результат». Обвязка выполняет инструмент, возвращает результат — цикл продолжается. (доки Anthropic, Tool Use)
Поразительный факт: академический разбор исходников Claude Code (arXiv, апрель 2026) показал, что его ядро — именно такой простой цикл «вызвать модель → выполнить инструменты → повторить». Всё остальное — права доступа, управление контекстом, восстановление после ошибок — та самая программная обвязка вокруг цикла; её называют харнессом (harness — «упряжь»).
Anthropic в каноническом тексте «Building Effective Agents» проводит границу, которой пользуется вся индустрия:
Практическое правило (его же повторяет гайд OpenAI): начинайте с самого простого решения. Если задачу можно решить фиксированным конвейером — стройте конвейер. Агент нужен тогда, когда маршрут заранее неизвестен. Это первый вопрос, который стоит задавать, когда вы заказываете приложение у Claude Code: «здесь правда нужен агент — или хватит workflow?»
«найди в этом проекте три места, где обрабатываются ошибки хуже всего, и объясни почему — ничего не правь».Grep, Read, Bash — это виток цикла «модель → инструмент → результат → модель».В следующем уроке разберём контекстное окно — главный дефицитный ресурс агента: почему агенты «тупеют» на длинных задачах, что такое компакция и зачем Claude Code субагенты. Это второй кит, на котором стоит вся агентная инженерия.