Zum Inhalt springen
Deutsch

Modell und Verbrauch überprüfen

Mit dem Aufrufprotokoll und fünf Prüfungen das Modell, den Token-Verbrauch und die Kosten jedes Aufrufs überprüfen.

Jeder Aufruf wird im Aufrufprotokoll der Konsole protokolliert und listet das Modell, den Token-Verbrauch für Eingabe, Ausgabe, Cache-Lesezugriffe und Cache-Schreibzugriffe sowie die Kosten auf.

Die folgenden Prüfungen beziehen sich auf das öffentliche Format der Anthropic-Schnittstelle und dienen dazu, Abweichungen bei den zurückgegebenen Feldern und im Format zu erkennen.

PrüfungErwartetes ErgebnisZu beachten
1. Zurückgegebenes model-FeldStimmt mit der angeforderten Modell-ID übereinGibt einen anderen Modellnamen zurück oder das Feld fehlt
2. Cache-LesezugriffDieselbe Anfrage, die die Cache-Bedingungen erfüllt, wird zweimal innerhalb der Cache-Gültigkeitsdauer gesendet; cache_read_input_tokens des zweiten Aufrufs ist größer als 0Immer 0 oder usage enthält keine Cache-Felder
3. Tool-Aufruf-IDid des tool_use-Blocks beginnt mit toolu_Anderes Format oder das Modell ruft die Tools nicht wie angefordert auf
4. Reihenfolge der Streaming-Ereignissemessage_start, content_block_start, content_block_delta, message_delta und message_stop treten der Reihe nach aufNur data:-Block im OpenAI-Format oder Ereignisse fehlen bzw. sind falsch geordnet
5. Abgleich mit einer realen AufgabeErgebnisse mit einer festen Aufgabe gegen die offizielle API oder andere verlässliche Quellen vergleichenDeutlich schlechtere Ergebnisse, ungewöhnliche Ablehnungen oder häufige Abbrüche

Diese Prüfungen können nur Abweichungen bei Feldern und Format erkennen und das tatsächlich verwendete Modell nicht allein bestätigen. model-Felder können umgeschrieben und das Format kann nachgeahmt werden.

Erforderlich sind bash, curl und jq. Das Skript startet fünf kleine Aufrufe, von denen einer etwa 18.000 Token in den Cache schreibt und zum regulären Preis berechnet wird.

verify.sh
#!/usr/bin/env bash
# 用法:ONEZHE_API_KEY=sk-你的API密钥 bash verify.sh [模型ID]
set -euo pipefail
BASE="https://1zheai.com"
MODEL="${1:-claude-sonnet-5-5}"
H=(-H "x-api-key: $ONEZHE_API_KEY" -H "anthropic-version: 2023-06-01" -H "content-type: application/json")
echo "== 1. model 字段"
curl -s "$BASE/v1/messages" "${H[@]}" \
-d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:16,messages:[{role:"user",content:"ping"}]}')" \
| jq 'if .error then .error else {id, model, usage} end'
echo "== 2. 缓存:同一请求发两次,看第二次的 cache_read_input_tokens"
LONG=$(printf '这是一段用来测试缓存的固定文本,内容不重要,长度够就行。%.0s' {1..600})
BODY=$(jq -n --arg m "$MODEL" --arg t "$LONG" '{model:$m,max_tokens:16,
system:[{type:"text",text:$t,cache_control:{type:"ephemeral"}}],
messages:[{role:"user",content:"ping"}]}')
for i in 1 2; do
curl -s "$BASE/v1/messages" "${H[@]}" -d "$BODY" | jq -c 'if .error then .error else .usage end'
done
echo "== 3. 工具调用 ID"
curl -s "$BASE/v1/messages" "${H[@]}" \
-d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:256,
tools:[{name:"get_weather",description:"查询城市天气",
input_schema:{type:"object",properties:{city:{type:"string"}},required:["city"]}}],
tool_choice:{type:"auto"},
messages:[{role:"user",content:"北京今天天气怎么样"}]}')" \
| jq -r 'if .error then .error.message else (.content[]? | select(.type=="tool_use") | .id) end'
echo "== 4. 流式事件序列"
curl -sN "$BASE/v1/messages" "${H[@]}" \
-d "$(jq -n --arg m "$MODEL" '{model:$m,max_tokens:32,stream:true,messages:[{role:"user",content:"数到三"}]}')" \
| grep '^event:' | uniq

Prüfung 3 verwendet tool_choice: auto. 5.x-Modelle wie Sonnet 5.5 unterstützen keine erzwungene Tool-Angabe ({"type":"tool"} oder {"type":"any"}) und geben 400 does not support forced tool_choice zurück.

Am 2026-10-15 mit claude-sonnet-5-5 gemessene Ausgabe (bei Prüfung 1 wurden nur die Schlüsselfelder behalten):

text
== 1. model 字段
{
"id": "msg_011Cg3Esh8zeEdLeXAPVALKe",
"model": "claude-sonnet-5-5",
"usage": {
"input_tokens": 518,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 12,
...
}
}
== 2. 缓存:同一请求发两次,看第二次的 cache_read_input_tokens
{"input_tokens":23,"cache_creation_input_tokens":17920,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":17920,"ephemeral_1h_input_tokens":0},"output_tokens":4,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}
{"input_tokens":23,"cache_creation_input_tokens":0,"cache_read_input_tokens":17920,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}
== 3. 工具调用 ID
toolu_01UPsdyKX8M9fJTTkDoSKHXA
== 4. 流式事件序列
event: message_start
event: content_block_start
event: ping
event: content_block_delta
event: content_block_stop
event: message_delta
event: message_stop

Ob das ping-Ereignis auftritt und an welcher Stelle, ist nicht festgelegt und beeinflusst die Beurteilung nicht.

Wenn thinking aktiviert ist, enthält der zurückgegebene thinking-Block das signature-Feld und kann ebenfalls als Formatprüfung verwendet werden. Die Schreibweise unterscheidet sich bei 5.x-Modellen von 4.x; gemessen am 2026-10-15:

Modellthinking-ParameterErgebnis
claude-sonnet-4-6{"type":"enabled","budget_tokens":1024}Gibt thinking-Block mit Denktext und signature zurück
claude-sonnet-5{"type":"enabled","budget_tokens":1024} oder {"type":"adaptive"}Beides funktioniert
claude-sonnet-5-5{"type":"adaptive"}Funktioniert; enabled gibt 400 zurück und weist darauf hin, dass nur adaptive unterstützt wird

Der thinking-Block von 5.x-Modellen enthält standardmäßig nur signature; der Denktext ist eine leere Zeichenkette. Wenn die Denkzusammenfassung sichtbar sein soll, fügen Sie "display": "summarized" hinzu:

json
"thinking": {"type": "adaptive", "display": "summarized"}

Bei der Verwendung von Drittanbieter-Prüfseiten wird empfohlen, einen neuen, dafür vorgesehenen API-Schlüssel anzulegen und ihn nach dem Test zu löschen.

Senden Sie eine E-Mail an [email protected] und fügen Sie die Anfragezeit, die Modell-ID, den vollständigen Rückgabewert (ohne API-Schlüssel) und den zugehörigen Prüfpunkt bei. Die request id in der Rückgabe oder Fehlermeldung hilft, diesen Aufruf zu lokalisieren.

Ist es zuverlässig, das Modell direkt zu fragen „Wer bist du?“

Unzuverlässig. Die Selbstvorstellung des Modells wird vom Systemprompt beeinflusst und kann unter bestimmten Prompts die eigene Version falsch angeben. Die Prüfung der zurückgegebenen Felder und Ereignisformate ist aussagekräftiger.

Opus ausgewählt – warum erscheint im Aufruflog Haiku?

Claude Code verwendet das Haiku-Modell für einige Hintergrundaufgaben; im Aufrufprotokoll erscheinen die entsprechenden Einträge. Mit der Umgebungsvariable ANTHROPIC_DEFAULT_HAIKU_MODEL lässt sich das Modell für solche Aufgaben festlegen, siehe Claude-Code-Anbindung. Wenn dies ohne Claude Code auftritt, senden Sie die Anfragezeit an [email protected].