Skip to main content
HERMINA · YOUR PERSONAL HARNESSExplore
Docs/Providers and models

Providers and models

Every agent needs a model provider. Provider choice affects quality, latency, cost, privacy, context length, tool calling, and which media features are available.

View the current configuration:

hermina model <agent>

Set a hosted provider:

hermina model <agent> \
  --provider=openai \
  --model=gpt-4o-mini \
  --api-key=YOUR_API_KEY \
  --reasoning=medium

The provider key is written to .env. Model, endpoint, API mode, and reasoning settings are written to config.yaml.

Test a plain dashboard conversation immediately after changing providers. Add tools, channels, and schedules only after the base model works.

Built-in provider presets

Hermina currently includes presets for:

Provider IDDefault or example modelSecret
opencode-godeepseek-v4-flashNone in the default preset
opencode-zenclaude-sonnet-4-5OPENCODE_API_KEY
openaigpt-4o-miniOPENAI_API_KEY
anthropicclaude-sonnet-4-5ANTHROPIC_API_KEY
googlegemini-2.5-proGEMINI_API_KEY
openrouteropenai/gpt-4o-miniOPENROUTER_API_KEY
deepseekdeepseek-chatDEEPSEEK_API_KEY
xaigrok-4XAI_API_KEY
groqProvider catalogGROQ_API_KEY
mistralProvider catalogMISTRAL_API_KEY
cerebrasProvider catalogCEREBRAS_API_KEY
deepinfraUser selectedDEEPINFRA_API_KEY
fireworksUser selectedFIREWORKS_API_KEY
github-copilotUser selectedGITHUB_TOKEN
xiaomiUser selectedXIAOMI_API_KEY
ollamallama3None
lmstudioUser selectedNone

Provider catalogs change over time. A preset proves the expected protocol and default endpoint, not that every listed model is available on your account.

Reasoning level

Supported values are:

xhigh, high, medium, low, minimal, none

Higher reasoning can improve difficult multi-step work but usually costs more and responds more slowly. Use medium as a starting point, lower it for high-volume routine conversations, and raise it only for tasks that benefit from deeper planning.

hermina model <agent> --reasoning=low

Custom OpenAI-compatible endpoints

Override the base URL and API mode when using a self-hosted or compatible endpoint:

hermina model <agent> \
  --provider=openrouter \
  --model=my-org/my-model \
  --base-url=https://models.example.com/v1 \
  --api-mode=chat_completions \
  --api-key=YOUR_API_KEY

The provider ID still selects defaults and the environment variable used for the key. Verify the endpoint separately before debugging Hermina.

Local models

For Ollama:

hermina model <agent> \
  --provider=ollama \
  --model=qwen3:latest \
  --base-url=http://HOST_REACHABLE_FROM_AGENT:11434/v1

127.0.0.1 inside a Docker agent refers to that container, not the host. Use a host address reachable from the container network or run an appropriate network configuration.

Choose a model with a large enough context window and reliable tool calling. Hermes workflows can fail in subtle ways on small-context or weak tool-use models even when simple chat appears normal.

Media models

Model configuration and media configuration are separate:

hermina media <agent>

Example:

hermina media <agent> \
  --vision-provider=opencode-go \
  --vision-model=mimo-v2.5 \
  --stt-enabled=true \
  --stt-provider=local \
  --stt-model=base \
  --stt-language=en \
  --tts-provider=edge \
  --tts-voice=en-US-GuyNeural

Vision analyzes images, STT transcribes incoming audio, and TTS produces spoken replies. Each provider may require its own key in .env.

Common provider failures

SymptomLikely causeFirst check
Empty or immediate failureMissing or invalid keyhermina model <agent> and agent logs
Model not foundWrong provider-specific model nameProvider catalog/account access
404 from custom endpointIncorrect base URL or API modeTest /v1 endpoint separately
Simple chat works, tools failModel has weak tool callingTry a known tool-capable model
Replies stop on long tasksContext or timeout too smallModel context and runtime logs
Local model is unreachableContainer cannot reach host loopbackUse a container-reachable host address