Fidea AI Docs
Thuật toán

Năng lực, bằng chứng và độ tin cậy

Công thức mastery, evidence confidence, trạng thái diagnostic và confidence gap.

1. Evidence — bằng chứng

Mỗi evidence phải truy vết được theo chuỗi:

Question Bank version
→ Question
→ Student Answer
→ Rubric Criteria
→ Topic/CLO/Competency
→ Score và lý do
→ misconception_id (nếu có tên trong Misconception Library)

Client chỉ gửi câu trả lời. Server sở hữu đáp án, rubric, score, misconception, mastery và diagnostic status.

Evidence.misconception_id (src/agents/schemas/knowledge_state.py) là id trong Misconception Library, không phải văn bản tự do; misconception_text chỉ là phép chiếu tra được từ id. Validator khoá ba bất biến: misconception=True bắt buộc có misconception_severity; misconception=False thì cả severitymisconception_id phải null. misconception_id = null là hợp lệ và có nghĩa — hoặc không có misconception, hoặc library chưa gán tên cho câu này.

2. Rubric score của một evidence

Với evidence ee có các tiêu chí rubric jj:

se=jse,jwe,jjwe,js_e=\frac{\sum_j s_{e,j}w_{e,j}}{\sum_j w_{e,j}}

Trong đó:

  • se,j[0,1]s_{e,j}\in[0,1]: điểm tiêu chí;
  • we,j>0w_{e,j}>0: trọng số tiêu chí.

Với MCQ, tất cả tiêu chí của câu nhận 1 nếu đáp án đúng, ngược lại 0 — đó là baseline tất định Level 0. Với high_information, se,js_{e,j} đến từ đường rubric-AI đã qua validate_rubric_proposal; nếu validator từ chối, evidence rơi về đúng baseline tất định đó, không trộn nửa nọ với nửa kia.

3. Mastery baseline — mức làm chủ

Với nhiều evidence:

M=eseWeeWe,We=jwe,jM=\frac{\sum_e s_eW_e}{\sum_eW_e}, \qquad W_e=\sum_jw_{e,j}

Tương đương:

M=ejse,jwe,jejwe,jM=\frac{\sum_e\sum_js_{e,j}w_{e,j}} {\sum_e\sum_jw_{e,j}}

Nếu không có evidence hoặc tổng trọng số bằng 0:

M=nullM=\text{null}

Weighted mean là baseline OD-03, chưa phải công thức cuối cùng.

4. Evidence confidence baseline

Gọi:

  • nn: số evidence;
  • sˉ\bar{s}: trung bình score của các evidence;
  • I(condition)I(condition): 1 nếu điều kiện đúng, ngược lại 0.

Runtime hiện tính:

Craw=0.5+min(0.3,0.1n)+0.15I(sˉ0.8)0.2I(major misconception)C_{raw}=0.5+\min(0.3,0.1n) +0.15I(\bar{s}\ge0.8) -0.2I(\text{major misconception}) C=min(1,max(0,Craw))C=\min(1,\max(0,C_{raw}))

Nếu status là partial:

C=min(C,0.5)C=\min(C,0.5)

Nếu không có evidence, C=nullC=\text{null}. Đây là OD-04 baseline.

UI suy ra nhãn, không lưu nhãn làm nguồn dữ liệu:

Giá trịNhãn
>= 0.8high — cao
>= 0.5< 0.8medium — trung bình
< 0.5low — thấp

5. Diagnostic status semantics

StatusCó evidence đáng kể?MasteryEvidence confidence
not_assessedKhôngnullnull
unverifiedKhông hoặc chưa đủ tin cậynullnull
partialBắt buộc cóBắt buộc có, bị cap 0.5
verifiedCó và đạt stopping ruleBắt buộc cóBắt buộc có

Pydantic validators khóa các bất biến này. Vì vậy một payload diagnostic_status="unverified" nhưng mastery=0.2 bị từ chối.

6. Confidence gap — khoảng chênh tự tin

Chỉ khi mastery tồn tại:

G=self_confidenceMG=\text{self\_confidence}-M
  • G>0G>0: người học tự tin cao hơn năng lực đo được.
  • G<0G<0: người học tự đánh giá thấp hơn evidence.
  • G=nullG=\text{null}: chưa có mastery.

Không được kẹp giá trị âm về 0 vì sẽ làm mất tín hiệu underconfidence — thiếu tự tin.

7. Misconception severity và Misconception Library

Chỉ major mới chặn confirmation. misconception_severity vẫn trống trong cả v1v2 (đo trực tiếp trên asset: 0/715 item mỗi version), nên khi trả lời sai runtime mặc định minor (DEFAULT_MISCONCEPTION_SEVERITY) và không tự suy diễn major.

Việc đặt tên cho lầm tưởng là một asset riêng: data/misconception_library/{v1,v2}, schema src/agents/schemas/misconception_library.py. Mỗi MisconceptionEntry gắn misconception_id, course_id, text nguyên văn từ bank và question_ids.

validate_misconception_findings (src/agents/diagnostic/guardrails.py) kiểm referential mọi đề xuất của AI theo library của đúng bank version đang chấm: id ngoài library bị từ chối, không bao giờ được đúc ra. AI chỉ được gọi tên ở chỗ baseline tất định chưa có tên; đã có tên baseline thì đề xuất bị từ chối theo họ guardrail contract. Library được nạp một lần mỗi lượt chấm, và version của nó được ghi vào asset_versions["misconception_library_version"] của phong bì audit §2.4.

8. Disclaimer bắt buộc

Mọi Knowledge State phải có generated_disclaimer, nhắc rằng kết quả là tổng hợp từ Question Bank được duyệt và không phải đánh giá chính thức của giảng viên.

9. Thuật ngữ

  • Mastery — mức làm chủ: năng lực ước lượng từ bằng chứng.
  • Rubric — bảng tiêu chí chấm: mô tả các tiêu chí và trọng số.
  • Evidence confidence — độ tin cậy của bằng chứng: độ mạnh của kết luận, không phải mastery.
  • Partial — một phần: đã đo nhưng chưa bao phủ đủ.
  • Verified — đã xác minh: đạt stopping rule hiện hành.
  • Underconfidence — thiếu tự tin: tự đánh giá thấp hơn năng lực đo được.

10. Tham chiếu code

  • src/agents/diagnostic/mastery.py
  • src/agents/diagnostic/guardrails.py
  • src/agents/schemas/knowledge_state.py
  • src/agents/schemas/misconception_library.py
  • src/agents/schemas/baselines.py