Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
lesson_idYes
session_idNo已改名——声明这个字段只是为了给出精确的改名错误(见 learning_session_id); 传了但没同时传 learning_session_id 会被拒收并指路改名, 不会被静默接受当作旧字段用。
learner_noteNo可选——学习者可见的人话版 (三通道制)。语言用 learners.locale (brief 的 identity.learner.locale 可见); 不含任何内部 id (sub_/tr_/evt_ 等机器词)。
evidence_refsNo可选——机器引用通道 (三通道制): 本判断依据的真实 id (sub_/tr_/evt_/snap_ 等)。服务端逐 id 验存在+同 pair 归属, 幽灵引用直接拒——证据先于叙事。
idempotency_keyNo可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写".
concepts_touchedNo
duration_minutesNo
live_turns_countNo
agent_observationNo三段增量 (一次判决原则): 整体判断 / 与 Live 表现的对照 / 下一课建议。不逐题复述习题——不重写评语——要指向具体作业, 把 id 填 evidence_refs。三通道制 **口径收窄 (2026-07-26, 学习者当面裁定)**: 本段会出现在学习者的折叠区 ("Teaching observation"), 已不再是纯内账——**内部 id 一律只进 evidence_refs, 不写进任何散文字段**。原"写这里或 evidence_refs"的二选一就此作废: 学习者读得到的地方, 就不写机器词。
learning_session_idNo可选——挂靠的 learning_session id (迁移 0030 从 session_id 改名而来, 名实相符). 旧名 session_id 已不再接受.
exercises_submitted_countNo
flashcards_reviewed_countNo
flashcards_rating_distributionNo{ Again, Hard, Good, Easy } counts, default all 0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it reveals update-in-place behavior on duplicate (pair_id, lesson_id), rejection of all-default payloads, the three-part structure of agent_observation, the three-channel rule for internal IDs (only in evidence_refs), and receipt behavior including update-not-create and progress. No contradictions with annotations because none are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense paragraph of operational rules with no filler; every clause contributes to correct usage. It could be more scannable with bullet points, but the natural-language flow remains efficient and information-dense, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 13 parameters, nested objects, uniqueness constraints, and detailed validation rules, the description covers purpose, timing, content restrictions (one-decision principle, no restating exercises), rejection criteria, idempotency, update semantics, and receipt behavior. It also references the spec for threshold details, making it effectively complete for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the schema by explaining the three-channel system (learner_note, evidence_refs, agent_observation), the rule that agent_observation must avoid machine terms and internal IDs, and the rejection condition covering seven parameters. However, several numeric fields (e.g., concepts_touched, duration_minutes) still lack explicit semantic clarification, so 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states '写一条 PostLessonEvaluation' (write one PostLessonEvaluation) and specifies it is a pure fact-layer record written at the end of every lesson. It differentiates from siblings like record_live_evaluation and grade_exercise by explicitly stating exercise judgments belong to grade_exercise and that live comparisons form part of agent_observation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit timing ('每节课末尾都写' — write at the end of every lesson), a directive to avoid restating exercise judgments (pointing to grade_exercise), and a reference to the three-lesson threshold rule in TEACHING-SPEC §4.3. It also states the receipt carries closed-loop progress so state-machine queries are unnecessary, implicitly guiding against using sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sf-shenfeng/learn-shell'

If you have feedback or need assistance with the MCP directory API, please join our Discord server