Depth Engine
"Học sâu thêm ở đây có còn là next best use of learner time không?"
Thiết kế: SDD-002 §12 · Nguồn: SRC-011 (Learning Depth & Stopping Criteria)
1. Hiện trạng: chưa xây
Trang này khác các trang khác trong khu Reference
Depth Engine chưa có dòng code nào. Kiểm lại bất cứ lúc nào:
grep -rniE "\bdepth\b|required_depth|desired_mastery|overlearning|diminishing" workers/api/src apps/*/srcHôm nay lệnh này trả về rỗng.
Bốn REQ trỏ vào SDD-002 §12 — REQ-INT-11, REQ-LRN-07, REQ-SCH-03, REQ-PAR-06 — đang mang dấu ✔ trong PRD, nhưng ✔ đó nói rằng yêu cầu đã có thiết kế, không phải đã thi hành. Trang này tồn tại để khoảng cách ấy không bị hiểu nhầm.
Khu Reference chỉ mô tả cái đang chạy. Với Depth, cái đang chạy là những mảnh thay thế ở §3 — và chúng không tương đương.
2. Thiết kế mong muốn (SDD-002 §12)
Sáu mức độ sâu
L0 Exposure · L1 Recognition · L2 Basic Application
L3 Independent Application · L4 Transfer · L5 Deep MasteryMỗi learning objective có bộ ba {required_depth, desired_mastery, required_confidence}, khác nhau theo school trên cùng một kỹ năng:
| School | Ví dụ target |
|---|---|
| Turtle lớp 7 | L3 / 0.80 / 0.80 |
| Shark thi chuyên | L4–L5 / 0.90 / 0.90 |
"Học kỹ" = target rõ ràng, không phải cảm giác.
Đây là điểm cốt lõi: cùng một node "Hằng đẳng thức", đứa trẻ ở Turtle đã xong ở mức áp dụng độc lập, còn đứa ở Shark thì chưa — vì kỳ thi chuyên đòi vận dụng sang bài lạ.
Điều kiện DỪNG
STOP khi mastery ≥ threshold
AND confidence ≥ threshold
AND depth ≥ required
AND evidence diversity ≥ minBốn điều kiện, thiếu một là chưa xong. evidence diversity đặc biệt quan trọng: 20 câu cùng một dạng không chứng minh được gì bằng 6 câu ở 6 dạng khác nhau.
Ba cơ chế bảo vệ
| Cơ chế | Luật |
|---|---|
| Diminishing returns | ExpectedLearningGain / TimeCost < threshold → chuyển sang node có tác động cao hơn |
| Overlearning protection | Phát hiện: luyện lặp kỹ năng đã ổn định · mở rộng không phục vụ goal · đào sâu khi còn critical gap khác |
| Depth Budget theo goal | critical L4/L5 · important L3/L4 · peripheral L2/L3 |
Nguyên tắc nền: không tối đa hoá từng node — tối đa hoá tổng thể dưới giới hạn thời gian.
Mặt hướng tới phụ huynh (REQ-PAR-06)
Bố mẹ muốn con "học kỹ hơn" thì phải thấy giá phải trả:
"Nâng Hệ số góc từ L3 lên L4 tốn thêm 4–6 giờ, trong khi Phân tích đa thức đang là critical gap và chưa đạt L3."
Không có Depth Engine thì câu này không nói được bằng dữ liệu — và cuộc trò chuyện quay về cảm tính.
3. Những mảnh đang thay thế — và chúng thiếu gì
Bốn thứ đang chạy có họ hàng với Depth, nhưng không cái nào là Depth Engine:
| Mảnh đang chạy | Làm được gì | Thiếu gì |
|---|---|---|
required_state trong blueprint_weights (chac 0.8 · lung_lay 0.5 · hong/unknown 0) | Một dạng required_depth thô: mỗi node trong một đề có mức cần đạt riêng | Chỉ 2 mức thật, không phải 6. Gắn với đề thi, không gắn với objective |
blueprints.kind (conditional / specialized) | Phân biệt đề điều kiện và đề chuyên — hiện thân legacy của depth target theo school (FEAT-038) | Chỉ ở cấp cả đề, không xuống từng node |
| Readiness Engine | clamp01(mastery / threshold) — vượt ngưỡng không cộng thêm | Đây là chống lạm phát điểm, không phải chống overlearning |
| Recommendation Engine | Gap đã đạt ngưỡng thì rơi khỏi gap_map → không còn được đề xuất | Đây là hệ quả phụ, không phải điều kiện dừng có chủ đích. Không đo depth, không đo evidence diversity, không tính TimeCost |
Dòng cuối là điểm cần hiểu đúng: hệ thống hôm nay có vẻ như biết dừng — một node đạt mastery cao thì không xuất hiện trong "Hôm nay" nữa. Nhưng đó là vì gap map hết chỗ cho nó, không phải vì có ai kết luận "em đã đạt độ sâu cần thiết".
Khác biệt thật:
| Hôm nay | Với Depth Engine | |
|---|---|---|
| Vì sao node biến mất khỏi đề xuất | Có node khác điểm cao hơn | Đã đạt {depth, mastery, confidence, diversity} |
| Nói với learner được gì | (không nói gì) | "Phần này con đã đạt mức áp dụng độc lập — xong rồi" |
| Learner luyện lại node đã vững | Không ai ngăn | Overlearning protection cảnh báo |
| Bố mẹ hỏi "học sâu thêm được không" | Không có dữ liệu để trả lời | Có cost + trade-off cụ thể |
4. Vì sao chưa xây — và cần gì để xây
Hai thứ chặn, cả hai đều là dữ liệu, không phải thuật toán:
1. Chưa có thang depth trên nội dung. Muốn đo depth của một lần trả lời thì item phải mang mức tư duy. Hiện có role (canonical / variant / boundary / discriminator) và difficulty (0–1) — cả hai đều không phải thang Bloom-like L0–L5. Quality Engine có chiều cognitive_demand nhưng đó là điểm chất lượng, không phải nhãn mức.
2. Chưa có TimeCost đáng tin. diminishing returns cần biết nâng một node lên mức sau tốn bao nhiêu giờ. skill_nodes.effort_minutes có tồn tại nhưng chưa được điền đủ và chưa ai kiểm chứng với thời gian thật.
Thứ tự hợp lý để xây:
1. Gắn nhãn depth (L0–L5) cho item ← dữ liệu, làm ở Coral
2. Điền effort_minutes có kiểm chứng ← dữ liệu
3. depth = f(item đã làm đúng, diversity) ← engine thuần, test được
4. Stopping criteria 4 điều kiện ← engine thuần
5. Overlearning protection + depth budget ← nối vào Recommendation
6. Depth trade-off cho phụ huynh ← REQ-PAR-06Bước 3–4 là phần rẻ nhất. Bước 1–2 là phần thật sự tốn công.
5. Khi xây thì đặt ở đâu
Theo khuôn đã có của các engine khác (Goal, Retention):
| Engine thuần | modules/depth/engine.ts — không I/O, không LLM, test hành vi được |
| I/O | modules/depth/service.ts |
| Model kind | thêm depth vào MODEL_KINDS (shared/runlog.ts) trước tiên |
| Chạy trong | WF-04, sau Learner Model (cần mastery) và Retention |
| Tiêu thụ | Recommendation (stopping + overlearning) · Learning Plan (depth budget) · Parent (trade-off) |
Và tuân đúng các bất biến chung: rỗng là hợp lệ, có confidence nói rõ đang đoán tới đâu, không bao giờ ghi ngược vào learner_skill_state.
Trace
- REQ-INT-11 (depth levels, stopping criteria, diminishing returns, overlearning, depth budget), REQ-LRN-07 (dừng đúng lúc), REQ-SCH-03 (depth target theo school), REQ-PAR-06 (trade-off cho phụ huynh) · US-08, US-13.
- Nguồn: SRC-011 (Learning Depth & Stopping Criteria), SRC-105 · FEAT-038 (legacy
math_target_blueprint). - Thiết kế: SDD-002 §12.
- Liên quan: Readiness · Recommendation · Quality Engine · Learning Engine §8 (Difficulty Controller cũng chưa có).