We wanted to be fully transparent about our project and our reasons for being here. We were so inspired by this hackathon's community and themes that we flew from New York (from NYU) to be a part of it. Our primary goal was to connect with other developers, learn from the mentors, learn from the sponsors, and be immersed in this amazing environment. Our project, AI Tutor, is a platform we have been developing prior to this event. We read the rule that all implementation must occur during the hacking period, and we respect it completely.

Instead, we used this weekend to build two brand-new, major features from scratch, and we would be honored if you'd simply look at the new work we completed and provide any feedback. We are only demoing the features we implemented during this hackathon:

The "Evolving Persona" Engine: A new "learning analyst" built with Letta. It analyzes a student's chat history and study habits to continuously update and personalize the AI tutor's tone and prompts. The "RAG Race" Arcade & Pipeline: A new gamification layer, including: A federated RAG pipeline using Elasticsearch and ChromaDB to connect all course materials. A real-time multiplayer game, "RAG Race," built with LiveKit and a JanitorAI Quizmaster. We came here for the experience and the community, and we are incredibly grateful for the opportunity to show what we built this weekend. Thank you for everything.

Inspiration We were inspired to fix the "one-size-fits-all" problem with current AI tutors. We wanted to build an AI that doesn't just provide knowledge, but also actively learns from a student's study habits and chat history to personalize its own tone and teaching style.

What it does Our project adds two major, parallel features to our existing AI tutor:

The "Evolving Persona" Engine: A "learning analyst" agent (built with Letta) that runs in the background. It reads a student's chat history and continuously updates the AI tutor's system prompt to better match their learning style.

The "RAG Race" Arcade & Pipeline: A new gamification layer. This includes a RAG pipeline (using Elasticsearch and ChromaDB) to connect all course materials, and a real-time multiplayer game, "RAG Race" (built with LiveKit and JanitorAI), where an AI Quizmaster quizzes students on their own documents.

How we built it We built this as two interconnected systems:

Persona Engine: We used Letta to create a stateful agent with memory. Our backend (in Node.js) sends chat histories to this agent and fetches the updated prompt string from its memory.

Content & Game Platform: We used Elasticsearch for text-based RAG and ChromaDB for visual RAG. The game itself uses JanitorAI as the "Quizmaster" to generate questions from the RAG pipeline, and LiveKit to power the real-time multiplayer lobby and game state.

Challenges we ran into Letta Tool Conflict: Our agent's instructions (to replace its whole persona) conflicted with its tools (which are for small edits). We fixed this by designing a two-step "delete-then-insert" tool-call sequence (memory_replace with "", then memory_insert).

Letta API Crash: Our initial API calls to create agents from templates were crashing. We had to debug the API documentation to find the correct JSON payload, which required sending initial data inside a variables object.

Accomplishments that we're proud of We're proud of successfully building the full "learning loop." We now have a system where an AI agent can analyze a conversation, modify its own memory, and have that change automatically reflected in the user-facing AI Chat. We're also proud of standing up a complete, end-to-end RAG and real-time gaming platform from scratch.

What we learned We learned the power of a "decoupled" architecture. We have one "brain" (the Letta agent) and one "face" (the AI Chat), and they communicate via a database. This is powerful because we learned to distinguish two types of memory: RAG is for knowledge, Letta is for persona.

What's next for us The next step is to merge these two new features. We will feed the RAG content (from Elasticsearch/Chroma) into the Letta "Learning Analyst" so it can analyze the content the student is studying, not just their chat messages. This will allow the agent to create even more deeply personalized prompts (e.g., "be more visual" when it sees the student is studying diagrams).

Built With

Share this project:

Updates