GPT-6.1 Sol are now live on CometAPI →
ai-model/CometAPI Research

So erstellen Sie einen KI-Agenten mit Grok 4.7: Python, Tool-Aufrufe und Multi-Modell-Fallback

Erstelle einen Grok-4.7-KI-Agenten in Python mit Tool-Aufrufen, begrenzter Ausführung und anwendungsverwaltetem Fallback über GPT, Claude, Gemini und DeepSeek.

CometAPI
Bobby SpencerForschungsteam für KI-Modelle und API
Aktualisiert Oct 4, 2026 12 Min. Lesezeit
So erstellen Sie einen KI-Agenten mit Grok 4.7: Python, Tool-Aufrufe und Multi-Modell-Fallback
Dieses Muster verwenden

Den ersten API-Aufruf ausführen.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Wenn Sie eine einzige KI-App mit GPT, Claude, Gemini, DeepSeek und Grok bauen wollen, nutzen Sie für den gemeinsamen Anfragepfad eine vereinheitlichte API und behalten Sie die Routing-Policy in Ihrer Anwendung. CometAPI stellt eine OpenAI-kompatible Basis-URL und einen gemeinsamen Modellkatalog bereit, sodass ein Python-Service über einen Client verschiedene Modell-IDs aufrufen kann. Ihr Code entscheidet weiterhin, welches Modell läuft, welche Tools erlaubt sind und wann ein Fallback sicher ist.

Dieses Tutorial baut einen Grok 4.7-Agenten, der zwei schreibgeschützte Business-Tools anfordern kann, unbekannte Tools und fehlerhafte Argumente vor der Ausführung verwirft und erst nach ausgewählten, vorübergehenden Fehlern auf ein anderes vertraglich getestetes Modell umschaltet. Ziel ist kein magisches, autonomes System. Es ist eine kleine, inspizierbare Schleife, die getestet und in der Produktion betrieben werden kann.

Was Sie bauen

Der Agent hat fünf explizite Teile:

  1. Ein CometAPI-Client. Das OpenAI-Python-SDK verwendet die unten gezeigte CometAPI-API-Basis-URL.
  2. Grok 4.7 als Primärmodell. Die aktuelle CometAPI-Modell-ID ist grok-4.7.
  3. Ein Tool-Register. Das Modell kann einen Funktionsaufruf vorschlagen, aber nur Anwendungscode kann eine zugelassene Funktion ausführen.
  4. Eine begrenzte Agentenschleife. Die Schleife stoppt nach einer festen Anzahl von Modellrunden, statt unbegrenzt zu laufen.
  5. Eine geordnete Fallback-Policy. Kompatible GPT-, Claude-, Gemini- oder DeepSeek-Modell-IDs werden erst nach einem wiederholbaren Modell-/API-Fehler versucht.

Grok 4.7 unterstützt Funktionsaufrufe, und CometAPI dokumentiert derzeit sowohl die Routen /v1/chat/completions als auch /v1/responses für das Modell. Dieses Tutorial verwendet Chat Completions, weil dessen OpenAI-kompatible tools, die expliziten Tool-Aufrufe des Assistenten und die passenden tool-Ergebnismeldungen direkt in eine kompakte, inspizierbare Python-Schleife abbilden. Transportkompatibilität beweist keine Funktionsgleichheit über alle Modelle hinweg, daher muss jeder konfigurierte Fallback dieselben Vertragstests bestehen, bevor er in die Produktion gelangt.

Reasoning-Zustand in mehrturnigen Grok 4.7-Agenten

Grok 4.7 akzeptiert low, medium, high oder xhigh als Reasoning-Aufwand, mit high als Standard. In xAI’s Responses API enthält jede Grok 4.7-Antwort reasoning.encrypted_content; eine clientverwaltete Mehrturn-Schleife sollte die zurückgegebenen Reasoning-Items unverändert in die nächste Anfrage zurückreichen. Lange Schleifen können außerdem Context Compaction nutzen: Bewahren Sie das zurückgegebene Kompaktierungselement als undurchsichtigen Zustand auf und fügen Sie danach neue Runden hinzu. Da dies zustandsbehaftete, anbieterspezifische Antwortfelder sind, verifizieren Sie, dass die ausgewählte CometAPI-Route sie Ende-zu-Ende zurückliefert, bevor Sie sie zur Produktionsabhängigkeit machen.

Agenturarchitektur: Das Modell schlägt vor, Ihre App entscheidet

Ein sicherer Tool-Calling-Flow ist einfach:

Benutzeranfrage → Modellantwort → Tool-Aufruf validieren → zugelassenes Tool ausführen → Tool-Ergebnis anhängen → Modellantwort

Das Modell erhält nie Datenbankzugangsdaten und führt auch nie direkt Python aus. Es erzeugt eine strukturierte Anfrage wie „rufe get_order_status mit dieser Order-ID auf“. Ihre Anwendung prüft den Tool-Namen, parst die Argumente, wendet Autorisierung und Geschäftsregeln an, führt die Funktion aus und liefert ein serialisiertes Ergebnis zurück.

Diese Trennung ist wichtiger als die Modellwahl. Ein Fallback-Modell sollte dieselbe Tool-Grenze erben – nicht eine weiter gefasste – und Tool-Ergebnisse sollten als unzuverlässige Daten behandelt werden, wenn sie externe Inhalte enthalten.

So bauen Sie einen Grok 4.7 KI-Agenten mit Python

Schritt 1: OpenAI-Python-SDK für CometAPI konfigurieren

Installieren Sie das OpenAI-SDK:

pip install openai

Konfiguration über Umgebungsvariablen setzen:

export COMETAPI_KEY="your-cometapi-key"
export PRIMARY_MODEL="grok-4.7"
export FALLBACK_MODEL_1="your-compatible-gpt-model-id"
export FALLBACK_MODEL_2="your-compatible-claude-model-id"
export FALLBACK_MODEL_3="your-compatible-gemini-model-id"
export FALLBACK_MODEL_4="your-compatible-deepseek-model-id"

Dieses Tutorial verwendet Chat Completions, weil dessen explizite Tool-Aufrufe des Assistenten und passende Tool-Ergebnismeldungen den Kontrollfluss in einem kompakten Python-Beispiel leicht inspizierbar machen. Für längere, zustandsbehaftete Schleifen evaluieren Sie die Responses API wie oben beschrieben. Kopieren Sie zudem keine alten Modell-IDs aus einem Blogpost in die Produktion: Rufen Sie während Deployment oder Start den öffentlichen CometAPI-GET /api/models-Katalog ab und bestätigen Sie Fähigkeiten und Preise im Modellverzeichnis.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
    max_retries=0,
    timeout=30.0,
)

Das explizite Timeout und die deaktivierten SDK-Retries sind bewusst gewählt. Die Anwendung klassifiziert Fehler und entscheidet, ob die Anfrage wiederholt oder zum nächsten Modell weitergegangen wird. Versteckte Retries machen Latenz, doppelte Seiteneffekte und das Fallback-Verhalten schwerer verständlich.

Schritt 2: Zuerst enge, schreibgeschützte Tools definieren

Beginnen Sie mit Tools, die Daten lesen, statt sie zu verändern. Die folgenden Definitionen ermöglichen es dem Agenten, einen Auftrag zu prüfen und den Bestand abzurufen. Die Implementierung liefert Demo-Daten; ersetzen Sie sie durch authentifizierte Aufrufe Ihrer eigenen Dienste.

import json

TOOLS = [
    {
        "type": "function",
        "function": {
            "name": "get_order_status",
            "description": "Read the current status of one order.",
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {"type": "string"}
                },
                "required": ["order_id"],
                "additionalProperties": False,
            },
        },
    },
    {
        "type": "function",
        "function": {
            "name": "check_inventory",
            "description": "Read available inventory for one SKU.",
            "parameters": {
                "type": "object",
                "properties": {
                    "sku": {"type": "string"}
                },
                "required": ["sku"],
                "additionalProperties": False,
            },
        },
    },
]

def get_order_status(order_id: str) -> dict:
    # Replace this demo with an authenticated, read-only service call.
    return {"order_id": order_id, "status": "in_transit"}

def check_inventory(sku: str) -> dict:
    # Replace this demo with an authenticated, read-only service call.
    return {"sku": sku, "available_units": 12}

TOOL_REGISTRY = {
    "get_order_status": get_order_status,
    "check_inventory": check_inventory,
}

Ein JSON-Schema verbessert die Form der Anfrage, ist aber keine Autorisierung. Validieren Sie Argumentlängen und -formate, bestätigen Sie, dass der aktuelle Benutzer auf die angefragte Order oder SKU zugreifen darf, und begrenzen Sie die Größe jedes Tool-Ergebnisses, bevor Sie es an das Modell zurückgeben.

Schritt 3: Eine enge Multi-Model-Fallback-Policy hinzufügen

Fallback sollte von temporären Routenfehlern erholen, nicht fehlerhafte Anfragen verbergen. CometAPIs offizieller Fallback-Guide empfiehlt, bei Verbindungsfehlern, Timeouts, HTTP 408, HTTP 429 und temporären 5xx-Antworten zur nächsten konfigurierten Route zu wechseln. Ungültige Anmeldedaten, nicht unterstützte Parameter und ungültige Anfragen sollten sofort fehlschlagen.

from openai import APIConnectionError, APIStatusError, APITimeoutError

def configured_models() -> list[str]:
    names = [
        os.getenv("PRIMARY_MODEL", "grok-4.7"),
        os.getenv("FALLBACK_MODEL_1"),
        os.getenv("FALLBACK_MODEL_2"),
        os.getenv("FALLBACK_MODEL_3"),
        os.getenv("FALLBACK_MODEL_4"),
    ]
    return [name for name in names if name]

def is_retryable(error: Exception) -> bool:
    if isinstance(error, (APIConnectionError, APITimeoutError)):
        return True
    if isinstance(error, APIStatusError):
        return error.status_code in {408, 429} or error.status_code >= 500
    return False

def complete_with_fallback(messages: list[dict], tools: list[dict]):
    models = configured_models()
    last_error = None

    for index, model in enumerate(models):
        try:
            response = client.chat.completions.create(
                model=model,
                messages=messages,
                tools=tools,
                tool_choice="auto",
            )
            return response, model
        except Exception as error:
            last_error = error
            final_route = index == len(models) - 1
            if final_route or not is_retryable(error):
                raise

    raise RuntimeError("No configured model completed the request") from last_error

Die Modellauswahl ist eine Konfiguration, kein Qualitätsranking. Wählen Sie Fallbacks, die dieselben Nachrichtenrollen, Tool-Schemata, Eingabekanäle, Kontextanforderungen und Antwortverhalten unterstützen, die dieser Agent benötigt. Protokollieren Sie die gewählte Route und den Fehler, der jeden Übergang verursacht hat.

Schritt 4: Die begrenzte Grok 4.7-Agentenschleife ausführen

Die folgende Schleife sendet die Konversation, führt erlaubte Tool-Aufrufe aus, hängt Ergebnisse mit der passenden tool_call_id an und bittet das ausgewählte Modell, die Antwort zu vervollständigen.

def execute_tool_call(tool_call) -> str:
    name = tool_call.function.name

    if name not in TOOL_REGISTRY:
        return json.dumps({"error": f"Tool not allowed: {name}"})

    try:
        arguments = json.loads(tool_call.function.arguments)
        result = TOOL_REGISTRY[name](**arguments)
        return json.dumps(result)
    except (json.JSONDecodeError, TypeError, ValueError) as error:
        return json.dumps({"error": f"Invalid tool arguments: {error}"})

def run_agent(user_text: str, max_turns: int = 4) -> dict:
    messages = [
        {
            "role": "system",
            "content": (
                "You are a support agent. Use tools only when needed. "
                "Never invent order or inventory data."
            ),
        },
        {"role": "user", "content": user_text},
    ]
    route_log = []

    for turn in range(max_turns):
        response, model = complete_with_fallback(messages, TOOLS)
        route_log.append({"turn": turn + 1, "model": model})

        assistant = response.choices[0].message
        messages.append(assistant.model_dump(exclude_none=True))

        if not assistant.tool_calls:
            return {
                "answer": assistant.content,
                "routes": route_log,
                "usage": response.usage.model_dump() if response.usage else None,
            }

        for tool_call in assistant.tool_calls:
            messages.append(
                {
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "content": execute_tool_call(tool_call),
                }
            )

    raise RuntimeError("Agent stopped after reaching max_turns")

result = run_agent("Where is order A-104, and is SKU BLUE-42 in stock?")
print(result["answer"])
print(result["routes"])

Der Code unterstützt mehrere Tool-Aufrufe in einer Modellantwort, weil er für jeden zurückgegebenen Aufruf ein Ergebnis anhängt. Falls ein Tool Zustand verändert – etwa eine E-Mail sendet, eine Bestellung auslöst oder eine Rückerstattung erteilt –, fügen Sie einen Idempotency-Key und einen menschlichen Bestätigungsschritt hinzu. Starten Sie niemals die gesamte Agentenrunde blind nach einem Timeout neu, wenn möglicherweise bereits ein Seiteneffekt stattgefunden hat.

Wie GPT, Claude, Gemini und DeepSeek in dieselbe App passen

CometAPI kann Duplikate auf der Verbindungsebene reduzieren: ein Konto, eine OpenAI-kompatible Basis-URL für den gemeinsamen Pfad und eine vom Anwendungscode ausgewählte Modell-ID. Das macht GPT, Claude, Gemini, DeepSeek und Grok zu Kandidaten hinter einer internen Schnittstelle.

Es macht die Modelle nicht austauschbar. Bevor Sie einen Fallback hinzufügen, verifizieren Sie:

  • die aktuelle Modell-ID wird vom CometAPI-Katalog zurückgeliefert;
  • die Route unterstützt das benötigte Tool-Schema und die Nachrichtenrollen;
  • Tool-Call-Argumente und Verhalten bei mehreren Aufrufen entsprechen dem Agentenvertrag;
  • das Kontextfenster und die Eingabemodalitäten passen zur Anfrage;
  • die Antwort kann validiert werden, bevor sie den Benutzer erreicht;
  • Latenz und Kosten bleiben im Produktbudget.

Anbieter-native Funktionen können einen nativen Endpunkt oder einen separaten Adapter erfordern. Halten Sie diese Ausnahmen explizit, statt jede Fähigkeit durch die gemeinsame Schnittstelle zu zwingen.

Grok 4.7 Multi-Model-Fallback ist nicht dasselbe wie Multi-Agent

Eine Multi-Model-Fallback-Kette wählt ein anderes Modell, wenn eine Route fehlschlägt. Ein Multi-Agent-System weist unterschiedlichen Agenten verschiedene Verantwortlichkeiten zu – z. B. einem Planer, einem Researcher und einem Reviewer. Die beiden Muster lösen unterschiedliche Probleme.

Wenn Sie diesen Grok 4.7-Agenten zu einem Multi-Agent-Workflow erweitern, geben Sie jedem Worker eine enge Rolle, eine eigene Tool-Allowlist, ein begrenztes Budget und eine strukturierte Übergabe. Erlauben Sie nicht, dass jeder Agent jedes Tool aufruft oder ein unbegrenztes Transkript weiterleitet. Starten Sie mit einem Agenten, bis Evaluationsdaten belegen, dass Rollentrennung das Ergebnis verbessert.

Produktionsleitplanken für einen Grok 4.7-Agenten

Vor der Tool-Ausführung validieren

Prüfen Sie Tool-Namen, Argument-Schemata, Mandantenzugehörigkeit, Benutzerberechtigungen und Ratenlimits im Anwendungscode. Behandeln Sie Tool-Beschreibungen als Anleitung für das Modell, nicht als Sicherheitskontrolle.

Lese-Tools von Schreib-Tools trennen

Schreibgeschützte Tools können nach Autorisierung oft automatisch laufen. Schreibende Tools sollten stärkere Prüfungen, Idempotenz und Bestätigung für folgenschwere Aktionen erfordern.

Jede Schleife begrenzen

Setzen Sie Obergrenzen für Modellrunden, Tool-Aufrufe, Wall-Clock-Zeit, Promptgröße und Tokenbudget. Geben Sie eine kontrollierte Fehlermeldung oder einen Eskalationspfad zurück, wenn eine Grenze erreicht ist.

Die Entscheidungskette protokollieren

Protokollieren Sie die angeforderte Aufgabe, die Policy-Version, die ausgewählte Modell-ID, den Fallback-Grund, den Tool-Namen, die Tool-Latenz, das Validierungsergebnis, die Token-Nutzung und den Endstatus. Protokollieren Sie keine Geheimnisse oder unnötige Kundendaten.

Vertragstests statt Annahmen verwenden

Führen Sie dieselben Fixtures gegen jedes konfigurierte Modell aus. Eine sinnvolle Mindestsuite deckt eine normale Antwort, einen Tool-Aufruf, mehrere Tool-Aufrufe, fehlerhafte Argumente, ein unbekanntes Tool, ein Tool-Timeout, ein 429 des Primärmodells und einen ungültigen API-Schlüssel ab, der keinen Fallback auslösen darf.

Eine Deployment-Checkliste

  • Aktuelle Modell-IDs abrufen und die Grok 4.7-Route vor dem Deployment verifizieren.
  • Den CometAPI-Schlüssel in einem Secret Manager halten, niemals im Quellcode oder in Prompts.
  • Mit schreibgeschützten Tools und expliziten JSON-Schemata starten.
  • Vor jedem Tool-Aufruf Authentifizierung und Mandantenauthorisierung anwenden.
  • Fallback nur für klassifizierte, vorübergehende Fehler erlauben.
  • Jeden Fallback gegen denselben Tool-Calling-Vertrag testen.
  • Idempotenz und Bestätigung hinzufügen, bevor schreibende Tools aktiviert werden.
  • Grenzen für Schleife, Latenz, Kontext und Kosten setzen.
  • Erfolg der Aufgabe messen, nicht nur die API-Verfügbarkeit.

Warum diesen Agent über CometAPI bauen?

CometAPI ist hier nützlich, weil die gemeinsame Integration klein bleibt. Das OpenAI-Python-SDK zeigt auf eine Basis-URL, Grok 4.7 wird per Modell-ID ausgewählt, und kompatible Modelle anderer Anbieter können hinter derselben, anwendungsseitig verwalteten Routing-Policy platziert werden.

Das verschafft einem Team Raum, GPT, Claude, Gemini und DeepSeek zu evaluieren, ohne anbieterspezifischen Verbindungscode im Produkt zu verstreuen. Es bewahrt auch eine wichtige Grenze: CometAPI liefert den Zugang, während Ihre Anwendung die Fähigkeitsprüfungen, Tool-Ausführung, Fallback-Policy, Evaluation und das benutzerseitige Verhalten besitzt.

Lesen Sie die aktuelle Grok 4.7 Modellseite, konfigurieren Sie den Client anhand des CometAPI-Quickstarts, und rufen Sie aktuelle Modell-IDs ab, bevor Sie Produktions-Fallbacks auswählen.

FAQ

Welche API sollte ich für eine App mit GPT, Claude, Gemini und DeepSeek verwenden?

Für den gemeinsamen Chat- und Tool-Calling-Pfad kann eine OpenAI-kompatible, vereinheitlichte API wie CometAPI den Integrationsaufwand reduzieren. Behalten Sie die Modellauswahl und Fallback-Policy in Ihrer Anwendung und verwenden Sie anbieternative Adapter, wenn eine erforderliche Funktion nicht in den gemeinsamen Vertrag passt.

Kann Grok 4.7 direkt Python-Funktionen aufrufen?

Grok 4.7 kann strukturierte Funktionsaufruf-Anfragen zurückgeben. Ihre Python-Anwendung parst die Anfrage, validiert sie, führt eine zugelassene Funktion aus und sendet das Ergebnis an das Modell zurück. Das Modell selbst führt kein lokales Python aus.

Sollte jeder Fehler ein anderes Modell auslösen?

Nein. Verwenden Sie Fallback bei ausgewählten Verbindungsfehlern, Timeouts, 408, 429 und temporären 5xx-Antworten. Ungültige Anfragen, Authentifizierungsfehler und nicht unterstützte Parameter sollten behoben werden, statt an ein anderes Modell gesendet zu werden.

Kann ich ein einheitliches Tool-Schema mit jedem Modell verwenden?

Nur nach Tests. Ein gemeinsamer Transport garantiert nicht identisches Tool-Verhalten, Argumentqualität, Parallel-Call-Verhalten oder Schema-Durchsetzung. Fügen Sie ein Modell der Kette erst hinzu, nachdem es den Tool-Calling-Vertrag des Agenten bestanden hat.

Ist ein Multi-Model-Fallback-System ein Multi-Agent-System?

Nein. Fallback ändert das Modell, das für eine Anfrage verwendet wird, nach einem Routenfehler. Eine Multi-Agent-Architektur weist separate Aufgaben verschiedenen Agenten zu. Bauen Sie sie als unterschiedliche Schichten mit separaten Tests und Kontrollen.

Quellen

Weiterlernen

Diesen Artikel mit der nächsten Entscheidung verknüpfen.

Alle Themen anzeigen
Veröffentlicht am Oct 4, 2026
Zuletzt aktualisiert Oct 4, 2026
0 Aufrufe
Auf Klarheit, Quellenangabe und aktuelle API-Terminologie geprüft.

Mehr lesen