在上一篇文章中,我們透過手動切換「分齡語境」,讓 AI 助教可以用國中生或大學生聽得懂的語言對話。但這還不夠完美——真正的教學,是動態的。
傳統的題庫系統非常死板:學生答對就換下一題,答錯就打個大大的紅色叉叉,甚至給出一長串看不懂的詳解。這種系統缺乏了人類老師最重要的特質:「讀空氣」。
今天 Day 24 的核心任務,就是要為 Professor Spark 裝上「自適應狀態機 (Adaptive State Engine)」,讓它能在背景默默觀察學生的挫折感。答對了就加深難度;一旦發現學生連續卡關,它必須自動「彎下腰」,把抽象的數學轉化為最基礎的生活直覺。
為了不讓畫面上出現「Level 1、Level 2」這種會給學生帶來評分壓力的字眼,我們決定把等級機制完全隱藏在後端。整個系統透過四個階段形成無縫閉環:
在 app.js 的底層,我們偷偷維護了一組狀態變數,並在每次學生發送訊息時,隨附在 Payload 中傳給後端:
javascript
let studentState={
currentLevel:1,// 當前難度
consecutiveMistakes:0,// 連續答錯次數
};
這是系統最巧妙的一環。我們透過修改 Gemini 的 RESPONSE_SCHEMA,強制 AI 在每一次對話時,必須同時扮演兩個角色:
reply)。diagnostic (診斷報告) 給系統。json
"diagnostic":{
"is_correct":false,
"detected_gap":"忘記將乘法移項轉換為除法",
"recommended_difficulty_delta":0,
"next_pedagogical_action":"scaffold_hint"
}
伺服器 (chatRoutes.js) 收到這份診斷報告後,會執行狀態機邏輯:
increase_difficulty):currentLevel + 1,下一題變難。scaffold_hint):錯誤次數 +1,Level 不降,給予解題線索。downgrade_concept):系統判定認知負載過高!強制 currentLevel - 1,並要求 AI 放棄數學算式,啟動「生活比喻救援」。文字架構說起來很抽象,讓我們直接看看今天實測出的驚人對話紀錄:
學生(請老師出題)。 AI 助教 (Level 1)(給予題目):

學生(答對)。AI 助教 (Level 2 - 成功升級):

(注意:系統偵測答對,自動將題目從單純的加法,升級為乘除法。)
學生 (故意算錯)。AI 助教 (單次答錯 - 鷹架提示):

(注意:Level 沒有降,AI 維持原題目,但給予了除法概念的提示。)
學生 (徹底崩潰)。AI 助教 (觸發 downgrade_concept):

看到最後一句生活比喻時,我深切體會到動態自適應的價值。
死板的線上題庫在學生卡關時,只會機械式地遞送下一道或公布詳解,把不會的學生直接甩在車後。Adaptive Learning 的精髓不在於「題目有多難」,而在於系統知不知道什麼時候該停下腳步、蹲下身子,用學生聽得懂的語言重新拉他一把。
至此,我們終於補齊了 AI 助教系統中最核心的一塊認知拼圖:它不再只是死板的回話機器,而是具備記憶、懂進退、真正實踐「因材施教」的智能導師。
當學生卡關時,除了切換難度,還有一個更常發生的現實狀況:學生心態崩了。
「我好笨」、「我就是數學白癡」、「我不想學了」。
明天 Day 25,我們將探討 【邊界處理】如果學生不是不會,而是「真的很挫折」呢?——在不變成心理諮商工具的前提下,打造教育場景專屬的同理共情與學習動力修復機制!