mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-08-17 18:25:42 +02:00
34 lines
1.5 KiB
Python
34 lines
1.5 KiB
Python
"""Built-in WebSearch reliability: only an ENTITLED Anthropic endpoint suppresses DDG.
|
|
|
|
The 401 'Invalid bearer token (reset after ~2m)' comes from the CLI's built-in
|
|
WebSearch firing an aux `claude-haiku` call. That call only authenticates when it
|
|
reaches an entitled Anthropic endpoint:
|
|
- a DIRECT anthropic api-route model (base_url = api.anthropic.com, user's key), or
|
|
- OpenSwarm Pro (entitled to the managed pool 9Router's anthropic/* resolves to).
|
|
|
|
A SUBSCRIPTION-route Claude model (opus-4-8, route=None) sends the haiku call
|
|
through 9Router to the managed pool, which 401s for non-Pro users, so a bare
|
|
anthropic_api_key in settings is NOT enough. Those sessions must keep the free,
|
|
always-working DDG fallback instead of a 401-ing hosted path.
|
|
"""
|
|
|
|
from backend.apps.agents.tools.web import anthropic_web_search_is_reliable as ok
|
|
|
|
|
|
def test_direct_anthropic_api_route_is_reliable():
|
|
# opus-4-8-api (route='api', api='anthropic') + key in settings -> direct, works
|
|
assert ok(uses_direct_anthropic_api=True, is_pro=False) is True
|
|
|
|
|
|
def test_openswarm_pro_is_reliable():
|
|
assert ok(uses_direct_anthropic_api=False, is_pro=True) is True
|
|
|
|
|
|
def test_both_is_reliable():
|
|
assert ok(uses_direct_anthropic_api=True, is_pro=True) is True
|
|
|
|
|
|
def test_subscription_route_claude_is_NOT_reliable():
|
|
# The exact bug: opus-4-8 (subscription route) + key in settings. The haiku call still 401s via the managed pool, so this must stay unreliable -> DDG.
|
|
assert ok(uses_direct_anthropic_api=False, is_pro=False) is False
|