LLM providers
Without keys, Anthropic and OpenAI need a user connection (Connections) or an allowed system key. A new project gets the configured Llm:DefaultProvider when it is enabled and usable by its creator, else the first usable provider in the order Anthropic, OpenAI, Ollama, Fake (SPEC ยง4.24). Providers can be turned off per deployment with Llm__Providers__<Name>__Enabled=false; Railway turns off Ollama and Fake (FR-157).
| Setting | How |
|---|---|
| Anthropic | Llm__Providers__Anthropic__ApiKey |
| OpenAI | Llm__Providers__OpenAI__ApiKey |
| Ollama | Llm__Providers__Ollama__BaseUrl (no key). From the cluster it defaults to http://host.docker.internal:11434 |
| Default provider | Llm__DefaultProvider (anthropic, openai, ollama, fake) |
| Per project | Settings, LLM tab: provider, model per agent and an optional per-project API key (encrypted, used only for that provider). Base URLs are system-only |
Default model IDs (from appsettings.json):
| Provider | Default model | Idea refinement |
|---|---|---|
| Anthropic | claude-opus-5-5 |
claude-sonnet-5-5 |
| OpenAI | gpt-6-astra |
gpt-6.1-sol |
| Ollama | qwen2.5-coder |
same as default |
| Fake | fake-1 |
same as default |
Override per agent with Llm__Providers__<Name>__Models__<Agent>. Agent names: IdeaRefinement and the other AgentKind values (names are case-insensitive). Costs come from Llm:Pricing:<model-id>. Add an entry for any unpriced model, for example Llm__Pricing__gpt-6-astra__InputPerMTok. A project token budget caps total tokens.