E· Universitetagenter-verktyg· ca 60 min· volatil — kontrolleras ofta· verifierad 2026-09-20
Verktygsanvändning (tool use)
Kunna definiera verktyg med schema, låta en modell anropa dem, och hantera fel och parsning robust.
Förkunskaper
Intuition
En språkmodell kan inte räkna säkert, slå upp aktuellt väder eller läsa er databas. Men den kan be om att få göra det: du beskriver verktyg (namn, beskrivning, parametrar som JSON-schema), modellen svarar med ett strukturerat anrop {"name": "vader", "arguments": {"stad": "Umeå"}}, din kod kör verktyget och skickar tillbaka resultatet, modellen formulerar svaret.
Modellen föreslår; du verkställer. Det betyder att du:
- validerar argumenten mot schemat (modellen kan hitta på fält),
- begränsar verktyget (read-only, whitelist, timeout, budget),
- returnerar fel som text modellen kan reagera på, inte kraschar,
- loggar varje anrop.
Ett verktyg som kan radera filer eller skicka pengar ska kräva mänsklig bekräftelse.
Kod
import json
from pydantic import BaseModel, ValidationError
class VaderArgs(BaseModel):
stad: str
VERKTYG = {
"vader": {"schema": VaderArgs, "fn": lambda a: {"temp_c": hamta_temp(a.stad)},
"beskrivning": "Aktuell temperatur i en svensk stad"},
}
def verktygsspec():
return [{"type": "function", "function": {"name": n, "description": v["beskrivning"],
"parameters": v["schema"].model_json_schema()}} for n, v in VERKTYG.items()]
def kor_anrop(call):
v = VERKTYG.get(call["name"])
if not v:
return {"error": f"okänt verktyg {call['name']}"}
try:
args = v["schema"].model_validate(json.loads(call["arguments"]))
return v["fn"](args)
except (ValidationError, json.JSONDecodeError) as e:
return {"error": f"ogiltiga argument: {e}"} # modellen får chansen att rätta sig
except Exception as e:
return {"error": f"verktyget misslyckades: {type(e).__name__}"}
# loop: svar = llm(messages, tools=verktygsspec()); om svar.tool_calls: kör → append(role="tool") → llm igen
Behärskning innebär
- Definierar verktyg med JSON-schema och kör anrop modellen föreslår
- Validerar argument och hanterar fel robust
- Begränsar vad verktyg får göra
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- OpenAI — Function calling — dokumentation, fri läsning
- Anthropic — Tool use — dokumentation, fri läsning