Providers
Provider-agnostic LLM access. Switch models without changing agent logic.
Supported Providers
- OpenAI
- GPT-4, GPT-4o, GPT-5 series. Streaming, tool use, reasoning, vision. API key auth.
- OpenAI Codex
- OAuth device flow with automatic token refresh. Designed for code-oriented tasks.
- Z.ai
- GLM models (GLM-4, GLM-5). OpenAI-compatible endpoint. Supports streaming and tool use.
- Ollama
- Local and cloud models. OpenAI-compatible API. Any model available via Ollama — Llama, Mistral, Qwen, DeepSeek, etc.
- Cohere
- Command R+ and Command R. Custom HTTP implementation (not OpenAI-compatible). Streaming with tool use.
- Mistral
- Mistral Large, Medium, Small. OpenAI-compatible endpoint. Streaming and tool use.
Provider Architecture
Five of the six providers share an OpenAI-compatible HTTP client. Cohere has its own implementation due to different API conventions. Each provider reports its capabilities at runtime:
- Streaming — whether the provider supports server-sent events for token-by-token delivery
- Tool use — whether the provider supports structured tool calling in responses
- Reasoning — whether the provider supports thinking/reasoning tokens
- Vision — whether the provider accepts image inputs
Capability detection happens at provider registration time. The chain runner uses these flags to construct prompts compatible with the selected provider — no manual configuration needed.
Concurrency Throttling
Each provider has a configurable concurrency limit. Requests beyond the limit are queued. This prevents rate-limit errors with providers that enforce request ceilings (OpenAI, Cohere) and ensures fair resource distribution when multiple agents share the same provider.
Per-Agent Configuration
Each agent specifies its own provider and model. Two agents on the same Animus instance can use different providers — one on OpenAI GPT-5, another on a local Ollama model. Switching providers doesn't change agent logic, memory, or tool access. The model is the vessel, not the identity.
{
"id": "agent-alpha",
"provider_id": "openai-main",
"model_id": "gpt-5",
"reasoning_effort": "high",
"max_chain_steps": 15
}