AI-modeller og platforme

OpenAgents: En åben platform for sprogagenter i det vilde

mm
Føj Unite.AI til dine foretrukne kilder på Google

De seneste udviklinger har vist, at sprogagenter, især de bygget på store sprogmodeller (LLM’er), har potentialet til at udføre en bred vifte af komplekse opgaver i forskellige miljøer ved hjælp af naturligt sprog. Imidlertid er det primære fokus for de fleste sprogagent-rammer i øjeblikket på at facilere opbygningen af proof-of-concept-sprogagenter. Dette fokus kommer ofte med lidt eller ingen opmærksomhed på applikationsniveau-design og ignorerer ofte tilgængeligheden af disse agenter for ikke-ekspertbrugere.

For at overvinde de nuværende begrænsninger for sprogagenter har udviklere opfundet OpenAgents-rammen, en åben platform for hosting og deployment af sprogagenter i det vilde og på tværs af en række hverdagsopgaver. OpenAgents-rammen er bygget op omkring tre agenter

  • Data Agent: Hjælper med dataanalyse ved hjælp af dataværktøjer og forespørgselsprog som SQL eller programmeringssprog som Python.
  • Plugin-agenter: Hjælper med at give adgang til over 200+ API-værktøjer, der er nyttige til hverdagsopgaver.
  • Web-agenter: Hjælper med at browse på internettet, mens du opretholder din anonymitet.

OpenAgents-rammen bruger en webbrugerflade, der er optimeret til almindelige fejl og hurtige svar, i et forsøg på at give almindelige brugere mulighed for at interagere med agentfunktionerne, samtidig med at det tilbyder forskere og udviklere en problemfri deploymentsoplevelse på deres lokale installationer. Det ville være sikkert at sige, at OpenAgents-rammen er et forsøg på at give en solid grund for at facilitere realverdensevalueringer og skabe innovative, effektive og avancerede sprogagenter.

I dagens artikel vil vi dykke dybere ind i OpenAgents-rammen og tale om rammen i større detalje. Vi vil tale om rammenes arbejde og arkitektur, samt diskutere de almindelige udfordringer, der mødes, og resultaterne. Så lad os komme i gang.

OpenAgents og sprogagenter: En introduktion

Sprogagenter, i deres kerne, er afledt fra intelligente agenter. Disse intelligente agenter er konceptualiseret til at have selvstændige problemløsningsfærdigheder, samt evnen til at fornemme deres omgivelser, træffe beslutninger og handle derefter. Med fremgangen i store sprogmodeller har det globale udviklingsmiljø udnyttet konceptet om intelligente agenter og LLM’er til at skabe sprogagenter. Disse agenter anvender naturligt sprogprogrammering (NLP) til at udføre en bred vifte af komplekse opgaver i forskellige miljøer, og de har nylig vist bemærkelsesværdigt potentiale.

Nuværende sprogagent-rammer, såsom Gravitas og Chase, tilbyder primært en console-interface til udviklere, samt proof-of-concept-implementeringer. Imidlertid begrænser de ofte adgangen til en bredere publikum, især dem, der ikke er dygtige i kodning. Derudover er nuværende agent-benchmarks konstrueret af udviklere med bestemte krav til deterministisk evaluering, især i scenarier, der kræver webbrowsing, kodning, værktøjsanvendelse eller en kombination heraf.

I et forsøg på at udvikle LLM-drevne intelligente og sprogagenter til en bredere brugerbase har etablerede spillere som OpenAI og Microsoft (MSFT ) udviklet en række veludformede produkter, herunder Avanceret Dataanalyse, også kendt som Code Interpreter, og browser-tilføjelser. Selvom disse agenter er effektive i deres funktioner, tilbyder de begrænset hjælp til udviklingsmiljøet. Denne begrænsning opstår, fordi forretningslogikken og modelimplementeringerne ikke er åbne, hvilket hindrer mulighederne for udviklere og forskere til at udforske dem yderligere, samt begrænser fri adgang for brugere.

For at tackle dette problem er udviklere kommet med OpenAgents, en åben platform for hosting og brug af agenter, og det er i øjeblikket bygget på en grund af tre interne agenter

  • Data Agent: Hjælper med dataanalyse ved hjælp af dataværktøjer og forespørgselsprog som SQL eller programmeringssprog som Python.
  • Plugin-agenter: Hjælper med at give adgang til over 200+ API-værktøjer, der er nyttige til hverdagsopgaver.
  • Web-agenter: Hjælper med at browse på internettet, mens du opretholder din anonymitet.

Følgende figur demonstrerer OpenAgents-platformen for almindelige brugere, udviklere og forskere.

  1. I stedet for at bruge en programmer-orienteret pakke eller console kan almindelige brugere interagere med de tre agenter i OpenAgents-rammen ved hjælp af en online-webinterface.
  2. Udviklere kan bruge forretningslogikken og forskningskoderne, som OpenAgents-rammen tilbyder, til at deployere backend og frontend til yderligere udvikling.
  3. Forskere har muligheden for enten at bygge nye sprogagenter fra bunden eller implementere agent-relaterede metoder ved hjælp af de delede komponenter og eksempler, og evaluere deres præstation ved hjælp af webinterface.

For at samle det op er OpenAgents-rammen oprindeligt ment til at være en holistisk og realistisk platform for menneske-i-løkken sprogagent-evaluering, der giver brugere mulighed for at interagere med disse agenter for at udføre en bred vifte af opgaver, og disse menneske-agent-interaktioner samt brugerfeedback er gemt og analyseret til yderligere udvikling og evaluering.

For dem, der ikke er bekendt med det, er LLM-prompting en proces, der giver udviklere mulighed for at skabe instruktioner, der beskytter mod fjendtlige eller forkerte indtastninger, forbedrer outputæstetikken og tilpasser sig backend-logikken. Under udviklingsfasen bruger udviklerne, der arbejder på OpenAgents-rammen, LLM-prompt-teknikken til at understrege betydningen af at specificere applikationskrav effektivt. Imidlertid observerede udviklerne snart, at opbygningen af disse instruktioner eller LLM-prompts kan være betydelig af og til, hvilket kan påvirke kontekstbehandlingsfærdighederne hos LLM-rammerne samt token-begrænsninger. Udviklerne observerede også, at for at deployere disse agenter effektivt i den virkelige verden, skal agentmodellerne ikke kun vise fremragende præstation, men de skal også være i stand til at tackle en bred vifte af interaktive scenarier i realtid. Selvom nuværende agent-rammer har præstationen dækket, ignorerer de ofte realverdens-overvejelser, især i realtid, hvilket kan kamuflere det sande potentiale for LLM-rammer ved at handle om respons eller præcision.

I følgende figur sammenligner vi OpenAgents-rammen direkte med eksisterende arbejde på benchmarks på agent-koncept og bygning af prototyper.

OpenAgents: Platform-design og implementering

Den systematiske design eller arkitektur af OpenAgents-platformen kan deles op i to primære komponenter: Brugerflade, herunder både backend og frontend, og Sprogagent, der består af værktøjer, sprogmodeller og miljøer. OpenAgents-rammen giver en interface for kommunikation mellem brugere og agenter. Interaktionsflowet i rammen er som følger.

Agenterne bruger de værktøjer, der er til rådighed for dem, til at planlægge og udføre de nødvendige handlinger i miljøerne, når de har modtaget input fra brugerne. Arkitekturen eller den systematiske design af rammen er demonstreret i følgende billede.

Brugerflade

Udviklerne af OpenAgents-rammen har lagt stor tanke og indsats i udviklingen af en højtydende og brugerflade, efter at have tacklede en masse af værktøjer og genbrugelig forretningslogik. Som resultat heraf giver OpenAgents-rammen støtte til en bred vifte af tekniske opgaver, herunder fejlhåndtering, backend-serveroperationer, data-streaming og meget mere, med det primære mål at gøre OpenAgents-rammen brugerflade, men højtydende og brugbar på samme tid.

Sprogagent

Inden for OpenAgents-rammen har sprogagenten tre væsentlige komponenter: en værktøjsinterface, en sprogmodel og miljøet selv. Prompt-metoden, der er implementeret i OpenAgents-rammen, skaber en sekventiel proces for agenterne at følge, der starter med Observation -> Overvejelse -> Handling. Rammen prompter også LLM til at generere parsbar tekst med forbedret effektivitet, og værktøjsinterface består af parse, der kan oversætte disse parsbare tekster, der er genereret af LLM’er, til eksekverbare handlinger som at lave API-kald eller generere kode. Disse handlinger udføres derefter af rammen inden for grænserne af det pågældende miljø.

OpenAgents-agenter

I hjertet af OpenAgents findes der tre distinkte agenter: Data Agent, der hjælper med dataanalyse ved hjælp af dataværktøjer og forespørgselsprog som SQL eller programmeringssprog som Python, Plugin-agenter, der hjælper med at give adgang til over 200+ API-værktøjer, der er nyttige til hverdagsopgaver, og Web-agenter, der hjælper med at browse på internettet, mens du opretholder din anonymitet. Disse agenter har individuel domæne-ekspertise, ligesom ChatGPT-tilføjelser, men i modsætning til ChatGPT er implementeringen på OpenAgents baseret på åbne sprog-applikationsprogrammeringsgrænseflader eller API’er.

Data Agent

Data-agenten i OpenAgents-rammen er designet og deployeret til at håndtere en bred vifte af data-relaterede opgaver, som slutbrugere møder på en daglig basis. Data-agenterne understøtter kode-generering og -eksekvering i to programmeringssprog, nemlig SQL og Python, og agenten har også adskillige dataværktøjer til rådighed, herunder Data Profiling til at give grundlæggende dataoplysninger, Kaggle Data Search til at søge efter datasets, ECharts-værktøj til at plotte interaktive ECharts. Derudover prompter OpenAgents-rammen data-agenten til at bruge disse værktøjer proaktivt til at svare effektivt på slutbrugernes anmodninger. Yderligere, på grund af de omfattende kodningskrav, vælger OpenAgents-rammen at indbygge sprogmodeller til data-agenten, og i stedet for at agenten genererer koden, er det værktøjerne som Python, ECharts og SQL, der genererer koden. Med denne tilgang kan rammen udnytte programmeringsfærdighederne hos sprogmodellerne fuldt ud og reducerer dermed belastningen på data-agenten.

Med hjælp af disse dataværktøjer kan data-agenten håndtere mange data-centreret anmodninger og udfører data-visualisering, manipulation og forespørgsler effektivt, og går dermed ud over grænserne for kode- og tekst-generering. Følgende figur fremhæver en data-agent i aktion og de værktøjer, der er til rådighed for almindelige brugere.

Plugin-agenter

Plugin-agenten i OpenAgents-rammen er designet af udviklerne omhyggeligt til at imødekomme brugernes multifacetterede krav til hverdagsopgaver, herunder internetsøgning, online-shopping, nyheds læsning eller oprettelse af websteder og -applikationer ved at give adgang til over 200 plugins, med særlig opmærksomhed på funktion-kald-grænseflade, API-ping og API-svarlængde. Nogle af de fremtrædende plugins omfatter

  1. Google Søgning
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Vis mig
  7. Tal
  8. Spørg din PDF
  9. BizTok
  10. Klook

Basert på deres behov og krav kan brugere vælge, hvor mange plugins de ønsker, at plugin-agenten skal bruge, og arbejdet demonstreres i figuren nedenfor.

Derudover tilbyder OpenAgents-rammen brugerne en funktion, der automatisk vælger de plugins, der er mest relevante for deres anmodninger, hvis de ikke er sikre på, hvilken plugin der bedst imødekommer deres behov.

Web-agenter

OpenAgents-rammen præsenterer web-agenten som et specialværktøj, der er designet til at forbedre effektiviteten og kapaciteten af chat-agenten. Selvom chat-agenten stadig huser den primære interaktionsgrænseflade, integrerer den web-agenten nænsomt, når det er nødvendigt. Den endelige respons leveres derefter til slutbrugeren af web-agenten, og processen er illustreret i figuren nedenfor.

Design-strategien, der er implementeret i disse web-agenter, viser sig at være af stor fordel, da chat-agenten behandler vigtige parametre eller initierer URL’er systematisk, før de overføres til web-agenten, hvilket sikrer en bedre alignment mellem brugernes krav og den genererede output, hvilket resulterer i klar kommunikation. Derudover giver strategien også web-agenterne mulighed for at imødekomme lagdelte og tilpasningsdygtige brugerforespørgsler ved at anvende en dynamisk multi-turn web-navigering kombineret med chat-dialoger. Derfor åbner OpenAgents-rammen, ved at afgrænse roller og ansvar for chat- og multi-browsing-agenter tydeligt, vejen for forbedring og udvikling af hvert enkelt modul.

OpenAgents: Praktiske anvendelser og virkelige verden-deployment

I dette afsnit vil vi tale om OpenAgents-rammens udvikling fra teorier til deployment i den virkelige verden, samt de udfordringer, der er mødt, og erfaringer, der er tilegnet, samt evalueringens kompleksitet, som udviklerne har tacklet.

Brug af prompts til at omdanne store sprogmodeller til virkelige verden-applikationer

Når man bruger LLM-prompts til at bygge virkelige verden-applikationer til slutbrugere, bruger OpenAgents-rammen prompt-instruktioner til at specificere bestemte krav. Formålet med nogle af disse instruktioner er at sikre, at outputtet er i overensstemmelse med en bestemt format, hvilket giver backend-logikken mulighed for at behandle, mens formålet med andre instruktioner er at forbedre outputtets æstetik, mens de resterende instruktioner beskytter rammen mod potentielle ondsindede angreb.

Ukontrollerbare virkelige verden-faktorer

Når udviklerne deployerede OpenAgents-rammen i den virkelige verden, mødte de en række ukontrollerbare virkelige verden-faktorer, udløst af internettet, brugere, forretningslogik og mere. Disse ukontrollerbare faktorer tvang udviklerne til at reevaluere og justere nogle antagelser baseret på tidligere forskning, og de kunne ultimativt føre til situationer, hvor slutbrugere ikke er tilfredse med den respons, som rammen genererer.

Evalueringens kompleksitet

Selvom konstruerede agenter, der er rettet direkte mod applikationer, kan have en bredere anvendelse og give bedre evaluering, tilføjer det kompleksitet til bygningen af LLM-drevne applikationer, hvilket gør det svært at analysere applikationernes præstation. Derudover tilføjer denne tilgang også ustabilitet og udvider systemkæden af LLM’erne, hvilket gør det svært for rammen at tilpasse sig forskellige komponenter. Det er derfor nødvendigt at forbedre systemdesign og driftslogikken for disse agenter for at simplificere procedurerne og sikre effektiv output.

Endelige tanker

I denne artikel har vi talt om OpenAgents-rammen, en åben platform for hosting og deployment af sprogagenter i det vilde og på tværs af en række hverdagsopgaver. OpenAgents-rammen er bygget op omkring tre agenter: Data Agent, der hjælper med dataanalyse ved hjælp af dataværktøjer og forespørgselsprog som SQL eller programmeringssprog som Python, Plugin-agenter, der hjælper med at give adgang til over 200+ API-værktøjer, der er nyttige til hverdagsopgaver, og Web-agenter, der hjælper med at browse på internettet, mens du opretholder din anonymitet. OpenAgents-rammen bruger en webbrugerflade, der er optimeret til almindelige fejl og hurtige svar, i et forsøg på at give almindelige brugere mulighed for at interagere med agentfunktionerne, samtidig med at det tilbyder forskere og udviklere en problemfri deploymentsoplevelse på deres lokale installationer. Ved at tilbyde en transparent, holistisk og deployabel platform sigter OpenAgents mod at gøre potentialet for LLM’er tilgængeligt for en bredere publikum, ikke kun forskere og udviklere, men også slutbrugere med begrænset teknisk ekspertise.

Kunal Kejriwal er en backend-ingeniør med speciale i Python, PostgreSQL, Redis og cloud-infrastruktur på GCP og AWS. Med tre års erfaring i at bygge og skalere produktionssystemer skriver han om AI-infrastruktur, distribuerede systemer og arkitekturen bag implementering af maskinlæringsarbejdsbelastninger.