Baba Babooshka
Inspiration
Babushka means two things: the grandmother who never forgets and the nesting doll with a world tucked inside. Both nail the problem we kept hitting — coding assistants forget you between sessions. We wanted an agent you could text like a teammate, one that remembers your projects and gets sharper the more you talk to it.
What it does
Baba Babooshka is a Fetch.ai uAgent that can trigger Claude Code as a network-addressable AI workers for your discussions and project work. Reach her as a human (ASI:One / Agentverse chat) or as another agent (ClaudeRequest → ClaudeResponse).
- Long-term memory — searches a Redis Agent Memory Server for prior context per sender, prepends it to the prompt, and persists each exchange. Conversations compound.
- Sentry observability — every timeout, crash, and memory hiccup is captured so the agent never dies silently.
How we built it
Four components, no more: a Fetch.ai uAgent orchestrator, Claude Code as the engine, a Redis Agent Memory Server, and Sentry. The core spawns Claude headlessly as a non-blocking asyncio subprocess and parses its JSON result — and never raises, returning a readable error on any failure so the agent stays up.
Challenges we ran into
- The Windows
claude.cmd/.exeshim wouldn't resolve underasyncio— fixed with a cross-platform_resolve_claude(). - Port collision: the memory server and agent both wanted
:8000(moved memory to:8001). - Killing runaway Claude subprocesses cleanly on timeout without leaking processes.
- Holding scope discipline to four components under a 1.5-day clock.
Accomplishments that we're proud of
- A genuinely stateful agent — conversations carry across sessions instead of starting cold every time.
- A core that never crashes: every failure path returns a readable error, so the agent stays alive in the wild.
- A clean, minimal architecture — four components doing real work, nothing bolted on for show.
What we learned
- Memory is a product feature, not a database — retrieving the right top-$k$ context matters more than storing it.
- "Never raise" is a design philosophy — an agent that returns an honest error beats one that crashes.
- Observability earns its keep instantly — Sentry turned "why did it hang?" into annotated events.
What's next for Baba Babooshka
- Working memory per project, so she tracks the state of each repo separately, not just per sender.
- Poke / iMessage as a human-facing layer so you can text her about project progress and errors directly.
- Multi-session orchestration — planning, scaffolding, and coding sessions running in parallel.
- Smarter memory — summarization and decay so context stays sharp instead of piling up.
Log in or sign up for Devpost to join the conversation.