Skip to Content
Perstack 0.0.1 is released 🎉
ReferencesProviders and Models

Providers and Models

Perstack supports multiple LLM providers. Configure via CLI options, environment variables, or perstack.toml.

Default Model

Perstack uses claude-sonnet-4-5 as the default model, selected based on:

  • Standard tier pricing — not a flagship model, economically sustainable for extended runs
  • High agentic performance — demonstrated tool use capability in benchmarks like 𝜏²-Bench 

The default balances cost efficiency with reliable agent behavior. As new models are released, the default may change based on these criteria.

To override the default, specify in perstack.toml:

model = "gemini-2.5-pro" [provider] providerName = "google"

Or via CLI:

npx perstack run my-expert "query" --provider google --model gemini-2.5-pro

Supported Providers

ProviderKeyDescription
AnthropicanthropicClaude models (default)
GooglegoogleGemini models
OpenAIopenaiGPT and reasoning models
DeepSeekdeepseekDeepSeek models
OllamaollamaLocal model hosting
Azure OpenAIazure-openaiAzure-hosted OpenAI models
Amazon Bedrockamazon-bedrockAWS Bedrock-hosted models
Google Vertex AIgoogle-vertexGoogle Cloud Vertex AI models

Anthropic

Environment variables:

VariableRequiredDescription
ANTHROPIC_API_KEYYesAPI key
ANTHROPIC_BASE_URLNoCustom endpoint

perstack.toml settings:

[provider] providerName = "anthropic" [provider.setting] baseUrl = "https://custom-endpoint.example.com" # Optional headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
baseUrlstringCustom API endpoint
headersobjectCustom HTTP headers

Models:

ModelContextMax Output
claude-opus-4-5200K32K
claude-opus-4-1200K32K
claude-opus-4-20250514200K32K
claude-sonnet-4-5200K64K
claude-sonnet-4-20250514200K64K
claude-3-7-sonnet-20250219200K64K
claude-haiku-4-5200K8K
claude-3-5-haiku-latest200K8K
export ANTHROPIC_API_KEY=sk-ant-... npx perstack run my-expert "query" --provider anthropic --model claude-sonnet-4-5

Google

Environment variables:

VariableRequiredDescription
GOOGLE_GENERATIVE_AI_API_KEYYesAPI key
GOOGLE_GENERATIVE_AI_BASE_URLNoCustom endpoint

perstack.toml settings:

[provider] providerName = "google" [provider.setting] baseUrl = "https://custom-endpoint.example.com" # Optional headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
baseUrlstringCustom API endpoint
headersobjectCustom HTTP headers

Models:

ModelContextMax Output
gemini-3-pro-preview1M64K
gemini-2.5-pro1M64K
gemini-2.5-flash1M64K
gemini-2.5-flash-lite1M64K
export GOOGLE_GENERATIVE_AI_API_KEY=AIza... npx perstack run my-expert "query" --provider google --model gemini-2.5-pro

OpenAI

Environment variables:

VariableRequiredDescription
OPENAI_API_KEYYesAPI key
OPENAI_BASE_URLNoCustom endpoint (OpenAI-compatible)
OPENAI_ORGANIZATIONNoOrganization ID
OPENAI_PROJECTNoProject ID

perstack.toml settings:

[provider] providerName = "openai" [provider.setting] baseUrl = "https://custom-endpoint.example.com" # Optional organization = "org-xxx" # Optional project = "proj-xxx" # Optional name = "custom-openai" # Optional: custom provider name headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
baseUrlstringCustom API endpoint
organizationstringOpenAI organization ID
projectstringOpenAI project ID
namestringCustom provider name
headersobjectCustom HTTP headers

Models:

ModelContextMax Output
gpt-5400K128K
gpt-5-mini400K128K
gpt-5-nano400K128K
gpt-5-chat-latest128K16K
o4-mini200K100K
o3200K10K
o3-mini200K10K
gpt-4.11M32K
export OPENAI_API_KEY=sk-proj-... npx perstack run my-expert "query" --provider openai --model gpt-5

DeepSeek

Environment variables:

VariableRequiredDescription
DEEPSEEK_API_KEYYesAPI key
DEEPSEEK_BASE_URLNoCustom endpoint

perstack.toml settings:

[provider] providerName = "deepseek" [provider.setting] baseUrl = "https://custom-endpoint.example.com" # Optional headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
baseUrlstringCustom API endpoint
headersobjectCustom HTTP headers

Models:

ModelContextMax Output
deepseek-chat128K8K
deepseek-reasoner128K64K
export DEEPSEEK_API_KEY=sk-... npx perstack run my-expert "query" --provider deepseek --model deepseek-chat

Ollama

Environment variables:

VariableRequiredDescription
OLLAMA_BASE_URLNoServer URL (default: http://localhost:11434)

perstack.toml settings:

[provider] providerName = "ollama" [provider.setting] baseUrl = "http://localhost:11434" # Optional headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
baseUrlstringOllama server URL
headersobjectCustom HTTP headers

Models:

ModelContextMax Output
gpt-oss:20b128K128K
gpt-oss:120b128K128K
gemma3:1b32K32K
gemma3:4b128K128K
gemma3:12b128K128K
gemma3:27b128K128K
export OLLAMA_BASE_URL=http://localhost:11434 npx perstack run my-expert "query" --provider ollama --model gpt-oss:20b

Azure OpenAI

Environment variables:

VariableRequiredDescription
AZURE_API_KEYYesAPI key
AZURE_RESOURCE_NAMEYesResource name
AZURE_API_VERSIONNoAPI version
AZURE_BASE_URLNoCustom endpoint

perstack.toml settings:

[provider] providerName = "azure-openai" [provider.setting] resourceName = "your-resource-name" # Optional (env fallback) apiVersion = "2024-02-15-preview" # Optional baseUrl = "https://custom-endpoint.example.com" # Optional headers = { "X-Custom-Header" = "value" } # Optional useDeploymentBasedUrls = true # Optional
SettingTypeDescription
resourceNamestringAzure resource name
apiVersionstringAzure API version
baseUrlstringCustom API endpoint
headersobjectCustom HTTP headers
useDeploymentBasedUrlsbooleanUse deployment-based URLs
export AZURE_API_KEY=your_azure_key export AZURE_RESOURCE_NAME=your_resource_name npx perstack run my-expert "query" --provider azure-openai --model your-deployment-name

Amazon Bedrock

Environment variables:

VariableRequiredDescription
AWS_ACCESS_KEY_IDYesAccess key ID
AWS_SECRET_ACCESS_KEYYesSecret access key
AWS_REGIONYesRegion (e.g., us-east-1)
AWS_SESSION_TOKENNoSession token (temporary credentials)

perstack.toml settings:

[provider] providerName = "amazon-bedrock" [provider.setting] region = "us-east-1" # Optional (env fallback)
SettingTypeDescription
regionstringAWS region
export AWS_ACCESS_KEY_ID=AKIA... export AWS_SECRET_ACCESS_KEY=... export AWS_REGION=us-east-1 npx perstack run my-expert "query" --provider amazon-bedrock --model anthropic.claude-v2

Google Vertex AI

Environment variables:

VariableRequiredDescription
GOOGLE_VERTEX_PROJECTNoGCP project ID
GOOGLE_VERTEX_LOCATIONNoGCP location (e.g., us-central1)
GOOGLE_VERTEX_BASE_URLNoCustom endpoint

perstack.toml settings:

[provider] providerName = "google-vertex" [provider.setting] project = "my-gcp-project" # Optional location = "us-central1" # Optional baseUrl = "https://custom-endpoint.example.com" # Optional headers = { "X-Custom-Header" = "value" } # Optional
SettingTypeDescription
projectstringGCP project ID
locationstringGCP location
baseUrlstringCustom API endpoint
headersobjectCustom HTTP headers
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json npx perstack run my-expert "query" --provider google-vertex --model gemini-1.5-pro