record_learner_feedback
Capture learner issues and ideas word-for-word during lessons, with optional anchors to lessons, exercises, or live sessions. Update observation boundaries upon learner request.
Instructions
现场反馈笔: 学习者在日常消息里提出关于产品或教学的 issue/idea 时, 用这支笔落账——反馈没有专用 UI 入口, 她的每一个普通输入框都是入口, 识别是你的义务。逐字纪律: text 存她的原话, 不是你的转述——转述是二次判决, 原话才是证据。挂锚 (lesson_id/live_session_id/exercise_id 可选): 填了就必须真实, server 校验存在性 + 属于当前 pair; source_message_ref 是自由文本引用 (live 消息可能活在 bridge 事件流里), 只存不校验。落账必回执: 记录成功后, 你必须在同一回合向学习者回一句确认——她要知道她的话被记下了, 静默落账等于没落账。软牙齿: open 反馈只在 get_teacher_inbox 发光提醒, 永不阻塞 close_lesson_loop。观察边界(禁区)变更也走这支笔 (Settings 观察禁区 UI 已撤下, 边界协商回到第一序对话)——学习者在对话里谈"不要再观察/记录某类"或"撤回某个边界"时, 用 boundary_update 参数带上; 绝不能凭对话印象私自认定/静默生效, 不填 boundary_update 就不改变任何边界。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | 封闭两类, 没有第三种: issue=问题/障碍 (产品或教学哪里不对), idea=想法/建议 (她想要什么). | |
| note | No | 可选。老师落账时的补充说明 (存入 status_note; 之后 update_feedback_status 带 note 时会覆盖). | |
| text | Yes | 必填。学习者的原话, 逐字——不许转述、不许润色、不许翻译成你的话. | |
| lesson_id | No | 可选挂锚——反馈发生时正在学哪节课。填了会校验: 存在且属于当前 pair. | |
| exercise_id | No | 可选挂锚——反馈针对哪道题。填了会校验: 存在且 (经 lesson→course) 属于当前 pair. | |
| boundary_update | No | 可选。只在这条反馈本身就是一次观察边界(禁区)请求时才填——不要脑补, 只在学习者原话真的在谈"不要观察/记录某类东西"或"这个可以恢复观察了"时才带。{action:"add"|"remove", boundary: 非空字符串(禁区类别名)}。add=新增禁区、remove=撤销既有禁区, 均幂等(已是目标状态则原样返回, 不报错、不二次写入)。与本工具的 text(反馈原话)在同一次调用里原子落账——不另开审计表, text 字段本身就是这次边界变更的逐字留痕, 这也是把它折进这支笔而不单开工具的原因。生效时点: 下一次 get_learner_brief 才会体现, 当前进行中的这轮教学看到的仍是旧边界。 | |
| idempotency_key | No | 可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写". | |
| live_session_id | No | 可选挂锚——反馈发生在哪场 Live。填了会校验: 存在且属于当前 pair. | |
| source_message_ref | No | 可选自由文本引用——她这句话出自哪条消息 (adhoc message id / bridge event id / 你能指认的任何 ref)。不校验, 只存. |