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
Guide Students to explore independently through the four stages of the AIDA framework (Ask → Imagine → Design → Act). Integrate Bloom's cognitive tracking, Course material retrieval and learning alerts to deliver personalised learning support in large-class teaching.
The name of Aida (Learning Companion) comes from the acronyms of the four stages of the AIDA learning framework, and also stands for Agentic Intelligent Development Assistant. Unlike traditional question-and-answer AI assistants, Aida is a learning companion with autonomous action capability (Agentic) and can:
ClassroomGPT is a Course AI TA set up by the Instructor and answers questions according to the Instructor's system prompt. Aida is a platform-level learning companion with its own guiding framework (AIDA) and autonomous tool-calling capability, focusing on cultivating students' metacognition and self-directed learning ability.
The AIDA framework divides learning history into four stages, with each stage corresponding to different cognitive activities and guiding strategies:
| Stage | Cognitive Activity | Aida's guiding behaviours | Typical student language |
|---|---|---|---|
| Ask Question | Ask a question, express confusion, clarify needs | Help students turn vague confusion into specific questions | 'I don't understand...'; 'Why...?'; 'What does this mean?' |
| Imagine Conceive | Formulate hypotheses, make associations, compare possibilities | Encourage divergent thinking and provide multi-perspective clues | "I think it might be..." "Could it be..." |
| Design Plan | Organise ideas, list steps, build a framework | Review the completeness of the plan and ask about omitted aspects | "I plan to... first, then..." "The steps are..." |
| Act Practice | Execute the plan, produce outcomes, reflect on the results | Provides specific feedback to guide reflection and improvement | "I did... and the result was..." "Is that right?" |
Students may move from Design back to Ask (discovering a new question), or loop between Imagine and Design. Aida detects phase changes in real time and adjusts its guidance strategy, without forcing students to progress in order.
After each response, Aida analyses the most recent conversation content and uses a lightweight LLM (GPT-5-mini) to determine the student's current AIDA stage. The detection result must reach a confidence level of at least 60% before updating, to avoid frequent fluctuations.
Aida uses OpenAI function calling to implement agentic behaviour; all tool definitions are centralised in chat_tools.py(Shared the same tool registry with ClassroomGPT and UeduGPTs). When AI determines that additional information is needed, it will autonomously decide which tools to invoke. Currently there are 45 個工具,分為 9 群;下表於每次載入時直接讀取註冊表產生,與程式永遠一致。
Consolidate tool definitions in chat_tools.py, and dispatch via get_course_learning_tools() and execute_course_learning_function(). This allows Aida and ClassroomGPT to obtain new tools at the same time and avoids duplicate maintenance; the only difference is that Course context tools require classroom_id. If Aida is in free-exploration mode and is not bound to a Course, it will receive {"error": "Course not specified"}; this is expected behaviour.
讀取當前課程/頻道的資料;AIDA 自由探索未綁課程時回 {"error": "未指定課程"} 屬預期行為
| Tools | Purpose | Parameter |
|---|---|---|
get_course_overview |
查詢當前課程的總覽資訊,包括:課程基本資料(課名、學期、系所、授課教師、課號、修課期間)、課綱(教學目標與教學內容)、教材列表、即將到期的測驗、問卷、AI 互動作業,以及蘇格拉底對話與模擬辯論主題。 |
include_materials、include_deadlines、days_ahead
|
get_bloom_trend |
分析學生在當前課程中的 Bloom's Taxonomy 認知層次趨勢。 |
time_range
|
get_forum_stats |
查詢學生在當前課程討論區的發文統計,包括發文數、回覆數、獲得的按讚數、計分成績等。 | N/A |
get_worksheets |
查詢當前課程的學習單列表,包括學習單標題、截止時間、學生的作答狀態與成績。 | N/A |
get_class_recordings |
查詢當前課程的課堂影音紀錄(螢幕錄製與音訊錄製),列出已公開的影片與錄音。 | N/A |
get_podcasts |
查詢當前課程的 Podcast 節目列表,包括標題、時長、是否有個人化版本。 | N/A |
get_peer_comparison |
匿名比較學生在當前課程中的表現與全班同學的相對位置。 | N/A |
get_health_summary |
查詢學生的健康與生理數據摘要,包括心率、壓力指數、血氧、步數等。 |
days
|
search_channel_materials |
搜尋本頻道(教師教室或學生 mygpts)已上傳的課程教材內容(PDF / DOCX / PPTX / TXT),也涵蓋 Uedu K12 認證教材匯入此頻道的內容。 |
query、top_k
|
任何場景可用的計算、繪圖、生圖、課綱查詢與技能載入
| Tools | Purpose | Parameter |
|---|---|---|
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
| Tools | Purpose | Parameter |
|---|---|---|
list_uedu_team_papers |
查詢 Uedu 研究團隊已發表的學術論文清單(教學實踐研究成果),資料來源為 Uedu 平台官方維護的論文資料庫,內容真實可信。 |
year、category
|
list_uedu_team_conferences |
查詢 Uedu 學術交流的國際研討會清單。 | N/A |
list_uedu_universities |
查詢 Uedu 平台目前收錄的台灣大學清單。 |
region
|
get_uedu_platform_intro |
查詢 Uedu(優學院)平台本身的介紹資訊,包括願景、子系統、Educational Omics 框架、核心子系統等。 | N/A |
list_science_experiments |
查詢 Uedu Science 科學實驗室的互動模擬實驗清單(物理/化學/生物/地球科學,全部可在瀏覽器直接操作:調參數、看即時圖表、記錄匯出數據,實驗頁並有 AI 實驗助教陪同)。 |
subject、keyword
|
list_emi_teaching_methods |
查詢 Uedu「實證教學法文章系列」——每篇對應一份近年同儕審查研究與量化效果量(effect size),並附可在 Uedu 平台實作與驗證成效的具體建議。 |
keyword、group
|
跨域通識知識專區的文章、術語表與資料庫
| Tools | Purpose | Parameter |
|---|---|---|
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
|
中央氣象署與環境部公開資料(校園/縣市/全台排行)
| Tools | Purpose | Parameter |
|---|---|---|
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 優財經的台股/美股資料(公開資料,非投資建議)
| Tools | Purpose | Parameter |
|---|---|---|
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)的最新報價與漲跌幅。 | N/A |
get_tw_sector_performance |
取台股各產業當日平均漲跌幅、家數、上漲/下跌家數、總成交額。 |
min_companies_per_sector
|
銜接 advisor_match;Uedu 認證老師與 OpenAlex 外部論文嚴格區隔
| Tools | Purpose | Parameter |
|---|---|---|
list_advisor_research_topics |
列出 Uedu 平台上所有 opt-in 教師的熱門研究主題(依教師人數由高到低排序)。 | N/A |
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 平台依語意自動分群的研究領域地圖。 | N/A |
get_cluster_advisors |
取得某個語意研究群集底下的所有老師清單。 |
cluster_id
|
recommend_potential_advisors |
當學生表達想找專題指導老師、研究指導教授、論文指導老師、想加入某個研究領域的實驗室時使用。 |
interests、university、limit
|
跨對話追蹤的學習目標(建立需學生確認)
| Tools | Purpose | Parameter |
|---|---|---|
propose_learning_goal |
為學生建立一份「學習目標提案」,含分步驟計畫(例:12 週備考計畫)。 |
title、description、target_date、plan_steps
|
get_my_goals |
查詢學生的學習目標與進度(含待確認提案與進行中目標的計畫步驟勾稽狀態)。 | N/A |
update_goal_progress |
學生回報某個進行中目標的進展(如「大綱寫完了」「第三章讀完了」)時呼叫:勾稽已完成的計畫步驟、記錄進度摘要;學生明確說整個目標完成時可標記完成。 |
goal_id、progress_note、completed_step_indexes、mark_completed
|
搜尋學生本人跨課程的歷史對話
| Tools | Purpose | Parameter |
|---|---|---|
search_my_conversations |
搜尋學生過去的對話記錄。 |
query、course_name、time_range
|
list_my_courses |
列出學生已加入的所有課程名稱及其對話數量。 | N/A |
Aida is responding search_external_papers When displaying results, you must clearly state “these authors are not registered with Uedu”; absolutely do not label them as “supervising teacher”, “willing to accept new students” or “Uedu recommended”, and do not provide an “apply” entry. SeeResearch Field Map methodologyethics section.
All tools are configured with "strict": True and list all required fields in full, in line with OpenAI strict function calling requirements. The description of platform knowledge tools is specifically appended with the instruction “Never answer from memory or guesswork”, forcing the LLM to use tools rather than answer directly, and avoiding hallucinated team papers or conference information.
Each Student message is analysed in the background asynchronously by the Bloom's Taxonomy classifier, recording scores for six cognitive levels:
| Level | Description | Typical behaviour |
|---|---|---|
| Remember | Recall facts and basic concepts | Define, list, identify |
| Understand | Explain an idea or concept | Classify, describe and explain |
| Apply | Apply knowledge in new contexts | Execution, implementation, problem-solving |
| Analyze | Break down information and build connections | Compare, differentiate, organise |
| Evaluate | Assessment and decision-making | Critique, defend, evaluate |
| Create | Generate new ideas or works | Design, build, invent |
These data are also used by Aida's guidance strategy reference (via the classify_bloom_level tool), and are imported into the Teacher Console for class-level learning analytics.
Aida's core guiding principles:
Each time a new conversation is opened, Aida automatically generates the following based on the student's historical session summary and current course information:
At the end of the conversation, Aida automatically generates a learning summary, including: topics covered, progress through the AIDA stages, the highest Bloom cognitive level reached, and suggested directions to continue exploring next time.
Students can use Aida in two ways, and the Instructor does not need any extra setup:
On the existing course discussion page (/mygpts/), the header area has a [TA] [Aida] toggle button:
After switching, all existing features (image upload, voice input, doodling, file upload) can still be used. Conversation records are stored uniformly in the original Course log, distinguished by the aida_mode flag.
For pre-class revision, early-stage assignments, and exam preparation, it is recommended that students switch to Aida mode, allowing Aida to guide independent thinking. In scenarios that require instant answers, such as in-class questions, use TA mode.
Go to the standalone page via "Aida Learning Companion" in the global sidebar (/aida/):
| Uedu TA | Aida Learning Companion | |
|---|---|---|
| Location | Course AI TA (an extension of the Instructor) | Personal learning companion (support for students) |
| Behaviour control | Teacher System Prompt | AIDA framework (built into the platform) |
| Answer style | Answer the question directly | Socratic guidance without giving the answer directly |
| When to use | Do you have a specific question that needs answering? | Unsure whether you understand it, or want to explore it in depth |
| Cognitive Tracking | Bloom's analysis (background) | Bloom's analysis + AIDA stage tracking |
On the left sidebar of the Course Management page, click "Aida Learning Companion" to view usage data:
The warning system has two modes, analysed independently:
Each alert is labelled with a severity level (high/medium/low) and a source of judgement (AI detection/data analysis), and can be expanded to view the specific grounds and data behind the judgement.
Warnings are triggered in two complementary ways:
On Aida's standalone chat page, AI autonomously decides whether an alert needs to be triggered based on the context of the conversation. Trigger scenarios include:
The system calculates automatically based on objective data, and is suitable for TA mode and Aida mode:
| Warning type | Determination conditions | Severity |
|---|---|---|
| Bloom cognitive level too low | Recent conversation messages ≥ 5, with more than 80% staying at the remembering or understanding level | Medium–high |
| Low dialogue participation | At least 3 conversations, and in more than 80% of cases, each time leave after sending only 1-2 messages | Low |
Warnings are based on dialogue data and Bloom's analysis, and are not the same as a professional diagnosis of learning difficulties. After receiving a warning, the Instructor should combine it with their usual observations to make a comprehensive judgement, and proactively contact the Student in a caring manner. Each warning provides expandable grounds for the judgement, making it easier for the Instructor to understand the specific data before deciding.
Aida's conversation data may be used for educational research (subject to IRB review); potential research directions include:
| Omics dimension | Data provided by Aida |
|---|---|
| Cognomics (cognitive processes) | AIDA stage trajectory, Bloom's cognitive level temporal changes |
| Linguomics | Analysis of the linguistic complexity and question patterns in student messages |
| Sociomics | Human–computer interaction patterns, tool usage frequency, session duration |