Zum Hauptinhalt springen
Lektion 5 von 14 · Function Calling mit Grok

tool_choice und Kontrolle

Lektion 5 von 14 Aktualisiert am 29. Juli 2026 Entwickler
Auf dieser Seite
  1. Kontrolle des Modellverhaltens
  2. Die vier tool_choice-Modi
  3. Modusvergleich
  4. Fortgeschrittene Strategien
  5. Kernaussagen

Kontrolle des Modellverhaltens

Standardmäßig entscheidet das Modell eigenständig, ob es ein Tool aufruft oder direkt antwortet. Dies ist der auto-Modus. In manchen Fällen benötigen Sie jedoch eine feinere Kontrolle. Der Parameter tool_choice gibt Ihnen diese Macht.

Die vier tool_choice-Modi

auto-Modus (Standard)

response = client.chat.completions.create(
    model="grok-4.5",
    messages=messages,
    tools=tools,
    tool_choice="auto"
)

Das Modell bewertet die Anfrage und entscheidet:

  • Wenn die Anfrage externe Daten benötigt → es ruft ein Tool auf
  • Wenn es direkt antworten kann → es antwortet ohne Tool

Dies ist der häufigste und natürlichste Modus. Verwenden Sie ihn, wenn Sie dem Urteil des Modells vertrauen.

required-Modus

response = client.chat.completions.create(
    model="grok-4.5",
    messages=messages,
    tools=tools,
    tool_choice="required"
)

Das Modell muss mindestens ein Tool aufrufen. Es kann nicht direkt antworten, selbst wenn es die Antwort bereits kennt. Anwendungsfälle:

  • Strukturierte Extraktion: Sie möchten das Modell zwingen, Daten über ein dediziertes Tool in ein bestimmtes Format zu extrahieren
  • Pflichtvalidierung: Jede Anfrage muss durch ein Validierungstool laufen
  • Systematische Protokollierung: Alles muss über ein Protokollierungstool nachverfolgt werden

none-Modus

response = client.chat.completions.create(
    model="grok-4.5",
    messages=messages,
    tools=tools,
    tool_choice="none"
)

Schaltet das Funktionsaufrufen für diese Anfrage vollständig aus. Das Modell sieht die Tool-Definitionen (sie bleiben im Kontext), kann sie aber nicht aufrufen. Anwendungsfälle:

  • Klärungsphase: Sie möchten, dass das Modell Fragen stellt, bevor es handelt
  • Vorschau-Modus: Zeigen Sie, was das Modell tun würde, ohne auszuführen
  • Fallback: Wenn Tools vorübergehend nicht verfügbar sind

Spezifischer Modus (ein bestimmtes Tool erzwingen)

response = client.chat.completions.create(
    model="grok-4.5",
    messages=messages,
    tools=tools,
    tool_choice={
        "type": "function",
        "function": {"name": "get_weather"}
    }
)

Das Modell wird gezwungen, genau dieses Tool aufzurufen. Es kann sich für keines anderen entscheiden, noch direkt antworten. Dies ist der restriktivste Modus. Anwendungsfälle:

  • Sequentielle Arbeitsabläufe: An diesem Schritt muss genau dieses Tool aufgerufen werden
  • Tests: Sie möchten überprüfen, ob das Modell die korrekten Argumente für ein gegebenes Tool generiert
  • Zielgerichtete Extraktion: Sie wissen, welches Tool zu verwenden ist, und möchten nur, dass das Modell die Parameter extrahiert

Modusvergleich

Modus Verhalten Wann verwenden
auto Das Modell entscheidet frei Allgemeiner Fall, Chatbots
required Muss mindestens ein Tool aufrufen Extraktion, Validierung
none Keine Tools erlaubt Klärung, Fallback
{"function":...} Erzwingt ein bestimmtes Tool Arbeitsablauf, Tests

Fortgeschrittene Strategien

Modi wechseln in einem Arbeitsablauf

Ein intelligenter Arbeitsablauf kann tool_choice je nach Schritt ändern:

# Schritt 1: Suche erzwingen
response1 = client.chat.completions.create(
    model="grok-4.5",
    messages=messages,
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "search_products"}}
)

# Schritt 2: Dem Modell die Entscheidung überlassen (Analyse oder Frage)
response2 = client.chat.completions.create(
    model="grok-4.5",
    messages=updated_messages,
    tools=tools,
    tool_choice="auto"
)

Kombination mit dem Systemprompt

Der Systemprompt kann das Modell auch im auto-Modus bei seinen Tool-Auswahlen leiten:

messages = [
    {
        "role": "system",
        "content": "Sie sind eine Reiseassistentin. Verwenden Sie immer "
                   "get_weather, bevor Sie Aktivitäten im Freien empfehlen."
    },
    {"role": "user", "content": "Was sollte ich dieses Wochenende in Marseille tun?"}
]

Kernaussagen

  • auto: Das Modell entscheidet (Standard, empfohlen für die meisten Fälle)
  • required: Erzwingt den Aufruf mindestens eines Tools
  • none: Schaltet das Funktionsaufrufen vorübergehend aus
  • Spezifischer Modus: Erzwingt den Aufruf eines bestimmten Tools nach Name
  • Modi wechseln in einem Arbeitsablauf für feine Kontrolle
  • Kombinieren Sie tool_choice mit dem Systemprompt, um das Modell zu leiten