Expand description
Extensible model provider abstraction and its remote wire protocol.
This crate is intentionally lightweight (no HTTP stack, no LLM SDKs) so
that both the agent runtime and out-of-process provider implementations
(e.g. infinity-provider-bedrock) can depend on it.
It defines:
- The chat
messagetypes andcompletionrequest/stream types that form the entire model API surface of this project. ModelProvider— an async trait for listing models and invoking one of them, returning aModelStreamofStreamChunks.- [
remote] (featureremote) — a Unix-socket transport so providers can run out of process.
Re-exports§
pub use completion::CompletionError;pub use completion::CompletionRequest;pub use completion::ErrorClass;pub use completion::FinalResponse;pub use completion::ModelStream;pub use completion::StreamChunk;pub use completion::ToolCallDeltaContent;pub use completion::ToolDefinition;pub use completion::Usage;pub use message::AssistantContent;pub use message::Image;pub use message::ImageMediaType;pub use message::ImageSource;pub use message::Message;pub use message::Reasoning;pub use message::ReasoningContent;pub use message::Text;pub use message::ToolCall;pub use message::ToolFunction;pub use message::ToolResult;pub use message::ToolResultContent;pub use message::UserContent;
Modules§
- completion
- Completion request, response streaming, and error types.
- message
- Chat message types exchanged between the agent runtime and model providers.
Structs§
- Model
Entry - A model offered by a
ModelProvider. - Single
Model Provider - Adapter exposing a single
CompletionModelas aModelProvider. Useful for tests and simple single-model deployments.
Traits§
- Completion
Model - A single completion model (as opposed to a provider, which is a catalog
of models). Mostly useful for tests; see
SingleModelProvider. - Model
Provider - A backend that can list and invoke completion models.