feat(ai): add guarded Claude fallback route

This commit is contained in:
ogt
2026-07-15 15:57:24 +08:00
parent f57845ba5e
commit 5c5eb48091
56 changed files with 4942 additions and 760 deletions

View File

@@ -17,7 +17,7 @@
"Canonical Asset Normalize",
"Typed Domain Router",
"HolmesGPT Investigator",
"Ollama RCA / Gemini Critic",
"Ollama RCA / Claude Fallback / Gemini Critic",
"Deterministic Policy",
"Single Controlled Executor",
"Independent Verifier",
@@ -37,9 +37,10 @@
"ollama_gcp_a",
"ollama_gcp_b",
"ollama_local",
"claude",
"gemini"
],
"route_label": "GCP-A -> GCP-B -> host111 Ollama -> Gemini API",
"route_label": "GCP-A -> GCP-B -> host111 Ollama -> Anthropic Claude -> Gemini API",
"hops": [
{
"position": 1,
@@ -58,17 +59,26 @@
},
{
"position": 4,
"provider": "claude",
"identity": "Anthropic Claude API"
},
{
"position": 5,
"provider": "gemini",
"identity": "Gemini API"
}
],
"ollama_role": "primary_rca_and_action_planning",
"claude_role": "paid_architecture_rca_and_debug_fallback",
"gemini_role": "final_fallback_and_optional_critic_only",
"claude_paid_call_allowed": false,
"gemini_paid_call_allowed": false,
"gemini_cost_cap_status": "explicit_cost_cap_not_approved",
"claude_cost_cap_status": "source_configured_shadow_runtime_readback_pending",
"gemini_cost_cap_status": "source_configured_runtime_readback_pending",
"claude_credential_status": "runtime_secret_reference_verifier_pending_no_secret_value_read",
"gemini_credential_status": "runtime_secret_reference_verifier_pending_no_secret_value_read",
"production_provider_route_switch_allowed": false,
"required_before_gemini_enablement": [
"required_before_paid_provider_enablement": [
"offline_replay_scorecard",
"shadow_comparison",
"bounded_canary",
@@ -415,7 +425,7 @@
"order": 13,
"priority": "P0",
"phase": "phase_3",
"title": "Ollama RCA 與 Gemini Critic/cost gate",
"title": "Ollama RCA、Claude fallback 與 Gemini Critic/cost gate",
"owner_lane": "ModelRouter",
"risk": "critical",
"status": "in_progress",
@@ -424,13 +434,13 @@
],
"source_refs": [
"apps/api/src/services/ai_router.py",
"apps/api/src/services/ollama_failover.py"
"apps/api/src/services/ollama_failover_manager.py"
],
"executor": "ordered model router",
"verifier": "provider-attributed replay accuracy, latency and cost readback",
"rollback": "Gemini disabled; remain on ordered Ollama chain",
"exit_condition": "provider order is enforced and Gemini cannot run without explicit cost cap",
"next_action": "verify secret metadata presence without reading value, then build offline comparison"
"rollback": "Claude/Gemini disabled; remain on ordered Ollama chain",
"exit_condition": "provider order is enforced and paid providers cannot run without explicit cost cap",
"next_action": "deploy the disabled-by-default source route, verify secret metadata without reading values, then run replay, shadow comparison and bounded canary"
},
{
"id": "AIA-SRE-014",