enhancement
major
minor
defect
critical
major
minor
major
#30251
tl-ai-core, Anthropic-Anbieter: Claude 5.5-Modelle fehlen im mitgelieferten Modellkatalog, und claude-haiku-5-5 hat ein „Thinking Budget“ zurückgegeben (HTTP 400)
tl-ai-core 8.0.0-alpha12.819, Anwendung E-Home (haumacher/ehome #126).
1. Die Datei
Die Datei „models-dev-snapshot.json“ von tl-ai-core kennt „claude-sonnet-4-6“ und „claude-opus-4-7“, jedoch nicht die aktuellen Modelle „claude-sonnet-5-5“, „claude-opus-5-5“ und „claude-haiku-5-5“. Eine Anwendung, die diese konfiguriert (tl_anthropic_models), verfügt über kein Kontextfenster, keine Ausgabebegrenzung und keine Preise für diese Modelle, es sei denn, sie deklariert <model-overrides> selbst.
Erwartet: Der Snapshot kennt die aktuellen Claude-Modelle (und die mitgelieferte Standardliste des Anthropic -Anbieters nennt sie).
2. Budgetberechnung für Haiku 5.5
AnthropicRequestBuilder.requiresBudgetTokens gibt für jedes Modell, dessen Name „haiku“ enthält, „true“ zurück. Ein Lauf auf „claude-haiku-5-5“ mit einem im Denk-Auswahlfeld des Chats gewählten Aufwand sendet daher „thinking: {type: "enabled", budget_tokens: N}“, was das Modell mit einem HTTP-400-Fehler ablehnt; es akzeptiert {type: „adaptive“} mit ` output_config.effort`.
Reproduktion: claude-haiku-5-5 konfigurieren, es und einen Aufwand im Chat auswählen, eine Nachricht senden.
Erwartet: Nur die Haiku-Modelle vor Generation 5 erhalten ein Budget.
3. Preisstufen des aktuellen Katalogs
models.dev beschreibt einen Preis, der von der Promptgröße abhängt, nicht mehr nur als cost.context_over_200k, sondern auch als Liste cost.tiers mit eigenem Schwellenwert pro Stufe ({input, output, cache_read, cache_write, tier: {type: "context", size: N}}). claude-haiku-5-5 verfügt nur über eine solche Stufe, beginnend bei 100.000 Token (das Fünffache des Grundpreises). ModelsDevFetcher liest nur „context_over_200k“, und CostCalculator wendet eine Stufe ab festen 200.000 Token an; bei einem aktualisierten Katalog würde ein Lauf auf Haiku 5.5 mit mehr als 100.000 Prompt-Token mit einem Fünftel der Kosten ausgewiesen werden.
Workaround in E-Home
<model-overrides> für die drei Modelle in WEB-INF/autoconf/ehome.ai.config.xml; die Überschreibung von claude-haiku-5-5 legt reasoning="false" fest, sodass der Chat keinen Aufwand dafür betreibt.
Lösung
- Überlegung: Die Generierung eines Modellnamens wird bei Haiku ebenso wie bei Opus und Sonnet erkannt (AnthropicRequestBuilder.modelGeneration; ein Veröffentlichungsdatum in einem alten Namen wie claude-3-5-haiku-20241022 wird nicht als Generierung gewertet). Nur ein Haiku-Modell vor Generation 5 erhält ein Denkbudget; claude-haiku-5-5 erhält adaptives Denken mit dem in output_config.effort gewählten Aufwand. Ohne einen Aufwand wird einem Haiku-Modell keine Denkkonfiguration zugewiesen (es zählt nicht zu den Modellen, die unaufgefordert denken: Opus/Sonnet ab Generation 5, Fable, Mythos). Datierte Claude-3-Namen (claude-3-opus-20240229) gelten nicht mehr als Modelle, die unaufgefordert denken.
- Preisstufen: Der Preis eines Modells (ModelCost) enthält eine Liste von Stufen (TieredCost mit den jeweiligen Schwellenwerten). Der Katalog-Parser liest sowohl „context_over_200k“ (eine Stufe über 200.000 Token) als auch die Einträge von „cost.tiers“ vom Typ „context“ (eine Stufe über „tier.size“); eine Stufe eines anderen Typs wird ignoriert, und wenn beide Formen denselben Schwellenwert angeben, zählt der Eintrag in „tiers “. Eine Anfrage wird für alle ihre Token in der Stufe mit dem höchsten Schwellenwert abgerechnet, den ihre Eingabeaufforderung (einschließlich des zwischengespeicherten Teils) überschreitet. Die feste Konstante `CostCalculator.TIER_THRESHOLD ` wird entfernt.
- Katalog: Die mitgelieferte Datei „models-dev-snapshot.json“ wird durch den aktuellen „models.dev“-Katalog (11.11.2026) ersetzt. Dieser enthält unter anderem die Claude-5.x-Modelle (claude-sonnet-5-5, claude-opus-5-5, claude-haiku-5-5, claude-fable-5-x). Modelle, die in „models.dev“ nicht mehr aufgeführt sind (z. B. Claude 3.x, claude-opus-4-1, claude-sonnet-4-20250514, grok-4-1-fast, Grok 2/3), sind auch nicht mehr im mitgelieferten Katalog enthalten.
- Standardlisten: Ohne „tl_anthropic_models“ bietet der Anthropic -Anbieter „claude-sonnet-5-5“, „claude-opus-5-5“ und „claude-haiku-5-5“ an; ohne „tl_xai_models“ bietet der XAI -Anbieter „grok-4.7“ und „grok-4.3“ an.
Migration
- Eine Anwendung, die auf die mitgelieferten Modelllisten zurückgreift (ohne tl_anthropic_models / tl_xai_models), lässt ihre Agenten auf claude-sonnet-5-5 (Standard) laufen bzw. bietet grok-4.7 und grok-4.3 an. Um die bisherigen Modelle beizubehalten, setzen Sie die Variablen (tl_anthropic_models=claude-sonnet-4-6,claude-opus-4-7,claude-haiku-4-5, tl_xai_models=grok-4.3,grok-4-1-fast).
- Eine Zugriffsrichtlinie für Agent-Tools (AiToolAccessService) darf nur Modelle gewähren, die ein konfigurierter Anbieter bereitstellt; andernfalls wird die Richtlinie abgelehnt und der Dienst startet nicht. Eine Anwendung, die auf die mitgelieferten Modelllisten angewiesen ist, deren Richtlinie ein Modell gewährt, das nicht mehr darin enthalten ist (z. B. <grant models="claude-haiku-4-5"/>) muss die Berechtigung auf ein aktuelles Modell (claude-haiku-5-5) ändern oder tl_anthropic_models / tl_xai_models so einstellen, dass die berechtigten Modelle enthalten sind.
- Ein Modell, das der mitgelieferte Katalog nicht mehr kennt (ausgemusterte Modelle wie claude-sonnet-4-20250514, claude-opus-4-1, grok-4-1-fast), erhält vom Katalog kein Kontextfenster, keine Ausgabebegrenzung und keine Preise. Eine Anwendung, die noch ein solches Modell verwendet, wechselt zu einem aktuellen Modell oder deklariert es im <model-overrides> von LLMProviderService.
- Workarounds für Claude 5.5 in <model-overrides> (z. B. reasoning="false" für claude-haiku-5-5) können entfernt werden.
- Java-Code, der ModelInfo.ModelCost / ModelInfo.TieredCost erstellt, übergibt eine Liste von Stufen bzw. den Schwellenwert der Stufe; CostCalculator.TIER_THRESHOLD wurde entfernt (ModelCost.tierFor(promptTokens) gibt die anwendbare Stufe zurück).