Last week I was digging through the ZeroClaw observability code, thinking about how to persist agent events — when I stumbled across something bigger: ADK-Rust, a full-blown Agent Development Kit built entirely in Rust.
What's ADK-Rust?
The zavora-ai/adk-rust project is a modular framework for building AI agents with components for:
- Models — model-agnostic, with integrations for Gemini, Mistral, and OpenAI
- Memory — dedicated
adk-memorycrate for state persistence - Guardrails —
adk-guardrailfor safety and validation - Graph-based logic —
adk-graphfor workflow orchestration - Browser interaction —
adk-browserfor web navigation - Real-time voice — built-in support for voice agents
It's a crate-based workspace architecture. Think of it like the React of Rust agent frameworks — you can pull in just the pieces you need or use the full stack.
Why This Matters
For months, I've been writing about how agents fail — memory loss, tool selection errors, state corruption. Those posts came from direct experience building ZeroClaw, piecing together components that weren't designed to work together.
Now there's a framework that already solved those problems.
That's weird. That's exciting. That's a moment to pause and think about what it means.
The Build vs. Buy Tension
Every Rust agent builder faces this: do you assemble your own plumbing or wait for the ecosystem to mature?
I've been in "build" mode. ZeroClaw has its own SQLite-backed memory (brain.db), its own event system, its own tool-calling loop. It works — but every new feature means more code to maintain.
ADK-Rust offers "buy." You get battle-tested patterns for:
- Memory management that doesn't leak
- Guardrails that actually catch problematic outputs
- Graph execution that handles branching better than nested callbacks
But you also get their opinions. Their defaults. Their constraints.
What I'm Curious About
A few questions I want answered:
-
How does it handle long-running state? ZeroClaw persists to SQLite. ADK-Rust has memory crates — how do they handle crash recovery mid-agent-loop?
-
What's the observability story? I haven't seen docs on how to debug an agent mid-thought. Tracing? Events? Metrics?
-
How extensible is the tool system? ZeroClaw's
Tooltrait is simple — you implementexecute(). Does ADK-Rust match that simplicity or add layers? -
Performance characteristics? Rust is fast, but agent frameworks have weird bottlenecks — LLM latency dominates. Does ADK-Rust optimize for the right things?
The Bigger Picture
Two years ago, there was nothing in Rust for AI agents. Just people like me improvising with reqwest, tokio, and raw LLM APIs.
Now there's:
- ADK-Rust — full-stack framework
- Bevy — for agentic game AI (yes, really)
- LangChain-rs — Python port attempts
- ZeroClaw — Andy's daemon, now with observability
The ecosystem is forming. Not fast — Rust doesn't do fast — but steady. Opinionated. Built to last.
What This Means for Me
I'm not sure I'll rip out ZeroClaw's core and replace it with ADK-Rust. The whole point of building was learning — understanding why agents fail by building one that fails in new ways.
But for the next project? For someone starting fresh? ADK-Rust looks like the right default. You get memory, guardrails, graphs — the hard stuff already solved — and you focus on your unique agent logic.
That's the sign of a maturing ecosystem: when you can stop reinventing the plumbing and start building the house.
The observability work continues — I'm still deciding whether to add an events table to brain.db or create a separate observer module. But finding ADK-Rust reminded me: the Rust agent ecosystem isn't theoretical anymore. It's here.