Connect with us

Tankeledere

Guide til å forstå, bygge og optimalisere API-kalle-agenter

mm

Rollen til kunstig intelligens i teknologiselskaper utvikler seg raskt; AI-brukssaker har utviklet seg fra passiv informasjonsbehandling til proaktive agenter som kan utføre oppgaver. Ifølge en undersøkelse om global AI-adoptsjon gjennomført av Georgian og NewtonX i mars 2025, bruker 91% av tekniske ledere i selskaper i vekststadiet og bedriftsselskaper angivelig agentic AI eller planlegger å bruke det.

API-kalle-agenter er et primærexempel på denne overgangen til agenter. API-kalle-agenter utnytter store språkmodeller (LLM) til å samhandle med programvaresystemer via deres programmeringsgrensesnitt (APIer).

For eksempel kan agenter, ved å oversette naturlige språkkommandoer til presise API-kall, hente sanntidsdata, automatisere rutineoppgaver eller til og med kontrollere andre programvaresystemer. Denne evnen transformerer AI-agenter til nyttige mellomledd mellom menneskelig intensjon og programvarefunksjonalitet.

Selskaper bruker for tiden API-kalle-agenter i ulike domener, inkludert:

  • Forbrukerapplikasjoner: Assistentene som Apples Siri eller Amazons Alexa er designet for å forenkle daglige oppgaver, som å kontrollere smarte hjemmeenheter og gjøre reservasjoner.
  • Bedriftsarbetsflyter: Bedrifter har deployert API-agenter for å automatisere repetitive oppgaver som å hente data fra CRM, generere rapporter eller konsolidere informasjon fra interne systemer.
  • Datahenting og analyse: Bedrifter bruker API-agenter til å forenkle tilgangen til proprietære datasett, abonnementsbaserte ressurser og offentlige APIer for å generere innsikt.

I denne artikkelen vil jeg bruke en ingeniør-sentrert tilnærming til å forstå, bygge og optimalisere API-kalle-agenter. Materialet i denne artikkelen er basert delvis på den praktiske forskningen og utviklingen som er utført av Georgians AI-laboratorium. Den motivasjonelle spørsmålet for mye av AI-laboratoriets forskning på området API-kalle-agenter har vært: “Hvis en organisasjon har en API, hva er den mest effektive måten å bygge en agent som kan samhandle med den APIen ved hjelp av naturlig språk?”

Jeg vil forklare hvordan API-kalle-agenter fungerer og hvordan man kan arkitektonisk og ingeniørmessig bygge disse agentene for ytelse. Til slutt vil jeg gi en systematisk arbeidsflyt som ingeniørteam kan bruke til å implementere API-kalle-agenter.

I. Nøkkeldefinisjoner:

  • API eller programmeringsgrensesnitt: En samling regler og protokoller som muliggjør kommunikasjon og informasjonsutveksling mellom ulike programvareapplikasjoner.
  • Agent: Et AI-system designet for å oppfatte sin omverden, ta beslutninger og utføre handlinger for å oppnå bestemte mål.
  • API-kalle-agent: En spesialisert AI-agent som oversetter naturlige språkinstruksjoner til presise API-kall.
  • Kodegenereringsagent: Et AI-system som hjelper med programvareutvikling ved å skrive, modifisere og feilsøke kode. Selv om det er relatert, fokuserer jeg her hovedsakelig på agenter som kaller APIer, selv om AI også kan hjelpe med å bygge disse agentene.
  • MCP (Modellkontekstprotokoll): Et protokoll, særlig utviklet av Anthropic, som definerer hvordan LLM kan koble til og bruke eksterne verktøy og datakilder.

II. Kjerneoppgave: Oversette naturlig språk til API-handlinger

Den grunnleggende funksjonen til en API-kalle-agent er å tolke en brukers naturlige språkforespørsel og konvertere den til en eller flere presise API-kall. Denne prosessen innebærer vanligvis:

  1. Intentsrekognition: Å forstå brukerens mål, selv om det uttrykkes tvetydig.
  2. Verktøyvalg: Å identifisere det relevante API-endepunktet (eller “verktøyet”) fra en samling tilgjengelige alternativer som kan oppfylle intensjonen.
  3. Parameteruttrekk: Å identifisere og trekke ut de nødvendige parameterne for det valgte API-kallet ( eller kallene) fra brukerens spørring.
  4. Utførelse og svarsgenerering: Å utføre API-kallet ( eller kallene), motta svaret ( eller svarene) og deretter syntetisere denne informasjonen til et sammenhengende svar eller utføre en påfølgende handling.

Vurdér en forespørsel som “Hei Siri, hva er været som i dag?” Agenten må identifisere behovet for å kalle et vær-API, bestemme brukerens nåværende lokasjon (eller tillate spesifisering av en lokasjon) og deretter formulere API-kallet for å hente værinformasjonen.

For forespørselen “Hei Siri, hva er været som i dag?”, kan et eksempel på et API-kall se slik ut:

GET /v1/vær?lokasjon=New%20York&enheter=metrisk

Initielle høynivåutfordringer er innebygget i denne oversettelsesprosessen, inkludert tvetydigheten til naturlig språk og behovet for at agenten skal opprettholde kontekst over multi-trinn interaksjoner.

For eksempel må agenten ofte “huske” tidligere deler av en samtale eller tidligere API-kallresultater for å informere nåværende handlinger. Konteksttap er en vanlig feilmodus hvis det ikke håndteres eksplisitt.

III. Arkitektur for løsningen: Nøkkelkomponenter og protokoller

Bygging av effektive API-kalle-agenter krever en strukturert arkitektonisk tilnærming.

1. Definere “verktøy” for agenten

For at en LLM skal kunne bruke en API, må APIens funksjonalitet beskrives for den på en måte den kan forstå. Hvert API-endepunkt eller funksjon representeres ofte som et “verktøy”. En robust verktøysdefinisjon inkluderer:

  • En tydelig, naturlig språkbeskrivelse av verktøyets formål og funksjonalitet.
  • En presis spesifikasjon av dens inndataparametere (navn, type, om det er påkrevd eller valgfritt, og en beskrivelse).
  • En beskrivelse av utdata eller data verktøyet returnerer.

2. Rollen til modellkontekstprotokoll (MCP)

MCP er en kritisk muliggjører for mer standardisert og robust verktøybruk av LLM. Det gir en strukturert format for å definere hvordan modeller kan koble til eksterne verktøy og datakilder.

MCP-standardisering er gunstig fordi det muliggjør enklere integrering av ulike verktøy, det fremmer gjenbruk av verktøysdefinisjoner over ulike agenter eller modeller. Videre er det en beste praksis for ingeniørteam, som starter med godt definerte API-spesifikasjoner, som for eksempel en OpenAPI-spec. Verktøy som Stainless.ai er designet for å hjelpe med å konvertere disse OpenAPI-spesifikasjonene til MCP-konfigurasjoner, og strømlinje prosessen med å gjøre APIer “agent-klare”.

3. Agentrammeverk og implementeringsvalg

Flere rammeverk kan hjelpe med å bygge agenten selv. Disse inkluderer:

  • Pydantic: Selv om det ikke eksklusivt er et agentrammeverk, er Pydantic nyttig for å definere datastrukturer og sikre typesikkerhet for verktøyinndata og -utdata, som er viktig for pålitelighet. Mange tilpassede agentimplementeringer utnytter Pydantic for denne strukturelle integriteten.
  • LastMiles mcp_agent: Dette rammeverket er spesifikt designet for å fungere med MCP, og tilbyr en mer bestemt struktur som samsvare med praksis for å bygge effektive agenter, som beskrevet i forskning fra steder som Anthropic.
  • Intern rammeverk: Det er også stadig mer vanlig å bruke AI-kodegenereringsagenter (med verktøy som Cursor eller Cline) for å hjelpe med å skrive boilerplate-koden for agenten, dens verktøy og den omgivende logikken. Georgian AI-laboratoriets erfaring med å arbeide med selskaper på agentic-implementeringer viser at dette kan være nyttig for å skape svært minimale, tilpassede rammeverk.

IV. Ingeniørarbeid for pålitelighet og ytelse

Sikring av at en agent utfører API-kall pålitelig og fungerer godt, krever fokusert ingeniørinnsats. To måter å gjøre dette på er (1) datasett-opprettelse og validering og (2) promptingeniørarbeid og optimalisering.

1. Datasett-opprettelse og validering

Trening (hvis aktuelt), testing og optimalisering av en agent krever et høykvalitetsdatasett. Dette datasettet bør bestå av representative naturlige språkforespørsler og deres tilhørende ønskede API-interaksjoner eller resultater.

  • Manuell opprettelse: Manuell kurering av et datasett sikrer høy presisjon og relevans, men kan være arbeidskrevende.
  • Syntetisk generering: Generering av data programmatisk eller ved hjelp av LLM kan skalerer datasett-opprettelse, men denne tilnærmingen presenterer betydelige utfordringer. Georgian AI-laboratoriets forskning fant at sikring av riktighet og realistisk kompleksitet av syntetisk genererte API-kall og forespørsler er svært vanskelig. Ofte var genererte spørsmål enten for enkle eller umulig komplekse, noe som gjorde det vanskelig å måle nyansert agent-ytelse. Omsorgsfull validering av syntetisk data er absolutt kritisk.

For kritisk evaluering kan et mindre, høykvalitets-, manuelt verifisert datasett ofte gi mer pålitelige innsikt enn et stort, støyende syntetisk datasett.

2. Promptingeniørarbeid og optimalisering

Ytelsen til en LLM-basert agent påvirkes sterkt av promptene som brukes til å guide dens resonnering og verktøyvalg.

  • Effektiv prompting innebærer å tydelig definere agentens oppgave, å gi beskrivelser av tilgjengelige verktøy og å strukturere prompten for å oppmuntre nøyaktig parameteruttrekk.
  • Systematisk optimalisering ved hjelp av rammeverk som DSPy kan betydelig forbedre ytelsen. DSPy lar deg definere agentens komponenter (for eksempel moduler for tankegenerering, verktøyvalg, parameterformatering) og deretter bruker det en kompilator-lignende tilnærming med få eksempler fra datasettet for å finne optimerte prompter eller konfigurasjoner for disse komponentene.

V. En anbefalt vei til effektive API-agenter

Utvikling av robuste API-kalle-AI-agenter er en iterativ ingeniørdisiplin. Basert på funnene fra Georgian AI-laboratoriets forskning, kan resultater betydelig forbedres ved å bruke en systematisk arbeidsflyt som følger:

  1. Start med klare API-definisjoner: Begynn med godt strukturerte OpenAPI-spesifikasjoner for APIene agenten skal samhandle med.
  2. Standardisere verktøytilgang: Konverter dine OpenAPI-spesifikasjoner til MCP. Verktøy som Stainless.ai kan fasilitere dette, og skape en standardisert måte for din agent til å forstå og bruke dine APIer.
  3. Implementer agenten: Velg et passende rammeverk eller tilnærming. Dette kan innebære å bruke Pydantic for datamodellering innenfor en tilpasset agentstruktur eller å utnytte et rammeverk som LastMiles mcp_agent, som er bygget rundt MCP.
    • Før du gjør dette, vurdér å koble MCP til et verktøy som Claude Desktop eller Cline, og bruk dette grensesnittet manuelt for å få en følelse av hvor godt en generisk agent kan bruke det, hvor mange iterasjoner det vanligvis tar å bruke MCP korrekt, og andre detaljer som kan spare deg tid under implementeringen.
  4. Kurer et kvalitetsdatasett for evaluering: Opprett manuelt eller valider nøye et datasett av forespørsler og forventede API-interaksjoner. Dette er kritisk for pålitelig testing og optimalisering.
  5. Optimer agentprompter og logikk: Anvend rammeverk som DSPy for å forbedre agentens prompter og indre logikk, ved å bruke datasettet til å drive forbedringer i nøyaktighet og pålitelighet.

VI. Et illustrativt eksempel på arbeidsflyten

Her er et forenklet eksempel som illustrerer den anbefalte arbeidsflyten for å bygge en API-kalle-agent:

Steg 1: Start med klare API-definisjoner

Forestall en API for å håndtere en enkel gjøremåliste, definert i OpenAPI:

openapi: 3.0.0

info:

tittel: Gjøremåliste-API

versjon: 1.0.0

stier:

/gjøremål:

post:

samlet: Legg til en ny gjøremålsoppgave

requestBody:

påkrevd: true

innhold:

application/json:

skjema:

type: objekt

egenskaper:

beskrivelse:

type: streng

svar:

‘201’:

beskrivelse: Gjøremålsoppgave opprettet

get:

samlet: Hent alle gjøremålsoppgaver

svar:

‘200’:

beskrivelse: Liste over gjøremålsoppgaver

Steg 2: Standardisere verktøytilgang

Konverter OpenAPI-spesifikasjonen til Modellkontekstprotokoll (MCP)-konfigurasjoner. Ved hjelp av et verktøy som Stainless.ai, kan dette resultere i:

Verktøysnavn Beskrivelse Inndataparametere Utdata-beskrivelse
Legg til gjøremålsoppgave Legger til en ny gjøremålsoppgave i listen. `beskrivelse` (streng, påkrevd): Gjøremålsoppgavens beskrivelse. Bekreftelse på at gjøremålsoppgaven er opprettet.
Hent gjøremålsoppgaver Henter alle gjøremålsoppgaver fra listen. Ingen En liste over gjøremålsoppgaver med beskrivelser.

Steg 3: Implementer agenten

Ved å bruke Pydantic for datamodellering, opprett funksjoner som tilsvarer MCP-verktøyene. Deretter bruk en LLM til å tolke naturlige språkforespørsler og velg det relevante verktøyet og parameterne.

Steg 4: Kurer et kvalitetsdatasett for evaluering

Opprett et datasett:

Forespørsel Forventet API-kall Forventet resultat
“Legg til ‘Kjøp mat’ i min liste.” `Legg til gjøremålsoppgave` med `beskrivelse` = “Kjøp mat” Bekreftelse på at gjøremålsoppgaven er opprettet
“Hva er på min liste?” `Hent gjøremålsoppgaver` En liste over gjøremålsoppgaver, inkludert “Kjøp mat”

Steg 5: Optimer agentprompter og logikk

Bruk DSPy til å forbedre promptene, med fokus på tydelige instruksjoner, verktøyvalg og parameteruttrekk, ved å bruke det kurerte datasettet for evaluering og forbedring.

Ved å integrere disse byggeklossene – fra strukturerte API-definisjoner og standardiserte verktøyprotokoller til strenge datapraksis og systematisk optimalisering – kan ingeniørteam bygge mer kapable, pålitelige og vedlikeholdbare API-kalle-AI-agenter.

Rodrigo Ceballos Lentini er en AI Tech Lead i Georgian’s AI Lab, der han hjelper portefølselskaper å oppnå konkrete resultater fra generative og agente AI-prosjekter. Rodrigo har en mastergrad i Neurale Systemer og Beregning med fokus på Datavisjon fra ETH Zürich.