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 provider::probe_http_reachability;
pub use record_replay::RecordReplayMode;record-replay
pub use record_replay::RecordReplayProvider;record-replay
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;structured-output
pub use structured::StructuredOutput;structured-output
pub use structured::StructuredOutputError;structured-output
pub use structured::StructuredStream;structured-output
pub use structured::StructuredStreamUpdate;structured-output
pub use structured::run_structured;structured-output
pub use structured::run_structured_stream;structured-output
pub use impls::CloudflareAIGatewayProvider;cloudflare
pub use impls::GeminiProvider;gemini
pub use impls::OpenAICodexResponsesProvider;openai-codex
pub use impls::VertexProvider;vertex
pub use impls::AnthropicProvider;anthropic
pub use impls::is_oauth_token;anthropic
pub use impls::OpenAIAllowedToolsMode;openai
pub use impls::OpenAIApiSurface;openai
pub use impls::OpenAIPromptCacheMode;openai
pub use impls::OpenAIPromptCacheTtl;openai
pub use impls::OpenAIProvider;openai
pub use impls::OpenAIReasoningConfig;openai
pub use impls::OpenAIReasoningContext;openai
pub use impls::OpenAIReasoningEffort;openai
pub use impls::OpenAIReasoningMode;openai
pub use impls::OpenAIReasoningSummary;openai
pub use impls::OpenAIResponsesProvider;openai
pub use impls::OpenAITextVerbosity;openai
pub use impls::OpenAIToolChoice;openai
pub use impls::supports_reasoning_summary;openai
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;model-discovery
pub use model_catalog::ModelCatalogSource;model-discovery
pub use model_catalog::ModelRegistry;model-discovery
pub use model_catalog::ModelsDevSource;model-discovery
pub use model_catalog::OpenRouterSource;model-discovery
pub use model_catalog::PricingTier;model-discovery
pub use model_catalog::ResolvedModel;model-discovery
pub use model_catalog::ResolvedSource;model-discovery
pub use model_catalog::applicable_pricing;model-discovery
pub use search::BraveSearchProvider;
pub use search::SearchProvider;
pub use search::SearchResponse;
pub use search::SearchResult;

Modules§

attachmentsanthropic or cloudflare or gemini or openai-codex or openai or vertex
fallback
Provider failover: try an ordered list of providers until one succeeds.
impls
First-party LLM provider implementations.
model_capabilities
model_catalogmodel-discovery
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_replayrecord-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.
structuredstructured-output
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.
SnapcompactFrameDigest
Content digest for one rendered Snapcompact frame artifact.
SnapcompactIntegrity
Content-integrity pins computed at a Snapcompact persist site.
SnapcompactMetadata
Exact-source metadata for a locally rendered Snapcompact checkpoint.
ThinkingConfig
Configuration for extended thinking.
Tool
Usage

Enums§

CacheTtl
Time-to-live for a provider-side prompt-cache breakpoint.
ChatOutcome
Content
ContentBlock
A provider-compatible content block.
Effort
Effort level for adaptive thinking via output_config.
ImageDetail
Provider rendering detail requested for an image content block.
Role
ServedSpeed
Which speed tier a provider actually used, as reported back on the response.
SpeedTier
Inference speed tier — the “pay a premium for lower latency” knob.
StopReason
ThinkingDisplay
How thinking content is returned in responses.
ThinkingMode
The mode of extended thinking.
ToolChoice
Controls whether the model must use a tool.

Constants§

COMPACTION_SUMMARY_PREFIX
Legacy on-disk marker used for rollback-readable compaction entries.
SNAPCOMPACT_HISTORY_IMAGE_WARNING
Fixed guard that separates rendered Snapcompact frames from active instructions.
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.
canonical_snapcompact_checkpoint
Validates and returns the checkpoint metadata for one canonical Snapcompact replacement.
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.
is_provider_valid_tool_sequence
Whether messages satisfy provider_tool_sequence_error_index.
orphaned_tool_result_message
Build the raw audit message appended by append-only orphan repair.
parse_retry_after
Parse the value of an HTTP Retry-After header into a Duration.
provider_tool_sequence_error_index
Return the first message index that violates provider tool-call ordering.
render_compaction_summary_for_provider
Render a typed compaction summary as inert historical data for providers.
sha256_hex
Lowercase hex SHA-256 of bytes.
snapcompact_integrity
Computes the integrity pins for a Snapcompact source and its rendered frames, given (frame_artifact_id, png_bytes) pairs in declared order.