浪花科技 Roamer Tech浪花科技 Roamer Tech
聊聊需求 ↗
roamer-tech/article.mdCUSTOM SYSTEMS + AI
~/blog/university-course-scheduling-ai-assistant-case-study.md
AI 自動化與智慧應用 ·

排課條件交給 AI 行得通嗎?元智大學終身教育部排課系統的 AI 排課助理案例

Eric,浪花科技創辦人 / AI 架構師
浪花科技創辦人 · AI 架構師
排課條件交給 AI 行得通嗎?元智大學終身教育部排課系統的 AI 排課助理案例
☰ 目錄 table-of-contents.md
font-size:

推廣教育的課表跟一般學校不一樣。十幾個班別同時開,授課老師多半是外聘的業界講師,每個人都帶著自己的條件:這位週三不行,那位只能排固定某一天,另一位下個月有三週要請假。班別本身也有規則,例如每七天至少要上四天課。這些條件原本散在 Excel 和承辦人的腦袋裡,排一次課要來回對好幾份表。

我們替元智大學終身教育部做的排課管理系統,把這些條件全部變成系統檢查得到的規則,再讓一個 AI 排課助理住進後台。承辦人用打字或語音交代需求,助理先把每一節課的衝突檢查結果列出來,承辦人說「確認」才真的寫入,排好的課表即時同步到前台公布。這篇拆解我們怎麼做,以及 AI 在裡面管到哪裡、不管到哪裡。

元智大學終身教育部排課管理系統首頁,顯示 17 個班別、20 位教師、第 1 到 9 節、每 7 天至少 4 天、AI 排課助理與衝突自動偵測
系統首頁:「查看課表」給老師與學員,「前往後台」給承辦人。

專案背景:一份 Excel 撐著十幾個班的課表

專案的起點是一份教師課表整理的 Excel。我們把它匯進資料庫,一口氣就是 5,671 節課,時間從 2025 年 4 月一路排到 2026 年 10 月,橫跨 17 個班別、267 個教學單元、6 間教室,每天第 1 到第 9 節。

Excel 記得住,但不會提醒。老師在兩個班的同一時段都被排了課、國定假日排了課、某班連續幾週上課天數不夠,全都要靠人眼一格一格看。資料量到這個程度,漏看是遲早的事。試算表和資料庫的差別,我們在 Excel 轉資料庫設計指南裡有完整的說明。

排課真正難的是條件,不是格子

把課填進格子很簡單,難的是每一格背後的條件。我們跟承辦單位把條件整理出來,依嚴重程度分成三級:

等級條件系統怎麼處理
阻擋老師同一時段在別班有課、教室同一時段被佔用、同一班同一節重複排課、老師的不可授課時段預設不寫入,承辦人明確強制才行
警告排在國定假日、超過老師每週天數或每日節數上限、七日內上課天數不足、單元順序顛倒、教室停用期間、單元時數超出規劃可以寫入,但會列出來提醒
提醒教室還沒指定列入待處理事項

老師的條件又有兩種寫法。一種是黑名單:某位老師每週三不行、某一天不行、某段日期請假,或只有某幾節不行。另一種是白名單:某位老師「只有這些日子可以排」。兩種在實務上都很常見,系統只支援其中一種的話,承辦人就得把另一種硬轉換過去,很容易出錯,所以兩種我們都做了。

先做規則引擎,再讓 AI 住進來

時間順序很重要。7 月底第一版上線時還沒有 AI,只有規則引擎和幾種排課工具:點格子新增的排課作業、先選老師再點日期的排課精靈、整期自動草排、批次搬移與取消。8 月 8 日,AI 排課助理才上線。

會這樣排順序,是因為我們想讓 AI 和人走同一道檢查。系統裡只有一個衝突檢查函式,手動新增、排課精靈、批次工具和 AI 助理全都呼叫它。AI 沒有一套自己的判斷標準,它看到的衝突,就是承辦人在畫面上會看到的衝突。

排課精靈的日期選擇畫面,月曆標出中秋節、教師節、國慶日等假日與老師已有課的日子,下方可輸入需要的天數,由演算法自動挑選日期
排課精靈:選好老師與單元後,可以自己點日期,也可以讓演算法自動挑,會避開請假、假日、衝堂與老師每週的天數上限。圖中老師姓名已模糊處理。

AI 排課助理怎麼工作

流程圖:老師不可授課日、只能排固定日、國定假日三種條件輸入 AI 排課助理,經衝突預檢分成可排、警告、阻擋,可排與警告交給承辦人確認後寫入課表並在前台公布,阻擋則略過不寫入

助理放在後台排課選單的第一項,只有具備排課權限的帳號能用,唯讀帳號看不到。承辦人可以打字,也可以按麥克風用語音講。它手上有 23 個工具,每個工具對應系統裡一個明確的動作:查班別與老師、查課表、看班別進度、查假日、掃某位老師還能排的日子、設定老師的黑名單或白名單、提出排課提案、寫入、取消、處理衝突。AI 透過工具操作系統的原理,可以參考 MCP、API、CLI 差在哪。

承辦單位最想交給 AI 的,正是開頭那些條件。以前哪位老師哪天不行、哪位老師只能排固定某一天,要一條一條記、一條一條對;現在可以把整串條件一次講給助理,它會寫成老師的不可授課或僅可授課設定,再用空檔掃描工具,排除週末、假日、老師的不可授課時段,以及老師在任何一班已經有的課,列出真正還能排的日子。

AI 排課助理對話畫面:詢問黃柏堯老師八月幾堂課,助理列出三個班別的上課日期與節數,合計 60 節,並提醒 8/3 與 8/6 部分課程還沒有指定教室
問「黃柏堯老師八月幾堂課」,助理查完課表回一張表,也順手提醒有幾節課還沒排教室。

寫入之前一定先預檢

排課寫入分成兩段。助理先呼叫提案工具,對每一個日期與節次做完整的衝突檢查,回報哪些可排、哪些有警告、哪些被擋,然後停下來問承辦人要不要確認。

以系統畫面上的範例來說:「黃健銘老師的溫室氣體盤查實務,幫我排 8/15、8/18 整天」。助理的提案回報 8/15 的 8 節都可以排;8/18 的 8 節全部被擋,因為老師那天在另一個班已經有課,這個班那天也已經排了別的單元。承辦人看完再決定怎麼處理,助理不會自己挑一天看起來可以的日子硬塞進去。

這個確認不只寫在提示詞裡。寫入工具在伺服器端會檢查確認旗標,沒有確認就直接回傳錯誤;被擋的節次也會被略過,除非承辦人明確要求強制。整批寫入包在同一個資料庫交易裡,中途失敗就全部還原,單次最多處理 100 節。我們在代理人護欄設計那篇講過同一個原則:該擋的東西要擋在程式裡,不能只靠模型自律。權限怎麼切,則可以參考企業級 AI Agent 權限控管。

大需求先拆成計畫

8 月 10 日那一輪改版,我們加上「先計畫再執行」。承辦人有時會一次貼上一大段需求,例如整學期好幾個班的排法,模型一口氣做下去,很容易在中途迷路。現在遇到很長、又還沒有計畫的需求,助理會先盤點現況,把需求拆成步驟存進對話,跟承辦人確認之後一次只做一步,每完成一步就記下結果。承辦人說「繼續」,它會先讀計畫,再做下一步。

工具也是在那一天從 12 個加到 17 個,後來陸續補到現在的 23 個。多出來的包括掃老師空檔、批次判斷衝突,以及拆解與追蹤計畫的幾個工具。

做不到就老實說

系統提示裡有一條我們特別堅持:工具回傳錯誤時,要照實告訴使用者,不可以假裝已經完成。逾時、連線失敗、推理輪數用完,都會留下一則明確的警示訊息。對排課這種直接牽動老師行程的系統,以為排好了其實沒有,是最糟的一種錯。

排好之後:前台即時公布

系統沒有另外的發布按鈕,後台一改,前台課表就同步更新。老師打開自己的月課表,可以列印成 PDF,也可以一鍵加入行事曆;用 Google 日曆或 Outlook 訂閱之後,課表有異動,行事曆也會定期跟著更新。另外還有全體課表與教室使用兩種檢視,給承辦人和場地管理看。

AI 管到哪裡、不管到哪裡

回到標題的問題:排課條件能不能交給 AI?我們的做法是條件交給規則引擎,溝通交給 AI,決定留給人。規則引擎把每一格的衝突算清楚;AI 負責把承辦人的口語指令翻成正確的查詢與提案,省掉在好幾個畫面之間切換的時間;最後按下確認的,永遠是承辦人。

AI 也不會替人把衝突「消掉」。把衝突標成可接受需要寫理由;遇到阻擋級的衝突,除非承辦人明確說要忽略,助理必須提出改期、換老師或換教室的解法,不能用一個標記打發過去。這種分工,和我們在企業 AI Agent 導入指南裡建議的起步方式一致:讓 AI 先接手查詢與提案,寫入權留在人手上。

這種做法適合誰

補習班、訓練中心、推廣教育、企業內訓,只要是「多位外聘講師、多個班、各自有條件」的排課,都適用。班別與老師越多、條件越雜,規則引擎省下的時間越明顯;AI 助理則讓不熟系統操作的承辦人,也能用口語完成原本要點好幾個畫面的事。教育單位還有哪些流程適合交給 AI,可以看教育機構的 AI 應用。

如果只有兩三個班、老師固定,Google 試算表加上共用行事曆就夠用,先別急著做系統。要不要做、做到哪裡,免費診斷時看過你們的排課方式再說,費用在診斷後依範圍報價;預算由哪些項目組成,可以先看客製化系統開發費用怎麼算。這類專案的做法,也整理在我們的客製化系統開發與 AI Agent 開發服務頁。

資料來源與查證日期

本文依系統實際功能與資料庫紀錄撰寫,數字查證於 2026 年 9 月 25 日:

延伸閱讀

如果你們的排課也卡在一堆條件和好幾份 Excel 之間,把目前的排課方式和班別規模寄到 [email protected],或直接預約免費診斷,我們先幫你判斷該從規則引擎還是從 AI 助理開始。更多交付案例在作品案例。

// FAQ

常見問題

AI 排課助理會不會自己把課排進去?
不會。排課寫入分兩段,助理先提出含衝突預檢的提案,承辦人明確說確認之後,才會真正寫入;沒有確認,伺服器端的寫入工具會直接拒絕。
老師的不可授課日和只能排的日子,要怎麼告訴系統?
可以在後台的教師設定裡填,也可以直接用對話交代給 AI 助理。系統支援兩種寫法:黑名單記錄哪天、哪段期間或哪幾節不行,白名單記錄只有哪些日子可以排。
遇到衝突時,AI 會怎麼處理?
阻擋級的衝突預設不寫入,助理要提出改期、換老師或換教室的解法;警告級的可以寫入但會列出提醒。要把衝突標成可接受,必須寫下理由,而且可以撤銷。
排好的課表,老師要去哪裡看?
前台的教師課表會即時同步,老師可以看月課表、列印成 PDF,也能用 Google 日曆或 Outlook 訂閱,課表有異動時行事曆會定期跟著更新。
#AI Agent #排課系統 #教育機構 #客製化系統 #AI 自動化 #案例研究
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
⑂ mainarticle.mdLn 1UTF-8