Providers
Brute supports multiple LLM providers via RubyLLM. Provider detection is handled by RubyLLM based on environment variables.
Supported Providers
| Name | Auto-detect env var |
|---|---|
anthropic |
ANTHROPIC_API_KEY |
openai |
OPENAI_API_KEY |
google |
GOOGLE_API_KEY |
deepseek |
LLM_API_KEY + LLM_PROVIDER=deepseek |
ollama |
OLLAMA_HOST (no key needed) |
xai |
LLM_API_KEY + LLM_PROVIDER=xai |
Configuration
Brute exposes a global provider accessor that defaults to :anthropic:
Brute.provider # => :anthropic (default)
Brute.provider = :openai # switch to OpenAI
Set the provider and key via environment variables:
export ANTHROPIC_API_KEY=sk-...
Or for providers that aren't auto-detected by key name:
export LLM_API_KEY=your-key
export LLM_PROVIDER=deepseek # openai | google | deepseek | ollama | xai
Usage in Agents
Pass the provider when creating an agent:
agent = Brute::Agent.new(
provider: Brute.provider,
model: "claude-sonnet-4-20250514",
tools: Brute::Tools::ALL,
) do
# middleware stack...
end