GPT-6 Astra Funktionsaufruf-Leitfaden: Schemas, Validierung, Wiederholungen und Tool-Ergebnisse
Implementieren Sie zuverlässige GPT-6 Astra-Funktionsaufrufe mit strengen JSON-Schemas, Argumentvalidierung, idempotenter Ausführung, Wiederholungen, parallelen Aufrufen und strukturierten Ergebnissen.

Funktionsaufrufe ermöglichen es GPT-6 Astra, Code anzufordern, den Ihre Anwendung steuert. Das Modell wählt eine Funktion aus und schlägt Argumente vor; Ihre Laufzeitumgebung validiert diese, führt die Operation aus und sendet das Ergebnis zurück. Die Zuverlässigkeit hängt weniger von einer cleveren Tool-Beschreibung ab als von einer disziplinierten Ausführungsschleife.
Definieren Sie einen strengen Vertrag
OpenAI empfiehlt strict: true. Strikte Schemas erfordern additionalProperties: false, und jede Eigenschaft muss in required vorkommen. Stellen Sie einen optionalen Wert als eine Vereinigung dar, die null beinhaltet.
// Keine Übersetzung erforderlich, da es sich um einen leeren Code-Block handelt.
const tools = [{ type: "function", name: "lookup_order", description: "Gibt den aktuellen Status einer für den Benutzer sichtbaren Bestellung zurück.", strict: true, Parameter: { type: "object", properties: { order_id: { type: "string", description: "Kanonische Bestell-ID" }, include_events: { type: ["boolean", "null"] } }, erforderlich: ["order_id", "include_events"], additionalProperties: false } }];
Halte Funktionen klein und Namen konkret. Ein großes `manage_account`-Tool mit vielen Modi lädt zu ungültigen Kombinationen ein und verbirgt Risiken. Bevorzuge `get_account`, `update_shipping_address` und `close_account`, mit Genehmigung bei folgenreichen Operationen.
## Die Ausführungsschleife
In der Responses-API erscheint ein angeforderter Aufruf in `response.output` als ein Element mit `type: "function_call"`, `call_id`, `name` und JSON-String `arguments`. Die Anwendung parst und validiert die Argumente, führt vertrauenswürdigen Code aus und fährt dann mit einem passenden `function_call_output` fort.
```ts
const first = await client.responses.create({
model: "gpt-6-astra",
Werkzeuge,
input: "Wo ist die Bestellung ORD-1042?"
});
const outputs = [];
for (const item of first.output) {
if (item.type !== "function_call") continue;
const args = JSON.parse(item.arguments);
const result = await lookupOrder(args);
outputs.push({
type: "function_call_output",
call_id: item.call_id,
output: JSON.stringify(result)
});
}
const final = await client.responses.create({
model: "gpt-6-astra",
previous_response_id: first.id,
Ausgaben
});
Führen Sie niemals willkürliche Namen aus dem Modell aus. Lösen Sie gegen ein festes Register auf. Validieren Sie auch im strikten Modus erneut im Anwendungscode: Die Gültigkeit des Schemas beweist keine Autorisierung, kein Vorhandensein von Datensätzen, keine Einhaltung von Geschäftsregeln oder Sicherheit.
Nützliche Werkzeugergebnisse entwerfen
Gib das kleinste vollständige Ergebnis zurück. Enthalte stabile Identifikatoren, Status, typisierte Felder und maschinenlesbare Fehlercodes. Vermeide es, eine gesamte Datenbankzeile oder einen Stacktrace auszugeben.
{
"headers": {
"title": "Willkommen",
"subtitle": "Bitte wählen Sie eine Option"
},
"rows": [
{
"name": "Benutzer",
"description": "Verwalten Sie Ihre Kontoeinstellungen"
},
{
"name": "Einstellungen",
"description": "Passen Sie Ihre Präferenzen an"
}
],
"videourl": "https://example.com/video.mp4"
}
{ "ok": false, "error": { "code": "ORDER_NOT_VISIBLE", "message": "Die Bestellung wurde im Konto des Anrufers nicht gefunden.", "retryable": false } }
Die Nachricht hilft dem Modell bei der Erklärung; der Code hilft der Orchestrierungsschicht bei der Entscheidung. Gib nicht preis, ob ein anderer Mandant eine versteckte Kennung besitzt.
## Wiederholungen erfordern zwei Richtlinien
Transport-Wiederholungen beheben API-Timeouts, 429er und vorübergehende 5xx-Fehler. Tool-Wiederholungen beheben Ihre eigenen Abhängigkeitsfehler. Trennen Sie diese.
Sichere Lesevorgänge können in der Regel mit exponentiellem Backoff und Jitter wiederholt werden. Schreibvorgänge benötigen einen Idempotenzschlüssel und eine Abgleichung. Wenn die Verbindung nach `create_refund` abbricht, prüfen Sie, ob die Rückerstattung existiert, bevor Sie sie erneut aufrufen. Geben Sie jeder logischen Aktion eine stabile Operations-ID und speichern Sie die Tool-Call-ID mit dem Ergebnis.
Fragen Sie das Modell niemals allein, ob ein erneuter Versuch sicher ist. Die Tool-Registry sollte die Wiederholungsklasse, das Timeout und die Nebenwirkungsstufe deklarieren.
## Parallele Aufrufe und Reihenfolge
Das Modell kann mehrere Funktionsaufrufe anfordern. Die parallele Ausführung ist nützlich für unabhängige Lesevorgänge, wie etwa das Prüfen des Wetters in drei Städten. Sie ist unsicher, wenn Aufruf B von Aufruf A abhängt oder wenn zwei Schreibvorgänge denselben Datensatz betreffen.
Sammle jedes Funktionsaufruf-Element; gehe nicht davon aus, dass es nur eines gibt. Erstelle einen abhängigkeitsbewussten Ausführer oder deaktiviere/vermeide paralleles Verhalten, wo die Reihenfolge wichtig ist. Gib jedes Ergebnis mit seiner eigenen `call_id` zurück.
## Auswahl des Steuerungswerkzeugs
`tool_choice` kann die automatische Auswahl erlauben, ein Tool erzwingen, Tools verhindern oder eine benannte Funktion vorschreiben. Verwenden Sie `auto` für offene Agenten, erzwingen Sie ein Tool, wenn eine API-Operation der explizite Zweck des Endpunkts ist, und wählen Sie `none`, wenn die Verarbeitung ausschließlich modellbasiert bleiben muss.
Für benutzerorientierte Aktionen ist ein zweiphasiges Muster stark: Zuerst eine vorgeschlagene Änderung vorbereiten und anzeigen; dann ein separates bestätigtes Werkzeug ausführen. Dies verhindert, dass ein freundlicher Satz zu einer stillschweigenden Autorisierung wird.
## Testen des Vertrags
Erstellen Sie Fälle für fehlende Felder, null-Optionale, ungültige Enums, nicht autorisierte IDs, Zeitüberschreitungen, doppelte Einsendungen, teilweise Fehler, mehrere Aufrufe, riesige Ausgaben und bösartige Zeichenfolgen in Tool-Ergebnissen. Bewerten Sie, ob die endgültige Antwort den Fehler korrekt widerspiegelt, anstatt Erfolg zu behaupten.
Log-Schema-Version, Aufruf-ID, Tool-Name, bereinigte Argumente, Dauer, Ergebnis und Wiederholungsanzahl. Bewahren Sie Geheimnisse und sensible Inhalte außerhalb der Telemetrie auf.
## Schema-Design-Überprüfungs-Checkliste
Bewerte jedes Werkzeug, als wäre es eine öffentliche API. Enums sollten reale unterstützte Werte widerspiegeln, anstatt das Modell zu bitten, Zeichenfolgen zu erfinden. Daten benötigen ein deklariertes Format und eine Zeitzone. Numerische Felder benötigen Einheiten und Grenzen. Identifikatoren sollten kanonisch sein, keine freien Kundennamen, wenn ein Nachschlage-Schritt Mehrdeutigkeiten auflösen kann. Beschreibungen sollten Vorbedingungen angeben und was die Funktion nicht tut.
Vermeide boolesche Fallen wie `force`, `override` oder `skip_checks`. Sie reduzieren wichtige Richtlinienentscheidungen auf ein einziges modellgeneriertes Bit. Wenn eine außergewöhnliche Operation legitim ist, stelle sie als separates Hochrisiko-Tool mit stärkerer Autorisierung und Genehmigung bereit.
Nicht kompatible Vertragsversionen. Ausgeführte Antwortketten können noch Aufrufe oder Ergebnisse enthalten, die von einem älteren Schema geprägt sind. Ihr Executor sollte nicht unterstützte Versionen explizit ablehnen und einen behebbaren Fehler zurückgeben, anstatt zu raten, wie eine sensible Anfrage übersetzt werden soll.
Schließlich vergleichen Sie das Funktionsergebnis mit der benutzerseitigen Behauptung. Ein Tool, das `{ok:false}` zurückgibt, darf niemals zu „Erledigt.“ werden. Automatisierte Evaluierungen sollten sowohl den Aufrufverlauf als auch den endgültigen Text prüfen, da eine betrieblich korrekte Tool-Schicht dennoch vom Modell falsch dargestellt werden kann.
## FAQ
### Beseitigt der strikte Modus Validierungscode?
Nein. Es verbessert die strukturelle Einhaltung. Ihre Anwendung setzt weiterhin Berechtigungen, Bereiche, Invarianten und Geschäftsrichtlinien durch.
### Muss die Tool-Ausgabe JSON sein?
Das Ausgabefeld ist ein String, daher ist JSON eine praktische Konvention für strukturierte Ergebnisse. Halten Sie den Vertrag konsistent.
### Wann sollte ich ein Tool erzwingen?
Wenn der Zweck des Endpunkts diesen Vorgang erfordert und der Benutzer ihn autorisiert hat. Erzwingen Sie keine unnötigen Aufrufe, nur um das Verhalten deterministisch erscheinen zu lassen.
### Kann GPT-6 Astra meine Funktion selbst ausführen?
Nein. Es sendet die Aufrufanforderung; Ihre Anwendung führt die Funktion aus und gibt das Ergebnis zurück.
## Fazit
Zuverlässiger Funktionsaufruf ist ein Protokoll: striktes Schema, feste Registrierung, Anwendungsvalidierung, Autorisierung, kontrollierte Ausführung, strukturiertes Ergebnis und verifizierte Fortsetzung. Fügen Sie Idempotenz und Wiederholungsklassifizierung hinzu, bevor Sie Schreibvorgänge aktivieren. Das Modell schlägt vor; Ihr System bleibt für jede Auswirkung verantwortlich.






























































































