Kontakt med oss

Kunstig intelligens

OpenAgents: En åpen plattform for språkagenter i naturen

mm

Nyere utvikling har vist at språkagenter, spesielt de som er bygget på store språkmodeller (LLM), har potensialet til å utføre et bredt spekter av intrikate oppgaver i forskjellige miljøer ved å bruke naturlig språk. Imidlertid er hovedfokuset for de fleste språkagentrammeverk for tiden på å lette konstruksjonen av proof-of-concept språkagenter. Dette fokuset kommer ofte med liten eller ingen oppmerksomhet til design på applikasjonsnivå og neglisjerer ofte tilgjengeligheten til disse agentene for ikke-ekspertbrukere.

For å bygge bro over de nåværende begrensningene som språkagenter opplever, har utviklere kommet opp med OpenAgents-rammeverket, en åpen plattform for hosting og distribusjon av språkagenter i naturen, og på tvers av en rekke dagligdagse gjøremål. OpenAgents-rammeverket er bygget rundt tre agenter

  • Dataagent: Hjelper med dataanalyse ved hjelp av dataverktøy og spørringsspråk som SQL, eller programmeringsspråk som Python. 
  • Plugin-agenter: Hjelper ved å gi tilgang til over 200+ API-verktøy som er nyttige for daglige oppgaver. 
  • Nettagenter: Hjelper med å surfe på nettet samtidig som du opprettholder anonymiteten din. 

OpenAgents-rammeverket bruker et nettbrukergrensesnitt optimalisert for vanlige feil og raske svar i et forsøk på å la generelle brukere samhandle med agentfunksjonene, samtidig som det tilbyr forskere og utviklere en sømløs distribusjonsopplevelse på deres lokale oppsett. Det vil være trygt å si at OpenAgents-rammeverket er et forsøk på å gi et solid grunnlag for å legge til rette for virkelige evalueringer, og lage innovative, effektive og avanserte språkagenter. 

I dagens artikkel vil vi ta et dypere dykk inn i OpenAgents-rammeverket, og snakke om rammeverket i større detalj. Vi vil snakke om rammeverkets virkemåte og arkitektur, samtidig som vi diskuterer felles utfordringer og resultatene. Så la oss komme i gang. 

OpenAgents og språkagenter: en introduksjon

Språkagenter er i sin kjerne avledet fra intelligente agenter. Disse intelligente agentene er konseptualisert til å ha autonome problemløsningsevner, sammen med evnen til å føle omgivelsene deres, ta beslutninger og handle deretter. Med fremskritt innen store språkmodeller har det globale utviklingssamfunnet utnyttet konseptet intelligente agenter og LLM-er for å lage språkagenter. Disse agentene bruker naturlig språkprogrammering (NLP) for å utføre et bredt spekter av intrikate oppgaver i forskjellige miljøer, og de har nylig vist et bemerkelsesverdig potensial.

Nåværende språkagentrammeverk, som Gravitas og Chase, gir først og fremst et konsollgrensesnitt skreddersydd for utviklere, sammen med proof-of-concept-implementeringer. Imidlertid begrenser de ofte tilgjengeligheten til et bredere publikum, spesielt de som ikke er dyktige i koding. I tillegg er nåværende agentbenchmarks konstruert av utviklere med spesifikke krav til deterministisk evaluering, spesielt i scenarier som krever nettsurfing, koding, bruk av verktøy eller en kombinasjon av disse.

I et forsøk på å utvikle LLM-drevne intelligente og språkagenter for en bredere brukerbase, har etablerte aktører som OpenAI og Microsoft distribuert en rekke godt utformede produkter, inkludert Advanced Data Analysis, også kjent som Code Interpreter, og nettleserplugins. Selv om disse agentene er effektive i sine funksjoner, tilbyr de begrenset hjelp til utviklingsfellesskapet. Denne begrensningen oppstår fordi forretningslogikkkoden og modellimplementeringene ikke har vært åpen kildekode, noe som hindrer utviklere og forskeres muligheter til å utforske dem videre, samt begrenser gratis tilgang for brukere.

I et forsøk på å takle dette problemet har utviklere kommet opp med OpenAgents, en åpen kildekode-plattform for hosting og bruk av agenter, og den er for tiden bygget på et grunnlag av tre interne agenter

  • Dataagent: Hjelper med dataanalyse ved hjelp av dataverktøy og spørringsspråk som SQL, eller programmeringsspråk som Python. 
  • Plugin-agenter: Hjelper ved å gi tilgang til over 200+ API-verktøy som er nyttige for daglige oppgaver. 
  • Nettagenter: Hjelper med å surfe på nettet samtidig som du opprettholder anonymiteten din. 

Følgende figur viser OpenAgents-plattformen for generelle brukere, utviklere og forskere. 

  1. I stedet for å bruke en programmererorientert pakke eller konsoller, kan generelle brukere samhandle med de tre agentene i OpenAgents-rammeverket ved hjelp av et nettgrensesnitt. 
  2. Utviklere kan bruke forretningslogikken og forskningskodene fra OpenAgents-rammeverket for sømløst å distribuere backend og frontend for videre utvikling. 
  3. Forskere har fleksibiliteten til å enten bygge nye språkagenter fra bunnen av, eller implementere agentrelaterte metoder ved å bruke de delte komponentene og eksemplene, og evaluere ytelsen deres ved å bruke nettgrensesnittet. 

For å oppsummere, er OpenAgents-rammeverket opprinnelig ment å være en helhetlig og realistisk plattform for evaluering av human-in-the-loop-språkagenter som lar brukere samhandle med disse agentene for å fullføre et bredt spekter av oppgaver, og disse menneske- agentinteraksjoner sammen med brukertilbakemeldinger lagres og analyseres for videre utvikling og evaluering. 

For de som ikke er klar over, LLM-spørring er en prosess som lar utviklere lage instruksjoner som beskytter mot motstridende eller feil input, forbedrer utdataestetikken og imøtekommer backend-logikken. Under utviklingsfasen bruker utviklere som jobber med OpenAgents-rammeverket LLM-spørringsteknikken for å understreke betydningen av å spesifisere applikasjonskrav effektivt. Utviklere observerte imidlertid snart at oppbygging av disse instruksjonene eller LLM-instruksjonene kan være betydelig til tider som kan påvirke konteksthåndteringsevnene til LLM-rammeverk sammen med token-begrensninger. Utviklerne observerte også at for å distribuere disse agentene effektivt i den virkelige verden, bør agentmodellene ikke bare vise eksepsjonell ytelse, men de bør også kunne takle et bredt spekter av interaktive scenarier i sanntid. Selv om gjeldende agentrammer har dekket ytelsen, ignorerer de ofte reelle hensyn, spesielt i sanntid, som ofte tilslører det sanne potensialet til LLM-rammeverk ved å bytte ut respons eller nøyaktighet. 

I den følgende figuren sammenligner vi OpenAgents-rammeverket direkte med eksisterende arbeider på benchmarks på agentkonsept og bygger prototyper. 

OpenAgents: Plattformdesign og implementering

Den systematiske utformingen eller arkitekturen til OpenAgents-plattformen kan deles inn i to hovedkomponenter: Brukergrensesnitt, inkludert både backend og frontend, og Språkagent, som omfatter verktøy, språkmodeller og miljøer. OpenAgents-rammeverket gir et grensesnitt for kommunikasjon mellom brukerne og agentene. Flyten av interaksjon i rammeverket er som følger.

Agentene bruker tilgjengelige verktøy for å planlegge og utføre nødvendige handlinger i miljøene når de har mottatt innspill fra brukerne. Arkitekturen eller systematisk utforming av rammeverket er demonstrert i følgende bilde. 

Brukergrensesnitt

Utviklere av OpenAgents-rammeverket har lagt mye tanke og krefter i å utvikle ikke bare et svært funksjonelt, men også et brukervennlig brukergrensesnitt etter å ha taklet en mengde vertsagenter og gjenbrukbar forretningslogikk. Som et resultat kan OpenAgents-rammeverket skryte av å gi støtte for et bredt spekter av tekniske oppgaver, inkludert feilhåndtering, backend-serveroperasjoner, datastrømming og mye mer, med hovedmålet å gjøre OpenAgents-rammeverket brukervennlig, men svært effektivt og brukbar samtidig. 

Språkagent

Innenfor OpenAgents-rammeverket har språkagenten tre essensielle komponenter: et verktøygrensesnitt, en språkmodell og selve miljøet. Spørringsmetoden implementert i OpenAgents-rammeverket skaper en sekvensiell prosess for agentene å følge som starter med Observasjon -> Overveielse -> Handling. Rammeverket ber også LLM om å generere parserbar tekst med økt effektivitet, og verktøygrensesnittet består av parsere som kan oversette disse parserbare tekstene generert av LLM-er til kjørbare handlinger som å lage API-kall eller generere kode. Disse handlingene blir deretter utført av rammeverket innenfor grensene til det tilsvarende miljøet. 

OpenAgents 'agenter

I kjernen av OpenAgents er det tre forskjellige agenter: Dataagent som hjelper med dataanalyse ved bruk av dataverktøy, og spørringsspråk som SQL, eller programmeringsspråk som Python, Plugin-agenter Det hjelper ved å gi tilgang til over 200+ API-verktøy som er nyttige for daglige oppgaver, og Nettagenter som hjelper deg med å surfe på nettet samtidig som du opprettholder anonymiteten din. Disse agentene har individuell domeneekspertise som ligner på ChatGPT-plugin-moduler, men i motsetning til ChatGPT er implementeringen på OpenAgents utelukkende basert på åpent språk Application Programming Interface eller APIer. 

Dataagent

Dataagenten i OpenAgents-rammeverket er designet og distribuert på en måte for å håndtere et bredt spekter av datarelaterte oppgaver som sluttbrukerne møter på regelmessig basis. Dataagentene støtter kodegenerering og kjøring i to programmeringsspråk nemlig SQL og Python, og agenten har også flere dataverktøy til disposisjon bl.a. Dataprofilering for å gi grunnleggende datainformasjon, Kaggle Datasøk for å søke i datasett, og ECharts-verktøy for plotting av interaktive ECharts. Videre ber OpenAgents-rammeverket dataagenten om å bruke disse verktøyene proaktivt for å effektivt svare på forespørsler fra sluttbrukere. I tillegg, gitt de uttømmende kodingskravene, velger OpenAgents-rammeverket innebygde språkmodeller for dataagenten, og i stedet for agenten som genererer koden, er det verktøyene som Python, ECharts og SQL som genererer koden. Med denne tilnærmingen er rammeverket i stand til å utnytte programmeringsevnen til språkmodeller fullstendig, og reduserer dermed belastningen på dataagenten. 

Ved hjelp av disse dataverktøyene er dataagenten i stand til å administrere en rekke datasentriske forespørsler, og utfører datavisualisering, manipulering og spørringer på en dyktig måte, og overskrider dermed grensene for kode- og tekstgenerering. Følgende figur fremhever en dataagent i aksjon, og verktøyene som er tilgjengelige for vanlige brukere. 

Programtilleggsagent

Plugin-agenten i OpenAgents-rammeverket er designet av utviklere omhyggelig for å imøtekomme en brukers mangefasetterte krav til daglige oppgaver, inkludert søk på internett, netthandel, lesing av nyheter eller opprettelse av nettsteder og applikasjoner ved å gi tilgang til over 200 plugins, med spesiell oppmerksomhet blir betalt for funksjonskallingsgrensesnitt, API-pinger og API-svarlengder. Noen av de fremtredende pluginene inkluderer 

  1. Google Search 
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Vis meg
  7. Snakk
  8. Spør YourPDF
  9. BizTok
  10. klook

Basert på deres behov og krav, kan brukerne velge antall plugins de vil at plugin-agentene skal bruke, og virkemåten er vist i figuren nedenfor. 

Videre, for å hjelpe brukere i situasjoner der de ikke er sikre på hvilken plugin som passer deres behov best, tilbyr OpenAgents-rammeverket brukerne en funksjon som automatisk velger pluginene som er mest relevante for deres instruksjoner. 

Nettagenter

OpenAgents-rammeverket presenterer webagent som et spesialisert verktøy som har til oppgave å forbedre effektiviteten og mulighetene til chat-agenten. Selv om chat-agenten fortsatt huser hovedinteraksjonsgrensesnittet, inkorporerer den sømløst nettagenten når det er nødvendig. Det endelige svaret leveres deretter til sluttbrukeren av webagenten, og prosessen er illustrert i figuren under. 

Designstrategien implementert i disse webagentene viser seg å være til stor nytte da chat-agenten behandler viktige parametere eller initierer URL-er systematisk, før de overføres til webagenten, og dermed sikrer en bedre justering mellom brukerens krav, og generert output, og dermed som resulterer i tydelig kommunikasjon. Videre lar strategien også nettagentene imøtekomme lagdelte og tilpasningsdyktige brukerspørsmål ved å bruke en dynamisk multi-sving nettnavigasjon kombinert med chat-dialoger. Derfor, ved å avgrense rollene og ansvaret til chat- og multi-surfing-agenter tydelig, gir OpenAgents-rammeverket plass for foredling og utvikling av hver enkelt modul. 

OpenAgents: Praktiske applikasjoner og implementering i den virkelige verden

I denne delen skal vi snakke om banen til OpenAgents-rammeverket fra teoretisering til utrulling i den virkelige verden sammen med utfordringene man møter, og læringen som er tilført sammen med evalueringskompleksitetene utviklerne taklet. 

Bruke ledetekster for å transformere store språkmodeller til apper fra den virkelige verden

Når du bruker LLM-instruksjoner for å bygge virkelige applikasjoner for sluttbrukere, bruker OpenAgents-rammeverket instruksjoner for å spesifisere visse krav. Målet med noen av instruksjonene er å sikre at utdataene er på linje med et spesifikt format, slik at backend-logikken kan behandles, mens målet med andre instruksjoner er å forbedre utdataens estetiske appell, mens resten beskytter rammeverket mot potensielle ondsinnede angrep. 

Ukontrollerbare virkelige faktorer

Da utviklere implementerte OpenAgents-rammeverket i den virkelige verden, ble de ønsket velkommen av en rekke ukontrollerbare virkelige faktorer utløst av internettinfrastruktur, brukere, forretningslogikk og mer. Disse ukontrollerbare faktorene tvang utviklere til å revurdere og overstyre noen antakelser på grunnlag av tidligere forskning, og de kan til slutt føre til situasjoner der sluttbrukerne kanskje ikke er fornøyd med responsen som rammeverket genererer. 

Evalueringskompleksitet

Selv om konstruerte agenter rettet direkte mot applikasjoner kan ha en bredere applikasjon og tilrettelegge for bedre evaluering, øker det kompleksiteten ved å bygge LLM-drevne applikasjoner, noe som gjør det vanskelig å analysere ytelsen til applikasjonene. Videre legger denne tilnærmingen også til ustabiliteten og utvider systemkjeden til LLM-er som gjør det utfordrende for rammeverket å tilpasse seg ulike komponenter. Det er derfor fornuftig å avgrense systemdesignet og driftslogikken til disse agentene for å forenkle prosedyrene og sikre effektiv produksjon. 

Final Thoughts

I denne artikkelen har vi snakket om OpenAgents-rammeverket, en åpen plattform for hosting og distribusjon av språkagenter i naturen, og på tvers av en rekke dagligdagse gjøremål. OpenAgents-rammeverket er bygget rundt tre agenter: Data Agent, hjelper med dataanalyse ved hjelp av dataverktøy og spørringsspråk som SQL, eller programmeringsspråk som Python, Plugin Agents, hjelper ved å gi tilgang til over 200+ API-verktøy som er nyttige for daglige oppgaver, og webagenter hjelper til med å surfe på nettet mens du opprettholder anonymiteten din . OpenAgents-rammeverket bruker et nettbrukergrensesnitt optimalisert for vanlige feil og raske svar i et forsøk på å la generelle brukere samhandle med agentfunksjonene, samtidig som det tilbyr forskere og utviklere en sømløs distribusjonsopplevelse på deres lokale oppsett. Ved å tilby en transparent, helhetlig og en distribuerbar plattform, har OpenAgents som mål å gjøre potensialet til LLM-er tilgjengelig for et bredere spekter av brukere, ikke begrenset til forskere og utviklere, men også sluttbrukere med begrenset teknisk ekspertise. 

"En ingeniør av yrke, en forfatter utenat". Kunal er en teknisk forfatter med en dyp kjærlighet og forståelse for AI og ML, dedikert til å forenkle komplekse konsepter på disse feltene gjennom sin engasjerende og informative dokumentasjon.