Tankeledare
De lovade oss agenter, men allt vi fick var statiska kedjor
På våren 2023 blev världen upphetsad över framväxten av LLM-baserade AI-agenter. Kraftfulla demonstrationer som AutoGPT och BabyAGI visade potentialen för LLM:er som kördes i en loop, valde nästa åtgärd, observerade resultaten och valde nästa åtgärd, ett steg i taget (även känd som ReACT-ramverket). Denna nya metod förväntades ge agenter som autonomt och generiskt utförde multi-stegsuppgifter. Ge dem ett mål och ett verktygssats och de skulle ta hand om resten. Vid slutet av 2024 skulle landskapet vara fullt av AI-agenter och AI-agentbyggnadsramverk. Men hur mäter de sig mot löftet?
Det är säkert att säga att agenterna som drivs av det naiva ReACT-ramverket lider av allvarliga begränsningar. Ge dem en uppgift som kräver mer än ett par steg, med mer än ett par verktyg, och de kommer att misslyckas bedrövligt. Utöver deras uppenbara latensproblem kommer de att förlora spåret, misslyckas med att följa instruktioner, sluta för tidigt eller sluta för sent, och producera vilt olika resultat varje försök. Och det är ingen överraskning. ReACT-ramverket tar begränsningarna för oförutsägbara LLM:er och förvärrar dem med antalet steg. Men agentbyggare som vill lösa verkliga användningsfall, särskilt i företaget, kan inte acceptera den nivån av prestanda. De behöver tillförlitliga, förutsägbara och förklarliga resultat för komplexa multi-stegsarbetsflöden. Och de behöver AI-system som mildrar, snarare än förvärrar, den oförutsägbara naturen hos LLM:er.
Så hur byggs agenter i företaget idag? För användningsfall som kräver mer än ett par verktyg och ett par steg (t.ex. konversationsbaserad RAG), har agentbyggare i stor utsträckning övergett den dynamiska och autonoma löftet från ReACT för metoder som starkt förlitar sig på statisk kedjning – skapandet av fördefinierade kedjor som är utformade för att lösa ett specifikt användningsfall. Denna metod liknar traditionell programvaruutveckling och är långt ifrån det agentiska löftet från ReACT. Den uppnår högre nivåer av kontroll och tillförlitlighet, men saknar autonomi och flexibilitet. Lösningarna är därför utvecklingsintensiva, smala i tillämpning och för styva för att hantera höga nivåer av variation i indatautrymmet och miljön.
Att vara säker, statisk kedjningspraxis kan variera i hur “statiska” de är. Vissa kedjor använder LLM:er endast för att utföra atomära steg (t.ex. för att extrahera information, sammanfatta text eller utarbeta ett meddelande), medan andra också använder LLM:er för att fatta vissa beslut dynamiskt vid körning (t.ex. en LLM som dirigerar mellan alternativa flöden i kedjan eller en LLM som validerar resultatet av ett steg för att bestämma om det ska köras igen). I vilket fall som helst, så länge LLM:er är ansvariga för något dynamiskt beslutsfattande i lösningen – är vi ofrånkomligen fast i en avvägning mellan tillförlitlighet och autonomi. Ju mer en lösning är statisk, desto mer tillförlitlig och förutsägbar, men också mindre autonom och därför smalare i tillämpning och mer utvecklingsintensiv. Ju mer en lösning är dynamisk och autonom, desto mer generisk och enkel att bygga, men också mindre tillförlitlig och förutsägbar.
Denna avvägning kan representeras i följande grafik:

Detta väcker frågan, varför har vi ännu inte sett ett agentiskt ramverk som kan placeras i det övre högra kvadranten? Är vi dömda att för alltid avväga tillförlitlighet mot autonomi? Kan vi inte få ett ramverk som erbjuder det enkla gränssnittet för ett ReACT-agent (ta ett mål och ett verktygssats och lösa det) utan att offra tillförlitlighet?
Svaret är – vi kan och vi kommer att! Men för det behöver vi inse att vi har gjort allt fel. Alla nuvarande agentbyggnadsramverk delar en gemensam brist: de förlitar sig på LLM:er som den dynamiska, autonoma komponenten. Men det avgörande elementet vi saknar – vad vi behöver för att skapa agenter som är både autonoma och tillförlitliga – är planeringsteknologi. Och LLM:er är INTE bra planerare.
Men först, vad är “planering”? Med “planering” menar vi förmågan att explicit modellera alternativa handlingsalternativ som leder till ett önskat resultat och att effektivt utforska och utnyttja dessa alternativ under budgetbegränsningar. Planering ska göras på både makro- och mikronivå. En makroplan bryter ner en uppgift i beroende och oberoende steg som måste utföras för att uppnå det önskade resultatet. Vad som ofta förbises är behovet av mikroplanering som syftar till att garantera önskade resultat på steget. Det finns många tillgängliga strategier för att öka tillförlitligheten och uppnå garantier på enstaka steget genom att använda mer inferenstidberäkning. Till exempel kan du parafrasera semantiska sökfrågor flera gånger, du kan hämta mer sammanhang per given fråga, kan använda en större modell och du kan få fler inferenser från en LLM – allt resulterar i fler kravuppfyllande resultat att välja det bästa från. En bra mikroplanerare kan effektivt använda inferenstidberäkning för att uppnå de bästa resultaten under en given beräknings- och latensbudget. För att skala resursinvesteringen som behövs av den specifika uppgiften. På det sättet kan planmässiga AI-system mildra den probabilistiska naturen hos LLM:er för att uppnå garanterade resultat på steget. Utan sådana garantier är vi tillbaka till det ackumulerade felproblemet som kommer att undergräva även det bästa makroplanen.
Men varför kan LLM:er inte fungera som planerare? De kan ju översätta högnivåinstruktioner till rimliga kedjor av tankar eller planer definierade i naturligt språk eller kod. Anledningen är att planering kräver mer än så. Planering kräver förmågan att modellera alternativa handlingsalternativ som kan leda till det önskade resultatet OCH att resonera om den förväntade nyttan och förväntade kostnaderna (i beräkning och/eller latens) för varje alternativ. Medan LLM:er kan potentiellt generera representationer av tillgängliga handlingsalternativ, kan de inte förutsäga den förväntade nyttan och kostnaderna. Till exempel, vad är den förväntade nyttan och kostnaden för att använda modell X jämfört med modell Y för att generera ett svar per en specifik kontext? Vad är den förväntade nyttan av att leta efter en specifik bit information i den indexerade dokumentkorpusen jämfört med ett API-anrop till CRM? Din LLM har inte en aning. Och det av goda skäl – historiska spår av dessa probabilistiska egenskaper är sällan funna i vilt tillstånd och ingår inte i LLM-träningsdata. De tenderar också att vara specifika för det specifika verktyget och datamiljön som AI-systemet kommer att operera i, till skillnad från den allmänna kunskap som LLM:er kan förvärva. Och även om LLM:er kunde förutsäga den förväntade nyttan och kostnaderna, är resonemang om dem för att välja det mest effektiva handlingsalternativet en logisk besluts-teoretisk deduktion som inte kan antas vara tillförlitligt utförd av LLM:ers nästa tokenförutsägelse.
Så vad är de saknade ingredienserna för AI-planeringsteknologi? Vi behöver planeringsmodeller som kan lära sig från erfarenhet och simulering för att explicit modellera alternativa handlingsalternativ och motsvarande nytta- och kostnadssannolikhet per en specifik uppgift i en specifik verktyg- och datamiljö. Vi behöver ett Plan Definition Language (PDL) som kan användas för att representera och resonera om sagt handlingsalternativ och sannolikhet. Vi behöver en exekveringsmotor som kan deterministiskt och effektivt exekvera en given plan definierad i PDL.
Vissa människor arbetar redan hårt med att leverera på detta löfte. Tills dess, fortsätt bygga statiska kedjor. Bara var vänlig och kalla dem inte “agenter”.












