mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-28 20:44:50 +02:00
[eric] policy: a block on Opus 5 finishes the ask on Opus 4.8 on the same lane before touching the user's key, one failover per ask; fleet 14 days: 78 blocks on opus-5, 0 on opus-4-8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
9a56b2058b
commit
9bdd45f791
@@ -189,6 +189,22 @@ def write_would_suicide(field: str, new_value: Any, powering: PoweringCredential
|
||||
return False
|
||||
|
||||
|
||||
# Anthropic's abuse classifier declines Opus 5 requests it passes on every other model: 78 of 84 fleet
|
||||
# blocks in the fortnight to 2026-09-07 were on opus-5 against 0 on opus-4-8 across a comparable error
|
||||
# volume, and Anthropic's own block text says to switch models. The sibling is the same vendor on the
|
||||
# SAME lane and wallet, so a step can finish there without spending anything the user did not connect.
|
||||
POLICY_BLOCK_SIBLING: dict[str, str] = {
|
||||
"opus-5": "opus-4-8",
|
||||
"opus-5-cc": "opus-4-8-cc",
|
||||
"opus-5-api": "opus-4-8-api",
|
||||
}
|
||||
|
||||
|
||||
def policy_block_sibling(model_value: str) -> Optional[str]:
|
||||
"""The same-lane model a policy-blocked step may finish on, or None when there is no such sibling."""
|
||||
return POLICY_BLOCK_SIBLING.get(model_value)
|
||||
|
||||
|
||||
def api_key_twin_model(model_value: str, settings: AppSettings) -> Optional[str]:
|
||||
"""The same Claude model on the user's OWN Anthropic API key, when this run was on a subscription
|
||||
lane and such a key is configured; None otherwise. Never the OpenSwarm Pro pool (not their money to
|
||||
|
||||
Reference in New Issue
Block a user