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 (ClaudeRequestClaudeResponse).

  • 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/.exe shim wouldn't resolve under asyncio — 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.

Built With

Share this project:

Updates