Обновить

Почему ReAct-агенты ломаются в продакшене и чем их заменить

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели10K
Всего голосов 2: ↑2 и ↓0+3
Комментарии2

Комментарии 2

Спасибо за статью!

Было бы полезно понять в статье какую задачу вы решаете.

Как я понял основная проблема, что у вас есть несколько тулзов, которые должны быть вызваны последовательно (или в порядке DAGа), и в случае стандартного агента между вызовами этих тулзов была бы вызвана LLM.

Так же из статьи не понятно преимущества разделения на Planner и Joiner, если Joiner потом всё равно перепланирует, то есть как будто совмещает обязанности Planner

Спасибо, проблем несколько

  1. если делать 1 агента, это зачастую реализуеться через 1 промпт, агент может игнорировать и забывать какие-то инструкции, разделение помогает с этим, планер и джоинер отвечают за вызов тулзов и понимание намерений пользователя, в компоузере описано какие данные как отображать, по аналогии можно это воспринимать как фронтенд и бекенд

  2. Если запрос пользователя требует, например, 10 вызовов тулзов, то это последовательно 10 вызовов тулзов и 10 вызовов ллм для планирования последующей тулзы, зачастую ллм просто ленится и не делает всю цепочку вызовов, планировщик позволяет сделать это за 1 запрос в ллм. Последовательность вызова тулзов зависит от задачи, некоторые можно делать параллельно, другие должны быть связаны с другими тулзами

  3. у солвера 2 задачи, первая - редирект на планировщик если что-то пошло не так во время исполнения задачи и второе - по модели швейцарского сыра удостовериться что все условия соблюдены, солвер и планер имеют одинаковые части промпта, например, как интерпретировать запросы пользователя (последняя неделя это 7 дней включая сегодня или полностью завершенная неделя?), запреты на упоминание конкурентов, инструкции как использовать или не использовать комбинации тулзов, если планировщик проигнорировал какую-то инструкцию или не вызвал какую-то тулзу правильно, солвер должен это пресечь.

На практике затюнить солвер было самой сложной задачей поскольку он содержит больше всего контекста - определение тулзов, ответы тулзов и системный промпт, компоузер самый простой поскольку он получает только историю чата, данные от тулзов и шаблоны / интерпретации.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации