Een Agent (Intelligente Agent) is een toepassingssysteem dat is gebaseerd op een groot taalmodel en in staat is autonome beslissingen te nemen en acties uit te voeren richting een taakdoel. Het grote model biedt de Agent basisvaardigheden zoals taalbegrip, redeneren en inhoud genereren, waardoor hij taak van gebruikers kan begrijpen en huidige informatie kan analyseren. Op basis hiervan past de Agent het redeneervermogen van het model verder toe op taakuitvoering: bij een doel moet hij niet alleen een antwoord genereren, maar ook bepalen wat er moet worden gedaan om het doel te bereiken en via gereedschappen externe informatie ophalen of specifieke acties uitvoeren. Wanneer een taak meerdere stappen omvat, kan de Agent ook resultaten van de vorige stap gebruiken om de volgende actie te bepalen, waarbij het originele plan indien nodig wordt aangepast tot de taak is voltooid. Daarom breidt de focus van de Agent zich uit van "welke inhoud genereren op basis van input" naar "hoe taken rond doelen te voltooien". De autonome besluitvorming die hier wordt genoemd, betekent niet onbeperkt handelen, maar het selecteren van geschikte bewerkingen binnen het vooraf gedefinieerde taakbereik, gereedschappen en machtigingen op basis van de huidige staat. Een Agent is dus geen nieuw model dat onafhankelijk is van grote taalmodellen, maar een taakuitvoeringssysteem dat grote modellen gebruikt als kern van begrip en besluitvorming en modellen combineert met externe vaardigheden.
Agents zijn bijzonder geschikt voor taken die meerdere stappen omvatten, het gebruik van externe informatie of gereedschappen vereisen en waarvan het uitvoeringsproces kan veranderen op basis van tussenresultaten. Veelvoorkomende toepassingsscenario's zijn informatieophaling, dataanalyse, softwareontwikkeling en bedrijfsprocesautomatisering. In scenario's voor informatieophaling kan een Agent bijvoorbeeld materialen uit verschillende bronnen zoeken en organiseren op basis van de taak; in scenario's voor dataanalyse kan hij gegevens lezen, berekeningen uitvoeren en analyses genereren; in scenario's voor softwareontwikkeling kan hij code schrijven, tests uitvoeren en doorgaan met aanpassen op basis van uitvoeringsresultaten; in scenario's voor bedrijfsprocesautomatisering kan hij verbinding maken met databases en bedrijfssystemen om gegevensopvragen, ticketverwerking en andere bewerkingen uit te voeren. Voor taken zoals vertaling, samenvatting en herschrijven die direct via modelgeneratie kunnen worden voltooid, is meestal geen Agent nodig.
De kern van de Agent, verantwoordelijk voor het verwerken van gebruikersinvoer, het genereren van antwoorden en het nemen van beslissingen — in wezen het "brein" van de Agent. Aangezien Agents geen vooraf ingestelde paden volgen maar hun gedragsstrategie dynamisch aanpassen op basis van realtime omstandigheden, is het LLM niet alleen verantwoordelijk voor het begrijpen en genereren van inhoud, maar moet het ook de volgende bewerking bepalen op basis van de huidige taak en uitvoeringsresultaten en beslissen hoe met de externe omgeving te communiceren. De Agent gebruikt prompts (aanwijzingen) om de rol van het LLM, taakdoelen, gedragsregels en machtigingsgrenzen te specificeren, waardoor het LLM binnen de vooraf gedefinieerde grenzen beslissingen kan nemen en uitvoeren.
Inloggen deelnemen aan de discussie
Verantwoordelijk voor het opstellen van het actieplan van de Agent, inclusief het opdelen van complexe taken in meerdere subtaken en het bepalen van verdere uitvoeringsstappen. Bij het verwerken van taken met meerdere stappen moet een Agent niet alleen een actieplan maken, maar dit ook aanpassen op basis van taakuitvoering. Wanneer gereedschapsresultaten bijvoorbeeld verschillen van verwachtingen of wanneer de verkregen informatie onvoldoende is, kan de Agent het originele plan aanpassen en de volgende stap opnieuw bepalen. De planningmodule stelt de Agent in staat om volgende acties dynamisch te plannen en aan te passen op basis van taakstatus.
Gebruikt om het geheugen van de Agent op te slaan, inclusief kortetermijngeheugen en langetermijngeheugen. Kortetermijngeheugen slaat voornamelijk informatie op van de huidige sessie of taak, terwijl langetermijngeheugen wordt gebruikt om informatie op te slaan die langdurig bewaard moet worden. Geheugen is een dynamisch, toegankelijk en bijwerkbaar systeem. Dynamisch betekent dat geheugen kan veranderen met nieuwe informatie en taakstatus; toegankelijk betekent dat de Agent opgeslagen informatie kan ophalen en gebruiken indien nodig; bijwerkbaar betekent dat de Agent bestaand geheugen kan aanvullen of wijzigen op basis van nieuwe informatie en uitvoeringsresultaten. Naarmate het geheugen continu wordt bijgewerkt, kan de Agent interactie en taakervaring gebruiken om latere beoordelingen en beslissingen te verbeteren, waardoor de aanpasbaarheid aan verschillende taken en omgevingen wordt vergroot.
Verschillende gereedschappen die beschikbaar zijn voor de Agent, waaronder zoekmachines, databases, rekenmachines, code-uitvoeringsomgevingen en diverse externe diensten die via API's worden aangeboden. De kernfunctie van de gereedschapsmodule is het uitbreiden van het vermogen van de Agent om met de externe omgeving te communiceren, waardoor de Agent niet alleen inhoud kan genereren maar ook externe informatie kan ophalen en specifieke bewerkingen kan uitvoeren.
Bij het gebruik van de gereedschapsmodule moet de Agent bepalen of gereedschappen nodig zijn op basis van de huidige taak en context, en welk gereedschap te selecteren. Effectief gereedschapsgebruik betekent niet alleen het selecteren van het juiste gereedschap, maar ook hoe gereedschappen efficiënt te gebruiken om onnodig gereedschapsgebruik te verminderen. Wanneer een taak de samenwerking van meerdere gereedschappen vereist, moet de Agent ook beslissen of andere gereedschappen op basis van resultaten worden aangeroepen, en resultaten van verschillende gereedschappen integreren. Daarom biedt de gereedschapsmodule de Agent niet alleen externe vermogens, maar vereist ook dat de Agent gereedschappen redelijk selecteert en gebruikt op basis van taakbehoeften.
Een Agent is een systeem dat LLM, Planning, Geheugen en Gereedschappen integreert, zoals weergegeven in het diagram hieronder. Deze modules werken samen om de Agent in staat te stellen taken autonoom uit te voeren, te leren en zijn gedrag te verbeteren.
Na ontvangst van een taak moet een Agent bepalen hoe verder te gaan op basis van het taakdoel en de huidige informatie. Sommige taken kunnen bijvoorbeeld gereedschappen aanroepen terwijl ze de volgende stap bepalen op basis van retourneresultaten; sommige complexe taken vereisen eerst het opsplitsen van stappen en dan incrementele uitvoering; voor gegenereerde resultaten kunnen verdere controle en aanpassing worden uitgevoerd. Wanneer één Agent de hele taak niet kan voltooien, kunnen meerdere Agents verschillende rollen toegewezen krijgen om samen te werken.
Op basis van taakkenmerken en uitvoeringsmethoden kunnen Agents verschillende taakuitvoeringsmodi aannemen. Hieronder introduceren we vier veelvoorkomende modi: ReAct, Plan-and-Execute, Reflection en Multi-Agent Samenwerking, die het taakuitvoeringsproces van de Agent organiseren vanuit verschillende aspecten zoals dynamische uitvoering, taakplanning, resultaatverbetering en taakverdeling.
ReAct (Reasoning and Acting) is een taakuitvoeringsbenadering die redeneren en handelen combineert, voorgesteld door Shunyu Yao et al. Het grote model redeneert en handelt op basis van huidige informatie, redeneert en handelt dan verder op basis van nieuwe informatie verkregen uit de handeling, tot de taak is voltooid.
Het typische ReAct-proces omvat Thought (redeneren), Action (handelen) en Observation (observeren). Thought vertegenwoordigt de analyse van huidige informatie door het model om de volgende stap te bepalen; wanneer externe informatie moet worden verkregen of een bewerking moet worden uitgevoerd, genereert het model de bijbehorende Action, zoals het aanroepen van een zoekgereedschap of het raadplegen van een database; het resultaat dat door het gereedschap wordt geretourneerd, wordt aan het model verstrekt als Observation, en het model neemt verdere beslissingen op basis van deze nieuwe informatie.
Tijdens taakuitvoering verschijnen Thought, Action en Observation om de beurt op basis van taakbehoeften, waarbij een uitvoeringsproces wordt gevormd waarin redeneren, handelen en observeren samenwerken. Het typische proces kan worden uitgedrukt als:
Thought → Action → Observation → Thought → Action → Observation → ... → Eindresultaat
Bijvoorbeeld, een gebruiker vraagt: "Wie won de Nobelprijs voor Natuurkunde in 2024? Wie is de oudste onder hen?"
De Agent bepaalt eerst dat hij de lijst met winnaars van de Nobelprijs voor Natuurkunde 2024 moet ophalen, dus roept hij het zoekgereedschap aan om te raadplegen. Na het verkrijgen van de lijst ontdekt hij dat hij ook de leeftijden van de winnaars moet vergelijken, dus gaat hij door met het raadplegen van hun geboortedata. Na het verkrijgen van de vereiste informatie vergelijkt de Agent en genereert het eindantwoord.
In dit proces bepaalde de Agent niet alle uitvoeringsstappen aan het begin van de taak, maar besloot de volgende stap op basis van het retourresultaat van elk gereedschap. Daarom is ReAct meer geschikt voor taken die continue interactie met de externe omgeving vereisen, zoals zoeken, raadplegen en gereedschap aanroepen. Voor complexe taken met veel stappen kan het bij volledig gebruik van deze stapsgewijze benadering ontbrekende stappen of herhaalde uitvoeringspaden veroorzaken.
Plan-and-Execute verdeelt de verwerking van complexe taken in twee fasen: plannen en uitvoeren. Na ontvangst van een taak analyseert de Agent eerst het taakdoel en breekt de uit te voeren stappen op en vormt een algemeen plan, en voert dan stap voor stap uit volgens het plan.
Bijvoorbeeld, een gebruiker vraagt: "Analyseer de recente bedrijfsprestaties van drie nieuwe energiebedrijven en maak een vergelijkingsrapport." Deze taak omvat meerdere stappen, waaronder gegevensverzameling, gegevensorganisatie, vergelijkende analyse en rapportage. Voor dergelijke taken met meerdere stappen kan eerst een plan worden opgesteld als volgt:
Nadat het plan is gevormd, voert de Agent de taken achtereenvolgens uit. Bij het uitvoeren van een stap kan hij nog steeds zoeken, databases of andere gereedschappen aanroepen. Wanneer tijdens de uitvoering wordt ontdekt dat het originele plan niet kan doorgaan, of wanneer nieuwe taakbehoeften verschijnen, kan het originele plan worden aangepast.
Het typische uitvoeringsproces van Plan-and-Execute kan worden uitgedrukt als:
Gebruikerstaak → Plan opstellen → Stap voor stap uitvoeren → Taakstatus controleren → Eindresultaat
Waarbij, bij het controleren van de taakstatus, als het originele plan aanpassingen vereist, opnieuw gepland kan worden voordat de uitvoering wordt voortgezet.
Vergeleken met ReAct, benadrukt Plan-and-Execute het opstellen van een algemeen plan vóór uitvoering, waardoor het geschikt is voor taken met veel stappen, duidelijke doelen en de mogelijkheid om vooraf te worden opgesplitst. De twee modi kunnen ook worden gecombineerd, bijvoorbeeld door Plan-and-Execute te gebruiken om complexe taken te plannen en vervolgens ReAct binnen individuele stappen te gebruiken om dynamisch de volgende bewerking te bepalen op basis van retourresultaten van gereedschappen.
De resultaten die een Agent de eerste keer genereert, voldoen mogelijk niet aan de taakvereisten. Het gegenereerde rapport kan bijvoorbeeld belangrijke informatie overslaan, antwoorden kunnen feitelijke fouten bevatten, of de code werkt mogelijk niet correct. Voor dergelijke taken kan een controle- en verbeteringsproces worden toegevoegd op basis van voorlopige resultaten — dit is het basisidee van de Reflection-modus (reflectie).
Het basale Reflection-proces kan worden uitgedrukt als: Gebruikerstaak → Voorlopige resultaten genereren → Resultaten controleren → Problemen identificeren → Resultaten wijzigen → Opnieuw controleren → ... → Voldoen aan vereisten → Eindresultaat.
Bijvoorbeeld, laat een Agent een productvergelijkingsrapport genereren op basis van meerdere bronnen. Na het voltooien van het eerste concept kun je verder controleren of alle te vergelijken producten zijn gedekt, of productparameters consistent zijn met de originele bronnen en of belangrijke verschillen ontbreken. Als voor een product onvolledige informatie wordt gevonden, kun je opnieuw naar materialen zoeken en aanvullen; als conclusies niet consistent zijn met de bronnen, moeten deze worden herzien.
In dit proces kunnen de feedback die worden gebruikt om resultaten te controleren afkomstig zijn van verschillende bronnen. De Agent kan zijn eigen uitvoeringsresultaten controleren, andere Agents of modellen gebruiken voor beoordeling, of regels, kennisbases of handmatige beoordeling combineren om feedback te geven.
Deze modus is meer geschikt voor taken met hoge kwaliteitsvereisten zoals rapportage, codeschrijven en complexe analyse. Echter, meerdere controles en aanpassingen zullen ook het aantal modelaanroepen en uitvoeringstijd verhogen, dus in de praktijk worden meestal voorwaarden voor beëindiging vastgesteld, zoals beëindigen wanneer resultaten voldoen aan vereisten of stoppen na het bereiken van het maximale aantal controles.
Voor sommige complexe taken moet één Agent mogelijk tegelijk gegevensverzameling, gegevensanalyse, inhoudsgeneratie en resultaatcontrole beheren. In dit geval kunnen taken worden toegewezen aan meerdere Agents, die elk verschillende delen verwerken en vervolgens samenwerken om het einddoel te bereiken. Multi-Agent samenwerking omvat voornamelijk twee aspecten: taakverdeling en informatieuitwisseling.
Bij taakverdeling worden verschillende Agents toegewezen aan verschillende rollen, taken, gereedschappen en kennis. Om bijvoorbeeld een industrieel onderzoeksrapport te voltooien, kunnen een Research Agent, een Data Analysis Agent, een Writing Agent en een Review Agent worden opgezet. De Research Agent is verantwoordelijk voor het verzamelen en organiseren van materialen, de Data Analysis Agent verwerkt relevante gegevens, de Writing Agent genereert het rapport, en de Review Agent controleert het rapport.
Op het gebied van informatieuitwisseling kunnen verschillende samenwerkingsmethoden worden gebruikt tussen meerdere Agents. Voor taken die duidelijk kunnen worden opgesplitst, kunnen meerdere Agents verschillende subtaken afzonderlijk verwerken en aan het einde de resultaten samenvoegen; voor taken met opeenvolgende afhankelijkheden kan het resultaat van de ene Agent aan de volgende Agent worden doorgegeven voor verdere verwerking; voor taken die herhaalde discussie of aanpassing vereisen, kunnen verschillende Agents informatie uitwisselen via berichtinteracties. Daarnaast kan een coördinerende Agent worden ingesteld die beslist welke Agent de taak als volgende moet behandelen op basis van de huidige situatie.
Als voorbeeld de generatie van een industrieel onderzoeksrapport, wordt een Multi-Agent samenwerkingsbenadering weergegeven in het diagram hieronder:

Multi-Agent samenwerking kan de moeilijkheid van het verwerken van complexe taken voor één Agent verminderen door taakverdeling, maar het aantal Agents is niet noodzakelijk beter. Naarmate het aantal Agents toeneemt, worden taaktoewijzing, informatieoverdracht en resultaatcoördinatie ook complexer, terwijl het aantal modelaanroepen en uitvoeringskosten toenemen. Daaroor is het voor taken die één Agent kan voltooien meestal niet nodig om meerdere Agents in te voeren.
Deze taakuitvoeringsmodi zijn niet onafhankelijk van elkaar en kunnen worden gecombineerd op basis van taakbehoeften in praktische toepassingen. Plan-and-Execute kan bijvoorbeeld worden gebruikt om complexe taken te plannen, dan ReAct om stappen te voltooien die meerdere gereedschapsaanroepen vereisen, met Reflection om resultaten te controleren en te verbeteren; voor grotere taken kunnen verschillende subtaken aan meerdere Agents worden toegewezen voor samenwerking.