Show a desktop notification when the AI TA finishes replying
Notify me when classmates post messages in the forum
Play an alert sound whenever there is a new notification
透過 AIDA 框架(Ask → Imagine → Design → Act)四階段引導學生自主探索。整合 Bloom's 認知追蹤、課程教材檢索與學習預警,實現大班教學中的個別化學習陪伴。
Aida(優學伴)的名稱來自 AIDA 學習框架的四個階段縮寫,同時也代表 Agentic Intelligent Development Assistant。不同於傳統的問答式 AI 助教,Aida 是一位具有自主行動能力(Agentic)的學習夥伴,能夠:
ClassroomGPT 是教師設定的課程 AI 助教,遵循教師的 system prompt 回答問題。Aida 是平台層級的學習引導夥伴,具有自己的引導框架(AIDA)和自主工具調用能力,專注於培養學生的後設認知與自主學習能力。
AIDA 框架將學習歷程分為四個階段,每個階段對應不同的認知活動與引導策略:
| 階段 | 認知活動 | Aida 的引導行為 | 典型學生語言 |
|---|---|---|---|
| Ask 提問 | 提出問題、表達困惑、釐清需求 | 幫助學生將模糊困惑轉化為具體問題 | 「我不懂...」「為什麼...」「這是什麼意思?」 |
| Imagine 構想 | 提出假設、聯想、比較可能性 | 鼓勵發散思考,提供多角度線索 | 「我覺得可能是...」「會不會是...」 |
| Design 規劃 | 組織想法、列出步驟、建立架構 | 檢視計畫完整性,提問遺漏面向 | 「我打算先...再...」「步驟是...」 |
| Act 實踐 | 執行計畫、產出成果、反思結果 | 提供具體回饋,引導反思與改進 | 「我做了...結果是...」「這樣對嗎?」 |
學生可能從 Design 回到 Ask(發現新問題),或在 Imagine 和 Design 之間反覆。Aida 會即時偵測階段變化並調整引導策略,不強制學生按順序前進。
Aida 在每次回應後分析最近的對話內容,使用輕量級 LLM(GPT-5-mini)判斷學生目前所處的 AIDA 階段。偵測結果需達到 60% 以上信心度才會更新,避免頻繁跳動。
Aida 採用 OpenAI function calling 實現 Agentic 行為,所有工具定義集中於 chat_tools.py(與 ClassroomGPT、UeduGPTs 共用同一份 tool registry)。當 AI 判斷需要額外資訊時,會自主決定調用哪些工具。目前共 45 個工具,分為 9 群;下表於每次載入時直接讀取註冊表產生,與程式永遠一致。
將工具定義集中於 chat_tools.py,透過 get_course_learning_tools() 與 execute_course_learning_function() 分派。這讓 Aida 與 ClassroomGPT 同時取得新工具,避免重複維護;唯一差異是課程情境工具需要 classroom_id,Aida 在自由探索模式下若未綁課程會收到 {"error": "未指定課程"},這是預期行為。
讀取當前課程/頻道的資料;AIDA 自由探索未綁課程時回 {"error": "未指定課程"} 屬預期行為
| 工具 | 用途 | 參數 |
|---|---|---|
get_course_overview |
查詢當前課程的總覽資訊,包括:課程基本資料(課名、學期、系所、授課教師、課號、修課期間)、課綱(教學目標與教學內容)、教材列表、即將到期的測驗、問卷、AI 互動作業,以及蘇格拉底對話與模擬辯論主題。 |
include_materials、include_deadlines、days_ahead
|
get_bloom_trend |
分析學生在當前課程中的 Bloom's Taxonomy 認知層次趨勢。 |
time_range
|
get_forum_stats |
查詢學生在當前課程討論區的發文統計,包括發文數、回覆數、獲得的按讚數、計分成績等。 | 無 |
get_worksheets |
查詢當前課程的學習單列表,包括學習單標題、截止時間、學生的作答狀態與成績。 | 無 |
get_class_recordings |
查詢當前課程的課堂影音紀錄(螢幕錄製與音訊錄製),列出已公開的影片與錄音。 | 無 |
get_podcasts |
查詢當前課程的 Podcast 節目列表,包括標題、時長、是否有個人化版本。 | 無 |
get_peer_comparison |
匿名比較學生在當前課程中的表現與全班同學的相對位置。 | 無 |
get_health_summary |
查詢學生的健康與生理數據摘要,包括心率、壓力指數、血氧、步數等。 |
days
|
search_channel_materials |
搜尋本頻道(教師教室或學生 mygpts)已上傳的課程教材內容(PDF / DOCX / PPTX / TXT),也涵蓋 Uedu K12 認證教材匯入此頻道的內容。 |
query、top_k
|
任何場景可用的計算、繪圖、生圖、課綱查詢與技能載入
| 工具 | 用途 | 參數 |
|---|---|---|
execute_code |
前端瀏覽器透過 Pyodide(WebAssembly)執行 Python 程式碼的程式教學與科學計算沙箱,回傳 stdout / stderr,並自動截獲 matplotlib figure 顯示為圖檔。 |
code、language
|
calculate_and_plot |
單一數學表達式的求值、求解、化簡、微分、積分(sympy 後端)。 |
expression、operation、x_range
|
generate_image |
MUST CALL when student explicitly asks to draw/generate any image. |
prompt、orientation
|
get_hs_curriculum |
查詢台灣 108 課綱(十二年國教)國中或高中的科目清單與學習內容。 |
school_level、subject、grade、area
|
load_skill |
載入一個已安裝技能(Skill)的完整操作指引。 |
skill_name
|
回答「Uedu 是什麼/有哪些論文」等問題;description 皆標示「切勿憑記憶回答」以防 hallucination
| 工具 | 用途 | 參數 |
|---|---|---|
list_uedu_team_papers |
查詢 Uedu 研究團隊已發表的學術論文清單(教學實踐研究成果),資料來源為 Uedu 平台官方維護的論文資料庫,內容真實可信。 |
year、category
|
list_uedu_team_conferences |
查詢 Uedu 學術交流的國際研討會清單。 | 無 |
list_uedu_universities |
查詢 Uedu 平台目前收錄的台灣大學清單。 |
region
|
get_uedu_platform_intro |
查詢 Uedu(優學院)平台本身的介紹資訊,包括願景、子系統、Educational Omics 框架、核心子系統等。 | 無 |
list_science_experiments |
查詢 Uedu Science 科學實驗室的互動模擬實驗清單(物理/化學/生物/地球科學,全部可在瀏覽器直接操作:調參數、看即時圖表、記錄匯出數據,實驗頁並有 AI 實驗助教陪同)。 |
subject、keyword
|
list_emi_teaching_methods |
查詢 Uedu「實證教學法文章系列」——每篇對應一份近年同儕審查研究與量化效果量(effect size),並附可在 Uedu 平台實作與驗證成效的具體建議。 |
keyword、group
|
跨域通識知識專區的文章、術語表與資料庫
| 工具 | 用途 | 參數 |
|---|---|---|
search_knowledge_zone |
搜尋 Uedu 跨域通識的知識專區文章。 |
zone、query、category
|
get_knowledge_article |
依文章 slug 取得某知識專區單篇文章的完整內容(回答後需要更詳細內文時用)。 |
zone、slug
|
lookup_knowledge_term |
查詢某知識專區的術語詞彙表(中英對照 + 白話定義 + 延伸文章)。 |
zone、query
|
query_knowledge_database |
查詢知識專區的資料庫。 |
zone、kind、query、filter
|
中央氣象署與環境部公開資料(校園/縣市/全台排行)
| 工具 | 用途 | 參數 |
|---|---|---|
get_school_environment |
查詢學校層級的環境資料:氣溫(含日均/最低/最高)、相對濕度、雨量、風速、UV、日照時數、PM2.5、PM10、O3、NO2、SO2、CO、AQI、CH4/NMHC/THC 碳氫類。 |
period、school_query
|
get_county_environment |
查詢台灣縣市層級的環境資料:氣溫、相對濕度、雨量、風速、PM2.5、PM10、O3、NO2、SO2、AQI。 |
county、period、start_date、end_date
|
get_taiwan_environment_ranking |
全台縣市排行——依指定指標(AQI、PM2.5、溫度、雨量等)+ 時間範圍,回傳排序後的縣市清單。 |
metric、period、order、top_k
|
Uedu 優財經的台股/美股資料(公開資料,非投資建議)
| 工具 | 用途 | 參數 |
|---|---|---|
search_stocks |
搜尋台股/美股/指數,依關鍵字(symbol、中文名、英文名)回傳最相符的標的清單。 |
query、market、limit
|
get_stock_overview |
查詢單一個股/指數的歷史走勢與最新報價。 |
market、symbol、lookback_days
|
get_top_movers_stocks |
取台股/美股當日漲跌幅排行(不含指數)。 |
market、direction、limit
|
get_foreign_institutional_ranking |
取台股三大法人買賣超排行。 |
type、direction、limit
|
get_market_indices_snapshot |
取台股加權指數、美股三大指數(道瓊、那斯達克、S&P 500)、費城半導體指數(^SOX)的最新報價與漲跌幅。 | 無 |
get_tw_sector_performance |
取台股各產業當日平均漲跌幅、家數、上漲/下跌家數、總成交額。 |
min_companies_per_sector
|
銜接 advisor_match;Uedu 認證老師與 OpenAlex 外部論文嚴格區隔
| 工具 | 用途 | 參數 |
|---|---|---|
list_advisor_research_topics |
列出 Uedu 平台上所有 opt-in 教師的熱門研究主題(依教師人數由高到低排序)。 | 無 |
find_advisors_by_topic |
依單一研究主題關鍵字,找出所有提到該主題的 opt-in 教師(不限制 5 位)。 |
topic、limit
|
search_advisor_papers |
跨所有 opt-in 教師的論文做關鍵字搜尋(標題與摘要)。 |
query、limit
|
search_external_papers |
搜尋 Uedu 之外的公開學術論文(OpenAlex 資料庫),預設限定亞洲五國的機構作者:台灣、新加坡、日本、韓國、中國(注意:台灣與中國為兩個獨立國家)。 |
query、countries、limit
|
list_research_clusters |
列出 Uedu 平台依語意自動分群的研究領域地圖。 | 無 |
get_cluster_advisors |
取得某個語意研究群集底下的所有老師清單。 |
cluster_id
|
recommend_potential_advisors |
當學生表達想找專題指導老師、研究指導教授、論文指導老師、想加入某個研究領域的實驗室時使用。 |
interests、university、limit
|
跨對話追蹤的學習目標(建立需學生確認)
| 工具 | 用途 | 參數 |
|---|---|---|
propose_learning_goal |
為學生建立一份「學習目標提案」,含分步驟計畫(例:12 週備考計畫)。 |
title、description、target_date、plan_steps
|
get_my_goals |
查詢學生的學習目標與進度(含待確認提案與進行中目標的計畫步驟勾稽狀態)。 | 無 |
update_goal_progress |
學生回報某個進行中目標的進展(如「大綱寫完了」「第三章讀完了」)時呼叫:勾稽已完成的計畫步驟、記錄進度摘要;學生明確說整個目標完成時可標記完成。 |
goal_id、progress_note、completed_step_indexes、mark_completed
|
搜尋學生本人跨課程的歷史對話
| 工具 | 用途 | 參數 |
|---|---|---|
search_my_conversations |
搜尋學生過去的對話記錄。 |
query、course_name、time_range
|
list_my_courses |
列出學生已加入的所有課程名稱及其對話數量。 | 無 |
Aida 在回應 search_external_papers 結果時必須明確說明「這些作者未在 Uedu 註冊」,絕對不可以標示「指導老師」「願意收新生」「Uedu 推薦」字眼,也不提供「申請」入口。詳見研究領域地圖方法論的倫理規範章節。
所有工具皆設 "strict": True 並完整列出 required 欄位,符合 OpenAI strict function calling 要求。平台知識工具的 description 特別加上「切勿憑記憶或推測回答」指示,強制 LLM 走工具而非直接回答,避免 hallucination 團隊論文或研討會資訊。
每則學生訊息都會由 Bloom's Taxonomy 分類器在背景非同步分析,記錄六個認知層次的分數:
| 層次 | 說明 | 典型行為 |
|---|---|---|
| Remember(記憶) | 回憶事實與基本概念 | 定義、列舉、辨識 |
| Understand(理解) | 解釋想法或概念 | 分類、描述、解釋 |
| Apply(應用) | 在新情境中使用知識 | 執行、實作、解題 |
| Analyze(分析) | 拆解資訊建立關聯 | 比較、區辨、組織 |
| Evaluate(評鑑) | 判斷與決策 | 批判、辯護、評估 |
| Create(創造) | 產出新的觀點或作品 | 設計、建構、發明 |
這些資料同時供 Aida 的引導策略參考(透過 classify_bloom_level 工具),也匯入教師儀表板做班級層級的學習分析。
Aida 的核心引導原則:
每次開啟新對話時,Aida 會根據學生的歷史 session 摘要與當前課程資訊,自動產生:
對話結束時,Aida 自動產生學習摘要,包含:涵蓋主題、AIDA 階段進展、最高 Bloom 認知層次、以及下次可繼續探索的方向建議。
學生有兩種方式使用 Aida,教師不需要額外設定:
在現有的課程對話頁面(/mygpts/),header 區域有 [助教] [Aida] 切換按鈕:
切換後,所有現有功能(圖片上傳、語音輸入、塗鴉、檔案上傳)都可以繼續使用。對話紀錄統一存在原有的課程 log 中,透過 aida_mode 標記區分。
在課前預習、作業初期、考前複習等場景,建議學生切換到 Aida 模式,讓 Aida 引導自主思考。在需要即時解答的場景(如上課提問),則使用助教模式。
從全域側邊欄的「Aida 優學伴」進入獨立頁面(/aida/):
| Uedu 助教 | Aida 優學伴 | |
|---|---|---|
| 定位 | 課程 AI 助教(教師的延伸) | 個人學習夥伴(學生的陪伴) |
| 行為控制 | 教師 System Prompt | AIDA 框架(平台內建) |
| 回答方式 | 直接回答問題 | 蘇格拉底式引導,不直接給答案 |
| 適用時機 | 有具體問題需要解答 | 不確定自己懂不懂、想深入探索 |
| 認知追蹤 | Bloom's 分析(背景) | Bloom's 分析 + AIDA 階段追蹤 |
教師在課程管理頁面左側 sidebar 點擊「Aida 優學伴」,可查看使用數據:
預警分為兩種模式,各自獨立分析:
每則預警都標示嚴重度(高/中/低)和判斷來源(AI 偵測/資料分析),並可展開查看具體的判斷依據與數據。
預警透過兩種互補的方式觸發:
在 Aida 獨立對話頁面中,AI 根據對話脈絡自主判斷是否需要觸發預警。觸發情境包含:
系統根據客觀資料自動計算,適用於助教模式和 Aida 模式:
| 預警類型 | 判斷條件 | 嚴重度 |
|---|---|---|
| Bloom 認知層次偏低 | 最近對話訊息 ≥ 5 則,且 80% 以上停留在記憶(remember)或理解(understand)層次 | 中~高 |
| 對話參與度低 | 至少 3 次對話,且 80% 以上每次只發 1-2 則訊息就離開 | 低 |
預警基於對話資料與 Bloom's 分析,不等同於專業的學習困難診斷。教師收到預警後,應結合平時觀察做綜合判斷,並以關懷的方式主動聯繫學生。每則預警都提供可展開的判斷依據,方便教師了解具體數據後再做決定。
Aida 的對話資料可供教育研究使用(需通過 IRB 審查),潛在研究方向包含:
| Omics 維度 | Aida 提供的資料 |
|---|---|
| Cognomics(認知歷程) | AIDA 階段軌跡、Bloom's 認知層次時序變化 |
| Linguomics(語言表達) | 學生訊息的語言複雜度、提問模式分析 |
| Sociomics(社會互動) | 人機互動模式、工具使用頻率、session 持續時間 |