Mit strukturierten Ausgaben können Sie die generierte Ausgabe eines Claude-Modells so einschränken, dass sie genau einem bestimmten JSON-Schema entspricht. Das ist nützlich, um sicherzustellen, dass die Antworten Ihrer Claude-Modelle immer das genaue Format haben, das für nachgelagerte Anwendungen, Datenbanken und Verarbeitungspipelines erforderlich ist.
Strukturierte Ausgaben bieten zwei ergänzende Funktionen, die Sie unabhängig voneinander oder gemeinsam in derselben Anfrage verwenden können:
- JSON-Ausgaben (
output_config.format): Beschränken Sie die Textantwort des Modells auf ein JSON-Objekt, das einem von Ihnen bereitgestellten Schema entspricht. Verwenden Sie diese Funktion, wenn Sie strukturierte Daten aus Text extrahieren, strukturierte Berichte erstellen oder API-Antworten formatieren müssen. - Strikte Tool-Nutzung (
tools[].strict): Damit wird sichergestellt, dass die Argumente, die das Modell an ein Tool übergibt, mit deminput_schemades Tools übereinstimmen. Verwenden Sie diese Option, wenn Sie typsichere Funktionsaufrufe in agentischen Workflows benötigen.
Weitere Informationen finden Sie in der Dokumentation von Anthropic unter Building with Claude: Structured Outputs und Strict tool use.
Unterstützte Anthropic Claude-Modelle
Die Gemini Enterprise Agent Platform unterstützt strukturierte Ausgaben für alle Anthropic Claude 4.5-Modelle und höher.
Zugriff auf strukturierte Ausgaben steuern
Standardmäßig sind strukturierte Ausgaben durch die Einschränkung constraints/vertexai.allowedPartnerModelFeatures der Organisationsrichtlinie deaktiviert. Wenn Sie strukturierte Ausgaben aktivieren möchten, müssen Sie diese Einschränkung so konfigurieren, dass das Feature structured_outputs explizit zugelassen wird.
Außerdem können Sie die Einschränkung für die Organisationsrichtlinie constraints/vertexai.allowedModels konfigurieren, um den Zugriff auf Claude-Modelle einzuschränken.
Eine detaillierte Anleitung zum Konfigurieren von Einschränkungen für Organisationsrichtlinien finden Sie unter Zugriff auf Model Garden-Modelle steuern.
Anfrage für strukturierte Ausgabe senden
Wenn Sie eine JSON-Ausgabe anfordern möchten, senden Sie eine POST-Anfrage an den Publisher-Modellendpunkt und fügen Sie den Parameter output_config in den Anfragetext ein. Mit dem Parameter output_config wird das JSON-Schema angegeben, dem die Antwort des Modells entsprechen muss.
REST
Im folgenden Beispiel wird gezeigt, wie Sie eine Anfrage an die Agent Platform API senden, um strukturierte Kontaktinformationen aus einer unstrukturierten E-Mail zu extrahieren. Die Antwort ist auf ein JSON-Objekt mit den Feldern name, email, plan_interest und demo_requested beschränkt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die Anthropic Claude-Modelle unterstützt. Informationen zur Verwendung des globalen Endpunkts finden Sie unter Globalen Endpunkt angeben.
- MODEL: Ein unterstütztes Claude-Modell, z. B.
claude-opus-4-7. - ROLE: Die einer Nachricht zugeordnete Rolle. Sie können
useroderassistantangeben. In der ersten Nachricht muss die Rolleuserverwendet werden. Claude-Modelle arbeiten mit abwechselndenuser- undassistant-Runden. Wenn die endgültige Nachricht die Rolleassistantverwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie einen Teil der Antwort des Modells einschränken. - CONTENT: Der Inhalt, z. B. Text der
user- oderassistant-Nachricht. Beispiel:Extract the key information from this email: John Smith (john@example.com) is interested in our Enterprise plan and wants to schedule a demo for next Tuesday at 2pm. - MAX_TOKENS: Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa 3,5 Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.
Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.
- STREAM: Ein boolescher Wert, mit dem angegeben wird, ob die Antwort gestreamt wird oder nicht. Legen Sie
truefest, um die Antwort zu streamen, undfalse, um die Antwort auf einmal zurückzugeben. Strukturierte Ausgaben werden in der Regel mitfalsezurückgegeben.
Im Beispiel werden die folgenden Felder für die strukturierte Ausgabe verwendet. Weitere Informationen zu den einzelnen Feldern finden Sie im Abschnitt Anfragefelder.
output_config: Der Konfigurationsblock der obersten Ebene, der die Struktur der Antwort des Modells steuert.output_config.format.type: Aufjson_schemasetzen, um die Antwort auf ein JSON-Objekt zu beschränken, das dem bereitgestellten Schema entspricht.output_config.format.schema: Ein JSON-Schema, das die erforderliche Struktur der Antwort des Modells definiert. Das Schema muss dem unterstützten JSON-Schema-Subset entsprechen.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict
JSON-Text der Anfrage:
{
"anthropic_version": "vertex-2023-10-16",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_TOKENS,
"stream": STREAM,
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"email": {"type": "string"},
"plan_interest": {"type": "string"},
"demo_requested": {"type": "boolean"}
},
"required": ["name", "email", "plan_interest", "demo_requested"],
"additionalProperties": false
}
}
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Das Feld text des Blocks content enthält einen JSON-String, der dem Schema entspricht, das Sie in output_config angegeben haben.
Anfragefelder
Die folgenden Felder sind spezifisch für JSON-Ausgaben. Informationen zu den anderen Anfragefeldern finden Sie in der API-Referenz für Claude-Nachrichten.
output_config: Der Konfigurationsblock der obersten Ebene, der die Struktur der Antwort des Modells steuert.output_config.format: Die Formatdefinition für die Ausgabe. Nur der Typjson_schemawird unterstützt.output_config.format.type: Der Typ des zu erzwingenden Ausgabeformats. Legen Sie diesen Wert aufjson_schemafest, um die Antwort auf ein JSON-Objekt zu beschränken.output_config.format.schema: Ein JSON-Schema, das die erforderliche Struktur der Antwort des Modells definiert. Strukturierte Ausgaben unterstützen das Standard-JSON-Schema mit einigen Einschränkungen. So mussadditionalPropertiesfür Objekte auffalsefestgelegt sein und numerische oder Stringlängenbeschränkungen werden nicht unterstützt. Eine vollständige Liste der unterstützten und nicht unterstützten Funktionen finden Sie in der Dokumentation zu JSON-Schema-Einschränkungen von Anthropic. Im Schema geben Sie in der Regel Folgendes an:type: Der JSON-Typ des Werts auf dieser Ebene (am häufigstenobjectfür das Stammschema).properties: Eine Zuordnung von Feldnamen zu ihren Typdefinitionen, die jedes Feld beschreibt, das das Modell zurückgeben muss.required: Eine Liste von Attributnamen, die das Modell in seine Antwort aufnehmen muss.additionalProperties: Ein boolescher Wert, der, wenn er auffalsegesetzt ist, verhindert, dass das Modell Felder enthält, die nicht inpropertiesdeklariert sind.
Strikte Tool-Nutzung
Durch die strikte Verwendung von Tools wird sichergestellt, dass die Argumente, die das Modell an ein Tool übergibt, mit der input_schema des Tools übereinstimmen. Ohne den strikten Modus ruft das Modell möglicherweise ein Tool mit falsch typisierten Argumenten auf (z. B. "2" anstelle von 2) oder lässt erforderliche Felder aus, was Ihre Downstream-Funktionen beeinträchtigen und eine Wiederholungslogik erfordern kann. Wenn der strikte Modus aktiviert ist, verwendet die API die grammatikbeschränkte Stichprobenerhebung, um Folgendes zu gewährleisten:
- Das Tool
nameist immer eines der von Ihnen bereitgestellten Tools. - Das Tool
inputentspricht immer derinput_schemades Tools.
Verwenden Sie die strikte Tool-Nutzung, wenn Sie Tool-Parameter validieren, Agent-Workflows erstellen, typsichere Funktionsaufrufe sicherstellen oder komplexe Tools mit verschachtelten Eigenschaften verarbeiten müssen.
Wenn Sie die strikte Tool-Nutzung aktivieren möchten, legen Sie "strict": true als Feld der obersten Ebene in Ihrer Tool-Definition fest, zusammen mit name, description und input_schema.
REST
Das folgende Beispiel zeigt, wie Sie eine Anfrage an die Agent Platform API senden, in der ein striktes get_weather-Tool definiert ist. Das Modell ruft das Tool garantiert mit einem location-String und einem optionalen unit auf, das entweder celsius oder fahrenheit ist.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die Anthropic Claude-Modelle unterstützt. Informationen zur Verwendung des globalen Endpunkts finden Sie unter Globalen Endpunkt angeben.
- MODEL: Ein unterstütztes Claude-Modell, z. B.
claude-opus-4-7. - ROLE: Die einer Nachricht zugeordnete Rolle. In der ersten Nachricht muss die Rolle
userverwendet werden. - CONTENT: Der Inhalt, z. B. Text der
user- oderassistant-Nachricht. Beispiel:What is the weather in San Francisco? - MAX_TOKENS: Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa 3,5 Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.
Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.
- STREAM: Ein boolescher Wert, mit dem angegeben wird, ob die Antwort gestreamt wird oder nicht. Legen Sie
truefest, um die Antwort zu streamen, undfalse, um die Antwort auf einmal zurückzugeben.
In diesem Beispiel werden die folgenden Felder für die strikte Tool-Nutzung verwendet. Weitere Informationen zu den einzelnen Feldern finden Sie im Abschnitt Felder für die strikte Tool-Nutzung.
tools[].strict: Ein boolescher Wert, der bei Festlegung auftruedas grammatikbeschränkte Sampling für das Tool aktiviert. Das Modell ruft das Tool garantiert mit Argumenten auf, die mitinput_schemaübereinstimmen.tools[].input_schema: Ein JSON-Schema, das die Argumente definiert, die das Modell an das Tool übergeben kann. Wennstricttrueist, muss das Schema demselben unterstützten JSON-Schema-Subset entsprechen wie dasoutput_config-Schema für JSON-Ausgaben.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict
JSON-Text der Anfrage:
{
"anthropic_version": "vertex-2023-10-16",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_TOKENS,
"stream": STREAM,
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, for example San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"],
"additionalProperties": false
}
}
]
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/anthropic/models/MODEL:rawPredict" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Der Inhaltsblock tool_use enthält ein Feld input, dessen Schlüssel und Werttypen garantiert mit dem input_schema des Tools übereinstimmen.
Felder für die strikte Tool-Nutzung
Die folgenden Felder sind spezifisch für die strikte Tool-Nutzung. Informationen zu den anderen Feldern für die Tool-Definition finden Sie in der Dokumentation Tools definieren von Anthropic.
tools[].strict: Ein boolescher Wert, der bei Festlegung auftruedie grammatikbeschränkte Stichprobenerhebung für das Tool aktiviert. Wennstricttrueist, ist die Tool-Eingabe des Modells auf das Schema ininput_schemabeschränkt. Der Standardwert istfalse.tools[].input_schema: Ein JSON-Schema, das die Argumente definiert, die das Modell an das Tool übergeben kann. Wennstrictgleichtrueist, muss das Schema dem gleichen JSON-Schema-Subset entsprechen, das für JSON-Ausgaben verwendet wird. Insbesondere müssen Sie Folgendes beachten:- Legen Sie
additionalPropertiesfür jedes Objekt im Schema auffalsefest. - Führen Sie alle Attribute im Array
requiredauf.
Eine vollständige Liste der unterstützten und nicht unterstützten Funktionen finden Sie in der Dokumentation zu den JSON-Schema-Einschränkungen von Anthropic.
- Legen Sie