● KEY-FREE DEMO
A TEACHABLE AI CHILD

A little curious.
A lot to learn from you.

A story, a silly idea, or just a hello. We can start there.

▤
0Memories learned
Only what you teach
↗
—Current mastery
Changes with time and reinforcement
◇
初识Learning stage
Each lesson helps me grow

Milo AI LEARNER

Curious, transparent, and still learning.

Advanced · structured controls

Checking model connection…

PRESENTATION REQUIREMENT 03

Decisions you can inspect.

The controller manages memory and actions. The language model expresses each selected action.

01ParseStructured input or grounded spans
→
02Validate & updateDeterministic memory transaction
→
03Retrieve & chooseThis profile only; explicit rules
→
04RealizeNatural speech from selected action
→
05Log & persistTrace, history and metadata

Live decision trace

Same engine as the chat

How the policy works

priority = 0.5(1 − mastery)
+ 0.3(staleness) + 0.2(relevance)

Current mastery = stored strength × 2^(−days since reinforcement / stability days), measured at whole-hour resolution. Staleness combines turns since recall with time-based forgetting. Direct questions and autonomous review use the same recall rule. Every fifth question-selection turn explores a new concept. The draw u is a hash, so every decision can be replayed. Bands: low < 0.30 ≤ medium < 0.70 ≤ high.

if a memory has a pending conflict:
    clarify()
elif exploration turn (every 5th):
    ask_to_learn(quoted mention or new concept)
else:
    item = highest priority
    u = hash(profile, item, turn)
    low:    ask_to_learn()
    medium: 40% recall, 30% unsure,
            30% controlled error
    high:   90% recall, 5% unsure,
            5% controlled error

# Autonomous correct recall at high mastery:
# practising → ask about use
# connecting → ask about a related concept

# Operators use taught content only:
# omit_step, swap_steps,
# confuse_related, approximate
# Never invent a replacement fact.

Teaching starts at 0.35 with a 3-day half-life. Repetition adds 0.10; confirmation adds 0.15; correction adds 0.20 to current mastery (minimum 0.35 after a reminder, maximum 1). Each reinforcement extends the half-life ×1.5, capped at 90 days. Recall alone gives no learning credit. Stages require breadth and reinforced lessons, not elapsed time or chat count. These are illustrative design parameters, not validated estimates of child development.

Topic / keyword graph

Edges link concepts in the same domain that share a keyword or mention each other. Quoted terms (e.g. “kopi”) become curiosity questions.

Content-free interaction log

Metadata is separate from conversation content. No diagnosis is inferred.

PRESENTATION REQUIREMENT 04

Evidence, not promises.

Run the actual controller tests and reproducible synthetic behavioural experiments.

SYNTHETIC DATA ONLY No older adults were recruited. These results do not establish wellbeing benefits or clinical validity.

01 · Functional evaluation

96 scripted controller checks, executed in this browser. No live-provider tests.

Run the suite to inspect measured pass counts. No assumed 100% scores.

02 · Personal-baseline change detection

First 20 days calibrate the baseline. Monitoring begins on day 21; a scripted change starts on day 31.

ONE-SIDED CUSUM

Standardized change score

Lower response rate, longer delay, shorter replies, fewer self-started turns and corrections → higher score.

Cumulative deviation

Sₜ = max(0, Sₜ₋₁ + zₜ − k); signal when Sₜ > h.

03 · Repeated-run robustness

200 stable + 200 sustained-change + 200 three-day-dip sequences, plus a threshold sweep. The default h was fixed in advance.

A single attractive trace is not an evaluation. Run repeated simulations to expose false alarms and misses.

What these results do — and do not — show

IMPLEMENTATION EVIDENCE

A credible teaching loop

Boundary tests, recall, corrections and profile isolation show whether the implemented controller behaves as specified.

SIMULATION EVIDENCE

A visible change signal

False alarms and detection delay quantify the detector on our declared synthetic generator, not on elderly users.

STILL A HYPOTHESIS

Meaningful human benefit

Engagement, loneliness, authenticity and safety need consented user research. They cannot be concluded from this demo.

OPTIONAL BY DESIGN

Connect when you're ready.

The public demo works without an API key. Provider credentials stay on your server.

Connect the backend

Enter your ChildGPT backend, not a model-provider endpoint. GitHub Pages hosts only the static frontend.

Not connected. API configuration is intentionally empty.

Constrained API mode

The model uses our recent conversation to recognize teaching, questions, corrections and confirmations. The controller validates references and new facts before updating memory. It writes natural replies from the selected action and supplied memory. It is instructed to ask about untaught knowledge; generated wording still needs evaluation.

Server-only configuration

Copy .env.example to .env in the source project. All provider fields are shipped empty.

LLM_BASE_URL=
LLM_API_KEY=
LLM_MODEL=
APP_ACCESS_TOKEN=
ALLOWED_ORIGINS=

Restart the Node server after editing. A configured provider requires a separate application token (24+ characters). Never put the provider key in a frontend file, Pages secret injection, URL or public repository.

Requests require the Chat Completions-compatible endpoint and JSON output support. API errors fall back to deterministic replies, with the fallback reported in the trace.

Your demo data

Local profiles are logical demo partitions, not authenticated identities. Backend sessions add separate bearer-token access; production accounts are out of scope.

Scope and limitations

This is a software prototype for GP8001 Group 6, not a care service. Use invented examples, not personal, medical or identifying information.

Memory is explicit. A connected model writes natural replies within the selected action; templates remain available when the model is unavailable. Controlled errors follow explicit recall rules; a scripted omission is also available for demonstrations.

Optional invitations work only while this page is open. The backend has a seven-day session lifetime. Consent, age-appropriate field research, clinical validation and production security require separate work.

No analytics, third-party fonts or external scripts are embedded in this app. Public hosting has its own server logs.