Summary
hermes doctor reports a false-positive error for a valid AWS Bedrock configuration:
✗ model.provider 'bedrock' is not a recognised provider (known: ai-gateway, alibaba, ..., bedrock, ...)
...
1. model.provider 'bedrock' is unknown. Valid providers: ..., bedrock, ...
Fix: run 'hermes config set model.provider <valid_provider>'
The error message itself lists bedrock as a known provider. The API Connectivity section in the same doctor run also succeeds against Bedrock. My session uses provider: bedrock and works fine — only the doctor validator is wrong.
Config
model:
default: us.anthropic.claude-opus-4-7
provider: bedrock
Root Cause
hermes_cli/doctor.py (~line 322) calls resolve_provider_full('bedrock', ...) and falls back to flagging the provider as unknown if the result is None:
canonical_provider = provider
if provider and _resolve_provider_full is not None and provider != "auto":
provider_def = _resolve_provider_full(provider, user_providers, custom_providers)
canonical_provider = provider_def.id if provider_def is not None else None
if provider and provider != "auto":
if canonical_provider is None or (known_providers and canonical_provider not in known_providers):
check_fail(f"model.provider '{provider_raw}' is not a recognised provider", ...)
For bedrock specifically, resolve_provider_full returns None because:
HERMES_OVERLAYS in hermes_cli/providers.py has no bedrock entry.
agent.models_dev.get_provider_info('bedrock') also returns None — models.dev's id is amazon-bedrock, not bedrock.
get_provider('bedrock') therefore returns None, and so does resolve_provider_full.
Meanwhile hermes_cli/auth.py::PROVIDER_REGISTRY DOES register bedrock (auth_type aws_sdk, transport bedrock_converse), which is why the rest of the agent works. Only provider resolution in providers.py is missing it.
Reproduction (demonstrates the contradiction inside resolve_provider_full):
from hermes_cli.auth import PROVIDER_REGISTRY
from hermes_cli.providers import resolve_provider_full
print('bedrock' in PROVIDER_REGISTRY) # True
print(resolve_provider_full('bedrock', None, [])) # None ← bug
Expected
resolve_provider_full('bedrock', ...) should return a ProviderDef with transport='bedrock_converse' and auth_type='aws_sdk', and hermes doctor should not flag a valid bedrock config.
Proposed Fix
Add a bedrock overlay entry to HERMES_OVERLAYS in hermes_cli/providers.py. PR incoming.
Environment
- macOS
- Hermes config v22
- Python 3.11.14
hermes doctor run on latest main as of April 2026
Summary
hermes doctorreports a false-positive error for a valid AWS Bedrock configuration:The error message itself lists
bedrockas a known provider. TheAPI Connectivitysection in the same doctor run also succeeds against Bedrock. My session usesprovider: bedrockand works fine — only the doctor validator is wrong.Config
Root Cause
hermes_cli/doctor.py(~line 322) callsresolve_provider_full('bedrock', ...)and falls back to flagging the provider as unknown if the result isNone:For
bedrockspecifically,resolve_provider_fullreturnsNonebecause:HERMES_OVERLAYSinhermes_cli/providers.pyhas nobedrockentry.agent.models_dev.get_provider_info('bedrock')also returnsNone— models.dev's id isamazon-bedrock, notbedrock.get_provider('bedrock')therefore returnsNone, and so doesresolve_provider_full.Meanwhile
hermes_cli/auth.py::PROVIDER_REGISTRYDOES registerbedrock(auth_typeaws_sdk, transportbedrock_converse), which is why the rest of the agent works. Only provider resolution inproviders.pyis missing it.Reproduction (demonstrates the contradiction inside
resolve_provider_full):Expected
resolve_provider_full('bedrock', ...)should return aProviderDefwithtransport='bedrock_converse'andauth_type='aws_sdk', andhermes doctorshould not flag a valid bedrock config.Proposed Fix
Add a
bedrockoverlay entry toHERMES_OVERLAYSinhermes_cli/providers.py. PR incoming.Environment
hermes doctorrun on latest main as of April 2026