Labs 採用 AI 撰寫課程、程式碼評分的設計
I let AI write 945 lessons, but I don't let it grade a single answer
Learncoachassist.com 推出 Labs,以 AI 撰寫互動課程,但由程式碼計算答案,不讓 AI 判斷正誤。Labs 有 14 條 Skill Paths、175 個單元及 945 節課程,內容預先生成並經自動化測試;用戶毋須註冊,每日可免費使用 20 節新課程。
I let AI write 945 lessons. I don't let it grade a single answer.
That sentence is the whole design philosophy behind Labs, the newest section of learncoachassist.com. Labs is a set of "Skill Paths": short interactive lessons where you answer one problem at a time, in the spirit of Brilliant or Codecademy. This post is about the engineering decision at the center of it, and the product decisions that followed.
The problem: LLMs are confidently wrong
If you have asked a language model to do multi-step arithmetic, balance a chemical equation, or work out a physics problem, you have probably seen it. The explanation reads beautifully. The final number is wrong. And the tone never changes, so a learner has no way to tell.
For a flashcard app that is a nuisance. For a lesson that says "correct!" or "try again" based on a model's guess, it is a trust problem. A learner who is told a right answer is wrong, or a wrong answer is right, learns the wrong thing and also stops trusting the product.
So I made a rule: the model never decides what is correct.
The design: templates, parameters, code
Here is the approach, in order:
- Vetted interactive widget templates. Each kind of problem (a numeric input, a multiple choice, a "tap the problem" exercise) is a template I wrote and reviewed by hand.
- AI fills in parameters and prose. The model picks the values for a template and writes the explanatory text around it. That is all it does.
- Correct answers are computed by code. The answer comes from a function, never from the model.
- Lessons are pre-generated. Nothing is generated live while you study. Content is created ahead of time, so it can be checked before anyone sees it.
- Automated tests cover it. Lessons are written with AI and checked by automated tests.
Here is a simplified, illustrative sketch of the idea. It is not the real schema, just the shape of it:
// Simplified and illustrative only, not the actual implementation.
const template = {
type: "numeric-input",
params: { a: 12, b: 7 }, // chosen by the model, validated by code
prose: "<prose filled in by the model>",
answer({ a, b }) { // plain code decides what is correct
return a * b;
},
};
// The learner's input is compared to template.answer(template.params).
// The model is never asked "is this right?"
The useful property is that the model's job and the code's job do not overlap. If the model writes a bad explanation, that is a content problem I can fix. It cannot produce a wrong grade, because it is not involved in grading. Some lessons with numeric problems also include a calculator, so the learner can focus on the idea instead of the arithmetic.
On the site, this shows up as one honest line: "Created with AI. Every answer is computed by tested code."
Product decisions
The architecture was half the work. The other half was deciding how the thing should feel.
No account. You can start a lesson without signing up. Your progress stays on your device. The site only counts anonymous starts and answers, so I can see what gets used without tracking who you are.
20 new lessons a day, free. The free tier gives you 20 new lessons per day with no account. Plus or Pro removes the daily limit. I wanted the free version to be genuinely useful, not a demo with a paywall after one screen.
Every unit is directly selectable. You can jump straight to any unit. Linear-only paths are frustrating when you already know the first half of a topic.
Hints, daily streak, and review on every path. The small mechanics that keep a short lesson habit going.
What is in it
There are 14 Skill Paths, 175 units, and 945 lessons in total:
| Path | Lessons |
|---|---|
| UX | 108 (20 units, the biggest path) |
| Math | 98 |
| Physics | 87 |
| Computer Science | 83 |
| Chemistry | 80 |
| Finance (educational only, not financial advice) | 80 |
| Biology | 79 |
| Web Dev | 70 |
| Study Skills | 70 (memory, retrieval practice, spaced repetition) |
| AI Literacy | 38 |
| Cybersecurity Basics | 38 |
| Data and Statistics | 38 |
| Writing and Communication | 38 |
| Economics | 38 |
The UX path is my favorite to play with: you compare two designs, tap the problem on a screen, and fix the spacing. It is the kind of exercise that would be hard to do well as plain text.
Where Labs fits
learncoachassist.com started with free flashcards (no signup), then quizzes, video lessons at /watch, Anki decks, and an AI deck generator. Flashcards are the front door. Labs is the next step: once you can recall a fact, you practice using it.
Who built it
I am Toni, a solo freelance web developer from Rijeka, Croatia. The stack is Laravel, PHP, Vue.js, and MySQL. It is a one-person project, which is exactly why I wanted correctness to come from tests rather than from my ability to proofread 945 lessons by eye.
Try it and tell me what breaks
I would love feedback, especially from other developers:
- Does the "AI writes, code grades" split match how you would design it?
- Which path would you want to see next?
- If you find a lesson with a wrong answer, I want to know. That is exactly the bug this design is meant to prevent.
Start here, no account needed: https://learncoachassist.com/labs
Tell me what you think in the comments.
來源:DEV Community · dev.to