Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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")
Viktiga punkter:
- 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.
- 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.
- 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:
- Översikt över verktyg – alla verktygstyper och leverantörsstödmatris
- Funktionsverktyg – detaljerad referens för funktionsverktyg
- Hosted MCP Tools – Microsoft Foundry MCP-servrar eller andra leverantörer
- Lokala MCP-verktyg – anpassade MCP-servrar
- Verktygsgodkännande – human-in-the-loop för verktyg
- Steg 2: Lägga till verktyg – praktisk självstudie