Bug Description
When model.default is manually set with a provider prefix (e.g. zai/glm-5.1) in config.yaml, the prefix is not stripped before sending to the provider's native API, causing HTTP 400 errors.
Note: This only affects users who manually edit config.yaml. The hermes model / hermes setup CLI flow already handles prefix stripping when switching providers (auth.py:2238). This is a missing guardrail for the manual config path.
ERROR root: API call failed after 3 retries. HTTP 400: Unknown Model
Steps to Reproduce
- Manually set
model.default: zai/glm-5.1 in ~/.hermes/config.yaml (with provider prefix)
- Set the corresponding API key (e.g.
GLM_API_KEY)
- Send a message — agent fails with HTTP 400
Expected Behavior
The provider prefix should be stripped before sending the model name to native APIs. OpenRouter is the only provider that accepts provider/model format natively.
Workaround
Use bare model IDs (e.g. glm-5.1 instead of zai/glm-5.1), or select models via hermes model which handles this automatically.
Environment
Bug Description
When
model.defaultis manually set with a provider prefix (e.g.zai/glm-5.1) inconfig.yaml, the prefix is not stripped before sending to the provider's native API, causing HTTP 400 errors.Note: This only affects users who manually edit
config.yaml. Thehermes model/hermes setupCLI flow already handles prefix stripping when switching providers (auth.py:2238). This is a missing guardrail for the manual config path.Steps to Reproduce
model.default: zai/glm-5.1in~/.hermes/config.yaml(with provider prefix)GLM_API_KEY)Expected Behavior
The provider prefix should be stripped before sending the model name to native APIs. OpenRouter is the only provider that accepts
provider/modelformat natively.Workaround
Use bare model IDs (e.g.
glm-5.1instead ofzai/glm-5.1), or select models viahermes modelwhich handles this automatically.Environment