EvoMind AI — Hackathon Submission
Inspiration
Current AI assistants respond today and forget tomorrow. Journaling apps lack deep cognitive insights. Learning platforms follow rigid paths and ignore real progress. We saw a gap: no unified system that truly learns from feedback, reflects your thinking patterns, and adapts skill development to you. We were inspired to build an AI that doesn’t just answer—it evolves with you.
What it does
EvoMind AI is a personalized, adaptive AI companion with three core capabilities:
- Feedback Learning Engine — Observes corrections and behavioral patterns, improves responses over time, and surfaces growth via a transparent learning dashboard.
- MirrorMind — Voice-first reflective journaling where the AI asks Socratic questions, detects recurring thought patterns, and surfaces limiting beliefs.
- SkillTree — Breaks skills into micro-challenges, adjusts difficulty dynamically, and visualizes progress so learning stays on your trajectory.
The product ships as a mobile app (React Native / Expo) that pairs with your deployment via QR code. Users can chat in text or voice (STT/TTS via ElevenLabs), switch between Feedback, MirrorMind, and SkillTree modes, and keep conversation history per mode. The backend uses OpenClaw for agent orchestration, deploy-service for pairing and gateway proxying, and Next.js APIs for QR, claim, input, STT, and TTS—so the app stays secure and never sees gateway URLs or tokens.
How we built it
- Frontend: Next.js (web), React Native + Expo (mobile) with expo-router, expo-camera (QR), expo-av (voice), and expo-secure-store for session tokens.
- Backend: Go deploy-service for one-time pairing codes, session claiming, and forwarding app input to the OpenClaw gateway; Next.js API routes for
/api/mobile/qr,/api/mobile/claim,/api/mobile/input,/api/mobile/stt, and/api/mobile/tts. - Voice: ElevenLabs for speech-to-text (Scribe) and text-to-speech (multilingual v2) so MirrorMind and other modes can be voice-first.
- Security: QR payload contains only a short-lived pairing code; gateway URL and token live in K8s secrets and deploy-service; the app receives an opaque session token after claiming.
- Modes: EvoMind modes (Feedback Learning, MirrorMind, SkillTree) are defined in the app with distinct system prompts and session keys; chat history is stored per mode in AsyncStorage.
Data flow: User input (text/voice) → Memory capture → Pattern detection → Adaptive response → Dashboard update.
Challenges we ran into
- Session affinity: With multiple deploy-service replicas, claim and input could hit different pods, so sessions were missing. We documented running a single replica for mobile or moving to Redis for shared session storage.
- Gateway contract: The OpenClaw gateway’s response shape (e.g.
replyvs nestedresult.details.replyorcontent[0].text) varied; we added robust reply extraction in the app so the UI always shows a clear message. - Voice pipeline: Wiring STT/TTS through the Next.js API (CORS, file upload for STT, streaming or base64 for TTS) and keeping API keys server-side required careful request/response handling.
- QR pairing UX: Communicating that the QR is one-time and expires in 5 minutes, and that “Invalid or expired code” means “scan a new QR,” took iteration on copy and flow.
Accomplishments that we're proud of
- Three distinct EvoMind modes (Feedback Learning, MirrorMind, SkillTree) in one app with separate conversation histories and system prompts.
- End-to-end secure mobile pairing: QR → claim → session token → proxy to gateway without exposing gateway URL or token to the client.
- Voice-first path: Full STT and TTS integration so users can talk to MirrorMind and other modes; foundation for true voice journaling.
- Single codebase: Web deploy page for “Pair mobile app” + QR and the same backend serving the React Native app.
- Clear documentation: Mobile implementation, pairing flow, troubleshooting, and EvoMind vision documented for future iteration and onboarding.
What we learned
- Orchestration matters: OpenClaw as the coordination layer let us keep mobile as a thin client and push agent logic and memory to the backend.
- Session and replica design: In-memory sessions are simple but don’t scale horizontally; we learned to either pin replicas or plan for shared storage (e.g. Redis) early.
- Reply parsing: Production gateways return varied JSON shapes; defensive extraction and fallbacks in the client make the product resilient.
- Voice as a feature: STT/TTS aren’t afterthoughts—they’re core to making MirrorMind feel like a reflective conversation rather than another form to fill.
What's next for EvoMind AI
- Learning dashboard: Surface Feedback Learning insights (what the system learned, pattern summaries) in the app and on the web.
- Persistent memory: Use a vector DB and memory layer so EvoMind recalls context across sessions and modes.
- Pattern reports: Turn MirrorMind conversations into periodic “pattern reports” (recurring themes, possible limiting beliefs) with optional export.
- SkillTree progression: Persist skill state, milestones, and difficulty curves; sync with backend so progress isn’t device-bound.
- Session refresh: Add
POST /mobile/refreshand longer-lived sessions so users don’t re-pair frequently. - Multi-replica deploy-service: Move pairing codes and sessions to Redis (or similar) for production scale and HA.
EvoMind AI — learns from feedback, reflects your patterns, evolves with you.
Built With
- amazon-web-services
- elevenlabs
- expo.io
- golang
- nextjs
- openclaw
- react
Log in or sign up for Devpost to join the conversation.