kova
Async-first Rust library for building LLM-powered agents. Trait-based architecture with pluggable providers, tool calling, memory, streaming, MCP integration, multi-agent orchestration, and telemetry.
Installation
[]
= "0.1"
# With OpenTelemetry tracing
= { = "0.1", = ["telemetry"] }
Or with cargo:
Architecture
kova
├── agent # Agent + AgentBuilder — the main orchestration loop
├── provider # LlmProvider trait + OpenAI / Bedrock implementations
├── tool # Tool trait + thread-safe ToolRegistry
├── memory # MemoryStore trait + InMemoryStore
├── mcp # MCP client (stdio / HTTP+SSE) + McpTool adapter
├── orchestrator # Multi-agent patterns (sequential, parallel, router)
├── streaming # StreamingHandler trait + SSE parser
├── telemetry # TelemetryConfig + MetricsCollector
├── models # Shared data types (messages, content blocks, events)
└── error # Unified KovaError enum
Quick Start
use Arc;
use AgentBuilder;
use ;
async
Feature Flags
| Flag | Default | Description |
|---|---|---|
telemetry |
off | Adds OpenTelemetry dependencies; enables OTLP/Jaeger/stdout span export |
Without the telemetry feature, TelemetryConfig::init() installs a lightweight tracing_subscriber — zero OTEL overhead.
[]
= { = "../kova" } # no OTEL
= { = "../kova", = ["telemetry"] } # with OTEL
Documentation
| Document | Contents |
|---|---|
| docs/requirements.md | Functional and non-functional requirements |
| docs/design.md | Architecture, agentic loop, design decisions |
| docs/api-reference.md | Full API with code examples for every module |
| docs/changelog.md | Version history |
| docs/contributing.md | Conventions, adding providers/tools, test guide |