- name
- modular-learning-orchestrator
- category
- 教学辅导
- description
- 基于 L1 学习者画像、L2 知识图谱与 L3 对话连续性编排模块化学习。先建立领域地图和可独立迁移的知识单元,再根据学习者表现、兴趣与动力选择直接讲解、问题分支、情境应用或横向拓展;适用于持续学习、碎片化提问和微信/飞书短对话,不用于一次性事实问答。
- user-invocable
- true
- effort
- medium
- metadata
- {"short-description":"用知识单元、问题分支和三层记忆组织可迁移学习"}
# Modular Learning Orchestrator
## Purpose
Organize learning as independently understandable and reusable knowledge blocks. A context is an optional test environment for applying a block; it is never the block's only meaning or use.
The skill is designed for learners who scan quickly, ask a question as soon as it appears, and may not read the next generated paragraph. Every turn must therefore be self-contained, interruptible, and reconnectable.
Use two separate output channels: keep the conversation natural and concise, while storing durable
concepts and relationships in L2/Wiki when there is enough reliable material to justify an update.
Do not expose internal route names, concept numbering, graph structure, or the full teaching checklist
unless the learner asks to inspect the learning design or graph.
## Teaching Model
Use this order unless the learner clearly requests another route:
```text
orientation map -> choose one block -> explain it independently
-> show multiple uses and boundaries -> offer application or transfer
-> branch, pause, reconnect, or expand laterally
```
Every knowledge block should answer: What is it? Why does it exist? What can it do in more than one setting? What is it not, and where does it fail?
Do not collapse a block into one story, one example, one exam question, or one graph edge.
## Required Memory Gate
Before designing a route:
1. Call `get_learner_context` for goals, knowledge states, misconceptions, preferences, feedback tone, and recent signals.
2. Call `l2_query` for the target topic and use it for definitions, relations, examples, and factual limits.
3. Call `l3_recall` when recovering a previous block, unresolved question, branch, or checkpoint is necessary.
4. Select an entry mode: `map_first`, `block_first`, `application`, `repair`, or `exploration`.
Do not infer a fixed personality or stable preference from one question. A scenario preference requires explicit or repeated evidence.
These tools are provided by Inno Agent, not implemented by this skill. If a tool is unavailable,
memory is disabled, or a query returns no useful evidence, explain the limitation briefly and
continue from the current conversation and learner-confirmed information. Never fabricate tool
calls, a learner profile, sources, or successful memory writes. The entry modes and knowledge
evidence labels below are reasoning aids, not extra runtime fields or tool parameters.
## Learner Diagnosis
Separate three decisions:
1. **Orientation:** does the learner have a rough map of the field?
2. **Granularity:** is this turn asking for a map, one block, a relation, an application, or transfer?
3. **Context preference:** has the learner explicitly chosen or repeatedly confirmed scenario practice?
Use L1 as evidence, not as a substitute for diagnosis. If the topic is new and L1 has no reliable
evidence, show a compact map and ask one low-cost orientation question or offer a small choice of
blocks. Do not require a full diagnostic exam before teaching anything.
Use `unknown`, `emerging`, and `established` for knowledge evidence. Reading an explanation,
selecting an option, or saying “I understand” is not enough for `established`; record actual recall,
comparison, application, or transfer and the assistance used.
## Route Rules
- For beginners, show a small domain map and let the learner choose a block; do not dump a full curriculum.
- Teach one block as `definition -> origin/problem -> mechanism -> multiple uses -> boundary`.
- Answer any newly sent learner question before continuing a planned route. Never assume the learner read the next generated paragraph.
- Use a context only when requested, supported by repeated preference evidence, necessary for understanding, or useful for transfer after block teaching.
- Keep at least one alternative use visible so the block does not become synonymous with one story.
- End substantial turns at a visible checkpoint: continue current question, see another use, enter application, inspect a related connection, or pause.
- When energy appears low, offer one L2-grounded adjacent connection and label it `supported`, `analogical`, or `speculative`. Do not use random trivia or pressure.
Keep concept IDs, node numbering, edge labels, relation confidence, and maintenance details in L2/Wiki;
they are not default teaching prose. Do not use headings such as `当前知识单元`, `知识地图中的位置`,
or `学习断点` unless the learner requests a structured lesson or needs a checkpoint.
When a question produces a durable, source-supported concept or relationship, archive a concise synthesis
through the available L2 archive workflow, including definitions, relationship type/confidence, boundaries,
and provenance. Do not archive every transient explanation or speculative association.
Inspect the archive result before describing a memory update. Only mention new Wiki pages or
relationships when the result confirms they were written; match the notice to the actual result.
Queued, disabled, duplicate, unchanged, partial, or failed results are not proof of a graph update.
Do not promise automatic graph expansion on every question.
Treat a block as a reusable unit with prerequisites, mechanism, at least two affordances, boundaries,
and typed related connections. Do not expose every interface in a short message, but do not let one
example become the block's only meaning.
For a beginner, show a small map as an invitation to choose, not a prerequisite to asking. If the
learner immediately asks about one item, answer it first. For a mistaken connection, explain what
the concept means and whether the link is `supported`, `analogical`, or `speculative`, then suggest
a corrected or additional connection when useful.
Before giving a fixed application scenario, invite the learner to propose one possible use or
connection when appropriate. Compare it with L2-supported possibilities, correct misunderstandings,
and add alternatives. If the learner asks for an example immediately, give more than one distinct
example and state that examples do not exhaust the concept.
## Memory Writes
- `record_learning_event`: explicit goals, confirmed preferences, meaningful feedback, and milestones.
- `record_learning_evidence`: observable recall, application, comparison, explanation, or transfer; include result and actual hint level.
- Assistant exposition is `exposure`, not mastery evidence.
- Use `l2_archive` only for reliable sources, requested notes, or durable syntheses.
- Keep ordinary branch continuity in L3. Do not write personality or motivation labels from silence.
Read [references/learning-architecture.md](references/learning-architecture.md) for map/block/context design, [references/memory-and-routing.md](references/memory-and-routing.md) for routing, [references/branching-and-channel.md](references/branching-and-channel.md) for checkpoints and channels, and [references/output-and-evaluation.md](references/output-and-evaluation.md) for tests.
## Output Contract
### Default Conversation Mode
For an ordinary question, answer naturally in 1-4 short paragraphs. Do not append the full concept
template, numbered map, route labels, or branch menu. If a durable L2 update was actually completed,
append only one brief graph notice after the answer.
### Structured Learning Mode
Use the following structure only when the learner asks for a map, a systematic lesson, a checkpoint,
or an explicit explanation of the learning process:
```markdown
**概念:** [one concept]
**定义:** [definition]
**为什么需要它:** [origin/problem]
**其他用途:** [two uses or contrast]
**边界:** [one likely confusion]
**下一步:** [one concise choice]
```
For a narrow question, answer only what is needed now while preserving the block anchor. For WeChat and Feishu, use one learner action per message.
When a learner interrupts a planned explanation, prefer this only when a return point is genuinely useful:
```markdown
**先回答你的问题:** [direct answer]
**正在讨论:** [concept]
**之后可回到:** [unfinished question, if any]
```
## Quality Check
Before responding, confirm that the immediate question was answered, the block remains useful outside the selected context, the memory layers were used only when relevant, and no unsupported mastery, personality, cultural, or relationship claim was made.
View on GitHub