AutoGen: Многоагентни рамки за разговори за финансов ИИ
След като Gorilla показа, че един LLM може да се научи да извиква хиляди API-та точно, естественият въпрос е: какво се случва, когато дадете на множество LLM-и различни роли и ги оставите да разговарят помежду си? AutoGen (Wu et al., 2023) отговаря на този въпрос чрез изграждане на рамка за многоагентни разговори и четенето му сега изглежда навременно — повечето производствени системи за финансов ИИ, които виждам да се проектират, включват поне три агента по подразбиране.
Документът
AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation (Wu, Bansal, Zhang et al., Microsoft Research, 2023) предлага рамка, в която „разговорни агенти“ — всеки подкрепен от някаква комбинация от LLM, инструменти и човешки вход — си изпращат съобщения един на друг, докато задачата бъде завършена. Рамката въвежда два вградени типа агенти: AssistantAgent (управляван от LLM) и UserProxyAgent (който може да изпълнява код и да предава човешки вход), плюс GroupChatManager, който насочва ходовете в по-големи групи.
Основната идея е това, което авторите наричат „разговорно програмиране“: вместо ръчно да пишете логика за оркестрация в код, вие указвате какво трябва да прави всеки агент чрез системни подкани на естествен език и оставяте предаването на съобщения да управлява потока на управление. Документът демонстрира това чрез решаване на математически проблеми, въпроси и отговори с разширено извличане (RAG), вземане на решения в ALFWorld и приложение за операционни изследвания, наречено OptiGuide.
Ключови идеи
- Повишаване на точността при MATH бенчмарка: настройка на AutoGen с два агента (LLM асистент плюс прокси за изпълнение на код) достига 69,48% върху тестовия набор MATH, в сравнение с 55,18% за самостоятелно използван GPT-4 — ръст от 14 пункта благодарение на добавянето на обратна връзка от изпълнението на код.
- Човешкото участие е приоритет:
UserProxyAgentима конфигурируемhuman_input_mode—ALWAYS,NEVERилиTERMINATE— което означава, че можете да регулирате нивата на надзор, без да променяте логиката на агента. - Динамичен групов чат:
GroupChatManagerизбира следващия говорещ въз основа на състоянието на разговора, а не по фиксиран ред, което позволява на работните процеси да се разклоняват в отговор на възникващите резултати. - Ползи за безопасността от OptiGuide: добавянето на SafeGuard агент към работен процес за оптимизация на веригата за доставки подобри откриването на небезопасен код с 8 процентни пункта при GPT-4 и с 35 пункта при GPT-3.5, като същевременно намали кодовата база на потребителя от 430 реда на 100.
- Интерактивно извличане: при задачи за въпроси и отговори асистентът може да поиска допълнителен контекст чрез изпращане на сигнал
UPDATE CONTEXT; това се задейства при приблизително 19,4% от въпросите в Natural Questions, а общият F1 резултат е 23,40%. - Композируемост по дизайн: всеки агент на AutoGen сам по себе си е валиден „инструмент“, който друг агент може да извика, така че йерархичните тръбопроводи се съставят без специален свързващ код.
Какво работи — и какво не
Резултатите от MATH и ALFWorld са солидни — контролирани, възпроизводими сравнения с именувани базови линии при реални бенчмаркове. Числото от 69,48% е значимо, защото изолира ползата от обратната връзка при изпълнение на код в рамките на структуриран цикъл на разговор.
По-слабото звено е анализът на разходите и латентността, или по-скоро неговата липса. Всеки ход на GroupChat задейства пълно извикване на LLM с натрупаната история на разговора. Работен процес с четири агента и десет кръга означава минимум четиридесет извиквания на LLM, всяко с нарастващ контекстен прозорец. Документът никъде не отчита разходите за токени или латентността за нито едно от своите приложения. В една счетоводна система в реално време, обработваща хиляди транзакции, този пропуск не е просто академичен — той определя дали подходът е изобщо жизнеспособен.
Метафората за разговорно програмиране също е по-крехка, отколкото изглежда в демонстрациите. GroupChatManager избира следващия говорител, като подканва LLM да избере от списък с агенти. Този избор сам по себе си е вероятностна стъпка за генериране на текст, което означава, че потокът на управление може да се обърка по фини начини, които не предизвикват изключения. За агент, който пише обратно в счетоводната книга — където редът на операциите е от значение и едно погрешно извикване на инструмент може да корумпира запис в журнала — недетерминираният избор на говорител е реален риск.
Накрая, задачите за оценка са само за една сесия с кратък хоризонт. Няма експеримент, в който агентите да натрупват състояние в продължение на дни, да се справят с противоречиви инструкции или да трябва да разрешават конфликти между стара памет на агента и по-нов запис в книгата. Това са точно сценариите, които възникват в реалните счетоводни работни процеси.
Защо това е важно за финансовия ИИ
Аргументите за многоагентни системи във финансите са очевидни: равнението, осчетоводяването и отчитането са по своята същност отделни дейности. Един Beancount тръбопровод може да има LedgerReaderAgent, който прави заявки към счетоводната книга само за четене, ReconcilerAgent, който сравнява транзакциите с банкови извлечения, WriterAgent, който предлага нови записи, и ReviewerAgent, който ги проверява спрямо правилата на сметкоплана, преди да бъде потвърдено записването. Моделът UserProxyAgent на AutoGen е правилната абстракция за WriterAgent — той може да изпълни действителното записване в книгата и да върне резултата като съобщение, което ReviewerAgent да инспектира.
Резултатът от OptiGuide SafeGuard е най-пряко приложимата констатация: добавянето на специализиран агент за проверка за улавяне на небезопасни действия значително подобри откриването, и то се случи вътре в разговорния цикъл, а не като одит след факта. Това е точно архитектурата, която бих искал за безопасност при записване в Beancount — верификатор, който блокира транзакцията, а не такъв, който сигнализира след събитието.
Проблемът с недетерминирания избор на говорител е разрешим: можете да замените GroupChatManager с детерминирана функция на Python, която насочва разговорите въз основа на съдържанието на съобщението. Но трябва да знаете, че е необходимо да го направите, а документът не поставя този въпрос на преден план.
Какво да прочетете след това
- AgentBench: Evaluating LLMs as Agents (Liu et al., arXiv:2308.03688, ICLR 2024) — бенчмарк на LLM в осем различни агентни среди, включително сърфиране в мрежата, кодиране и манипулиране на бази данни; разликата между търговските и отворените модели е ключовото откритие и пряко влияе върху това кои базови модели да се използват за финансови агентни тръбопроводи.
- TradingAgents: Multi-Agents LLM Financial Trading Framework (arXiv:2412.20138) — директно прилага модела на AutoGen за финансовите пазари със специализирани агенти за анализи, изследвания, търговия и управление на риска; резултатите за коефициента на Шарп и максималното понижение (drawdown) дават първите реални данни за производителността на многоагентни финансови системи.
- AGENTLESS: Demystifying LLM-based Software Engineering Agents (Xia et al., arXiv:2407.01514) — твърди, че един прост, „безагентен“ двуфазен подход (локализиране, след това поправка) превъзхожда сложните многоагентни рамки при SWE-bench; полезен противовес на предположението, че повече агенти винаги помагат.
