record_post_lesson_evaluation
Record a post-lesson evaluation to capture the lesson's overall judgment, contrast with live performance, and next-lesson advice. Attach evidence refs and avoid per-exercise repeats.
Instructions
写一条 PostLessonEvaluation (纯事实层, 每节课末尾都写, 不打 confidence 标签). 一次判决原则: 总评做增量, 不复判——agent_observation 只装三样内容: ①整体判断 ②与 Live 表现的对照 ③下一课建议。永不逐题复述习题: 习题的判决在 grade_exercise 记录上, 不把评语再写一遍——要指向具体作业, 把 id 填进 evidence_refs, 正文保持人话。3-课阈值规则见 TEACHING-SPEC §4.3. 空评估拒收: concepts_touched / flashcards_reviewed_count / flashcards_rating_distribution / exercises_submitted_count / live_turns_count / duration_minutes / agent_observation 至少一项非默认值——全默认(空数组+全 0+空字符串) 会污染 learner brief, 直接拒收。(pair_id, lesson_id) 唯一索引(迁移 0030): 一课一份总评——第二次对同一课调用本工具是修订, 服务端 update-in-place(不插新行), 回执里会说明这是 update 而不是新建。回执自带闭环进度——不用另查状态机。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lesson_id | Yes | ||
| session_id | No | 已改名——声明这个字段只是为了给出精确的改名错误(见 learning_session_id); 传了但没同时传 learning_session_id 会被拒收并指路改名, 不会被静默接受当作旧字段用。 | |
| learner_note | No | 可选——学习者可见的人话版 (三通道制)。语言用 learners.locale (brief 的 identity.learner.locale 可见); 不含任何内部 id (sub_/tr_/evt_ 等机器词)。 | |
| evidence_refs | No | 可选——机器引用通道 (三通道制): 本判断依据的真实 id (sub_/tr_/evt_/snap_ 等)。服务端逐 id 验存在+同 pair 归属, 幽灵引用直接拒——证据先于叙事。 | |
| idempotency_key | No | 可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写". | |
| concepts_touched | No | ||
| duration_minutes | No | ||
| live_turns_count | No | ||
| agent_observation | No | 三段增量 (一次判决原则): 整体判断 / 与 Live 表现的对照 / 下一课建议。不逐题复述习题——不重写评语——要指向具体作业, 把 id 填 evidence_refs。三通道制 **口径收窄 (2026-07-26, 学习者当面裁定)**: 本段会出现在学习者的折叠区 ("Teaching observation"), 已不再是纯内账——**内部 id 一律只进 evidence_refs, 不写进任何散文字段**。原"写这里或 evidence_refs"的二选一就此作废: 学习者读得到的地方, 就不写机器词。 | |
| learning_session_id | No | 可选——挂靠的 learning_session id (迁移 0030 从 session_id 改名而来, 名实相符). 旧名 session_id 已不再接受. | |
| exercises_submitted_count | No | ||
| flashcards_reviewed_count | No | ||
| flashcards_rating_distribution | No | { Again, Hard, Good, Easy } counts, default all 0 |