一起开一家小咖啡馆
打个招呼,聊做饭,再邀请 Milo 为想象中的咖啡馆起名字。看看他会怎样接话。
A story, a silly idea, or just a hello. We can start there.
打个招呼,聊做饭,再邀请 Milo 为想象中的咖啡馆起名字。看看他会怎样接话。
从不知道,到学会“月铃礼”,再演示漏记、纠正和回忆。右侧可以看到真实记忆。
Curious, transparent, and still learning.
The controller manages memory and actions. The language model expresses each selected action.
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.
Edges link concepts in the same domain that share a keyword or mention each other. Quoted terms (e.g. “kopi”) become curiosity questions.
Metadata is separate from conversation content. No diagnosis is inferred.
Run the actual controller tests and reproducible synthetic behavioural experiments.
96 scripted controller checks, executed in this browser. No live-provider tests.
First 20 days calibrate the baseline. Monitoring begins on day 21; a scripted change starts on day 31.
Lower response rate, longer delay, shorter replies, fewer self-started turns and corrections → higher score.
Sₜ = max(0, Sₜ₋₁ + zₜ − k); signal when Sₜ > h.
200 stable + 200 sustained-change + 200 three-day-dip sequences, plus a threshold sweep. The default h was fixed in advance.
Boundary tests, recall, corrections and profile isolation show whether the implemented controller behaves as specified.
False alarms and detection delay quantify the detector on our declared synthetic generator, not on elderly users.
Engagement, loneliness, authenticity and safety need consented user research. They cannot be concluded from this demo.
The public demo works without an API key. Provider credentials stay on your server.
Enter your ChildGPT backend, not a model-provider endpoint. GitHub Pages hosts only the static frontend.
Not connected. API configuration is intentionally empty.
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.
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.
Local profiles are logical demo partitions, not authenticated identities. Backend sessions add separate bearer-token access; production accounts are out of scope.
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.