So funktioniert Function Calling
Verstehen Sie den vollständigen Ablauf: Das Modell wählt ein Tool, Ihr Code führt es aus, Sie senden das Ergebnis zurück und das Modell fährt fort.
So funktioniert Function Calling ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Function Calling: Das zentrale Muster
Function Calling ist das Protokoll, das ein LLM in einen Agenten verwandelt. Das Modell wählt eine Funktion aus einer von Ihnen bereitgestellten Liste, füllt die Argumente aus und Sie führen sie aus.
Dieses Muster wird von OpenAI, Anthropic, Google, Cohere, Mistral und den meisten großen Open-Source-Modellen mit den passenden Fine-Tunings unterstützt.
Der Roundtrip in fünf Schritten
- Sie senden Nachrichten und Tool-Definitionen
- Das Modell gibt entweder eine endgültige Antwort oder einen tool_call zurück
- Sie führen das Tool mit den Argumenten des Modells aus
- Sie fügen das Ergebnis als Tool-Nachricht an
- Sie rufen das Modell erneut mit dem aktualisierten Verlauf auf
Wiederholen Sie die Schritte 2 bis 5, bis das Modell eine endgültige Antwort zurückgibt.
Schritt 1: Tools definieren
Tool-Definitionen sind JSON-Schemas, die die einzelnen Funktionen beschreiben:
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))
Schritt 2: Erster Modellaufruf
Senden Sie Nachrichten und Tools:
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"}')]Schritt 3: Das Tool ausführen
Leiten Sie an Ihre Python-Funktion weiter:
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)Schritt 4: Das Tool-Ergebnis anfügen
Fügen Sie eine Tool-Nachricht mit der passenden ID hinzu:
messages.append(message) # the assistant message with tool_calls
messages.append({
'role': 'tool',
'tool_call_id': tool_call.id,
'content': json.dumps(result)
})Schritt 5: Zweiter Modellaufruf
Rufen Sie das Modell erneut auf – jetzt kennt es das Tool-Ergebnis und erzeugt eine Antwort für die Benutzerin oder den Benutzer:
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.'Die Agentenschleife
Verpacken Sie dies in eine while-Schleife – das Modell kann mehrere Tools nacheinander aufrufen:
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)})Parallele Tool-Aufrufe
Moderne Modelle geben in einer Antwort mehrere tool_calls zurück. Führen Sie sie parallel aus, sofern dies sicher ist:
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
Sie können auch finish_reason prüfen, statt nach tool_calls zu suchen:
if response.choices[0].finish_reason == 'tool_calls':
# the model wants to call tools
...
elif response.choices[0].finish_reason == 'stop':
# done
...Häufige Fehler
- Die Assistant-Nachricht vor dem Tool-Ergebnis nicht anzufügen
- Die falsche tool_call_id zu verwenden
- Tool-Ergebnisse als User-Nachrichten zu senden
- Die Schleife unbegrenzt laufen zu lassen – setzen Sie MAX_STEPS
Beenden der Schleife
Woran erkennen Sie, dass der Agent fertig ist?
Zusammenfassung
Function Calling ist das wichtigste Muster im gesamten Kurs. Beherrschen Sie es, bevor Sie fortfahren.
Häufig gestellte Fragen
Ist die Lektion „So funktioniert Function Calling“ kostenlos?
Ja — der vollständige Text von „So funktioniert Function Calling“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „So funktioniert Function Calling“?
Verstehen Sie den vollständigen Ablauf: Das Modell wählt ein Tool, Ihr Code führt es aus, Sie senden das Ergebnis zurück und das Modell fährt fort. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „So funktioniert Function Calling“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- So funktioniert Function Calling
- Tool-Schemas definieren (JSON Schema)
- Tools zur Laufzeit auswählen
- Ergebnisse an das Modell zurückgeben