Skip to main content

Module providers

Module providers 

Source
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 GenericCompletionModel via an OpenAICompatibleProvider impl on the provider extension (never a hand-rolled completion model, request struct, or message conversion — dialect differences go in the trait’s hooks);
  • public Client and ClientBuilder aliases with the correct generics, including a ClientBuilder API-key generic matching ProviderBuilder::ApiKey;
  • the Provider, ProviderBuilder, Capabilities, and ProviderClient implementations;
  • 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 ProviderResponseExt and 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.