Skip to content

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:

bash
grep -rniE "\bdepth\b|required_depth|desired_mastery|overlearning|diminishing" workers/api/src apps/*/src

Hô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 Mastery

Mỗ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:

SchoolVí dụ target
Turtle lớp 7L3 / 0.80 / 0.80
Shark thi chuyênL4–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 ≥ min

Bố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 returnsExpectedLearningGain / TimeCost < threshold → chuyển sang node có tác động cao hơn
Overlearning protectionPhá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 goalcritical 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ạyLà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êngChỉ 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 Engineclamp01(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 EngineGap đã đạ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 nayVới Depth Engine
Vì sao node biến mất khỏi đề xuấtCó 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ữngKhông ai ngănOverlearning 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ờiCó 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-06

Bướ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ầnmodules/depth/engine.ts — không I/O, không LLM, test hành vi được
I/Omodules/depth/service.ts
Model kindthêm depth vào MODEL_KINDS (shared/runlog.ts) trước tiên
Chạy trongWF-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ó).