#[non_exhaustive]pub struct ProviderConfig {
pub provider_type: Option<String>,
pub wire_api: Option<String>,
pub base_url: String,
pub api_key: Option<String>,
pub bearer_token: Option<String>,
pub azure: Option<AzureProviderOptions>,
pub headers: Option<HashMap<String, String>>,
pub model_id: Option<String>,
pub wire_model: Option<String>,
pub max_prompt_tokens: Option<i64>,
pub max_output_tokens: Option<i64>,
}Expand description
Configures a custom inference provider (BYOK — Bring Your Own Key).
Routes session requests through an alternative model provider (OpenAI-compatible, Azure, Anthropic, or local) instead of GitHub Copilot’s default routing.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.provider_type: Option<String>Provider type: "openai", "azure", or "anthropic". Defaults to
"openai" on the CLI.
wire_api: Option<String>API format (openai/azure only): "completions" or "responses".
Defaults to "completions".
base_url: StringAPI endpoint URL.
api_key: Option<String>API key. Optional for local providers like Ollama.
bearer_token: Option<String>Bearer token for authentication. Sets the Authorization header
directly. Use for services requiring bearer-token auth instead of
API key. Takes precedence over api_key when both are set.
azure: Option<AzureProviderOptions>Azure-specific options.
headers: Option<HashMap<String, String>>Custom HTTP headers included in outbound provider requests.
model_id: Option<String>Well-known model ID used to look up agent config and default token
limits. Also used as the wire model when wire_model
is unset. Falls back to SessionConfig::model.
wire_model: Option<String>Model name sent to the provider API for inference. Use this when
the provider’s model name (e.g. an Azure deployment name or a
custom fine-tune name) differs from
model_id. Falls back to
model_id, then to
SessionConfig::model.
max_prompt_tokens: Option<i64>Overrides the resolved model’s default max prompt tokens. The runtime triggers conversation compaction before sending a request when the prompt (system message, history, tool definitions, user message) would exceed this limit.
max_output_tokens: Option<i64>Overrides the resolved model’s default max output tokens. When hit, the model stops generating and returns a truncated response.
Implementations§
Source§impl ProviderConfig
impl ProviderConfig
Sourcepub fn new(base_url: impl Into<String>) -> Self
pub fn new(base_url: impl Into<String>) -> Self
Construct a ProviderConfig with the required base_url set;
all other fields default to unset.
Sourcepub fn with_provider_type(self, provider_type: impl Into<String>) -> Self
pub fn with_provider_type(self, provider_type: impl Into<String>) -> Self
Set the provider type ("openai", "azure", or "anthropic").
Sourcepub fn with_wire_api(self, wire_api: impl Into<String>) -> Self
pub fn with_wire_api(self, wire_api: impl Into<String>) -> Self
Set the API format ("completions" or "responses"; openai/azure only).
Sourcepub fn with_api_key(self, api_key: impl Into<String>) -> Self
pub fn with_api_key(self, api_key: impl Into<String>) -> Self
Set the API key. Optional for local providers like Ollama.
Sourcepub fn with_bearer_token(self, bearer_token: impl Into<String>) -> Self
pub fn with_bearer_token(self, bearer_token: impl Into<String>) -> Self
Set the bearer token used to populate the Authorization header.
Takes precedence over api_key when both are set.
Sourcepub fn with_azure(self, azure: AzureProviderOptions) -> Self
pub fn with_azure(self, azure: AzureProviderOptions) -> Self
Set Azure-specific options.
Sourcepub fn with_headers(self, headers: HashMap<String, String>) -> Self
pub fn with_headers(self, headers: HashMap<String, String>) -> Self
Set the custom HTTP headers attached to outbound provider requests.
Sourcepub fn with_model_id(self, model_id: impl Into<String>) -> Self
pub fn with_model_id(self, model_id: impl Into<String>) -> Self
Set the well-known model ID used to look up agent config and default token limits. Falls back to the session’s configured model when unset.
Sourcepub fn with_wire_model(self, wire_model: impl Into<String>) -> Self
pub fn with_wire_model(self, wire_model: impl Into<String>) -> Self
Set the model name sent to the provider API for inference. Use this
when the provider’s model name (e.g. an Azure deployment name or a
custom fine-tune name) differs from
model_id.
Sourcepub fn with_max_prompt_tokens(self, max: i64) -> Self
pub fn with_max_prompt_tokens(self, max: i64) -> Self
Override the resolved model’s default max prompt tokens. The runtime triggers conversation compaction when the prompt would exceed this limit.
Sourcepub fn with_max_output_tokens(self, max: i64) -> Self
pub fn with_max_output_tokens(self, max: i64) -> Self
Override the resolved model’s default max output tokens. When hit, the model stops generating and returns a truncated response.
Trait Implementations§
Source§impl Clone for ProviderConfig
impl Clone for ProviderConfig
Source§fn clone(&self) -> ProviderConfig
fn clone(&self) -> ProviderConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more