Use case · Tutor agent

A tutor that re-discovers your student every Monday is not a tutor

Recurring mistakes, learning style, the explanation that landed last week. Saved per student, read at lesson start. The tutor adapts instead of restarting.

The pain

Lesson seven, still no idea who this student is

The student keeps getting negative numbers wrong. Not random mistakes — the same sign-flip error in three different problem types. A human tutor would notice on lesson two, change the explanation strategy on lesson three, and the student would have the concept locked by lesson five.

Your AI tutor does not. Each lesson is a fresh conversation with a fresh context window. The mistake from last Tuesday is invisible at the start of Friday. The tutor offers the abstract algebra explanation again. The student gets it wrong again. Confidence drops, the student churns out of the app.

The pedagogy is sound. The memory is missing.

The shape of the fix

One profile per student, updated at every lesson

Lesson 1

Baseline

First session, no priors yet.

Lesson 2

Mistake logged

Sign-flip on negative numbers.

Lesson 3

Style noted

Visuals click, abstract shuts down.

Korely vault

One profile per student

  • agent_id scoped per school, class, student
  • Friendly to FERPA / COPPA workflows

Lesson 4

Strategy adapts

Opens with a visual example.

Lesson 5

Pace adjusts

Uses 25-minute chunks.

Lesson 6

Triggers avoided

No abstract algebra without a prop.

Each lesson contributes to a compound profile. The tutor enters lesson seven already knowing who is on the other side.

How Korely fits

One agent_id per student, search at lesson start

Every lesson, your tutoring flow makes one save_note call with what was learned about the student: where they got stuck, what worked, what visibly clicked. The agent_id is the student's identifier, scoped per school or per cohort.

At the start of the next lesson, before the welcome screen, the tutor reads the profile and prepares the right pedagogic strategy. Visual learner? Switch to diagrams. Negative numbers triggered the last block? Open with a concrete example. The student feels seen because they are.

For school deployments under FERPA, the on-prem and EU-only options keep data residency tight and add an audit log for every read and write.

Show me the code

Per-student profile, updated each lesson

tutor_agent.py python
# ── End of lesson 3: tutor notes what it learned ───────────────
from korely_memory import Korely

korely = Korely(api_key="kor_live_...")

korely.add(
    "Student struggles with sign flips on negative numbers. "
    "Visual examples click. Abstract algebra rules cause shutdown. "
    "Best engagement in 25-minute chunks.",
    agent_id=f"school-acme/class-7a/student-{student_id}",
)

# ── Start of lesson 4: tutor reads the profile ─────────────────
profile = korely.search(
    "current learning gaps and style",
    agent_id=f"school-acme/class-7a/student-{student_id}",
)
ai_tutor.set_context(profile)

# Six months later: parent-teacher review needs full history
journey = korely.search(
    "learning journey",
    agent_id=f"school-acme/class-7a/student-{student_id}",
    include_history=True,
)

Frequently asked

Tutor memory, common questions

Why does an AI tutor without memory feel like a search bar? +

Without memory, every lesson starts from zero. The tutor cannot adapt to the recurring mistake, the explanation style that landed, or the topic the student avoided last week. It is reactive instead of pedagogical.

Can Korely store student data in a COPPA or FERPA-friendly way? +

Korely stores whatever you save. For under-13 audiences (COPPA) and school records (FERPA), you decide what gets written and what stays hashed. The on-prem and EU-only deployments add audit logs and data residency for compliance teams.

How do I scope memory per class or per cohort? +

Use a hierarchical agent_id like "school-acme/class-7a/student-1234". Search filters by prefix, so class-level views and per-student views both work.

Can the tutor see progress over months? +

Yes. Every memory carries a valid_at timestamp. Search can return current state or full history. A six-month progress view is one search call with include_history=True.

Does it work for non-English subjects? +

Yes. The embedding model is multilingual. Italian, Spanish, German, French, and dozens more land in the same vault without separate indexes.

Let your tutor walk into the lesson knowing the student

The desktop app and local MCP server are free today. The Python SDK and EU-hosted deployment for school cohorts are in early access.

Looking for a different shape? See the other five use cases →