AI-agenter · Lektion

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.

Lektion 1 av 413 steg

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

  1. Ni skickar meddelanden och verktygsdefinitioner
  2. Modellen returnerar antingen ett slutligt svar ELLER ett tool_call
  3. Ni kör verktyget med modellens argument
  4. Ni lägger till resultatet som ett verktygsmeddelande
  5. 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.

Gratis att börja

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

  1. Så fungerar function calling
  2. Definiera verktygsscheman (JSON Schema)
  3. Välj verktyg vid körning
  4. Returnera resultat till modellen
← Tillbaka till AI-agenter