Skip to main content

Crate agent_sdk_providers

Crate agent_sdk_providers 

Source
Expand description

LLM provider trait, streaming primitives, and first-party provider implementations.

This crate defines the LlmProvider trait that all LLM backends implement, streaming types for incremental response processing, attachment validation, model capability metadata, and seven first-party provider implementations.

§Provider Implementations

ProviderModuleProtocol
Anthropic (Messages API)impls::anthropicSSE streaming
OpenAI (Chat Completions)impls::openaiSSE streaming
OpenAI (Responses API)impls::openai_responsesSSE streaming
OpenAI Codex / ChatGPTimpls::openai_codex_responsesWebSocket
Google Geminiimpls::geminiSSE streaming
Google Vertex AIimpls::vertexSSE streaming
Cloudflare AI Gatewayimpls::cloudflare_ai_gatewayProxy wrapper

Re-exports§

pub use fallback::FallbackProvider;
pub use provider::LlmProvider;
pub use provider::ModelInfo;
pub use provider::StructuredOutputSupport;
pub use provider::collect_stream;
pub use record_replay::RecordReplayMode;
pub use record_replay::RecordReplayProvider;
pub use refresh::RefreshingProvider;
pub use refresh::is_unauthorized_error;
pub use router::ModelRouter;
pub use router::ModelTier;
pub use router::TaskComplexity;
pub use streaming::StreamAccumulator;
pub use streaming::StreamBox;
pub use streaming::StreamDelta;
pub use structured::StructuredConfig;
pub use structured::StructuredOutput;
pub use structured::StructuredOutputError;
pub use structured::StructuredStream;
pub use structured::StructuredStreamUpdate;
pub use structured::run_structured;
pub use structured::run_structured_stream;
pub use impls::CloudflareAIGatewayProvider;
pub use impls::GeminiProvider;
pub use impls::OpenAICodexResponsesProvider;
pub use impls::VertexProvider;
pub use impls::AnthropicProvider;
pub use impls::is_oauth_token;
pub use impls::OpenAIAllowedToolsMode;
pub use impls::OpenAIApiSurface;
pub use impls::OpenAIPromptCacheMode;
pub use impls::OpenAIPromptCacheTtl;
pub use impls::OpenAIProvider;
pub use impls::OpenAIReasoningConfig;
pub use impls::OpenAIReasoningContext;
pub use impls::OpenAIReasoningEffort;
pub use impls::OpenAIReasoningMode;
pub use impls::OpenAIReasoningSummary;
pub use impls::OpenAIResponsesProvider;
pub use impls::OpenAITextVerbosity;
pub use impls::OpenAIToolChoice;
pub use model_capabilities::ModelCapabilities;
pub use model_capabilities::PricePoint;
pub use model_capabilities::Pricing;
pub use model_capabilities::SourceStatus;
pub use model_capabilities::get_model_capabilities;
pub use model_capabilities::supported_model_capabilities;
pub use model_features::ModelApiSurface;
pub use model_features::ModelFeatureSet;
pub use model_features::ModelFeatures;
pub use model_features::ModelInputModality;
pub use model_features::ModelPromptCacheFeatures;
pub use model_features::ModelPromptCacheMode;
pub use model_features::ModelPromptCacheTtl;
pub use model_features::ModelReasoningContext;
pub use model_features::ModelReasoningEffort;
pub use model_features::ModelReasoningFeatures;
pub use model_features::ModelReasoningMode;
pub use model_features::ModelReasoningStateReplay;
pub use model_features::ModelReasoningSummary;
pub use model_features::ModelToolChoice;
pub use model_features::ModelToolFeatures;
pub use model_features::get_model_features;
pub use model_features::supported_model_features;
pub use model_catalog::CatalogEntry;
pub use model_catalog::ModelCatalogSource;
pub use model_catalog::ModelRegistry;
pub use model_catalog::ModelsDevSource;
pub use model_catalog::OpenRouterSource;
pub use model_catalog::ResolvedModel;
pub use model_catalog::ResolvedSource;
pub use search::BraveSearchProvider;
pub use search::SearchProvider;
pub use search::SearchResponse;
pub use search::SearchResult;

Modules§

attachments
fallback
Provider failover: try an ordered list of providers until one succeeds.
impls
First-party LLM provider implementations.
model_capabilities
model_catalog
Dynamic model capability/pricing discovery from third-party feeds.
model_features
Static feature metadata for OpenAI models.
provider
LLM provider trait and streaming helpers.
record_replay
Deterministic record / replay provider wrapper (feature record-replay).
refresh
Provider wrapper that refreshes credentials on 401 and retries once.
router
search
Search provider trait and implementations.
streaming
Streaming types for LLM responses.
structured
Schema-validated structured output.

Structs§

CacheConfig
Caller-facing control over provider-side prompt caching.
ChatRequest
ChatResponse
ContentSource
Source data for image and document content blocks.
Message
ResponseFormat
Requests that the model constrain its final answer to a JSON Schema.
ThinkingConfig
Configuration for extended thinking.
Tool
Usage

Enums§

CacheTtl
Time-to-live for a provider-side prompt-cache breakpoint.
ChatOutcome
Content
ContentBlock
Effort
Effort level for adaptive thinking via output_config.
Role
StopReason
ThinkingMode
The mode of extended thinking.
ToolChoice
Controls whether the model must use a tool.

Constants§

USER_CANCELLED_TOOL_RESULT
Default tool_result text used to close a tool_use block the user cancelled (or otherwise abandoned) before it produced a real result.

Functions§

balance_tool_results
Close every unanswered tool_use loop in messages.
has_unbalanced_tool_use
True when messages contains a tool_use block whose id is not answered by any tool_result block anywhere in the conversation.
parse_retry_after
Parse the value of an HTTP Retry-After header into a Duration.