LLM-агенты: как работают планирование, память и инструменты

LLM-агенты: как работают планирование, память и инструменты

Весной 2023 года демо AutoGPT за считанные недели набрало десятки тысяч звёзд на GitHub: языковая модель сама ставила себе подзадачи, искала информацию, писала файлы и критиковала собственные ошибки. Нового обучения не было. Работала обычная LLM (Large Language Model, большая языковая модель), просто помещённая внутрь цикла «подумал, сделал, проверил результат».

С тех пор слово «агент» стало главным термином индустрии, а схема, по которой они работают, почти не изменилась. В июне 2023 года Lilian Weng, тогда исследователь OpenAI, собрала её в один разбор под названием «LLM Powered Autonomous Agents» в блоге Lil'Log. Это до сих пор лучшая карта анатомии агента: три компонента вокруг языковой модели и десятки исследований, на которые опираются современные агентные фреймворки. Разберём эту схему по частям, с цифрами из оригинальных работ, и посмотрим, что из неё дожило до 2026 года.

Что такое LLM-агент

LLM-агентом называют систему, в которой языковая модель работает не генератором текста, а управляющим контуром: планирует шаги, хранит опыт во внешней памяти и вызывает инструменты. Модель играет роль мозга, а остальные модули компенсируют её слабые места: конечный контекст, отсутствие свежих данных и неспособность действовать в мире.

В схеме Weng у агента три компонента: планирование, память и инструменты. Планирование разбивает большую цель на подзадачи и позволяет учиться на собственных ошибках. Память хранит контекст работы и накопленный опыт. Инструменты дают доступ к тому, чего нет в весах модели: свежие новости, калькулятор, базы данных, выполнение кода.

Звучит просто, но каждый компонент вырос в отдельную область исследований. Начнём с планирования.

Планирование: как агент разбивает цель на шаги

Сложная задача редко решается одним запросом. Агент должен понимать, из каких шагов она состоит, и выстраивать их в правильном порядке. Базовый приём здесь знаком каждому, кто работал с промптами: chain of thought, или цепочка рассуждений.

Chain of thought (CoT, Wei et al., 2022) предлагает модели думать по шагам: вместо мгновенного ответа она проговаривает промежуточные рассуждения. Это повышает точность на сложных задачах и делает мышление модели наблюдаемым. Для агента это критично, ведь каждый шаг цепочки можно превратить в отдельное действие.

Tree of Thoughts (Yao et al., 2023) превращает цепочку в дерево. На каждом шаге модель генерирует несколько вариантов продолжения, а поиск идёт в ширину или в глубину с оценкой состояний через классификатор или голосование. Там, где CoT даёт одну тропинку, ToT даёт карту развилок.

Есть и более радикальный подход, LLM+P (Liu et al., 2023): он выносит планирование наружу. Модель переводит задачу на язык PDDL (Planning Domain Definition Language), классический планировщик строит формальный план, а LLM переводит его обратно на человеческий язык. Схема прижилась в робототехнике, где домены и планировщики уже существуют, но в остальных областях встречается редко.

Запускать декомпозицию можно тремя способами: простым промптом вроде «Какие подцели нужны для X?», инструкцией под конкретную задачу или с участием человека. Выбор зависит от цены ошибки в предметной области.

Самокритика: ReAct и Reflexion

Плана мало, ведь в реальных задачах метод проб и ошибок неизбежен. Поэтому агенты учатся на своих ошибках: анализируют прошлые действия и корректируют стратегию.

Самый известный паттерн здесь ReAct (Yao et al., 2023), который чередует рассуждение и действие в формате Thought, Action, Observation. Модель сначала думает, потом делает шаг, например ищет факт в Wikipedia, затем смотрит на результат и думает снова. На задачах HotpotQA, FEVER, AlfWorld и WebShop такая связка стабильно обходила baseline, из которого убрали шаг Thought. Рассуждение и действие усиливают друг друга, а не конкурируют.

Reflexion (Shinn & Labash, 2023) добавляет динамическую память и самоанализ. После каждого действия агент вычисляет эвристику и решает, не пора ли перезапустить попытку. Эвристика ловит два типовых провала: неэффективное планирование, когда траектория слишком долго не приводит к успеху, и галлюцинации, когда агент повторяет одинаковые действия и получает один и тот же результат. Разбор ошибок в виде текстовых рефлексий добавляется в рабочую память, до трёх штук, и используется в следующих попытках. В экспериментах на AlfWorld галлюцинации оказались куда более частой проблемой, чем долгие планы.

Родственный приём Chain of Hindsight (Liu et al., 2023) учит модель улучшать собственные ответы, показывая последовательность прошлых вариантов с человеческими оценками. После дообучения модель смотрит на свой черновик глазами критика и выдаёт следующий вариант лучше предыдущего. Чтобы она не копировала удачные фразы из фидбэка, часть токенов истории случайно маскируется при обучении.

Отдельная линия исследований переносит ту же идею в обучение с подкреплением: Algorithm Distillation (Laskin et al., 2023) сжимает историю нескольких эпизодов обучения в одну политику, чтобы модель училась учиться прямо в контексте. Авторы выяснили, что для этого нужно минимум два-четыре эпизода истории: на коротком контексте эффект не появляется.

Память: три уровня, как у человека

Память устроена по образцу человеческой, и разбор Weng проводит эту аналогию напрямую. Сенсорная память удерживает впечатления от стимулов считанные секунды. Краткосрочная вмещает около семи элементов и живёт 20-30 секунд, как в классической работе Миллера 1956 года. Долговременная хранит информацию от дней до десятилетий и практически не ограничена по объёму; в ней выделяют декларативную память о фактах и событиях и процедурную память о навыках.

У LLM-агента эти уровни выглядят так. Сенсорная память превращается в эмбеддинги сырых входов: текста, изображений, аудио. Краткосрочная работает как in-context learning: её размер жёстко ограничен контекстным окном трансформера. Долговременная память выносится во внешнее векторное хранилище, к которому агент обращается по запросу.

Именно внешняя память снимает главное ограничение: модель не может держать в контексте всю историю работы, но может сохранить её в виде эмбеддингов и доставать нужные фрагменты в момент запроса. Здесь в игру вступает поиск по максимальному скалярному произведению, MIPS (Maximum Inner Product Search): нужно быстро найти векторы, ближайшие к вектору запроса.

MIPS: как искать по памяти за миллисекунды

Точный перебор всех векторов слишком медленный, поэтому на практике используют приближённые алгоритмы поиска ближайших соседей, ANN (Approximate Nearest Neighbors). Они жертвуют долей точности ради кратного ускорения, и в разборе Weng перечислены пять рабочих подходов.

LSH хэширует векторы так, чтобы похожие попадали в одну корзину. ANNOY строит лес случайных проекционных деревьев и ищет по ним, как по KD-дереву, но без его ограничений на масштаб. HNSW вдохновлён идеей шести рукопожатий: граф связей разбит на иерархические слои, верхние служат скоростными магистралями, нижние уточняют результат. FAISS из Facebook предполагает, что в высоких размерностях данные образуют кластеры, и применяет векторное квантование. ScaNN от Google использует анизотропное квантование: вместо ближайшего центроида он оптимизирует само скалярное произведение с запросом.

Для прототипа обычно хватает FAISS, для продакшена с миллиардами векторов чаще берут HNSW или ScaNN. Сравнивать алгоритмы удобно по метрике recall@10, доле из десяти настоящих ближайших соседей, которую алгоритм находит. Публичные графики сравнений собраны на ann-benchmarks.com.

Инструменты: как модель учится вызывать API

Замыкают схему инструменты. Веса модели статичны: она не знает сегодняшние новости, плохо считает и не имеет доступа к вашим данным. Внешние API решают всё это, но возникает вопрос: как научить модель понимать, когда и какой инструмент вызывать?

Архитектура MRKL (Karpas et al., 2022) предлагает нейро-символическую схему: набор экспертных модулей, нейросетевых и символических вроде калькулятора, конвертера валют или погодного API, а LLM работает маршрутизатором запросов. В экспериментах на арифметике выяснилась неприятная вещь: словесные задачи оказались сложнее явных примеров, потому что модель 7B Jurassic1-large не могла надёжно извлечь аргументы для калькулятора. Символический инструмент работает ровно настолько хорошо, насколько хорошо модель умеет им пользоваться.

Toolformer (Schick et al., 2023) и TALM (Parisi et al., 2022) решают задачу иначе: дообучают саму модель на датасете, который расширяется вызовами API. Если добавленный вызов улучшает ответ, пример попадает в обучение. Так модель осваивает калькулятор, поиск, переводчик и календарь без внешних оркестраторов.

HuggingGPT (Shen et al., 2023) превращает ChatGPT в диспетчера тысяч моделей с Hugging Face: сначала планирование задач, затем выбор модели под каждую, исполнение и сборка ответа. В реальной эксплуатации упёрлись в три стены: задержки от множества раундов, требования к длине контекста и нестабильность чужих сервисов.

Насколько хорошо агенты справляются с инструментами, измеряет бенчмарк API-Bank (Li et al., 2023): 53 API, 264 диалога и 568 вызовов. Он проверяет три уровня навыка: вызвать API по описанию, найти нужный API через поиск по документации и построить цепочку вызовов для расплывчатого запроса вроде «организуй встречу и забронируй отель».

Кейсы: химия, симуляция города, AutoGPT

Убедительнее всего схема выглядит в примерах. ChemCrow (Bran et al., 2023) вооружили 13 инструментами для органического синтеза, поиска лекарств и материалов. Агент на LangChain следовал формату ReAct и решал задачи по химии. Деталь, ради которой стоит читать оригинал: автоматическая оценка через GPT-4 показала, что ChemCrow и GPT-4 работают примерно одинаково, а эксперты-химики увидели огромный разрыв в пользу агента. LLM плохо оценивает собственные ответы в областях, где сама не разбирается.

Ещё один научный агент (Boiko et al., 2023) умел читать документацию, запускать код и обращаться к лабораторным API. На запрос «разработай новый противораковый препарат» он прошёл путь от анализа трендов до синтеза соединения. Авторы проверили и тёмную сторону: из 11 запросов на синтез боевых отравляющих веществ 4, то есть 36%, агент принял и начал искать процедуру. Пять отказов случились после веб-поиска, ещё два сразу.

В симуляции Generative Agents (Park et al., 2023) 25 виртуальных персонажей живут в песочнице в духе The Sims, и каждым управляет LLM-агент. У них есть поток памяти на естественном языке, выборка воспоминаний по свежести, важности и релевантности, рефлексия с обобщением опыта и планирование дня. Из этого выросли настоящие социальные эффекты: распространение информации, продолжение вчерашних разговоров и организация вечеринки, о которой персонажи договаривались сами.

А демо AutoGPT показало обе стороны подхода. С одной стороны, агент автономно ставил подцели, искал информацию, писал файлы и вёл критику своих действий. С другой, большая часть кода проекта занималась парсингом выходов модели: надёжность естественно-языкового интерфейса оставляла желать лучшего. В системном промпте агента был лимит на 4000 слов краткосрочной памяти и команда сохранять всё важное в файлы.

Почему схема всё равно спотыкается

Разбор заканчивается честным списком ограничений, и они не потеряли актуальности. Конечный контекст мешает агентам помнить длинную историю: векторный поиск достаёт нужные фрагменты, но его выразительность слабее полного внимания трансформера. Долгосрочное планирование остаётся хрупким: перед лицом неожиданной ошибки модель плохо перестраивает план, тогда как человек легко учится на провалах. А естественный язык как интерфейс между моделью и инструментами даёт сбои формата: значительная часть кода агентных проектов уходит на разбор и починку выходов модели.

С 2023 года индустрия продвинулась по всем трём фронтам: контекстные окна выросли с нескольких тысяч токенов до миллионов, вызов инструментов стал стандартной функцией моделей, а фреймворки вроде LangChain и протоколы вроде MCP превратили самодельные обвязки в инфраструктуру. Но базовый треугольник «планирование, память, инструменты» остался тем же. Если вы строите агента в 2026 году, вы почти наверняка решаете те же три задачи, просто другими инструментами.

Частые вопросы

Чем LLM-агент отличается от обычного чат-бота?

Чат-бот отвечает на один запрос за раз и не имеет состояния. Агент работает циклом: планирует шаги, сохраняет результаты в память, вызывает инструменты и корректирует план по итогам проверки. Разница не в модели, а в обвязке вокруг неё.

Почему агенты ошибаются, если модель сильная?

Ошибки чаще рождаются не в рассуждении, а на стыках: парсинг вызовов, формат аргументов, выбор неподходящего инструмента. Эксперимент MRKL показал это на калькуляторе: модель понимала задачу, но неверно извлекала числа. Надёжность агента упирается в качество интерфейсов между модулями.

Что такое MIPS и зачем он агенту?

MIPS (Maximum Inner Product Search) ищет векторы, максимально близкие к вектору запроса. Агенту он нужен, чтобы за миллисекунды доставать из долговременной памяти нужные фрагменты опыта, не перебирая миллионы записей.

Итог

Схема из трёх компонентов объясняет и возможности, и слабости современных агентов. Планирование превращает цель в последовательность шагов, память удерживает опыт за пределами контекстного окна, инструменты дают доступ к миру. Когда агент ошибается, полезно спросить себя: сломался план, память или интерфейс с инструментом? Ответ почти всегда указывает на конкретный слой, который можно починить.

Если хотите копнуть глубже, начните с оригинала: разбор Lilian Weng «LLM Powered Autonomous Agents» на Lil'Log читается за вечер и до сих пор остаётся базой для всех, кто строит агентов.

← Все записи