Lägga till verktyg

Föregående sida visade hur när man omsluter en LLM i en agent ger en varaktig identitet, instruktioner och sessionshantering. Men även med allt detta kan agenten bara generera innehåll (text, bilder osv.) – det kan inte slå upp dagens aktiekurs, skicka ett e-postmeddelande eller fråga din databas. Den svarar från den kunskap som bakades in under träningen och vilken kontext du anger i prompten.

Verktyg överbryggar det här gapet. De ger agenten möjlighet att agera – att nå bortom sina träningsdata och interagera med den verkliga världen. Att lägga till verktyg är det enskilt mest effektfulla steg du kan ta för att göra en agent verkligt användbar.

När du ska använda detta

Lägg till verktyg i din agent när:

  • Agenten behöver åtkomst till realtidsdata eller externa data – livepriser, väder, databasposter, sökresultat – som inte finns i modellens träningsdata.
  • Agenten måste vidta åtgärder – skicka e-post, skapa biljetter, anropa API:er, skriva filer – i stället för att bara producera innehåll.

Överväganden

Att tänka på Detaljer
Latency Varje verktygsanrop lägger till en tur och retur - modellen genererar en verktygsbegäran, koden kör den och resultatet skickas tillbaka innan modellen kan fortsätta. Multiverktyg omvandlar detta.
Tokenomkostnader Verktygsdefinitioner (namn, beskrivningar, parameterscheman) ingår i varje fråga. Fler verktyg innebär färre token som är tillgängliga för konversationshistorik och modellens svar.
Felsökning av komplexitet När något går fel kan orsaken finnas i modellens verktygsval, de argument som valts eller verktygets körning. Du felsöker resonemang och kod tillsammans.
Tillförlitlighet Modellen kan anropa verktyg felaktigt, skicka felaktiga argument eller anropa ett verktyg när det inte borde det. Bra beskrivningar och verktygsgodkännande minimerar detta, men eliminera det inte.

Varför agenter behöver verktyg

Som beskrivs i GRUNDerna för LLM tränas en LLM att generera token – inklusive ett särskilt strukturerat format som representerar ett verktygsanrop. Men själva modellen kör aldrig något. Det är ditt program (eller Agent Framework) som parsar modellens utdata, kör den faktiska funktionen och matar tillbaka resultatet.

Det innebär att verktyg inte ändrar vad modellen är – de ändrar vad din agent kan göra. Utan verktyg är en agent en konversatör. Med hjälp av verktyg blir det en operatör.

Överväg en resebokningsagent. Utan verktyg kan den diskutera flygningar och föreslå resvägar baserat på allmän kunskap. Med verktyg kan den:

  • Sök efter tillgänglighet och priser i realtid i ett flyg-API
  • Boka en flygresa för användarens räkning

Var och en av dessa åtgärder kräver ett verktyg – en kod som agenten kan anropa för att interagera med omvärlden.

Så här fungerar verktygsanropsloopen

När du ger ett agentverktyg hanterar Agent Framework automatiskt en verktygsanropsloop:

┌──────────────────────────────────────────────────────┐
│  User: "What's the weather in Seattle?"              │
└──────────────┬───────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────┐
│  Agent sends messages + tool definitions to LLM      │
└──────────────┬───────────────────────────────────────┘
               ▼
       ┌───────────────┐
       │ LLM responds  │
       └───┬───────┬───┘
           │       │
     Tool call?    No ──────────────────────────┐
           │                                    │
           ▼                                    ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│  Agent Framework executes   │   │  Final response:            │
│  the tool (e.g.,            │   │  "It's cloudy in Seattle    │
│  get_weather("Seattle"))    │   │   with a high of 15°C."     │
└──────────────┬──────────────┘   └─────────────────────────────┘
               │
               ▼
┌─────────────────────────────┐
│  Agent sends tool result    │
│  back to the LLM            │
└──────────────┬──────────────┘
               │
               └──────► (back to "LLM responds")

Diagram som visar verktygsanropsloopen: LLM interagerar med externa verktyg och minne i en loop innan ett slutligt svar returneras.

Viktiga punkter:

  1. Du behöver inte skriva loopen. Agent Framework hanterar identifiering av verktygsanrop i modellens svar, kör verktygen och matar tillbaka resultaten. Du definierar verktygen. ramverket orkestrerar resten.
  2. Flera verktygsanrop per omgång. Modellen kan anropa flera verktyg (eventuellt parallellt) innan du skapar ett slutligt svar – eller kedjeverktygsanrop där utdata från en informerar nästa.
  3. Modellen bestämmer när verktyg ska anropas. Baserat på användarens begäran och de verktygsbeskrivningar du anger bedömer modellen om ett verktyg behövs. Bra verktygsbeskrivningar leder till bättre verktygsval.

Tips/Råd

En praktisk genomgång av hur du lägger till ditt första verktyg och ser den här loopen i praktiken finns i Steg 2: Lägg till verktyg i självstudien Komma igång.

Typer av verktyg

Agent Framework har stöd för flera kategorier av verktyg. Att välja rätt beror på vad du behöver agenten för att göra och var funktionen finns.

Funktionsverktyg

Funktionsverktyg är anpassade funktioner som du skriver och registrerar med agenten. De körs i din process, vilket ger dig fullständig kontroll över logik, säkerhetsgränser och felhantering.

Använd funktionsverktyg när:

  • Du har anpassad affärslogik som agenten behöver anropa (fråga en databas, anropa ett internt API, utföra en beräkning)
  • Du behöver verktyget för att det ska köras i din miljö med tillgång till dina resurser
  • Du vill ha säkerhet och testbarhet för kompileringstidstyp

Funktionsverktyg är den vanligaste och mest flexibla verktygstypen. De flesta agenter börjar här.

MCP-verktyg (Model Context Protocol)

MCP är en öppen standard som definierar hur program tillhandahåller verktyg till LLM:er. I stället för att skriva verktygslogik själv ansluter du till en MCP-server som exponerar en uppsättning verktyg via ett standardprotokoll , ungefär som hur ett REST API exponerar slutpunkter.

Agent Framework har stöd för två varianter:

Smak Vad det är När du ska använda detta
Värdbaserade MCP-verktyg MCP-servrar som hanteras av Microsoft Foundry eller andra leverantörer Du vill ha nyckelfärdig åtkomst till vanliga funktioner (till exempel filsökning, kodkörning) utan att hantera infrastrukturen
Lokala MCP-verktyg MCP-servrar som du kör själv eller ansluter till från valfri leverantör Du har en anpassad MCP-server eller en MCP-server från tredje part, eller så behöver du verktyg som körs i din egen miljö

Använd MCP-verktyg när:

  • En fördefinierad MCP-server ger redan den funktion du behöver
  • Du vill återanvända verktyg mellan flera agenter eller program via en delad server
  • Du integrerar med en tjänst från tredje part som exponerar en MCP-slutpunkt

Providerhanterade verktyg

Vissa leverantörer erbjuder inbyggda verktyg som körs på leverantörens infrastruktur – ingen lokal kod krävs. Dessa inkluderar:

Verktyg Vad det gör
Kodtolkare Kör kod i en sandboxad miljö på leverantörens infrastruktur
Filsökning Söker igenom filer som du laddar upp till providern
Webbsökning Söker på webben efter realtidsinformation

Använd providerhanterade verktyg när:

  • Du behöver funktioner som kodkörning eller webbsökning utan att skapa eller vara värd för verktyget själv
  • Providern erbjuder redan en hanterad version som uppfyller dina krav

Anmärkning

Tillgängligheten för providerhanterade verktyg varierar beroende på leverantör. Se Verktygsöversikt för den fullständiga providersupportmatrisen.

Anmärkning

Vissa LLM-leverantörer kan köra värdbaserade verktyg på sin infrastruktur under slutsatsdragningen, till exempel Svars-API :et av OpenAI. Tänk på dessa slutsatsdragningstjänster som en semiagentisk tjänst som kombinerar slutsatsdragning med verktygskörning. Den ändrar inte hur den underliggande modellen fungerar, men det innebär att verktygskörning kan ske som en del av tjänstens svarsgenerering. Dessa tjänster kan inte köra lokala verktyg som måste köras på din egen infrastruktur.

Välja rätt verktygstyp

Question Recommendation
Har jag anpassad affärslogik? Funktionsverktyg – skriva och registrera dina egna funktioner
Finns det en MCP-server som redan gör det jag behöver? MCP-verktyg – anslut till den i stället för att bygga från grunden, till exempel GitHub MCP-server
Behöver jag kodkörning, filsökning eller webbsökning? Verktyg som värdas av leverantören – kontrollera om leverantören stöder dem
Behöver jag verktyg från flera kategorier? Blanda dem – agenter kan använda funktionsverktyg, MCP-verktyg och providerhanterade verktyg samtidigt

Beskrivningar av verktyg spelar roll

Modellen väljer verktyg baserat på deras namn och beskrivningar. En vag beskrivning leder till dåligt val av verktyg – modellen kan anropa fel verktyg, hoppa över ett verktyg som ska användas eller skicka felaktiga argument.

Skrivverktygsbeskrivningar på samma sätt som du skriver ett API-dokument: säg vad verktyget gör, vad varje parameter betyder och vad det returnerar. Ju tydligare beskrivning, desto bättre är modellens bedömning.

Tips/Råd

Verktygsdefinitioner (namn, beskrivningar, parameterscheman) ingår i uppmaningen och förbrukar token i kontextfönstret. Om du registrerar många verktyg kan omkostnaderna vara betydande. Registrera endast de verktyg som agenten faktiskt behöver.

Verktygsgodkännande: human-in-the-loop

Vissa åtgärder är känsliga – överföra pengar, ta bort poster, skicka e-post. Du kanske inte vill att agenten ska köra dessa verktyg autonomt. Med verktygsgodkännande kan du kräva mänsklig bekräftelse innan ett verktyg körs.

När ett verktyg har markerats som kräver godkännande pausar agenten före körningen och returnerar ett svar som anger att godkännande krävs. Ditt program ansvarar för att presentera detta för användaren och skicka tillbaka sitt beslut.

Det här mönstret kallas ofta human-in-the-loop och är viktigt för att skapa pålitliga agenter som hanterar följdåtgärder.

Vanliga problem

Fallgrop Riktlinjer
För många verktyg Varje verktygsdefinition använder token. Registrera endast de verktyg som är relevanta för agentens syfte.
Vaga beskrivningar "Gör saker med data" hjälper inte modellen. Var specifik: "Frågar inventeringsdatabasen om produkttillgänglighet per SKU."
Ingen felhantering Verktyg kan misslyckas (nätverksfel, ogiltiga indata). Returnera tydliga felmeddelanden så att modellen kan förklara vad som gick fel och försöka igen eller informera användaren.
Alltför tillåtande verktyg Ett verktyg som kan "köra valfri SQL-fråga" är en säkerhetsrisk. Anpassa verktyg till specifika, väl definierade operationer.
Godkännande saknas för känsliga åtgärder Om ett verktyg kan göra oåterkalleliga ändringar lägger du till verktygsgodkännande för att hålla en människa kvar i loopen.

Särskilt omnämnande: Kodtolkarverktyg

Som beskrivs i GRUNDerna för LLM kan LLM göra fel i exakta beräkningar och formell logik. Det beror på att LLM:er genererar svarstoken per token baserat på mönstermatchning – de beräknar faktiskt inte. En LLM som uppmanas att multiplicera två stora tal utför inte aritmetik. det förutsäger hur svaret "ser ut" baserat på träningsdata. Detta fungerar förvånansvärt ofta, men misslyckas oförutsägbart i kantfall.

Kodtolkaren löser detta genom att låta agenten skriva och köra kod i en sandbox-miljö. I stället för att gissa svaret skriver modellen ett Python skript som beräknar det exakt, kör det och använder det verifierade resultatet i sitt svar.

Anmärkning

Modellen kan skriva ett något annorlunda skript varje gång den uppmanas att lösa samma problem, men resultatet bör vara mestadels konsekvent.

Varning

Kodtolkare är inte en ersättning för noggranna resonemang från människans sida. Kontrollera alltid agentens arbete och verifiera resultaten oberoende när det är nödvändigt.

Ge agenten kodtolkare när den behöver:

  • Utför exakta beräkningar – finansiell modellering, statistisk analys, enhetskonverteringar – där en ungefärlig "bästa gissning" inte är acceptabel.
  • Transformera eller analysera data – parsa CSV:er, aggregera rader, generera diagram eller omforma strukturerade data.
  • Bearbeta filer – läsa uppladdade dokument, extrahera innehåll, konvertera format eller generera nya filer.
  • Verifiera sitt eget resonemang – skriv testkod för att verifiera ett logiskt anspråk innan du presenterar det för användaren.

Tips/Råd

Kodtolkare kan vara ett providerhanterat verktyg – koden körs på leverantörens infrastruktur i en sandbox-miljö, inte i din miljö. Detta gör det säkert att använda utan att behöva oroa sig för godtycklig kodkörning på dina servrar. Se Kodtolkarens referens för installationsdetaljer.

Nästa steg

När din agent har verktyg är nästa steg att lära sig om färdigheter – portabla paket med instruktioner, referensmaterial och skript som ger agenter domänexpertis som de kan läsa in på begäran.

Gå djupare: