Inspiration

What it does## Inspiration

AI support agents that "forget" everything between sessions are broken by design — an agent whose memory goes offline doesn't degrade gracefully, it just stops being useful. We wanted to build something that treats memory as the core feature, not an afterthought: a support agent backed by CockroachDB's distributed, always-on SQL, so context survives restarts, redeploys, and scale.

What it does

RecallDesk is an AI support agent that:

  • Stores every conversation turn in CockroachDB with a distributed vector index, enabling semantic recall across a user's entire history — not just the current session
  • Extracts structured, durable facts (plan tier, recurring issues, preferences) into a dedicated table, so the agent can answer directly instead of re-deriving the same fact from a vector search every turn
  • Auto-classifies ticket resolution after every exchange and writes the status back to CockroachDB — memory the agent acts on, not just logs
  • Consolidates old memory: once a user's history grows past a threshold, older turns are summarized and folded into a compact memory_summaries row, keeping the vector index lean indefinitely instead of degrading as history grows — a problem most memory demos never hit

How we built it

The backend is Node.js/Express, deployed serverlessly on AWS Lambda behind API Gateway. CockroachDB Cloud (Serverless, AWS provider, Mumbai region) is the single source of truth — no separate vector store, no separate ticket database, everything transactional in one distributed SQL layer. The LLM layer uses Groq for chat and embeddings, with an offline fallback so the whole pipeline runs even without external API keys.

We used three CockroachDB tools: Distributed Vector Indexing (semantic memory), the ccloud CLI (provisioning and least-privilege service accounts), and the CockroachDB Cloud Managed MCP Server (used during development to inspect query plans and audit schema drift, read-only).

The frontend is a lightweight chat widget deployed on Vercel, talking to the Lambda API.

Challenges we ran into

  • Getting CockroachDB's VECTOR type and distributed vector index working correctly with the standard pg driver, including proper vector literal formatting
  • Making sure BEGIN/COMMIT transactions in the memory consolidation job used a single dedicated connection instead of the pool (a subtle bug we caught and fixed before it caused silent data loss)
  • Deploying cleanly to AWS Lambda from a Windows/Git Bash environment, including IAM permissions and Serverless Framework auth

What we learned

That "agentic memory" is a design problem, not just a storage problem — deciding what to keep verbatim, what to consolidate, and what to promote into structured facts matters as much as having a fast vector index.

What's next

Multi-region CockroachDB deployment (REGIONAL BY ROW) to demonstrate follow-the-workload latency, and a confidence/explainability UI showing why a memory was recalled.

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for RecallDesk

Built With

Share this project:

Updates

Submission history