現場實作引導:從考古題下載到專案 skill
本頁是工作坊當天使用的精簡操作講義。請跟著講師的節奏逐步完成;每段提示詞都可直接複製貼到 Codex,也可依需求客製化調整,例如資料存放位置或檔名格式。
先說清楚:現場版與完整教材的角色不同
只完成關鍵操作、觀察結果、調整提示詞,並把已驗證的流程整理成可重複使用的 project-local skill。
保留給課前預習、課後複習與自主練習。內容更完整,也需要較多時間逐步閱讀與操作。
開場與準備
- 簡介 AI Agent 的發展以 Codex、Claude Code 與 Gemini 等工具為例,說明除了對話外,AI Agent 也能在指定的工作區內處理檔案、使用工具並回報結果。
- 準備 GitHub 帳號請尚未申請的學員先完成申請;稍後若要把教材發布到網路,會更方便。
- 回顧 Codex 專案確認知道如何建立專案、知道目前專案資料夾的位置,並讓 Codex 的工作範圍只限於這個專案。
練習一:先用自然語言提出需求
第一輪刻意不規定資料夾結構。目的是觀察:同一個需求,只要細節沒有說清楚,不同人的 Agent 可能會把檔案放在不同位置,或用不同方式命名。
請複製這段提示詞
幫我在目前的專案裡,從大考中心下載 115 學年度四技二專統一入學測驗電機與電子群資電類的專業科目(一)與專業科目(二)歷屆試題及答案,並放到這個專案資料夾裡。完成後告訴我下載的檔案位置,並列出檔名讓我檢查。
- Agent 把檔案放在哪一個資料夾?
- 題目與答案是否都有下載?
- 不同學員的資料夾名稱、檔名與位置是否一致?
練習二:補上必要規格,讓結果可管理
現在把「放在專案裡」改成可驗收的資料夾規格。之後即使下載多個年份,也能在同一個位置找到所有原始資料。
請複製這段提示詞
請在目前專案下載 114 學年度四技二專統一入學測驗電機與電子群資電類的專業科目(一)與專業科目(二)試題及答案。 請把每一個年份的原始下載資料放在專案根目錄的 raw 資料夾下: - 114 年的資料放在 raw/114/ - 115 年的資料放在 raw/115/ 每個年份資料夾中都要保留該年度的題目與答案。若目前已下載的 115 年資料不在 raw/115/,請整理到該位置,但不要刪除任何檔案。完成後列出 raw/114/ 與 raw/115/ 的檔案,讓我檢查。
- 是否出現
raw/114/與raw/115/? - 每個年份下是否都能找到題目與答案?
- Agent 是否有先說明找不到資料、需要確認來源,或需要你的授權?
練習三:把驗證過的流程存成 project-local skill
每次都重新說明下載、整理與檢查規則並不必要。當流程已經驗證符合需求,就讓 Agent 幫我們把它保存成只屬於目前專案的 skill。
請複製這段提示詞
請根據我們剛剛已確認的考古題下載與整理流程,在這個專案建立一個 project-local skill,名稱為 download-exam-pdf。 這個 skill 的預設行為是:把下載的原始題目與答案依年份放在 raw/<year>/。 使用時我應該可以指定: 1. 單一年份,或起訖年份範圍。 2. 考試類群,例如電機與電子群資電類。 3. 下載專業科目(一)、專業科目(二),或兩者都下載。 4. 原始資料的存放根目錄;若未指定,就使用目前專案的 raw/。 請在 skill 說明中寫清楚需要輸入的資訊、預設行為、檔案結構與完成後的檢查方式。建立後,告訴我 skill 的位置,並給我一個最簡短的使用範例。
- skill 是否建立在目前專案,而不是使用者帳號的全域設定中?
- 說明是否包含年份、類群、科目與儲存位置四種可調整項目?
- 預設輸出是否明確是
raw/<year>/?
練習四:把試卷切成可用的題庫資料
現在使用已下載的原始資料,將每一題轉成一張圖檔,並把答案整理成一個簡單的 JSON 資料庫。圖檔名稱就是題目的 key,JSON 以同一個 key 對應正確答案。這個步驟的輸出不再放在 raw/,而是固定放在 repo/<year>/。
請複製這段提示詞
請使用目前專案 raw/114/ 中的統測試題與答案,建立可供後續測驗使用的題庫資料。 請完成以下工作: 1. 將專業科目(一)與專業科目(二)的每一題切成一張獨立圖檔。 2. 為每一張圖檔建立穩定、不重複的檔名;檔名要能作為題目的 key。 3. 讀取答案資料,建立一個 keys.json,讓每一個圖檔 key 都能對應到正確答案。 4. 將完成的題庫放在 repo/114/;原始下載檔仍保留在 raw/114/,不要混在一起。 完成後列出 repo/114/ 的資料夾結構、題目圖檔數量,以及 keys.json 中的題數,讓我檢查兩者是否一致。
- 每張圖檔是否只代表一題?
- 圖檔名稱與
keys.json的 key 是否可一一對應? - 圖檔數量與答案資料的題數是否相同?
練習五:檢查與精修題目圖檔
切題完成不表示題庫已可使用。先挑幾題實際打開檢查,再請 Agent 針對常見問題逐一修正。不同試卷、不同工具或不同學員的結果可能不同,因此這是必須保留的人工驗收步驟。
圖檔可能多切到上一題或下一題的一部分內容。
題組共用的圖或表若只留在第一題,後續題目會缺少作答資訊。
舊試卷題號會干擾日後重新編排或隨機出卷,應從圖檔中移除。
請複製這段提示詞
請檢查 repo/114/ 中已切好的題目圖檔與 keys.json,找出並修正下列問題: 1. 每一張圖檔只保留該題的題幹、需要的圖表與選項;不要留下上一題或下一題的內容。 2. 若多題共用同一張圖或表,請讓每一題都保留作答所需的那張圖或表,不要只有第一題看得到。 3. 請移除圖檔中原始試卷的題號;保留題幹、圖表與選項即可。圖檔檔名與 keys.json 的 key 不要改掉。 修正後,請隨機列出幾個已檢查的題目,說明你修正了什麼;並再次確認圖檔數量與 keys.json 的題數一致。
- 抽看同一題組的每一題,是否都保有必要的共用圖表?
- 圖檔內是否只剩題目本身、圖表與選項,而沒有舊題號或相鄰題目?
- 清理後是否仍能以原圖檔 key 找到對應答案?
練習六:建立第二個 project-local skill,讓流程可組合
下載與切題清理是兩件不同的工作。現在把第二件事存成獨立 skill;它不限定統測來源,只要提供題目與答案的原始檔,就能整理成同樣的題庫格式。
請複製這段提示詞
請根據我們剛剛已確認的切題、答案對應、檢查與清理流程,在這個專案建立第二個 project-local skill,名稱為 prepare-question-bank。 這個 skill 的工作是:從一個已存在的原始試題與答案資料夾,建立可用的題庫;預設輸出位置為 repo/<year>/。 使用時我應該可以指定: 1. 原始試題與答案所在的資料夾。 2. 年份或題庫名稱。 3. 輸出的題庫根目錄;若未指定,就使用目前專案的 repo/。 skill 說明必須包含:逐題切圖、以圖檔名稱對應 keys.json、共用圖表的處理、移除舊題號、人工抽查與圖檔數量/答案數量的檢查。它不能假設原始資料一定來自統測,也要能用於學測或書商提供的試卷。建立後告訴我 skill 的位置,並給我一個最簡短的使用範例。
為什麼要分成兩個 skill?
| skill | 專責工作 | 可重複使用的情境 |
|---|---|---|
download-exam-pdf | 找到、下載並按年份整理公開試題與答案。 | 下載統測不同年份或不同類群的資料。 |
prepare-question-bank | 把已存在的試題與答案切題、清理並建立 JSON 對應。 | 統測、學測、書商試卷,或任何已放進專案的題目來源。 |
用一段測試提示詞看見 pipeline
請使用目前專案已建立的 skill,先下載 115 學年度電機與電子群資電類的專業科目(一)與專業科目(二)試題與答案到 raw/115/,再把這些原始資料整理成 repo/115/ 的題庫。完成後分別報告下載階段與題庫整理階段的結果,並讓我檢查每個資料夾的位置與檔案數量。
練習七:先做出第一版靜態練習網頁
題庫已經在 repo/<year>/,現在請 Agent 用它產生學生可直接開啟的靜態練習網頁。第一版先聚焦在最小可行成果:隨機出題、學生作答、立即批改,以及顯示每題對錯。
請複製這段提示詞
請使用目前專案 repo/114/ 中已整理好的題目圖檔與 keys.json,建立一個給學生使用的簡易靜態練習網頁。 每次開始練習時,請從題庫隨機抽出 10 題,顯示題目並讓學生選擇答案。學生送出後,請立即批改,顯示答對幾題、答錯幾題,以及每一題是答對還是答錯。 請把網頁放在目前專案的 app/ 資料夾,並告訴我完成後要開啟哪一個 HTML 檔案。這是第一版,先做出可直接開啟、可實際作答與批改的成果即可。
- 雙擊 HTML 檔案後,是否不需要啟動伺服器就能開始練習?
- 重新開始後,抽出的題目是否可能改變?
- 送出後是否同時看得到總分與每一題的對錯?
練習八:補上完整規格,做成可攜式練習單元
第二輪把「能用」提升為「可分享」。將本次需要的題目、答案與程式全部包進單一 HTML 檔,檔案被複製或部署後便不會因為相對路徑或遺漏資料夾而失效。
請複製這段提示詞
請以 repo/114/ 的題庫建立完整的學生自主練習單元,輸出為 dist/practice-114.html。 請將題目圖檔、答案與網頁程式全部包進單一、可直接開啟的靜態 HTML;不可依賴外部檔案、相對路徑或網路連線。 起始畫面讓學生選擇練習題數;每回合從題庫隨機且不重複地抽題作答。送出後顯示答對與答錯總數,以及每題的學生答案、正確答案與對錯。提供重新開始功能,並讓學生下載一份自包含的 HTML 複習紀錄,內含本次題目、學生答案、正確答案與每題對錯,可離線開啟複習。
- 將
dist/practice-114.html單獨複製到其他資料夾後,是否仍能正常顯示題目與批改? - 同一回合中是否沒有重複題目?
- 下載的複習紀錄是否包含本次題目、學生答案、正確答案與對錯?
練習九:把練習網頁流程存成第三個 skill
當「題庫資料夾 → 單一 HTML 練習網頁」已確認可用,就把這段流程也保存下來。未來只要換一個年份或換一個題庫,仍能套用同一個產生流程。
請複製這段提示詞
請根據已確認的題庫到練習網頁流程,在目前專案建立第三個 project-local skill,名稱為 build-static-practice-page。 此 skill 讀取 repo/<year>/ 題庫,產生單一、可直接開啟的靜態 HTML 練習網頁,預設輸出至 ./dist/。 使用時可指定: 1. 題庫來源,例如 repo/114/。 2. 輸出位置,預設為 ./dist/。
download-exam-pdf 負責取得資料,prepare-question-bank 負責整理可用題庫,build-static-practice-page 負責把題庫變成學生可使用的練習單元。每一段都能單獨重用,也能在需要時依序串接。練習十:部署與分享
靜態 HTML 檔可先在電腦上直接開啟;若要讓學生透過網址使用,則可部署到 GitHub Pages。若帳號已開通 ChatGPT Sites,也可以請 Codex 建立並部署一個 Site。使用 GitHub Pages 時,請直接說清楚完整網址結構:{account}.github.io/{repository}/{root}/{exam-name}。
選項 A:部署到 GitHub Pages
請將目前專案的 app/practice-114.html 部署到我的 GitHub Pages。 https://abc123.github.io/2026fall/digi101/formative01/
選項 B:部署到 ChatGPT Sites
@Sites 請將目前專案的 app/practice-114.html 部署到我的 ChatGPT Site。
- 網址開啟後,題目圖檔是否仍正常顯示?
- 練習、批改、重新開始與下載複習紀錄是否都實際可用?
- 分享範圍是否符合預期,不要誤把只供課堂使用的內容公開給不該看到的人?
選做:用模組化 skill 建立可重複執行的本機測驗產生 APP
若時間足夠,最後會使用講師準備好的 skill 套件,建立一個之後不必再依賴 AI 的本機 Python APP。它不是只產生一份靜態測驗頁面,而是一個可反覆加入新題庫、再產生新測驗頁面的工具。
從本場講義下載 module4-agents-skills.tar,解壓縮後放進目前專案的 .agents/skills/。
download-exam-pdf、slice-exam-pdf、clean-exam-question-images 與 build-quiz-app。
請複製這段提示詞
請使用目前專案的 $build-quiz-app skill,參考 repo/114/ 的題庫,建立一個可重複產生靜態測驗頁面的本機 Python APP,放在 ./app/。再套用 repo/114/ 題庫生成一份靜態測驗頁面,放在 ./app/dist/。
app/config.json,再執行 python3 app/build_bundle.py,即可由本機 Python 直接產生新的靜態測驗 HTML。app/config.json是否列出題庫設定?- 是否能執行
build_bundle.py並在app/dist/看到新測驗頁面? - 新增另一個題庫設定後,是否不需要再次要求 AI 便能重新產生測驗頁面?