AutoGen: Multi-Agent Conversatie-frameworks voor Financiële AI
Nadat Gorilla aantoonde dat een enkele LLM nauwkeurig duizenden API's kan leren aanroepen, is de logische vraag: wat gebeurt er als je meerdere LLM's verschillende rollen geeft en ze met elkaar laat praten? AutoGen (Wu et al., 2023) beantwoordt die vraag door een framework te bouwen voor multi-agent conversatie, en het nu lezen voelt als het juiste moment — de meeste productie-AI-systemen voor financiën die ik ontworpen zie worden, bevatten standaard ten minste drie agenten.
Het artikel
AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation (Wu, Bansal, Zhang et al., Microsoft Research, 2023) stelt een framework voor waarin "converteerbare agenten" — elk ondersteund door een combinatie van een LLM, tools en menselijke input — berichten naar elkaar sturen totdat een taak is voltooid. Het framework introduceert twee ingebouwde agent-types: AssistantAgent (gestuurd door een LLM) en UserProxyAgent (die code kan uitvoeren en menselijke input kan doorgeven), plus een GroupChatManager die beurten in grotere ensembles routeert.
Het kernidee is wat de auteurs "conversatie-programmering" noemen: in plaats van orchestratie-logica handmatig in code te schrijven, specificeer je wat elke agent moet doen via natural-language system prompts en laat je de controleflow over aan de berichtenuitwisseling. Het artikel demonstreert dit aan de hand van het oplossen van wiskundige problemen, retrieval-augmented QA, ALFWorld-besluitvorming en een operations-research toepassing genaamd OptiGuide.
Kernideeën
- Nauwkeurigheidsverbetering op MATH-benchmark: een AutoGen-opstelling met twee agenten (een LLM-assistent plus een code-uitvoerende proxy) bereikt 69,48% op de MATH-testset, vergeleken met 55,18% voor GPT-4 alleen — een winst van 14 punten door het toevoegen van feedback op code-uitvoering.
- Human-in-the-loop is een eerste-klas burger: de
UserProxyAgentheeft een configureerbarehuman_input_mode—ALWAYS,NEVER, ofTERMINATE— wat betekent dat je het toezicht kunt opschalen of afschalen zonder de logica van de agent te veranderen. - Dynamische groepschat: de
GroupChatManagerselecteert de volgende spreker op basis van de status van het gesprek in plaats van een vaste round-robin volgorde, waardoor workflows kunnen vertakken in reactie op opkomende resultaten. - Veiligheidswinst met OptiGuide: het toevoegen van een SafeGuard-agent aan een supply-chain optimalisatie-workflow verbeterde de F1-score voor de detectie van onveilige code met 8 procentpunten op GPT-4 en 35 punten op GPT-3.5, terwijl de codebase van de gebruiker kromp van 430 regels naar 100.
- Interactieve retrieval: bij QA-taken kon de assistent-agent om extra context vragen door een
UPDATE CONTEXT-signaal af te geven; dit gebeurde bij ongeveer 19,4% van de vragen op Natural Questions, en de totale F1-score was 23,40%. - Composability door ontwerp: elke AutoGen-agent is zelf een geldige "tool" die een andere agent kan aanroepen, waardoor hiërarchische pijplijnen samengesteld kunnen worden zonder speciale lijmcode.
Wat standhoudt — en wat niet
De MATH- en ALFWorld-resultaten zijn solide — gecontroleerde, reproduceerbare vergelijkingen tegen genoemde baselines met echte benchmarks. Het cijfer van 69,48% is betekenisvol omdat het het voordeel van feedback op code-uitvoering binnen een gestructureerde conversatielus isoleert.
Wat zwakker is, is de kosten- en latentieanalyse, of liever het ontbreken daarvan. Elke beurt in een GroupChat triggert een volledige LLM-aanroep met de verzamelde conversatiegeschiedenis. Een workflow met vier agenten en tien rondes betekent minimaal veertig LLM-aanroepen, elk met een groeiend contextvenster. Het artikel rapporteert nergens de tokenkosten of latentie voor een van zijn toepassingen. In een live boekhoudpijplijn die duizenden transacties verwerkt, is dat verzuim niet academisch — het bepaalt of de aanpak überhaupt levensvatbaar is.
De metafoor van conversatie-programmering is ook fragieler dan hij in demo's lijkt. De GroupChatManager selecteert de volgende spreker door de LLM te vragen om uit een lijst met agenten te kiezen. Die selectie is zelf een probabilistische stap van tekstgeneratie, wat betekent dat de controleflow op subtiele manieren mis kan gaan zonder dat er uitzonderingen worden gegenereerd. Voor een agent die naar het grootboek schrijft — waar de volgorde van bewerkingen belangrijk is en een verkeerd geplaatste tool-aanroep een journaalpost kan corrumperen — is niet-deterministische sprekerselectie een reëel risico.
Ten slotte zijn de evaluatietaken allemaal gericht op één sessie met een korte horizon. Er is geen experiment waarbij agenten status opbouwen over meerdere dagen, tegenstrijdige instructies afhandelen, of conflicten moeten oplossen tussen een oudere agent-herinnering en een nieuwere grootboekmutatie. Dit zijn precies de scenario's die zich voordoen in echte boekhoudworkflows.
Waarom dit belangrijk is voor financiële AI
Het pleidooi voor multi-agent systemen in financiële AI is eenvoudig: reconciliatie, boeken en rapportage zijn van nature afzonderlijke belangen. Een Beancount-pijplijn zou een LedgerReaderAgent kunnen hebben die het grootboek alleen-lezen raadpleegt, een ReconcilerAgent die transacties vergelijkt met bankafschriften, een WriterAgent die nieuwe boekingen voorstelt, en een ReviewerAgent die ze controleert tegen de regels van het rekeningschema voordat een boeking definitief wordt gemaakt. Het UserProxyAgent-patroon van AutoGen is de juiste abstractie voor de WriterAgent — het kan de feitelijke boeking in het grootboek uitvoeren en het resultaat terugsturen als een bericht dat de ReviewerAgent inspecteert.
Het OptiGuide SafeGuard-resultaat is de meest direct overdraagbare bevinding: het toevoegen van een toegewijde verificatie-agent om onveilige acties te onderscheppen verbeterde de detectie aanzienlijk, en de detectie vond plaats binnen de conversatielus in plaats van als een audit achteraf. Dat is precies de architectuur die ik zou willen voor de veiligheid van Beancount-schrijfacties — een verificateur die de commit blokkeert, niet een die achteraf een waarschuwing geeft.
Het probleem van de niet-deterministische sprekerselectie is oplosbaar: je kunt de GroupChatManager overschrijven met een deterministische Python-functie die routeert op basis van de inhoud van het bericht. Maar je moet weten dat je dat moet doen, en het artikel stelt dit niet op de voorgrond als een punt van zorg.
Wat je hierna kunt lezen
- AgentBench: Evaluating LLMs as Agents (Liu et al., arXiv:2308.03688, ICLR 2024) — benchmarkt LLM's in acht verschillende agent-omgevingen, waaronder surfen op het web, coderen en database-manipulatie; de kloof tussen commerciële en open-source modellen is de belangrijkste bevinding en informeert direct welke basismodellen te gebruiken voor financiële agent-pijplijnen.
- TradingAgents: Multi-Agents LLM Financial Trading Framework (arXiv:2412.20138) — implementeert direct het AutoGen-patroon voor financiële markten met gespecialiseerde agenten voor analisten, onderzoekers, handelaren en risicomanagers; de Sharpe-ratio en de maximale drawdown-resultaten geven de eerste echte prestatiecijfers voor multi-agent financiële systemen.
- AGENTLESS: Demystifying LLM-based Software Engineering Agents (Xia et al., arXiv:2407.01514) — betoogt dat een eenvoudige, agentloze tweefasige aanpak (lokaliseren, dan repareren) beter presteert dan complexe multi-agent frameworks op SWE-bench; een nuttig tegengewicht voor de aanname dat meer agenten altijd helpt.
