Expand description
Provider integrations included in rig-core.
- Anthropic
- Azure OpenAI
- ChatGPT and GitHub Copilot auth-backed clients
- Cohere
- DeepSeek
- Gemini
- Groq
- Hugging Face
- Hyperbolic
- Llamafile
- MiniMax
- Mira
- Mistral
- Moonshot
- Ollama
- OpenAI
- OpenRouter
- Perplexity
- Together
- Voyage AI
- xAI
- Xiaomi MiMo
- Z.ai
Each provider module defines a Client type and model types for the
capabilities it supports. Capability traits such as
CompletionClient and
EmbeddingsClient are implemented only
when the provider declares that capability.
§Provider implementation checklist
When adding or changing a provider, verify that the integration includes:
- for OpenAI-chat-compatible APIs: completions driven by
GenericCompletionModelvia anOpenAICompatibleProviderimpl on the provider extension (never a hand-rolled completion model, request struct, or message conversion — dialect differences go in the trait’s hooks); - public
ClientandClientBuilderaliases with the correct generics, including aClientBuilderAPI-key generic matchingProviderBuilder::ApiKey; - the
Provider,ProviderBuilder,Capabilities, andProviderClientimplementations; - explicit API-key marker/auth types with redacted debug behavior for credential-bearing values;
- model constants where they are useful and current;
- request conversion from Rig request types, such as
CompletionRequest, without inventing unsupported provider API fields; - response conversion into Rig response types, including usage and tool or multimodal content where applicable;
- streaming support when the provider supports streaming;
- provider-response error preservation plus
ProviderResponseExtand telemetry fields consistent with nearby providers where applicable; - unit, cassette, or live-test coverage appropriate to the changed behavior;
- root facade feature/docs updates for companion provider crates; and
- examples and documentation that match the actual API, feature flags, and credential requirements.
§Example
use rig_core::{
agent::AgentBuilder,
client::{CompletionClient, ProviderClient},
providers::openai,
};
// Initialize the OpenAI client
let openai = openai::Client::from_env()?;
// Create a model and initialize an agent
let model = openai.completion_model(openai::GPT_5_2);
let agent = AgentBuilder::new(model)
.preamble("\
You are Gandalf the white and you will be conversing with other \
powerful beings to discuss the fate of Middle Earth.\
")
.build();
// Alternatively, you can initialize an agent directly
let agent = openai.agent(openai::GPT_5_2)
.preamble("\
You are Gandalf the white and you will be conversing with other \
powerful beings to discuss the fate of Middle Earth.\
")
.build();Modules§
- anthropic
- Anthropic API client and Rig integration
- azure
- Azure OpenAI API client and Rig integration
- chatgpt
- ChatGPT subscription OAuth provider.
- cohere
- Cohere API client and Rig integration
- copilot
- GitHub Copilot provider.
- deepseek
- DeepSeek API client and Rig integration
- gemini
- Google Gemini API client and Rig integration
- groq
- Groq API client and Rig integration
- huggingface
- Create a new completion model with the given name
- hyperbolic
- Hyperbolic Inference API client and Rig integration
- llamafile
- Llamafile API client and Rig integration
- minimax
- MiniMax API clients and Rig integrations.
- mira
- Mira API client and Rig integration
- mistral
- moonshot
- Moonshot AI (Kimi) API client and Rig integration
- ollama
- Ollama API client and Rig integration
- openai
- OpenAI API client and Rig integration
- openrouter
- OpenRouter Inference API client and Rig integration
- perplexity
- Perplexity API client and Rig integration
- together
- Together AI API client and Rig integration
- voyageai
- xai
- xAI API client and Rig integration
- xiaomimimo
- Xiaomi MiMo API clients and Rig integrations.
- zai
- Z.AI API clients and Rig integrations.