An adaptive learning wiki: the agent maintains a persistent, interlinked wiki of concept pages — Karpathy's LLM-wiki pattern — plus the layer that pattern is missing for learning: a learner ledger (per-concept strength, misconception log, evidence trail) and FSRS-scheduled retrieval cards. Every page render and tutoring move is a function of both models; the wiki compounds with understanding, not just with reading.
The load-bearing invariant, enforced in the store and tested: only retrieval events move strength. Reading, filing, and hearing a great explanation never do — that's the fluency illusion, and it's designed out. Design + evidence base: ADR 0001.
It is also a plugin-SDK showcase: every seam it uses (and every seam it deliberately declines) is documented in SEAMS.md.
- 13 tools —
wiki_index/wiki_page/wiki_file/wiki_link(content model, typed edges incl.prerequisite),ledger_status/ledger_record/ledger_misconception(learner model),card_add/review_next/review_grade(FSRS review loop),wiki_map(the knowledge map: your wiki as a tier-colored SVG with prerequisite arrows, rendered inline in chat via the media store),wiki_export(markdown dump),wiki_research(optional rabbit-holerhCLI acquisition, off by default). Plus tutor knobs on a host:tutor_knobs/tutor_tune/tutor_presetlive-tunedesired_retentionandsession_limit(presets:exam-cram,steady,light). learning-tutorskill — the evidence-based session policy: reviews first, probe-first diagnosis (never trust self-report), tier-matched scaffolding (novice → worked examples, frontier → one-idea-per-tier generation, fluent → teach-back), answer-holding, plain-spoken correction, end-of-session filing + card generation from the session.- Two subagents —
review-coach(one honest session over the due cards; scheduled viareview_cron) andwiki-lint(read-only curation pass: orphans, stale strengths, frontier inconsistencies;lint_cron). Both ride plugin-owned cron jobs that are swept automatically on disable. - Chat commands —
/review(what's due),/wiki [topic](page peek / frontier), and/learn <topic> [target]— arms a self-driving learning loop: a study cadence plus a ledger-verified watch (learning_wiki:strength) that retires itself when you actually reach the target. Uses the host's one-callstart_goal_loopwhen present (protoAgent #2061), composing the identical loop fromschedule_recurring+create_watchon older hosts. Goal verifiers also work with/goal. - A2A card skills —
learning_status(structured ledger snapshot) andquiz_me(due prompts, answers withheld) let other fleet agents query your frontier over A2A and get schema-enforced JSON back. - Console view — a "Wiki" rail icon: page list with tier dots + due badges,
page reader with
[[wikilink]]navigation, links/backlinks; responsive to its panel width via container query. A utility-bar pill opens the same page in a dialog. Anylearning_wiki.*event lights the notification dots. - Review-nudge surface + wake hook — inert by default; with
nudge_interval_hours > 0it emitslearning_wiki.reviews_due(typed contract in the manifest) when cards are due, and a desktop wake triggers a due check via the lifecycle-hook seam.
Storage is instance-scoped SQLite (instance_paths().store("learning_wiki")),
no runtime pip deps; the FSRS-4.5 scheduler is pure Python with the published
default weights (overridable via config).
protoagent plugin install https://github.com/protoLabsAI/learningWiki-pluginThen enable it (install ≠ enable ≠ trust — it ships disabled):
# langgraph-config.yaml
plugins:
enabled: [learning_wiki]
# optional overrides
learning_wiki:
desired_retention: 0.9 # FSRS target recall at review time
nudge_interval_hours: 24 # push "reviews due" onto the event bus daily
rh_enabled: false # opt-in web research via the rh CLISay "teach me X" / "quiz me" / "let's review" — the learning-tutor skill picks
it up. The wiki grows as you learn; reviews surface on the schedule the evidence
says works (spacing ≈ 10–20% of the retention interval, handled by FSRS).
python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt ruff
.venv/bin/pytest -q # host-free: no protoAgent checkout needed
.venv/bin/ruff check .Apache-2.0