Bug Description
When using a custom provider with the anthropic_messages protocol, Hermes can rewrite the configured model name by replacing . with -.
This affects custom Anthropic-compatible endpoints that expect the model ID exactly as configured by the user.
Examples:
claude-sonnet-4.6 → claude-sonnet-4-6
glm-4.7 → glm-4-7
qwen3.5-plus → qwen3-5-plus
Steps to Reproduce
- Configure a custom provider that uses an Anthropic-compatible endpoint.
- Set its API mode / transport to
anthropic_messages.
- Configure a model name containing dots, such as
claude-sonnet-4.6.
- Send a request through Hermes.
- Observe that the outgoing model name is rewritten with
. replaced by -.
Expected Behavior
For custom providers, Hermes should send the configured model name unchanged.
If the configured model is claude-sonnet-4.6, the request should use claude-sonnet-4.6.
Actual Behavior
On the anthropic_messages path, Hermes can rewrite the model name before sending the request, replacing dots with hyphens.
As a result, custom endpoints may receive a different model ID than the one configured by the user.
Affected Component
- Configuration (config.yaml, .env, hermes setup)
- Agent Core (conversation loop, provider/runtime handling)
Messaging Platform (if gateway-related)
Debug Report
Not attached yet. This was identified from source analysis and behavior inspection rather than a runtime crash. I can provide a debug report if needed.
Operating System
Python Version
Hermes Version
Hermes Agent v0.11.0 (2026.4.23)
Additional Logs / Traceback (optional)
No traceback. This appears to be a model-name normalization behavior issue.
Bug Description
When using a custom provider with the
anthropic_messagesprotocol, Hermes can rewrite the configured model name by replacing.with-.This affects custom Anthropic-compatible endpoints that expect the model ID exactly as configured by the user.
Examples:
claude-sonnet-4.6→claude-sonnet-4-6glm-4.7→glm-4-7qwen3.5-plus→qwen3-5-plusSteps to Reproduce
anthropic_messages.claude-sonnet-4.6..replaced by-.Expected Behavior
For custom providers, Hermes should send the configured model name unchanged.
If the configured model is
claude-sonnet-4.6, the request should useclaude-sonnet-4.6.Actual Behavior
On the
anthropic_messagespath, Hermes can rewrite the model name before sending the request, replacing dots with hyphens.As a result, custom endpoints may receive a different model ID than the one configured by the user.
Affected Component
Messaging Platform (if gateway-related)
Debug Report
Not attached yet. This was identified from source analysis and behavior inspection rather than a runtime crash. I can provide a debug report if needed.
Operating System
Python Version
Python 3.12.12Hermes Version
Hermes Agent v0.11.0 (2026.4.23)Additional Logs / Traceback (optional)
No traceback. This appears to be a model-name normalization behavior issue.