Inspiration

Every day, commitments slip through the cracks in fast-moving Slack channels. "I'll finish the report by 5 PM" gets buried under dozens of messages. Nobody follows up. Deadlines pass silently. Amnesia Agent was born from this everyday pain — what if an AI could catch these commitments and hold you accountable?

What it does

Amnesia Agent is a Slack bot that:

  • Detects commitments in real-time using AI (Groq LLM + regex + chrono) — just type "I'll finish the report by 5 PM" and it catches it
  • Posts interactive detection cards with 6 actions: Confirm, Edit, Dismiss, Complete, Reassign, Emergency
  • Sends live countdown nudges with urgency phases: ⏰ 2h left → ⚡ 30min! → 🔥 LAST 60s! → 🔴 OVERDUE
  • Generates AI completion emails — click Complete and Groq drafts a professional email instantly
  • Supports conversation linking — say "Actually, make it 7 PM" and it updates your deadline live
  • Provides a /commitments dashboard — see all active, completed, and dismissed commitments
  • 5 MCP tools for AI agent integration: search commitments, generate boilerplate, draft emails, search messages

How we built it

Stack: Node.js + TypeScript + Slack Bolt (Socket Mode) + Groq AI (llama-3.3-70b) + MCP Server + PostgreSQL (Neon) + Nodemailer

Architecture:

  • Slack events flow through Bolt → AI detection (Groq LLM + regex fallback + chrono time parsing) → PostgreSQL persistence → Scheduler nudges (30s interval with per-message cooldown) → Email completion via SMTP
  • MCP server exposes 5 tools for external AI agent integration
  • Socket Mode WebSocket connection — no ngrok needed

Challenges we faced

  1. Slack rate limiting — chat.update was hitting rate limits at 10s intervals. Fixed with 30s scheduler + 25s per-message cooldown
  2. Neon DNS intermittent failures — added crash protection with retry logic and unhandled rejection handlers
  3. Email draft visibility — initially posted to DMs, moved to channel for better UX
  4. Edited message detection — Slack sends message_changed events for edits, not message events. Added separate handler for conversation linking
  5. Bot token API limitationssearch.messages requires user token, so we built a hybrid approach using conversations.history + DB search

What we learned

  • MCP (Model Context Protocol) is a powerful standard for exposing tools to AI agents
  • Slack Bolt's Socket Mode simplifies development by eliminating webhook tunneling
  • Live countdown timers create genuine urgency and engagement
  • The best hackathon projects solve a real, relatable problem

Built With

Share this project:

Updates