Documentation Index
Fetch the complete documentation index at: https://docs.sirenspec.dev/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Providers are selected via themodel field on each agent definition using a provider:model URI:
OpenAI
Uses the official OpenAI Python SDK. URI format:openai:<model-name>
| URI | Model |
|---|---|
openai:gpt-4o-mini | GPT-4o mini |
openai:gpt-4o | GPT-4o |
openai:gpt-4-turbo | GPT-4 Turbo |
Anthropic
Uses the official Anthropic Python SDK. URI format:anthropic:<model-name>
| URI | Model |
|---|---|
anthropic:claude-haiku-4-5-20251001 | Claude Haiku |
anthropic:claude-sonnet-4-6 | Claude Sonnet |
anthropic:claude-opus-4-7 | Claude Opus |
The Anthropic provider extracts any
system-role message and passes it as the top-level system parameter, as required by the Anthropic Messages API. The max_tokens is fixed at 4096.Ollama
Uses Ollama’s OpenAI-compatible API via the OpenAI Python SDK. URI format:ollama:<model-name>
| Environment variable | Default | Description |
|---|---|---|
OLLAMA_BASE_URL | http://localhost:11434/v1 | Ollama server URL. |
OLLAMA_API_KEY | ollama | API key (for auth-protected deployments; most local setups don’t need this). |
Ollama must be running and the model must be pulled locally before running a workflow that references it.
Mixing Providers
You can use different providers in a single workflow. Each agent independently resolves its own provider:Error Handling
Provider URIs are validated when the workflow is executed. An invalid URI raisessirenspec.exceptions.ProviderError (a subclass of SirenSpecError):
ProviderError is raised:
| Cause | Example URI | Error message |
|---|---|---|
| Missing colon separator | openai-gpt4o | Malformed provider URI '...'; expected 'provider:model' format |
| Empty model name | openai: | Malformed provider URI '...'; expected 'provider:model' format |
| Unknown provider | vertex:gemini-pro | Unknown provider 'vertex'; supported: [...] |