Inside TamaGo
A persistent AI companion built to demonstrate durable agent life: stateful care, episodic memory, MCP tool use, and proactive workflows with restraint.
๐A hackathon submission
TamaGo targets the Vercel Agent Tracks by turning infrastructure into product behavior. WDK keeps background life running, MCP gives the chat real-world senses, and v0 helped shape the first usable surface before local iteration.
๐ฅWhat it is
TamaGo is a Tamagotchi-style AI agent. It has three needs that decay slowly with time (hunger, play, bond) and you attend to them by tapping emoji care actions or by chatting. It remembers you across days, devices, and reboots โ using stable profile facts plus episodic memories that consolidate during deep sleep. It speaks proactively only when there's a concrete reason, with a hard cap of 2 unanswered nudges before it pauses.
โ๏ธHow it works
A two-layer memory keeps stable profile facts (name, pet, city, plus long-term patterns extracted during deep sleep) separate from episodic concerns that resolve over time. A per-user intensity profile in Redis tracks how often you want to be reached out to, which topics to leave alone, and quietly decays old signals if they're not reinforced. A single proactivity arbiter ranks every reason TamaGo could speak first (critical need, deep-sleep wake-up, unresolved emotional load, idle curiosity), enforces hard gates, and caps the streak at 2 unanswered before pausing. Durable workflows on Vercel WDK schedule the arbiter on a randomized cadence and run consolidation in the background. When the chat needs a real-world signal, the AI SDK calls our MCP servers as native tools and the UI renders a live chip while the call runs. A small content classifier (same model as the chat, no extra provider) gates age-sensitive topics on the first occurrence.
โฒPowered end-to-end by Vercel
AI Gateway routes the LLM (xAI Grok via a single provider/model string). Vercel WDK runs the agent's durable workflow loop with real `await sleep('3h')` semantics. Vercel Functions host the chat API, the care API, the timezone profile endpoint, and all six MCP servers. Marketplace storage holds the snapshot. v0 sketched the first mockup before the project moved local. One platform, one git push, every preview deploy already production-grade โ and a build-version tag in the SSE stream forces open tabs to reload after each new deploy.