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_summariesrow, 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
VECTORtype and distributed vector index working correctly with the standardpgdriver, 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
- aws-api-gateway
- aws-lambda
- ccloud-cli
- cockroachdb
- express.js
- groq
- javascript
- mcp
- node.js
- vector-search
- vercel


Log in or sign up for Devpost to join the conversation.