Live demo · xuedao.io

Three steps to Lao Shi.

Install. Paste your API key. Try the eight agents. About 20 minutes end-to-end on a fresh Moodle, less on the four LMSes that use the LTI 1.3 install kit.

1
Step 1

Install

Two install paths. Moodle gets a native block; the other four LMSes use one LTI 1.3 launch. Pick the one that matches you — most institutions use one or the other, not both.

A · Moodle (native block — used on xuedao.io)

  1. Site administration → Plugins → Install plugins → upload block_xuedao_laoshi
  2. Repeat for local_ai_manager (provider + quota manager)
  3. Run the database upgrade Moodle prompts for.
  4. In any course → "Turn editing on" → "Add a block" → "XueDao Lao Shi". The floating chat button now appears for every learner on that course.

Tested on Moodle 4.1 through 5.1.

B · Canvas / Blackboard / Brightspace / Schoology

  1. In LMS admin: register XueDao Lao Shi as an LTI 1.3 tool. Paste the four URLs from the install-kit email.
  2. Copy back the LMS's issuer + client_id + deployment_id.
  3. Paste those into app.clairvas.com → Register LMS deployment.
  4. Add a course activity: External tool → XueDao Lao Shi. Students click it; it launches into Lao Shi scoped to that course.

Full per-LMS install guides →

2
Step 2

Get your ClairVAS API key

One API key per tenant. Admin issues it from app.clairvas.com after you subscribe; you paste it into ai_manager once and forget it.

  1. Subscribe

    Fill the subscribe form — institution, LMS, learner count, languages. Starter tier is free during pilot. Subscribe form →

  2. Receive the install kit by email

    Within 2 working days you get: Tenant ID, ClairVAS API key (cxd_…), the four LTI URLs (if not on Moodle), and the per-LMS install guide PDF.

  3. Paste the key into ai_manager (Moodle)

    Site administration → Plugins → Local plugins → AI Manager → Provider config → ClairVAS

    Paste the API key. Save. On other LMSes the equivalent step happens automatically at deployment-registration time.

  4. Sanity check

    AI Manager → Test connection — should return a 200 OK and the tenant name. If 401, the X-Clairva-Key header is wrong.

3
Step 3

Try the eight agents

Each card tells you (a) where to click on xuedao.io, (b) what to ask or do, and (c) what a healthy response looks like. Work through them top-to-bottom; S243 first because every other agent depends on it.

S243

Course Indexer

Where: Course → "Turn editing on" → "+ Add a resource" → File

Do: Upload a PDF from your course materials.

Expect: After ~30 seconds the file is indexed into the retrieval store. No UI confirmation by design — verify by asking S240 a question only answered in that PDF (next step).

S240

Tutor (the Socratic one)

Where: Floating Lao Shi button, bottom-right of any course page

Do: Ask a course question. Then ask "give me the answer to question 3" to test the impartiality wall.

Expect: A Socratic prompt back at you, a page-cited follow-up, a polite refusal on the homework question with refused_to_answer_directly=true in the audit log.

S241

Course Retriever

Where: Invisible — called internally by S240/S242/S244/S246/S247

Do: No direct test. Verified indirectly.

Expect: Every S240/S242 reply cites a specific PDF + page. No citation → S241 is not finding anything → re-check S243 indexing.

S242

Free Chat (grounded)

Where: Same Lao Shi chat button — short-form mode

Do: Ask "what does this term mean?" or "give me one example".

Expect: Shorter reply than S240, still cites the originating PDF + page. No drift to the general internet.

S244

Design Guidance (teacher copilot)

Where: Course in editing mode → AI helper drawer at top of page (Moodle 4.5 courseassist placement)

Do: "Plan a 2-hour session on Topic Y."

Expect: Draft outline + rubric + sequencing, all cited from the course corpus. Teacher-in-the-loop: drafts only — nothing publishes without your sign-off.

S245

Skills Coach

Where: Live on the FastAPI backend; Moodle UI surface on the next-quarter roadmap

Do: POST recent activity + target role to the skills_coach endpoint on the XueDao API bridge.

Expect: One next-best-skill recommendation + Bloom level + effort hours + cited catalogue passages.

S246

Assessment Grader

Where: Open a student short-answer submission → AI sparkles button in the editor (Moodle 4.5 editor placement)

Do: Select the response → "Grade against rubric".

Expect: score / band / Bloom level demonstrated / strengths / improvements / human_review_required. Try a deliberately borderline answer — the flag should flip to true.

S247

Content Generator

Where: Course in editing mode → courseassist drawer → "Generate quiz" / "Draft lesson"

Do: "10-item Bloom-spread quiz on Topic Z, ~2 hours, advanced undergrad."

Expect: Lesson plan + 10 quiz items each cited to a source passage. If the corpus is thin, gap_flags fires honestly. Instructor-in-the-loop: drafts only.

Verify in two places: ai_manager → Statistics on the Moodle side, and app.clairvas.com → Audit log on the ClairVAS side. Both should show your calls; the audit log carries the policy flags (refused, human-review, gap).

Ready to do this on your own LMS?

xuedao.io is the reference. The install kit ports the same eight agents onto your Moodle, Canvas, Blackboard, Brightspace or Schoology — same code, same audit trail, your tenant.