🧠 Как устроен агент: контекст, инструменты и обратная связь
Агент — не отдельная архитектура, а LLM, зацикленная на собственном контексте. Модель получает блок текста, генерирует продолжение — включая вызовы инструментов — и повторяет цикл. Формальный лимит контекста вырос с 32K до 1M токенов. Но рабочий объём, на котором модель держит качество, заметно меньше: на длинных сессиях середина диалога начинает выпадать из фокуса.
Механику вызова инструментов на Habr показывают на формате Anthropic. Инструменты декларируют через JSON Schema в системном промпте, а модель отвечает типизированными JSON-объектами. Признак незавершённого хода — stop_reason="tool_use"; у OpenAI аргументы приходят строкой и требуют парсинга, у Anthropic — уже разобранный объект. Ошибка инструмента не прерывает цикл: блок tool_result с is_error=true возвращает traceback, и на следующем шаге модель сама дописывает недостающий импорт. Так замыкается обратная связь, которой не было у генератора текста.
Управление контекстом — самая практичная часть. Выводы инструментов на тысячи строк не кладут в контекст целиком: оставляют 10–20 строк, остальное пишут во временный файл и дают модели путь. Когда контекст всё равно упирается в лимит, запускают компактификацию — та же LLM резюмирует историю по специальному промпту. Автор утверждает, что сила агента определяется силой модели, а не набором инструментов, и что на сыром API можно написать агента за 200–300 строк.
Спорный тезис: инструменты вторичны, пока контекст управляется хорошо. На длинной сессии плохая компактификация утопит сильную модель быстрее, чем слабая модель на аккуратном harness. Поэтому продакшен-агент — это инженерия памяти, а не только выбор frontier-модели.
#LLM #агенты #MCP #tool_use #контекст
Post #358
5