Skip to content
Dustin's AI Lab
Go back

從課堂逐字稿整理出教學規格:一個 AI 起草、另一個 AI 挑錯,我只負責拍板

我的一對一課實際超時 51%。我回頭讀逐字稿找原因,讓一個 AI 寫上課規則、另一個 AI 挑錯,我只在清單上做決定。附做法、數字、我對 AI 說的原話與可貼用的提示詞。

目錄
  1. 原本的困擾
  2. 我希望的樣子,跟一路怎麼改的
  3. 實測
  4. 過程中我對 AI 說過的話
  5. 起手提示詞範本
  6. 附錄:技術做法

我平常有一對一的家教課。最近我請 AI 把我實際上怎麼上課整理成一份規則,以後備課或寫課後筆記就照著它走,我自己叫它教學規格。這份規格是直接從上課逐字稿抓出來的:一個 AI 回頭讀逐字稿、還原課堂上實際發生的事來起草,另一個 AI 專門抓毛病挑錯,我只負責在一張網頁清單上逐條做決定。定下來之後也不是就定案了,下一堂課遇到狀況,隨時可能推翻重寫。

這篇整理了我原本卡在哪、這份規格是怎麼改出來的、量到的數字,還有我平常對 AI 說的原話,文末也附了一段可以直接貼給 AI 的起手提示詞。想看流程圖和技術細節的話,可以直接跳到附錄:技術做法。

每週一封,只挑跟你工作有關的 AI 動態。免費訂閱電子報 →

原本的困擾

最明顯的問題是上課超時。我把 15 堂一對一課的逐字稿拉出來對時間:排定 1,320 分鐘,實際約 1,990 分鐘,多出 51%,約 11 小時沒有收費。回頭查原因,才發現上課的時間完全沒有被保護好:課前沒先確認學生準備好了沒、原本說好這堂要做的事被擠到一邊、我自己一示範就把時間塞滿、學生到底學會了沒有也沒人檢查,兩堂課之間我和學生更是完全沒有任何聯繫。

再來是規格寫了,課照舊在上。規格定下來一陣子之後,我發現自己實際的做法跟條文愈差愈遠。當時我是這樣跟 AI 說的(這裡說的 spec 就是這份規格):

自從定了 spec 以來飄移蠻多

拿出來一對照才發現,規格裡有些條文從來沒在課堂上發生過,但我真正一直在做的事,規格裡反倒沒寫。

如果直接叫 AI 寫規格,它寫出來的往往是一堂「理想中的課」,跟我實際上課完全對不上。只要少了「先回頭讀原始紀錄,看實際發生什麼」和「找另一個 AI 獨立挑錯」這兩步,AI 的初稿就會出問題。像有一次 AI 在整理附錄時,就悄悄漏掉了真實的步驟,甚至還編出一個根本不存在的指令。

最後是我自己的時間問題。我的時間該花在做決定,不該花在親手寫條文。AI 會把要我決定的事列成一張網頁清單,一列一件事,下面叫它審閱頁。但這張審閱頁常常愈長愈長,我好幾次嫌它太多、太長;上面列了幾項,就是我要花多少時間。

我希望的樣子,跟一路怎麼改的

我想要的分工其實很單純:從逐字稿抓重點、起草條文、挑錯抓毛病,全部交給 AI,而且要拆給不同的 AI 分頭做,不讓同一個 AI 自己寫自己審。我只出現在做決定那一步,打開一張網頁清單,一列做一個決定。

從逐字稿整理規格的七個步驟與各步驟由誰做:先量出問題、回逐字稿看實際發生什麼、起草、另一個 AI 挑錯、我做決定、寫成規則、下一堂課實際用,只有第五步由我做

幾個關鍵轉折,按日期是這樣:

8/29,先量。 我把 15 堂一對一課的逐字稿查了一遍,量出上面那個多出 51%。那時規格改到第三版,這一版就直接從這個數字開始寫,不從「理想的一堂課應該長怎樣」開始。

9/25,量測推翻了自己。 我拿 8 堂課的逐字稿,重算課堂時間花在哪裡。第一次算出「我自己把話題延伸出去」的時間占 34%,換了一個新的判斷標準重算,只剩 15.6%。第一次的結果被自己推翻,我就把新數字記進備課資料裡。

9/26,課後改一輪。 那天 AI 幫我寫課堂筆記,我動手改了六個地方,改完直接叫它回頭檢討:

回顧這次我改了哪裡、規格有沒有涵蓋、你會怎麼修

AI 列出一張修改建議表,我確認之後,它直接去改規格,也改了它平常寫筆記時照著走的那份操作說明。

10/8,改到第五版。 我覺得實際教法跟規格又差太多,乾脆同時開了 4 個 AI 分頭讀,每個人各自讀完一整份 11 到 16 萬字的逐字稿。負責統整的那個 AI 把每條結論對應的時間點挑出來,回原文逐句核對過才採用,還順手抓到其中一份課後檢討紀錄用的根本是放寬之前的舊標準。最後 AI 把要改的地方分成三類:直接拿掉的、用意對但寫法錯要改說法的、我一直在做但規格沒寫的。我一則訊息回「三類都同意」。

實測

這裡量的是規格長出來的過程。我自己有兩種一對一課:一種教人用 AI,一種教 GMAT(申請商學院要考的考試),兩邊各維護一份規格。在兩個月內,規格從第三版改到第五版,GMAT 課那份扎實做了兩輪決定。對齊的基準,全都是逐字稿裡實際發生的事。

兩組由逐字稿算出的數字:15 堂課排定 1,320 分鐘、實際約 1,990 分鐘,多出 51%;課堂密度初版判準 34%,換新判準重算後 15.6%

量測會推翻自己。 課堂時間那組數字,第一次算出 34%,換了新標準重算,只剩 15.6%。要是當初沒有回逐字稿重算,那個 34% 就直接寫進規格了。

獨立挑錯真的抓到錯。 GMAT 課那份規格的草稿,交給目前最強的 AI 模型審,一口氣挑出 17 條,最後 15 條採納、2 條部分採納,每一條怎麼處理、背後的原因是什麼,全部寫在規格的附錄裡。給學生看的說明文件那邊,我請 AI 每一輪扮演一位完全不懂技術的學生,從頭照著走一遍:光是第一輪就找出 25 個卡卡的地方,其中 7 個會讓學生完全做不下去。

多審幾輪不會變好,要改結構。 學生文件這樣審,每一輪都再冒出約 6 個新的卡死點,一路測到第五輪還是這樣。往深處查才發現有三個結構上的原因:同一件事分散在 5 份文件、2 種語言、12 處互相引用;負責審的 AI 每一輪都不記得上一輪;「新手會不會看不懂」這種問題本來就沒有盡頭。後來的解法是只留一份範本當正本,其他文件都從它自動產生,再加一道寫錯就擋下來的自動檢查;把約 100 條審查發現整理成一張每次都要重跑的檢查清單;同時定好明確的過關標準:卡死點為零就過,小問題不擋。結果到第七輪就收斂了。另一個例子是課後檢討紀錄:原本靠檔名分類,自動檢查漏掃了一些;改成看內容分類之後,檢查範圍從 11 份擴大到 21 份,當場發現這 21 份全都缺了三個必填項目。

我的時間花在做決定。 GMAT 課那份規格做了兩輪決定,審閱頁分別是 17 項和 11 項。第二輪沒有事先排,是從第一輪我補的意見延伸出來的:那些意見裡有四個問題要先查資料才能定,查完才變成第二輪的 11 項。其中一項是「課程開通延遲」,查完發現全是學生自己指定的開通日,當場直接結案。到了第五版那次,我只回了一則訊息就改完了。審閱頁第一版用了太多術語,我質問之後,AI 照白話的要求重寫了一次。

審閱頁示意:第一輪 17 項,我補的意見長出四個查證題,查完成為第二輪 11 項;每列選採納、採納但有例外或不採納,旁邊寫一句理由;不用我取捨的項目不進審閱頁

上圖依實際審閱頁格式重建。

自動檢查也要反過來測。 有一道檢查專門擋下「用了沒解釋過的內部代號」的內容,上線前我用七個例子反過來驗它:四種該擋的都擋了,三種該放的都放了。

規格上線之後,課有沒有比較準時、學生有沒有進步,老實說這兩件我都還沒開始量。目前真正量過的,純粹是規格跟我實際的做法對不對得上。

過程中我對 AI 說過的話

下面整理了幾句我在這個過程中對 AI 說過的原話。每段後面附一句,說明可以怎麼換成你的情境。

1. 不要在對話裡決定,改到頁面上

AI 原本在對話裡一次丟一長串選擇題給我,我直接回它(裁決頁就是上面說的審閱頁):

改裁決頁,我在裁決頁裡決定

換成你的情境:AI 丟給你一長串選擇題要你在對話裡回的時候,叫它改成一張頁面,一列一個決定,你在頁面上點。

2. 嫌太長就直接問

審閱頁又變長的時候,我這樣問:

要我裁的你確定要寫那麼多嗎

換成你的情境:審閱頁超過你願意看的長度,就這樣問。送上來的項目要先過濾,只留需要你判斷的。

3. 整批決定

就是上面 10/8 那次,AI 把改動分成三類,我回:

三類都同意

換成你的情境:請 AI 把改動分成幾類,每一類講清楚目的與理由。分得好,你一則訊息就能回完。

4. 順口補一句為什麼

有一項在討論我的備課時數該怎麼記,我做決定時順口補了一句:

標準就是要反映真實準備時間,方向是把準備時間縮短,不是少算

換成你的情境:做決定時多補一句理由。這句話後來決定了好幾條「備課時數怎麼記」的條文怎麼寫,理由比「選哪個」更能搬到下一個情境。

5. 改完之後叫它回顧

每次手動改完 AI 給的東西,我就直接丟這句:

回顧這次我改了哪裡、規格有沒有涵蓋、你會怎麼修

換成你的情境:你改完 AI 的成品,叫它把你改的地方對照現有規格,沒涵蓋的補進去。

6. 對自己的做法沒把握時直接問

拿不準做法的時候,我直接丟這句問它:

我的教學方法是不是還沒成形?

換成你的情境:把這個問題丟給 AI,請它對照你的紀錄回答。我得到的答案是教法本身穩定,變的是規格、課程方案和學生類型;真正還沒定的是「有沒有效」和「答應學生的事有沒有做到」,於是當場多了一份清單,專門記我答應學生什麼、做到了沒。

起手提示詞範本

想從自己的課堂紀錄長出規格,可以從這段開始。把括號換成你的情況,直接貼給讀得到你電腦檔案的 AI:

我想把我的課堂逐字稿整理成一份教學規格,也就是一份寫給 AI 看的上課規則,以後備課和寫課後筆記都要照著做。逐字稿放在(資料夾位置),請你先讀(幾場)逐字稿,幫我算出(我想改善的症狀,例如超時多少分鐘、說好的事沒做幾次),並從逐字稿還原我現在實際怎麼上課,起草一份規則。不確定的先標出來,需要我判斷的項目整理成一張清單。先給我一份計畫,我看過再開始。

附錄:技術做法

這一段是給想自己動手做一套的人看的,技術名詞、檔案格式和規則都放在這裡。

正文白話對應的技術名詞

整體流程:誰把什麼交給誰

一輪規格生成有六個角色:唯讀的逐字稿、抽取者(可以用便宜的模型)、起草者與攻擊者(各是高階模型)、主線(你的對話)、以及我。三個 AI 角色分三次派,不合併成「寫完順便自己檢查」。

一輪規格生成的時序圖:逐字稿被抽取者讀取,抽取檔附原話與位置交給主線,主線抽查時間戳後只把抽取檔交給起草者,草稿交給不帶前輪結論的攻擊者,攻擊者回報錯誤與無法判定處,主線把過濾後的審閱頁交給我,我回裁決與一句理由,主線落成機制並標第一次用

起草者只讀抽取結果,攻擊者另開,不帶前幾輪的結論。

逐字稿抽取

抽取用統一的問題集,每一項都要附逐字原話與位置。GMAT 課那份規格是請便宜的模型分 11 批,讀 47 位學員和 14 位諮詢對象的紀錄,產出 61 份抽取檔,再由高階模型只讀這些抽取檔寫規格。

抽取規格第一條這樣寫:每筆附 quote(20 到 120 字、逐字)與 pos(時間戳或行號)。主線收件後,用程式確認 quote 真的是原文的子字串。引句對不上的整筆作廢。最小版本如下:

import json, sys

def norm(s):
    return "".join(s.split())

def check(extract_path, transcript_path):
    transcript = norm(open(transcript_path, encoding="utf-8").read())
    items = json.load(open(extract_path, encoding="utf-8"))
    bad = [i for i in items if norm(i["quote"]) not in transcript]
    print(f"{len(items) - len(bad)} / {len(items)} quotes found in the transcript")
    for i in bad:
        print("NOT FOUND:", i["quote"][:40])

if __name__ == "__main__":
    check(sys.argv[1], sys.argv[2])

執行 python3 -I verify_quotes.py extract.json transcript.txt。這支腳本只驗引句在不在,驗不到「這句話有沒有被誤解」,所以主線還要抽時間戳回原文看上下文。第五版改版時就是這樣做,才抓到有份覆盤用的是放寬前的舊標準。

每一條規則至少要有兩個個案撐腰,所以規則表要多一欄「佐證個案數」,小於 2 的整列移到「待驗證」。

起草與攻擊

起草者只讀抽取檔。攻擊者另開,不帶前幾輪結論,也不看起草者的推理。攻擊者的指令要寫明不得假設結果正確、只回報錯誤與無法判定處、以及過關條件,否則它永遠找得到新問題。範例如下,括號留給你填:

你是攻擊者。以下是規格草稿和對應的逐字稿。
不得假設草稿是正確的。逐條回逐字稿核對。
只回報兩類:錯誤,以及你無法判定的地方。
過關條件:(例如:卡死點為零)。達到就停,次要問題不列。

另外,攻擊的角色可以換成讀者:請高階模型每輪扮演一位非技術學員,逐步走一遍學員文件。

審閱頁與裁決紀錄

不是每個項目都該送到我面前。送上來之前先過濾:

攻擊後留下的一個項目的判斷分支:只有一個個案撐腰就放進待驗證;要先查資料才能定就轉成查證題進下一輪;不需要我取捨就由 AI 處理並留紀錄;剩下的做成審閱頁一列,我裁決,理由原話寫在條文旁,標日期、誰定的、第一次用與回查日

審閱頁每一列是一個決定:附選項(採納、採納但有例外、不採納)和意見框,底部只列有例外的項目,一鍵複製貼回對話。我用一個叫 review-page 的 skill 產生這張頁面。裁決寫回規格時,裁決紀錄固定四欄:

裁決補充理由(原話)已做待辦
採納我順口補的那句改了哪一條要回查的事

每條修訂帶日期與「誰定的」。被推翻的舊條文標「作廢」,留在裁決紀錄,不靜默刪除。

規則的一生

新規則不直接當定案。標「第一次用、待觀察」,配一條有日期的回查待辦。回查時看實際有沒有在跑,跑不起來就收掉。偏離規格的做法先記成「已知變體」,第三次出現或驗證有效才升級。

一條規則的狀態圖:草稿規則裁決通過後成為第一次用待觀察並附回查日;回查有在跑則定案,跑不起來則收掉;已知變體在第三次出現或驗證有效後升為定案;定案被實際做法推翻後成為作廢,留在裁決紀錄

規則的強制度分三級:會擋寫入的閘門(hook、lint、由腳本擁有的欄位)、事後提醒、文字規則加定期回檢。能機器化的優先做成「寫錯當下擋下來」,閘門寫好之後要做反向測試,證明該擋的擋、該放的放。同一類問題第三次出現時,停下來問「是什麼結構讓它一直出現」,答案寫進提交訊息。

想自己做:最小版本

  1. 一個症狀,加一個算得出來的數字(超時幾分鐘、說好的事沒做幾次)。
  2. 一份抽取檔,每筆有 quote 和 pos,再用上面那支腳本驗過。
  3. 起草與攻擊各派一次,攻擊者不看前輪結論,指令裡寫明過關條件。
  4. 把需要你判斷的項目做成一頁,一列一個決定,你補的理由原話留在條文旁。
  5. 定案的規則標「第一次用」,訂一個回查日。

三個月一對一 AI 陪跑

照你工作寫的提示詞手冊、兩次一對一各 2 小時、三個月隨時私訊問,結案時你自己把流程重跑一次。

看方案內容

或先預約免費 15 分鐘診斷

Share this post on:
Previous Post
AI 的記憶檔越寫越多,我一次砍掉 101 份,再裝一道閘門
Next Post
GPT-6.1 Terra 實測:又快又省,但看字形和對話脈絡還是交給 Sonnet