Преминете към основното съдържание

LATS: Language Agent Tree Search — Разсъждение, действие и планиране в една рамка

· 6 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Мислех си за това какво идва след Tree of Thoughts — ако можете да търсите в стъпките на разсъждение, защо да не търсите и в действията? Точно това прави LATS (Language Agent Tree Search) и затова я чета в момента. Документът на Анди Джоу, Кай Ян, Михал Шлапентох-Ротман, Хаохан Уанг и Ю-Ксионг Уанг (ICML 2024, arXiv:2310.04406) е най-ясният синтез досега на разсъждение, действие и планиране в рамката на един агент, а резултатите са наистина трудни за пренебрегване.

Документът

2026-05-10-lats-language-agent-tree-search-reasoning-acting-planning

Основният проблем, който LATS решава, е структурната празнина в предишната работа върху агенти. ReAct редува разсъждение и действие, но няма механизъм за връщане назад и опитване на различен път, когато траекторията се обърка. Tree of Thoughts позволява разклоняване на стъпките на разсъждение, но работи върху вътрешните знания на езиковия модел (LM) — той не може да извиква инструменти или да получава външна обратна връзка в рамките на търсенето. Reflexion добавя вербална самокорекция, но неговият линеен цикъл на повторни опити означава, че той се ангажира с нова траектория, без да изследва алтернативи. LATS обединява и трите идеи с подходяща Monte Carlo Tree Search (MCTS) основа, позволявайки на LLM агентите да изследват множество клонове, да получават реална обратна връзка от средата и да се връщат назад, когато даден път се провали.

Техническата машина е шестстепенен MCTS цикъл: Селекция (избор на следващия възел за изследване чрез формулата UCT), Разширяване (вземане на n кандидат-действия от LM), Оценка (оценяване на всеки възел с хибридна функция на стойността), Симулация (изпълнение до крайно състояние), Обратно разпространение (актуализиране на стойностите на предшествениците) и Рефлексия (при неуспех се генерира вербално резюме на това, което се е объркало, и се съхранява като контекст). Функцията на стойността заслужава внимание: V(s) = λ·LM(s) + (1−λ)·SC(s), където LM(s) е собствената оценка на LM за качеството на траекторията след получаване на обратна връзка от средата, а SC(s) е резултат за самосъгласуваност (self-consistency), базиран на това колко често това действие се взема сред съседните възли. Това не е обучен модел за възнаграждение — функцията на стойността се задвижва изцяло от промпта.

Ключови идеи

  • В HumanEval, GPT-4 + LATS постига 92,7% pass@1, срещу 91,0% за GPT-4 + Reflexion и 56,9% само за GPT-3.5 + ReAct. GPT-3.5 + LATS скача до 83,8%.
  • В HotPotQA, LATS (CoT + ReAct) достига 0,71 точно съвпадение срещу 0,32 за базовата линия ReAct — повече от удвояване на точността при разсъждения в няколко стъпки.
  • В WebShop (уеб навигация + покупки), LATS постига 75,9 (степен на успеваемост 38,0%) срещу Reflexion с 64,2 (35,0%) — значителна разлика при задача, която изисква управление на състоянието в много страници.
  • В Game of 24 (чисто логическа загадка), LATS достига 0,44 успеваемост срещу ToT при 0,20, въпреки че използва същата GPT-4 основа.
  • Изненадващо, LATS разширява по-малко възли, за да намери решение, отколкото ToT (средно 66,65 срещу 84,05 възела в HotPotQA при k=50), и използва по-малко токени (173 290 срещу 210 215), въпреки че на теория изглежда по-скъп.

Какво издържа проверката — и какво не

Числата от бенчмарковете са реални и рамката е концептуално чиста. Формулировката на UCT дава принципен компромис между изследване и експлоатация (exploration-exploitation), който липсва при ad-hoc BFS/DFS в ToT. Интегрирането на външна обратна връзка от средата във функцията на стойността — вместо чиста интроспекция на LM — е правилният ход и резултатите го показват.

С оглед на това, има критично предположение, скрито в документа, което авторите признават, но не тестват напълно под стрес: LATS изисква способността да върне средата към по-ранно състояние. Без създаване на контролни точки (checkpointing) не можете да разклонявате дървото — след като веднъж е предприето действие, вие сте обвързани с него. Авторите отбелязват, че за задачи на LM това често е управляемо чрез "копиране и поставяне на историческия текстов вход", но за среди с реални действия (бази данни, файлови системи, API-та със странични ефекти), това е твърдо изискване, което много производствени системи не могат да задоволят. Резултатите от WebShop, макар и по-добри от базовите линии, показват, че в сложни среди саморефлексиите са склонни да стават общи, а не целенасочени — агентите могат да зациклят в повтаряне на повърхностно различни, но структурно идентични грешки. Документът отбелязва това, но няма решение за него.

Също така липсва аблация (ablation), изолираща приноса на MCTS структурата спрямо дизайна на функцията на стойността. Вероятно е един по-прост подход на разклоняване със същата хибридна функция на стойността да запълни голяма част от празнината, а авторите не тестват това директно.

Защо това е важно за финансовия AI

Beancount регистрите са почти идеална среда за търсене в дърво в стил LATS поради една ключова причина: всеки регистър е подкрепен от git хранилище. Връщането на състоянието — твърдото изискване, което прави LATS непрактичен в много реални ситуации — се удовлетворява тривиално чрез git checkout или git stash. Агент за обратно записване може да предложи кандидат-записи в журнала в множество клонове, да ги оцени спрямо ограниченията на баланса (функцията на стойността) и да ангажира само пътя с най-висок резултат. Провалените клонове получават вербална рефлексия: „публикуваният запис нарушава инварианта активи = пасиви + собствен капитал, тъй като типът на сметката е неправилно класифициран“.

Дизайнът на хибридната функция на стойността също е директно приложим. За агент за счетоводни регистри, LM(s) би оценил предложен запис въз основа на семантично съответствие (изглежда ли това като правилната категория?), докато SC(s) би проследявал колко последователно агентът класифицира подобни минали транзакции — естествена проверка за самосъгласуваност, вкоренена в историята на самия регистър.

Предположението за връщане на състоянието е единственото място, където бих се противопоставил на финансовата аналогия. Реалните счетоводни книги често имат последствия надолу по веригата: осчетоводен запис задейства фактура, която задейства работния процес на плащане. В тези случаи предположението на LATS се проваля. Специално за Beancount, където регистърът е обикновен текстов файл под контрола на git и промените са локални преди всяко задействане по веригата, предположението е валидно — но това е ограничение на дизайна, което си струва да бъде изрично упоменато.

Какво да прочетете след това

  • Планиране, базирано на MCTS без модели на средата: "Reasoning with Language Model is Planning with World Model" (Hao et al., 2023, arXiv:2305.14992) — RAP, върху който LATS директно надгражда и превъзхожда.
  • Колко добре се обобщава функцията на стойността на LM? "Let's Verify Step by Step" (Lightman et al., 2023, arXiv:2305.20050) — модели за възнаграждение на процеса като алтернатива на функциите на стойността, базирани на промпти.
  • Безопасно многостепенно планиране при необратимост: "Decision-Making with Language Models via Successive Prompting" (Creswell et al., 2023) — по-прост подход за планиране, който избягва изискването за връщане на състоянието.