Så fungerar function calling
Förstå hela förloppet: modellen väljer ett verktyg, din kod kör det, du skickar tillbaka resultatet och modellen fortsätter.
Så fungerar function calling är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.
Funktionsanrop: grundmönstret
Funktionsanrop är protokollet som omvandlar en LLM till en agent. Modellen väljer en funktion från en lista som Ni tillhandahåller, fyller i argumenten och Ni kör den.
Detta mönster stöds av OpenAI, Anthropic, Google, Cohere, Mistral och de flesta större OSS-modeller med rätt finjustering.
Rundresan i fem steg
- Ni skickar meddelanden och verktygsdefinitioner
- Modellen returnerar antingen ett slutligt svar ELLER ett tool_call
- Ni kör verktyget med modellens argument
- Ni lägger till resultatet som ett verktygsmeddelande
- Ni anropar modellen igen med den uppdaterade historiken
Upprepa steg 2–5 tills modellen returnerar ett slutligt svar.
Steg 1: Definiera verktyg
Verktygsdefinitioner är JSON-scheman som beskriver varje funktion:
tools = [{
'type': 'function',
'function': {
'name': 'get_weather',
'description': 'Current weather for a city',
'parameters': {
'type': 'object',
'properties': {
'city': {'type': 'string'}
},
'required': ['city']
}
}
}]
import json
print(json.dumps(tools, indent=2))
Steg 2: Första modellanropet
Skicka meddelanden och verktyg:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
tools=tools,
)
message = response.choices[0].message
print(message.tool_calls)
# [ToolCall(name='get_weather', arguments='{"city": "Paris"}')]Steg 3: Kör verktyget
Skicka vidare till Er Python-funktion:
import json
def get_weather(city: str) -> dict:
# ...call your weather API...
return {'city': city, 'temp_c': 18, 'condition': 'cloudy'}
tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(**args)Steg 4: Lägg till verktygsresultatet
Lägg till ett verktygsmeddelande med matchande ID:
messages.append(message) # the assistant message with tool_calls
messages.append({
'role': 'tool',
'tool_call_id': tool_call.id,
'content': json.dumps(result)
})Steg 5: Andra modellanropet
Anropa modellen igen – nu har den verktygsresultatet och producerar ett svar riktat till användaren:
final = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
tools=tools,
)
print(final.choices[0].message.content)
# 'It is currently 18 degrees and cloudy in Paris.'Agentloopen
Omslut detta med en while-loop – modellen kan anropa flera verktyg i följd:
while True:
response = client.chat.completions.create(model=MODEL, messages=messages, tools=tools)
msg = response.choices[0].message
messages.append(msg)
if not msg.tool_calls:
return msg.content # final answer
for tc in msg.tool_calls:
result = dispatch(tc)
messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})Parallella verktygsanrop
Moderna modeller returnerar flera tool_calls i ett och samma svar. Kör dem parallellt när det är säkert:
import asyncio
async def run_tools(tool_calls):
coros = [dispatch_async(tc) for tc in tool_calls]
return await asyncio.gather(*coros)finish_reason: tool_calls
Ni kan också kontrollera finish_reason i stället för att leta efter tool_calls:
if response.choices[0].finish_reason == 'tool_calls':
# the model wants to call tools
...
elif response.choices[0].finish_reason == 'stop':
# done
...Vanliga misstag
- Glömma att lägga till assistentmeddelandet före verktygsresultatet
- Använda fel tool_call_id
- Skicka verktygsresultat som användarmeddelanden
- Låta loopen köras utan begränsning – ange MAX_STEPS
Avsluta loopen
Hur vet Ni när agenten är klar?
Sammanfattning
Funktionsanrop är det viktigaste mönstret i hela den här kursen. Bemästra det innan Ni går vidare.
Lär dig AI-agenter med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 60
- Lektioner
- 239
Vanliga frågor
Är lektionen ”Så fungerar function calling” gratis?
Ja – hela texten till ”Så fungerar function calling” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.
Vad lär jag mig i ”Så fungerar function calling”?
Förstå hela förloppet: modellen väljer ett verktyg, din kod kör det, du skickar tillbaka resultatet och modellen fortsätter. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig AI-agenter?
Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Så fungerar function calling”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här AI-agenter-lektionen?
Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Så fungerar function calling
- Definiera verktygsscheman (JSON Schema)
- Välj verktyg vid körning
- Returnera resultat till modellen