Skip to content

Kova SDK

An async-first Rust library for building LLM-powered agents. Provider-agnostic, trait-based, production-ready.

Kova gives you one clean, trait-based core — Agent, LlmProvider, Tool — and lets you swap the pieces underneath. Point it at Anthropic, OpenAI, Bedrock, Gemini, or a local Ollama model without touching your agent code.

Provider-agnostic

One LlmProvider trait, five first-party implementations. Switch models by swapping a config line — your tools and loop stay identical.

Tool calling built in

Implement the Tool trait, register it, done. The agent runs the call-execute-observe loop for you, with concurrent tool execution.

Stateless by design

Agent::run takes your history in and hands the new messages back — you own persistence, sessions, and scaling. No hidden state.

Structured output

Constrain a turn’s final answer to a JSON schema and parse it straight into your type with run_structured::<T>() — mapped natively per provider.

Streaming & thinking models

Pull-based streams of text, tool calls, and chain-of-thought — the same API across every provider.

Prompt caching & embeddings

Automatic prompt caching on Anthropic and Bedrock, with per-turn cache accounting. Plus an EmbeddingProvider seam for host-side retrieval.

MCP integration

Connect Model Context Protocol servers over stdio, HTTP+SSE, or Streamable HTTP with OAuth — with auto-reconnect. Remote tools look like native ones.

Reliable & cancellable

Automatic retries with backoff, classified provider errors, context-budget guards, and CancellationToken-driven turn cancellation.