Перейти до основного вмісту

Reflexion: мовні агенти, які вчаться на помилках без перенавчання

· 5 хв. читання
Mike Thrift
Mike Thrift
Marketing Manager

Я роздумував над тим, що потрібно для створення агента для ведення книги Beancount, який би ставав кращим з часом без перенавчання щоразу, коли він припускається помилки. Робота Шінна та ін. «Reflexion: Language Agents with Verbal Reinforcement Learning» (NeurIPS 2023) безпосередньо розглядає це питання, і відповідь є водночас перспективною та більш обмеженою, ніж свідчать заголовки.

Стаття

2026-04-25-reflexion-language-agents-verbal-reinforcement-learning

Reflexion (Шінн, Кассано, Берман, Гопінат, Нарасімхан, Яо; NeurIPS 2023) пропонує замість коригування ваг моделі за допомогою дорогого навчання з підкріпленням покращувати агента, змушуючи його писати власний аналіз помилок природною мовою. Після кожної спроби модель саморефлексії (Self-Reflection) зчитує траєкторію та сигнал винагороди, створює вербальний аналіз (post-mortem) і додає його до епізодичного буфера пам'яті. Під час наступної спроби Актив (Actor) зчитує накопичені рефлексії перед початком дій. Градієнт не обчислюється. Модель не доналаштовується (fine-tuning). «Навчання» повністю відбувається в межах контекстного вікна.

Трьохкомпонентна архітектура — Actor, Evaluator, Self-Reflection — достатньо модульна, щоб адаптуватися до різних типів завдань. Evaluator може бути результатом бінарного юніт-тесту, LLM-суддею або специфічною для завдання евристикою. Саме ця гнучкість робить статтю цікавою за межами тестів на написання коду.

Ключові ідеї

  • На HumanEval Python pass@1 Reflexion + GPT-4 досягає 91%, порівняно з базовим показником GPT-4 у 80% — це справжній і значний розрив. На Leetcode Hard приріст становить 7,5% → 15%, що є прогресом, але також нагадуванням про те, наскільки складними залишаються ці задачі.
  • В AlfWorld (текстове планування побутових завдань) Reflexion вирішує 130/134 завдання після 12 спроб проти 108/134 для базової моделі ReAct — це найбільш переконливий результат прийняття рішень у статті.
  • На HotpotQA (multi-hop QA) CoT + Reflexion показує зростання з 61% до 75% точності збігу (exact match) на 100 вибраних запитаннях.
  • На MBPP (другий бенчмарк Python) Reflexion трохи погіршує продуктивність: 80,1% → 77,1%. Автори приховують це в тексті.
  • В WebShop Reflexion не допомагає. Автори пояснюють це тим, що завдання вимагає «значної різноманітності та дослідження» — агент пише некорисні рефлексії, які не узагальнюються під час пошуку товарів.
  • Пам'ять обмежена 1–3 збереженими досвідами. Це прагматично з огляду на довжину контексту, але означає, що агент не може накопичувати знання протягом тривалого розгортання.

Що працює, а що — ні

Основне твердження є обґрунтованим: вербальна рефлексія покращує результати в завданнях з чітким зворотним зв’язком, який можна перевірити. Якщо ви знаєте, чи пройшов код юніт-тести, модуль рефлексії має конкретні дані для роздумів. Результати AlfWorld та HumanEval є реальними та значущими.

Але невдача з WebShop є повчальною, і стаття дещо недооцінює її. Рефлексія працює, коли оцінювач може видати чіткий, дієвий сигнал. Коли причиною невдачі є те, що «агент досліджував не ту частину великого простору пошуку», вказівка «наступного разу спробуй інші терміни пошуку» не веде до збіжності. Це структурне обмеження: вербальне підкріплення не є заміною стратегій дослідження.

Експерименти з кодуванням також мають певну циклічність, яку автори визнають у своєму блозі: агент генерує власні юніт-тести для оцінки власного коду. Недосконалий набір тестів створює хибнопозитивні результати. Показник 91% на HumanEval тримається тому, що HumanEval надає еталонні тести, але петля самооцінки агента менш надійна в нових задачах, де не існує зовнішнього оракула.

Відтворюваність є реальною проблемою. Усі основні результати використовують GPT-4, а експерименти зі starchat-beta показують відсутність покращення порівняно з базовим рівнем, що означає залежність техніки від можливостей моделі. Командам, які використовують менші моделі або моделі з відкритими вагами, не варто очікувати таких же результатів.

Чому це важливо для AI у сфері фінансів

Кейс використання Beancount має саме ту властивість, яка дозволяє Reflexion працювати добре: чіткий оцінювач. Якщо агент неправильно класифікує транзакцію, перевірка балансу книги або крок звірки може дати бінарний сигнал — книги збалансовані або ні. Це набагато краща поверхня зворотного зв'язку, ніж неоднозначна винагорода за пошук товарів у WebShop.

Конкретно, я можу уявити агента для запису в Beancount, який після невдалої спроби проведення (недійсний рахунок, неправильна валюта, помилка твердження) генерує вербальну рефлексію: «Я використав Expenses:Meals, але цей рахунок вимагає підкатегорії. Наступного разу я перевірю ієрархію рахунків перед записом». Ця рефлексія зберігається і витягується під час наступної подібної транзакції. Агент фактично накопичує специфічну для сесії політику на основі власних помилок.

Обмеження пам'яті є головним архітектурним викликом. Буфер на 1–3 досвіди підходить для однієї сесії, але розгорнутий бухгалтерський агент повинен вчитися на тисячах транзакцій і тижнях роботи. Розширення Reflexion до довготривалої пам'яті — можливо, шляхом підсумовування або індексації рефлексій — є відкритою проблемою. Стаття її не вирішує.

Що прочитати далі

  • Language Agent Tree Search (LATS) (Zhou et al., arXiv:2310.04406; ICML 2024) — розширює Reflexion, обгортаючи цикл рефлексії та повторних спроб у пошук по дереву Монте-Карло, що дозволяє агентам досліджувати кілька гілок міркувань замість того, щоб слідувати одній траєкторії. Досягає 92,7% на HumanEval з GPT-4.
  • Retroformer (Yao et al., arXiv:2308.02151; ICLR 2024) — замість того, щоб покладатися на ту саму LLM для саморефлексії, Retroformer навчає окрему легку ретроспективну модель за допомогою градієнта політики, роблячи процес рефлексії таким, що піддається навчанню в різних завданнях. Більш принциповий підхід, але вимагає донавчання.
  • Self-Reflection in LLM Agents: Effects on Problem-Solving Performance (arXiv:2405.06682, 2024) — емпіричне дослідження, що спеціально вивчає, коли і чому рефлексія допомагає, з абляціями для різних типів завдань. Корисно для калібрування того, коли застосовувати Reflexion, а коли — інші стратегії корекції.