DEV Community

Cover image for Stateless LLMs Are a Problem for EdTech — Here's How I Fixed It With a Graph-Vector Memory Layer
John Samuel
John Samuel

Posted on

Stateless LLMs Are a Problem for EdTech — Here's How I Fixed It With a Graph-Vector Memory Layer

The problem

Every AI study tool I'd used had the same flaw: total amnesia. Ask it about your exam today, come back tomorrow, and it's a blank slate. No memory of what you struggled with last week, what topics you already know cold, or when your next exam actually is.

For "The Hangover Part AI" hackathon by WeMakeDevs, powered by Cognee, I decided to fix that for students specifically. The result is Summa AI — a learning companion built around persistent memory instead of stateless chat.

What it does

Summa AI is a Next.js frontend paired with a FastAPI backend, with Cognee as the memory layer running underneath everything:

  • A chat workspace that keeps context across sessions instead of resetting every time
  • Proactive exam check-ins pulled from stored exam data
  • Knowledge gap detection — surfacing weak topics and missing prerequisites before they become a problem
  • A Proficiency Hexagon in the dashboard, visualizing where you actually stand across topics
  • Adaptive study plans that respond to what you already know, not a generic curriculum
  • A forget() step for mastered topics, so the memory layer stays sharp instead of bloated

How Cognee powers it

I leaned on all four parts of Cognee's memory lifecycle:

remember() — every conversation, exam, and study artifact gets written into its own Cognee dataset. A remember_conversation() call stores the query + response summary; remember_exam() stores course, exam type, date, and topics; remember_learning_progress() stores topic-level scores.

recall() — this is the read path behind almost every feature: chat context lookup, exam reminders, saved artifacts, and the hexagon dimensions in the dashboard all route through it.

improve() — triggered right after new progress is recorded, or when a user gives feedback on a response, so the memory consolidates instead of just accumulating.

forget() — lets a student explicitly clear a mastered topic, or wipe a whole dataset, so old noise doesn't crowd out what's actually relevant.

What I'd build next

Deeper graph traversal for concept-map style prerequisite chains, and tighter feedback loops so improve() reacts to more signals than just explicit ratings.

Built for students first — because the thing that should never have amnesia is the tool that's supposed to know how you learn.

WeMakeDevs #Cognee #TheHangoverPartAI #buildinpublic #nextjs #fastapi

Top comments (0)