Урок 1 · Основы · ~12 минут

Анатомия агента: цикл, который всё меняет

⌂ Все уроки · Актуально на 10 июня 2026 · все утверждения опираются на первоисточники (ссылки в тексте) · термины — в глоссарии
Главная мысль урока: агент — это не магия и не «умная нейросеть». Это обычная LLM, поставленная в цикл с инструментами: модель просит выполнить действие → внешний код выполняет → результат возвращается модели → она решает, что дальше. Понять этот цикл — значит понять 80% устройства любого агента, включая Claude Code.

LLM сама по себе ничего не делает

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

Как же тогда Claude Code правит ваши файлы и деплоит проекты? Ответ: не модель выполняет действия — их выполняет программа-обвязка вокруг модели, а модель лишь говорит ей, что сделать.

Шаг 1: инструменты — руки агента

Современные модели обучены особому навыку — вызову инструментов. Вместо обычного текстового ответа модель может вернуть структурированный запрос: «выполни инструмент read_file с параметром путь=отчёт.md». Обвязка выполняет это действие и отправляет результат обратно в модель — как новое сообщение в диалоге.

Каждый инструмент описан модели заранее (в системном промпте): название, что делает, какие параметры принимает. Модель выбирает инструмент так же, как подбирает слова — предсказывая, что уместно. Источники: доки Anthropic по tool use, доки OpenAI по function calling.

Шаг 2: цикл — сердце агента

Один вызов инструмента — ещё не агент. Агент появляется, когда вызовы замыкаются в цикл:

Модель (LLM) думает, выбирает шаг Инструменты файлы, команды, поиск «выполни действие X» результат действия обычный текст без вызова = задача готова, выход из цикла

Модель смотрит на задачу и весь накопленный контекст, выбирает следующее действие, получает результат — и снова решает. Так повторяется, пока она не сочтёт задачу выполненной и не ответит обычным текстом — это и есть сигнал выхода из цикла. Источник: How the Agent Loop Works, доки Claude Agent SDK.

🔬 Под капотом: как модель «нажимает» на инструмент

Модель сама не выполняет ничего — она умеет только писать текст. «Вызов инструмента» — это текст особого формата: модель пишет заявку «вызываю send_email, кому: …, тема: …» (технически — фрагмент в формате JSON, машиночитаемой записи).

Заявку перехватывает обвязка — обычная программа вокруг модели. Она выполняет настоящее действие (дёргает почтовый сервис, читает файл) и кладёт результат обратно в контекст следующим сообщением. Для модели это выглядит так, будто собеседник ответил.

Отсюда важное следствие: что агент реально может, определяет обвязка, а не модель. Модель решает, «что сделать», — делает всегда обвязка. На этом построена вся безопасность агентов (дойдём в уроке 8).

Поразительный факт: академический разбор исходников Claude Code (arXiv, апрель 2026) показал, что его ядро — именно такой простой цикл «вызвать модель → выполнить инструменты → повторить». Всё остальное — права доступа, управление контекстом, восстановление после ошибок — та самая программная обвязка вокруг цикла; её называют харнессом (harness — «упряжь»).

Агент или workflow? Главная развилка

Anthropic в каноническом тексте «Building Effective Agents» проводит границу, которой пользуется вся индустрия:

🔗 Workflow (конвейер)

  • Маршрут задан заранее в коде: шаг 1 → шаг 2 → шаг 3
  • LLM выполняет отдельные шаги, но не выбирает путь
  • Предсказуемо, дёшево, легко отлаживать
  • Пример: «транскрибировать запись → сделать конспект → сгенерировать письмо»

🤖 Агент

  • Маршрут выбирает сама модель, на ходу
  • Неизвестно заранее, сколько шагов потребуется
  • Гибко, но дороже и менее предсказуемо
  • Пример: «разберись, почему упал сайт, и почини» — путь зависит от того, что найдётся

Практическое правило (его же повторяет гайд OpenAI): начинайте с самого простого решения. Если задачу можно решить фиксированным конвейером — стройте конвейер. Агент нужен тогда, когда маршрут заранее неизвестен. Это первый вопрос, который стоит задавать, когда вы заказываете приложение у Claude Code: «здесь правда нужен агент — или хватит workflow?»

Проверьте себя

Что превращает языковую модель в агента?

Вы заказываете систему: «каждое утро взять свежие продажи из GetCourse, посчитать сводку, отправить мне в Telegram». Это агент или workflow?

Как агент «понимает», что работа закончена и пора остановиться?

Вы просите Claude Code: «найди, почему в LaunchLab не сохраняются заметки, и почини». Он ищет по файлам, читает три из них, правит код, запускает проверку. Почему это агент, а не workflow?

Практика: увидеть цикл своими глазами

🛠 Задание на 5 минут

  1. Откройте Claude Code в любом своём проекте (LaunchLab, Sites Builder — любой).
  2. Дайте задачу, маршрут которой заранее неизвестен, например: «найди в этом проекте три места, где обрабатываются ошибки хуже всего, и объясни почему — ничего не правь».
  3. Наблюдайте за работой и сопоставляйте с уроком: каждый вызов Grep, Read, Bash — это виток цикла «модель → инструмент → результат → модель».
  4. Отметьте момент финального ответа — это выход из цикла: модель ответила текстом, не запросив инструментов.
  5. Контрольный вопрос себе: мог ли я заранее прописать этот маршрут как фиксированный конвейер? Если нет — вы только что наблюдали настоящего агента.

Что дальше

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