Слово «агент» сейчас лепят на всё подряд, от чат-бота до «цифрового сотрудника». Для инженера полезнее короткое определение, которое предложил Саймон Уиллисон, автор Django и одного из самых толковых блогов про работу с ИИ:
Агент вызывает инструменты в цикле, чтобы достичь цели.
Вот и всё. Остальное — детали.
Как выглядит этот цикл
- Программа отправляет модели ваш запрос и список доступных инструментов: «прочитать файл», «выполнить команду», «открыть страницу».
- Модель отвечает не текстом, а заявкой: «вызови инструмент X с такими параметрами».
- Программа выполняет вызов и отправляет модели результат.
- Модель смотрит на результат и решает, что дальше: ещё один вызов или готовый ответ.
Сама модель ничего не запускает. Она только пишет, что запустить. Всё остальное делает программа вокруг неё.
Всё, что не модель, — это «обвязка»
В LangChain сформулировали это так: агент = модель + обвязка (по-английски harness). Если вы не модель, вы обвязка.
В обвязку входит:
- системные инструкции;
- набор инструментов и их описания;
- файловая система, песочница, браузер;
- память между сессиями;
- правила, что делать, когда разговор не влезает в контекст;
- логика запуска помощников, передачи задач, выбора модели.
Claude Code, Codex, OpenClaw, Hermes — это разные обвязки. Модели внутри них могут быть одни и те же.
Почему это важно на практике
Одна и та же модель в разной обвязке работает по-разному. В LangChain приводят пример: их кодинг-агент поднялся из топ-30 в топ-5 рейтинга Terminal Bench 2.0 только за счёт изменений в обвязке, модель была та же. Если агент плохо справляется, не спешите менять модель. Сначала посмотрите, какие у него инструменты и инструкции.
Модель каждый раз читает всё заново. Она не помнит прошлых запросов. На каждом шаге программа отправляет ей инструкции, описания инструментов и всю историю разговора. Поэтому длинная сессия дорожает с каждым шагом, а двадцать подключённых инструментов стоят денег, даже если агент ими не пользуется.
Главный инструмент — выполнение кода. Уиллисон считает, что возможность запускать код — то, что отличает агента от болтуна. Модель, которая может запустить тесты и увидеть ошибку, исправляет её сама. Модель, которая только пишет код, выдаёт текст, похожий на правду.
Инструменты важнее инструкций. В Anthropic, когда строили агента для бенчмарка SWE-bench, больше времени потратили на доводку инструментов, чем на общий промпт. Пример оттуда: модель путалась в относительных путях к файлам, когда уходила из корневой папки. Инструмент переделали так, чтобы он принимал только абсолютные пути, и ошибки исчезли.
Что из этого следует
- Когда агент ошибается, спросите не «почему модель тупит?», а «чего ей не хватает, чтобы сделать правильно?»: инструмента, примера, способа проверить себя.
- Описывайте инструменты так, будто пишете документацию для нового сотрудника: пример, крайние случаи, чем отличается от соседнего инструмента.
- Отключайте инструменты, которые агенту не нужны. Каждый занимает место в контексте и отвлекает.
- Выбирая между Claude Code, Codex и OpenClaw, сравнивайте обвязки, а не только модели: что умеет каждая, где хранит память, как работает по расписанию, как передаёт задачи другим агентам.