iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
Build on Google AI

用 Google AI 打造「因材施教」的個人化 AI 虛擬助教系列 第 20 篇

Day 20|Prompt 疊代地獄——學生真正用過後,我才發現 AI 太愛講答案了

  • 分享至 

  • xImage
  •  

今天,我找了實際的學生(測試者)來實際操作,然後災難就發生了。

【今日開發目標】

修正 AI 助教在實際對話中「過度囉嗦、太快給出正確答案」的嚴重 Bug,透過 Prompt V2 疊代與回覆限制調整,讓 AI 重新找回「只給提示、不給答案」的蘇格拉底教學靈魂。

【真實踩坑紀錄】:為什麼本機測試好好的,真實學生一用就破功?

在開發階段,我身為開發者去測試 AI 助教時,心裡已經知道題目的正確答案,所以我跟 AI 的對話通常非常有默契:

  • 我(心知肚明地問):「請問這題迴圈該怎麼寫?」
  • AI(如預期引導):「你可以想想看,如果迴圈條件一直成立會發生什麼事?」

但真實學生的情境完全不是這樣!

當把網址丟給真實學生使用時,對話變成了這樣:

  • 學生:「這題我看不懂,直接告訴我答案是什麼?」
  • AI(竟然妥協了):「沒關係,這題的答案是 for i in range(10): print(i),因為……」

慘痛發現

  1. AI 太好說話:只要學生稍微表現出一點挫折感或直接要求答案,AI 就會瞬間放棄引導,變成傳統的「解答機器」。
  2. 回覆篇幅過長:AI 一口氣把觀念解釋完,還附帶範例程式碼,導致學生根本不用思考,直接複製貼上。
  3. 沒有「盲點追問」:AI 習慣一次講完所有東西,而不是「問一個問題,等學生回答,再決定下一個提示」。

【Google AI Studio 實作過程】:Prompt V1 vs. Prompt V2 調整

為了修正這個問題,我必須回到 Google AI Studio 重新調整 System Instruction。

1. 原本的 Prompt V1(容易破功)

你是一位高中程式設計的 AI 虛擬助教。
請使用蘇格拉底式引導教學,不要直接給學生答案,要透過問問題引導學生思考。

缺點:指令太抽象。當學生說「我不會」時,AI 的安全機制或語意理解會傾向「提供協助」,而「提供協助」在 Gemini 眼中經常等於「把解法寫出來」。

2. 改進後的 Prompt V2(嚴格限縮行為邊界)

我們必須在 System Instruction 中加入鐵律與互動原則:

你是一位 AI 虛擬助教。你的核心教學原則是「絕對不直接給予程式碼答案或完整解法」。

【嚴格行為規範】
1. 禁止直接給答案:無論學生如何要求(例如:「直接給我答案」、「我不想思考了」),你都絕對不能提供完整程式碼或直接解答。
2. 每次只問一個問題:你的回覆結尾必須是一個引導式的反問,等待學生回答後才能進行下一步。
3. 回覆長度限制:每次回覆請控制在 3 到 4 行以內,保持簡短,避免長篇大論。
4. 當學生連續答錯或表示崩潰時:不要給答案,而是將題目拆解成更小的步驟,用生活化比喻重新發問。

【核心 Code / Prompt 展示】:後端 API 結合最新 Prompt 與長度控制

除了在 AI Studio 調整,我們也在後端的 API 呼叫中確保每次對話都帶上這組嚴格的 System Instruction。

//server.js 程式碼片段
const { GoogleGenAI } = require('@google/genai');
const ai = new GoogleGenAI();

async function getTutorResponse(history, studentMessage){
  try {
    const response = await ai.models.generateContent({
      model: 'gemini-2.5-flash', // 確保使用目前高效穩定的模型
      contents: [...history, { role: 'user', parts: [{ text: studentMessage }] }],
      config: {
        systemInstruction: `
          你是一位AI 虛擬助教。
          核心原則:絕對不直接給答案、每次只問一個問題、回覆控制在3行內。
          引導學生思考,扮演真正的教學者而非解答機器。
        `,
        temperature: 0.4, // 降低隨機性,讓 AI 更嚴格遵守指令
        maxOutputTokens: 300, // 限制最大輸出長度,防止 AI 一次講太多
      }
    });

    return response.text;
  } catch (error) {
    console.error('Gemini API 呼叫失敗:', error);
    throw error;
  }
}

【未來教育反思】:為什麼「不給答案」比「給答案」更難?

經過這幾天的開發與測試,我深刻體會到:「讓 AI 學會閉嘴、學會不幫學生作弊」,比叫他做事難上十倍。

傳統的聊天機器人追求的是 Efficiency(效率)——以最快的速度幫使用者解決問題。 但 AI 助教 追求的是 Friction(有建設性的阻力)——刻意製造思考的門檻,讓學生在引導下一步步建立邏輯。如果 AI 太聰明、太熱心,反而剝奪了學生犯錯與思考的權利。

【明日預告】

修正好 Prompt 的壞脾氣後,我們的 AI 助教終於像個真正的老師了。接下來,我們將進入第 21 天:「模型選型——AI 助教到底需要速度還是推理能力?」,來實際評估不同 Gemini 模型在教育情境中的表現差異!


上一篇
Day 19:【真實測試】從本機到 Vercel:解決 Serverless 的 uploads/ 與 Git Commit 部署陷阱
下一篇
Day21|【動態模型備援】提升 AI 系統可用性:實作解決 503 過載問題
系列文
用 Google AI 打造「因材施教」的個人化 AI 虛擬助教 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言