Model providers
Each subagent picks its own model. Anthropic, OpenAI, Google, Hugging Face, Together, Groq, or local Ollama.
Each subagent in a clan can run on a different model. Same agent.py, same deepagents runtime; the [model] block in each subagent's deepagents.toml selects the provider.
How it's configured
Each subagent's deepagents.toml declares its model:
[model]
provider = "anthropic" # which provider
name = "claude-sonnet-4-6" # which modelThe orchestrator's deepagents.toml at the repo root sets the default; each subagent overrides as needed.
Supported providers
| Provider | API key env var | Starter model | Notes |
|---|---|---|---|
anthropic | ANTHROPIC_API_KEY | claude-sonnet-4-6 | Default. |
openai | OPENAI_API_KEY | gpt-5.2 | |
google | GOOGLE_API_KEY | gemini-2.5-flash | Free tier available. |
huggingface (alias hf) | HUGGINGFACEHUB_API_TOKEN | Qwen/Qwen3-32B-Instruct | Free tier available; open-weight models. |
together | TOGETHER_API_KEY | meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo | Open models. |
groq | GROQ_API_KEY | llama-3.3-70b-versatile | Low-latency inference. |
ollama | none (OLLAMA_BASE_URL) | llama3.1:8b | Local; requires Ollama running. |
Lazy loading
Provider packages are imported only when a subagent requests that provider. Missing keys do not block agent startup — the provider is simply unavailable until the key is set.
If a subagent's config asks for a provider whose key is not set, the agent build logs a warning and the subagent inherits the orchestrator's model.
Adding a new provider
Two steps:
- Add the LangChain integration package to
platform/requirements.txt(e.g.langchain-fireworks). - Extend
_RESOLVERSinplatform/api/model_registry.pywith a new entry.
def _fireworks(name: str, **kwargs) -> BaseChatModel:
from langchain_fireworks import ChatFireworks
return ChatFireworks(model=name, **kwargs)
_RESOLVERS = {
...,
"fireworks": _fireworks,
}Subagents can now use provider = "fireworks".
Bring your own model endpoint
The ollama and openai providers accept a custom base_url, so a subagent can target an Ollama instance running on a laptop tunnel, Docker Cloud, a VPS, or a GPU host. Same code path on self-host and humancensys.com.
OLLAMA_BASE_URL=https://your-endpoint.example.com
OLLAMA_AUTH_HEADER=Bearer your-long-random-secretSetup walkthroughs (laptop tunnel, Docker Cloud, AWS/GPU): BYO personal Ollama.
Two-mode notes
| Mode | Where API keys live |
|---|---|
| Self-host | platform/deploy/.env |
| Hosted-multitenant | Per-tenant config (Pillar 0 tenant abstraction). Each tenant supplies their own keys; keys are not shared between tenants. |
Connection to Pillar 1
The agent-builder UI (Step 3 of the agent-builder flow) groups providers as:
- BYO subscription: Anthropic, OpenAI, Google
- Open-weight hosted: Hugging Face, Together, Groq
- Local: Ollama