The problem
The client runs courses on an LMS that has been in production for years. After each live session, the discussion board fills with questions the lesson already answered: where the reading said it, what the example was asking. Instructors were replying one by one. The replies were short. The volume was the cost.
They did not want a tutor that could roam the open web or invent a worked solution the lesson had withheld on purpose. The answer had to be a passage from the materials the student was already assigned, or a clear decline.
Why the lesson is the boundary
An answer from outside the lesson creates two problems. It can contradict the instructor, and it can give away a graded question the materials deliberately did not solve. The product boundary is the assigned materials for that unit. Anything else is a decline that points the student back to the instructor.
Architecture
Retrieval is the unit, not the catalog
Each course unit has a materials list in the LMS. The assistant searches that list only. A better-matching paragraph from a later unit, or from another course, is out of scope even if it is a better answer.
The passage is the answer
The released reply quotes the passage and names the material. A paraphrase with no passage is rejected by the same check. Students can open the material from the reply.
Graded prompts are excluded
The client marked which prompts are graded and must not be solved in the board. Those threads get a decline even if a passage would hint the solution. The instructor still sees the question.
It sits beside the board
We did not replace the discussion product. The assistant drafts a reply the instructor can post, edit, or discard. In the sections that opted in, a passage-backed reply can post as the course assistant, still with the instructor able to remove it.
Challenges and tradeoffs
- Students pasted the graded prompt into a 'clarifying' question. The exclusion list matched the official prompt and missed a paraphrase. We added a similarity check against the graded prompt text, tuned with the instructors so ordinary conceptual questions still get a passage.
- Readings assigned by link were not in the index. A URL in the unit was being treated as in scope without fetching it, so the assistant declined questions the reading answered. We index the assigned links the LMS already stores, on the same schedule as the unit publish.
- Instructors wanted tone edits without losing the quote. The edit box keeps the passage locked and lets the instructor change the sentence around it. That was a UI change after the first section complained that editing the draft deleted the citation.
Results
Across the opted-in sections, instructor time on questions the client classified as repeats fell 46%, using the time sample the program already collected. Every reply the assistant released included a passage from that unit. Reviewers did not find a released answer that solved a graded prompt or cited material from outside the unit.
Students with a question the lesson does not answer still reach the instructor. The board is quieter where the lesson already spoke.
What we'd do differently
We would have built the graded-prompt paraphrase check before the first opted-in section, not after the first near-miss an instructor caught.