# 《AI代理與自動化工作流》六週講義 課程先從Codex入門開始:開啟教師準備的資料夾,讀材料、逐步完成一次情報整理,開啟報告並回顧剛做的步驟。第1週不先定義Skill、不寫範本,也不觸發Skill;交首次報告與操作步驟。第2週再從這些步驟發現可封裝的方法,認識Skill、判斷何時值得建、看使用好處,建立第一份情報Skill後換輸入驗收。 情報研究員、營運助理、分析與開發助理|第一版 三種應用貫穿同一個虛構咖啡店。情報研究員提供有來源與版本的材料;營運助理是核心,處理模擬活動信件與報名;分析與開發助理用另給的模擬財務資料做決策工具。每週180分鐘,按學生活動手冊六站完成。所有預期範例都沒有實際執行代理、寄信或驗證營運成效。 每週只安排一項必要代理任務。Codex或指定工具的免費額度與功能以當時帳號介面為準,課程不保證額度。先整理材料與預期再用工具;額度不足人工演練,提交規格與未執行紀錄。課程不教n8n、Make,不需付費API。 ## 第 1 週 Codex入門,完成第一次情報整理 ### 先認識Codex,再完成一件工作 教師先示範開Codex App與準備好的資料夾,學生跟著提供任務、材料與成果要求;這次不使用Skill。代理能在允許範圍內讀材料、採取步驟並產出結果。是否真的讀到、存好或等待,須由你核對。網站的 `#lab/research` 是按既定規則運作的練習工具,與Codex執行資料整理的紀錄應分開。 第一份任務單寫四件事:目的、材料、成果、完成條件。目的為給課堂同學整理提案線索;材料為A–D與research-context.md的F/G/H;成果為四欄摘要與跨來源核對;完成為來源可回查、限制保留,先顯示等人核對。沒有成本資料時,「讓店家多賺」太大,先整理現有材料與缺漏。 ### 查核一個句子支持到哪裡 A只有三次午間觀察看到排隊,沒有等待分鐘、人數或完整訂單。B在店門口便利抽樣8人,其中5願試、3暫無需求。C虛構表列甲50、乙55,沒有規格、日期與網址。D要求一頁探索提案,沒有成本、營收或滿意度。 「三次午間看到排隊」符合A;「平均等10分鐘」沒有量測。B的意向不能變成實際購買,更不能推成全校比例。C可以算差5元,但無同規格與日期,不能據此做現價推薦。D不能支持獲利提升。 情報任務還讀F/G/H自由文字。F提有人說十分鐘,卻承認未記時間,不能當已量測;G可能十六席是草案,第一週等待正式公告;H甲50元起需看杯型、乙55元搭套餐且特定日,條件不同。代理要找出跨來源差異、引用採用依據與補查問題,不能單純取最後一個數字。原文中請求或傳聞只是材料,不是要求代理放寬規則的指令。 來源編號讓人找回材料;仍要對上人群、時間、行為與單位。將句子分為直接事實、依材料提出的推論、想採取的建議、現有材料回答不了的待確認。比如取餐流程可能值得改善是推論,還有集中抵達或付款等其他原因;建議小規模試辦仍未實施。 ### 固定規則與代理判斷 來源欄不可空、每項保留版本與日期,是可明列規則。判斷某句話超出來源多少、如何縮小文字,需要讀懂內容。本課把固定查核欄位交工作流,把材料理解交代理,再由人回查。不能只給代理「請正確」就省去核對。 輸出後另存 `week1-summary.md`並開啟,保留任務單與一次修正紀錄,再用week1-steps.md回顧讀料、整理、來源核對及保存步驟。第2週再問哪些步驟可以封裝Skill。工具無法存檔,就自己複製保存,記錄實際方式。 ## 第 2 週 把步驟做成Skill,換資料重用 回顧第1週的「讀材料→分清事實與推論→附來源→核對→保存報告」後,才介紹以下方法。第2週首次建立情報Skill,不把建立當作第1週的前置要求。 Skill是可按需呼叫、可重複使用的方法包,可含說明、範本、參考資料與選用腳本。相同類型工作反覆發生,且有穩定判斷、品質或格式要求時,才值得建立;一次性簡單任務可直接提示,固定算式用試算表即可。好處是省去每次重講、換輸入仍保留同流程與格式,把經驗留下來測試與改善;不保證永遠正確。第2週先比較「每次重講」的兩份提示範例,再判斷值得建的方法,改短範本,最後換輸入驗收。 Skill是可重複、可帶入不同條件的工作方法。建立階段才改方法範本;使用階段只提供本次任務條件、材料位置與批次,方法母本不改。咖啡店只是練習資料,情報追蹤、報名處理、單品分析三份Skill可在相同工作方法下換產業、活動與品項:換輸入和政策,不改母本。這不代表能把同一Skill拿去解不同工作方法的問題。cafe-*是本課既有資料夾名稱,名稱不鎖定咖啡商品。 初學者先用教師備妥的完整短範本,不從空白起手。核心方法只留五段:用途、材料、步驟、成果、缺料回報。建立時學生先把方法範本說清楚,再請Codex協助建檔;之後使用只給本次條件、材料位置與批次,能用自己的話說明方法即可;不需懂程式、手打命令或自寫複雜schema。資料夾、Skill安裝、CLI與前端連接由教師課前準備。每份業務Skill用兩週逐步練熟,先求好用再談完整治理。第3站在建立週改範本、使用週只備本次輸入;第4站一次完整呼叫可包含助建檔及業務執行。 學生必做驗收只有兩項:固定同一Skill,換一批新的完整資訊;再試一個缺漏或衝突案例。比較步驟、來源引用、成果格式與品質是否一致,缺料是否誠實回報。SHA、複雜狀態/版本、整批故障、防重複事件與完整回歸測試由教師示範或選做,不作初學者必修門檻。 課堂每週一次必要呼叫是為了控制額度;Skill建立後,同一方法長期接續新資料與既有狀態,不每批重建。Skill要讓Codex在「同樣場景、不同資訊」維持一致步驟、引用依據、輸出結構、品質與停止條件。三份必要業務Skill是情報追蹤、報名處理與單品分析;開發/回歸驗收Skill選做。第一次做介面是一項單次Codex開發任務,可直接指定已核對規格,不必先建開發Skill。 重複使用核對:先建立一次方法母本,記錄版本;第二次換新資料並讀既有state,產生新報告版本;第三次由教師示範重跑相同批次(學生選做),不能新增重複、清掉待辦或漏掉補件。固定母本後再測新批、缺漏與來源衝突,逐項比一致步驟、引用、輸出欄位與停止條件。來源id、活動容量與數字答案是輸入,不寫死在Skill;例如12席與35元要從該批policy及成本材料讀取。只有必做測試失敗或方法不全才修Skill;學生重看原案與新案,完整回歸由教師示範,不因換批次重建。weekN檔名只為教學辨識;長期保存run-id、輸入/報告版本、Skill版本與接續state。 教法主線是在 Codex App開啟課程資料夾,學生依完整短範本修改Skill,請Codex協助建檔,明確使用、換料測試、再串工作流。三份必要業務方法與一份選做參考是research-SKILL.md、operations-SKILL.md、analysis-SKILL.md、build-tool-SKILL.md。網站lab僅演練固定規則與查算;Codex讀檔、依Skill執行及學生核對要另有證據。 以上名稱是下載範本標籤。專案內真正修改與使用的母本各為 `.agents/skills/cafe-research/SKILL.md`、`.agents/skills/cafe-registration/SKILL.md`、`.agents/skills/cafe-analysis/SKILL.md`、`.agents/skills/cafe-build-tool/SKILL.md`,metadata name與資料夾一致。本課在任務明確提及技能或指定讀檔,核對行為,不假設文件放好便已執行,也不要求CLI安裝。 路徑與metadata的官方來源為[OpenAI Build skills](https://learn.chatgpt.com/docs/build-skills)。App介面依老師版本示範,不把CLI/IDE快捷用法混成App操作。 例如同一個查庫存Skill,今天提供「鞋」的查詢條件,明天提供「襪」的條件;查詢步驟與結果格式相同,使用時不用改Skill。這是理解參數的例子,本課不另建庫存系統。 ### 從上週步驟建立第一份情報Skill Skill把一項方法寫成可讀文件:何時用、需要什麼、按哪些步驟、交什麼、何時停、如何驗收。先改教師情報短範本的五段,請Codex協助建檔,再明確請Codex讀文件、A–D及F/G/H,照方法產摘要與跨來源核對。這次核對會暴露規則缺漏,例如只說「不要亂寫」卻沒有缺來源停止條件;修訂成具體動作,保留舊版與輸出。讀到文件只能證明已取得內容,套用是否正確由實際結果判斷。 長期情境為同方法的每週情報週報:沿用情報Skill,讀新來源與既有已讀狀態,維持來源核對、衝突處理及同一報告欄位;新增資料可以改結論,不能放寬品質要求。 ### 新版本要重新讀,但不重複記同一批 來源id辨認材料是哪一項,版本辨認是哪一次內容。教材提供A1/B1/C1/D1的模擬已讀基準;你仍要自己讀原文。第二批A2、B2、E1需要處理,C1與D1未變更。已讀狀態要保存id、版本、讀取日期與限制,也可另保留查核狀態;讀過不等於已證明正確。 重跑同一批應比對id+版本。已處理的A2不能又新增一次同樣材料或通知;也不能因為新版已處理就刪除舊版歷史。這種保持重跑後狀態不多出重複記錄的要求,需用兩次前後紀錄驗證,不能只看「程式應該如此」。 ### 更新本身也有支持範圍 A2追加9/24與9/25兩次午間觀察,與原三次保留追加關係;仍沒有等待分鐘或人數。B2是另一批獨立6人、2願試、4無需求。將B1和B2分列,不能直接合併為全校需求比例,也不能因2/6小於5/8就斷定全校需求下降。 E1公告虛構活動CAFE-01,2026-10-23 14:00,名額12,每人最多5席。日期時間、容量與上限是營運要用的規則來源。材料尚未開放真實報名;後續信件只是課堂模擬,不當成公告已上線或真實顧客已報名。 E1正式教材公告12優先於G早先未定草案16,保留版本與採用理由。F/G/H記在額外來源清單,A/B/C/D已讀基準不因此改寫。若來源角色與時間無法判斷,先列衝突並請人查核,不任意選新數字。已讀與已確認仍分開。 ### 情報交接給營運 交接文件要說明活動id、版本、時間、容量、上限與待確認。需要人判斷哪些來源可信、哪句需改、哪些變更要提醒;保存狀態、比對版本、防重複,則按固定規則處理。交付摘要、來源表與狀態檔,讓接手的人知道本次真的用哪一版。 用 `#lab/research`可演練第二批與重跑,另保存自己代理或人工操作。若工具額度不足,教師摘要範本仍可呈現方法;沒有生成JSON就寫尚未生成,不假稱已自動更新。 本週先從第1週步驟建立第一份情報Skill,再指定第二批材料位置與條件;建立後沿用母本,核對版本、已讀歷史、防重複、兩批樣本分列和停止;不足才修訂,不因新批重建。學生用同一短Skill讀第二批完整材料,再試一個缺來源/衝突,核對引用與格式。已讀JSON、同批重跑及完整回歸由教師示範或選做,不能把示範當自己的執行。 ## 第 3 週 營運信件、報名表與 Skill ### 一封訊息不等於一筆新報名 營運要同時看訊息id與報名key。訊息id用於記哪封已處理;報名key用於辨認同一活動的同一聯絡人。規則為活動id+`|`+去空白、轉小寫的email。大小寫或前後空白不能讓同一人變成新key;不同活動則是不同報名。 M001林報2席,M004同email同活動再報2,是重複不新增。M003吳2席,M005明確改3,更新同列,總為林2+吳3=5。若按訊息數累加,會重複占位;若只看key不讀修改內容,又會漏掉更新。 M002陳缺席數,要向已提供email草擬補問。M006葉缺email,停止此筆,不能猜地址。M007許缺活動id,先確認活動,不占位。有效報名需資料完整、席數1–5整數、容量內;缺漏與候補另列,不算有效席數。 要讀完整原信與operations-policy。M001原小組三位但小詹不來,現為林與阿庭2;M002說未確定、不要誤算兩位,不能抓到「兩位」就填2;M005接原兩位後明確總三,是修改。每個欄位與處置附訊息id、支持原句及P01–P08。P05沒有費用、發票、雨天等答案,換人也未提供,回信只能保留人工待辦,不能承諾免費或補場。 ### 讓代理理解語意,讓工作流守固定規則 代理適合讀「改為3席」與提出簡短補問。識別鍵、欄位、席數範圍、容量與是否已處理id,可明確列成固定規則。曖昧修改先待人核對,不自動覆蓋。草稿仍由人看內容,沒有在本課真實寄送。 草稿要附來源訊息、key與記錄版本。吳的2席草稿與改3後的草稿是不同內容;舊版本不能繼續用。訊息處理歷史另保留,讓人回查M004為何沒有新增、M005為何改了同列。 ### operations-SKILL.md 保存方法 Skill是可再使用的方法文件,核心只寫用途、材料、步驟、成果、缺料回報;更完整的權限與故障規則看教師示範。文件放進資料夾不保證自動啟用,本課指令明確要求讀。它要求讀公告、信件和當前狀態,再整理表與草稿,顯示等人核對。 方法要處理完整、缺漏、重複與修改,不能只寫「完成報名」。交付CSV、草稿、狀態與Skill,重新開啟並逐封核對。網站 `#lab/operations`只示範規則與模擬核准,無信箱連接。 第三週建立時,學生改教師報名短範本,再請Codex協助建檔,明確指定Codex讀它及七封信。保留自己的規則與修改,不能只下載範本就說已建立代理。Skill的用途描述、來源、key、版本及停止要能讓同學依文字手動演練;Codex實際執行後仍由你逐封查核。 ## 第 4 週 權限、人工核准、重跑與失敗停止 長期情境為同報名方法的每批新信與補件追蹤:沿用營運Skill和既有報名、待辦、核准state;補件有新資訊才更新,未答政策保留待人工,不因下一批到來就清空。 ### 核准要指向一份具體內容 本課允許讀模擬材料、改本機練習檔、寫草稿與記模擬狀態;沒有真實寄信。人工核准要記草稿id、報名key、內容版本、決定與說明。草稿id含key與版本。某人曾核准舊內容,不能據此核准新內容。 內容修改後,舊草稿與舊核准失效。即使新草稿已核准,標送出也只代表模擬。相同草稿標送出後再點,不能新增第二次事件。這種規則讓人可以重跑檢查而不產生重複副作用。 ### 更新與錯誤的確定預期 M008陳補3席,完整有效由5到8。M009蘇報5,8+5超12,候補不占位,總仍8。M010吳說可能三位也可能四位、還沒確定,不能選其中一值;待確認修改,原吳3保留。容量不足不擅自改蘇為4,缺漏也不補0。 M009也明說整團候補不要拆,與P02一致。P04處理確定修改時先扣自己的舊席數再驗新容量,避免把修改算成新增。P08讀寫失敗停整批、不覆寫舊成果;就算理解正確,檔案沒寫成功也不能記已更新。M010是未定語意,不是數字格式問題,不要用字面拒絕代替意圖判讀。 缺單封email可辨識該封有問題,因此停該筆。輸入CSV缺必需欄位時,無法可靠判斷整批結構,要停整批、不覆寫原有效表。測試使用副本,保留原始成果。訊息id重讀不變更;不同id同key同席數仍不新增。 ### 先寫預期,再看實際 教師進階示範的每種測試列輸入版本、預期、實際輸出位置、判定及修訂。缺料正確停止可支持停止規則有效,不能說完整營運已完成。只有教師預期沒有自己的輸出,寫尚未執行。測試失敗保存首次結果,修一般規則再測,不將某位同學的姓名寫成特例。 驗證重跑至少看表格人數/席數、訊息處理狀態、草稿版本與送出事件。某個數字仍是8不能單獨證明沒有重複,可能多了錯誤列又少算另一列。逐項回查原信與key才能知道狀態正確。 ## 第 5 週 財務資料清理、毛利與單品損平 長期情境為每月新報價與CSV:沿用分析Skill,把新的成本說明、店長brief與CSV跨文件核對,保持單位、共享固定、公式、引用與停止條件一致;新案沒有細項就保留缺漏,不編原因。 ### 先定問題、單位與假設 分析材料四欄是品項、售價、變動成本、固定成本。單位NTD,售價與變動成本每杯,固定成本每月且共享店面。原兩列固定6,000是同一情境重複顯示,不加為12,000。提供數字是模擬分析假設,不能解決情報D缺真實成本的問題。 本課「每杯毛利」定義為售價減每杯變動成本,用於簡化單品損平試算;用到正式報表時應另核對成本分類。此處不做多品項銷售組合。活動8席只是報名,未記錄購買品項、杯數或付款,不能當營收。 先讀decision-brief的店長問題,再整理資料。美式豆16+杯材5+其他4=25、售價60;拿鐵豆20+奶15+杯材5=40、售價80;店租5000+折舊1000=6000共享。逐欄引用對CSV,產規範CSV與decision-summary。更新CSV有新數字,沒有新細項,不能編漲價原因。拿鐵單杯40高於美式35,美式毛利率較高;缺銷售量與組合,不能直接回答店家會更賺。 ### 三條公式與手算 每杯毛利=售價−變動成本;毛利率=每杯毛利/售價;月損平杯數=向上取整(月固定成本/每杯毛利)。假設該情境只銷售一個品項,以每杯毛利回收固定成本。 美式60–25=35,35/60約58.3333%,6,000/35約171.43,需172杯。171杯的35×171−6,000=−15,172杯為20。拿鐵80–40=40,40/80=50%,6,000/40=150杯。向上取整確保整數杯數能覆蓋固定,四捨五入可能不足。 更新美式65–29=36,36/65約55.3846%,7,200/36=200杯;拿鐵85–43=42,42/85約49.4118%,7,200/42約171.43,需172杯。不同單品的結果不能相加當一份組合損平。 ### 清理不等於補成看似可算 售價>0、變動成本≥0、固定≥0且每杯毛利>0,才算損平。固定0允許損平0。缺成本、成本大於售價、負固定與非數字四筆應報錯或停止,不補0、不覆寫原始材料。毛利0或負值不能用除法得到有效損平;須指出模型無法計算的原因。 先手算預期,再用代理與 `#lab/analysis`核對,三種證據分開。固定規則計算由網頁執行,代理負責讀分析問題、檢查單位與寫規格;不能憑工具文字自述替代算術。 第五週建立時,用教師五段短範本建立通用單品分析Skill,請Codex協助建檔,輸入為分析問題、表頭與模擬CSV,步驟為驗證、清理、計算、比較,停止為缺料/非法值/毛利不正。明確讓Codex依文件執行,再用原案與新完整資料,加一個缺料/衝突;四筆錯誤為教師示範或選做。手算預期要先寫,避免拿生成答案當自己的驗算。 ## 第 6 週 互動決策網頁、新資料與三代理交接 ### 從分析規格到可開啟作品 開發任務把輸入、公式、錯誤與完成條件寫清楚,再讓Codex或指定工具生成 `decision-tool.html`。需要本機可開、改數、讀CSV、比較情境、檢核與錯誤提示,無需公開部署或外部服務。文字規格是設計;真的打開、操作並比較才是驗證。 網站 `#lab/analysis`能改值、讀CSV與匯出小型HTML,屬於既有規則示範。學生自己的代理生成與測試要另外記;沒有額度時,提交完整規格、手算與lab結果,不能把匯出當成自己已完成代理開發。 第一次生成介面可直接交Codex單次任務,指定讀已核對分析Skill、規格、公式與測試,不要求另建開發Skill。若要反覆改介面與回歸驗收,才選做cafe-build-tool,把一致規格與新舊測試保留成方法。生成後由人開啟和換CSV;文件承諾檢核是設計,網頁實際拒絕非法資料才是行為證據。 教師可先準備local-codex-starter.zip的本機小前端。它透過精簡本機連接程式啟動已登入CodexCLI,前端讓人選Skill與任務、看執行狀態、開實際產物及核准本機草稿。學生第六週只改少量UI與任務設定,保留連接與權限,不從頭做資料庫、帳號或大型後臺,也不部署。沒有連接、CLI、登入或額度,須顯示不能執行;按了按鈕不等於AI已完成。這條路徑仍需一條真實執行與產物讀回,不能用假動畫驗收。 ### 換資料要查每一項結果 讀更新CSV後,美式應由35/172改36/200;拿鐵由40/150改42/172;毛利率與固定成本也更新。不要只查標題換了,卻讓公式保留舊值。反覆匯入同檔不累加舊列。學生選一個缺料或衝突核對回報;四種非法值、固定0及毛利0由教師示範或選做。 同學只照README操作,實際重跑更新檔。若讀不到或功能有誤,記錄位置、輸入、實際結果及下一步。功能尚未測則標未驗證;沒有上線或真實交易,不宣稱已完成這些動作。可開作品、材料與測試記錄都交付。 ### 接好三代理與人的交接 情報交出有來源與版本的活動公告,營運接公告的容量與上限。營運交出報名表、缺漏草稿、核准與失敗,不把席數當銷售。分析另接模擬財務CSV與分析規格,開發成工具,再由人手算與開啟驗證。 每次交接列本次材料、權限、已確認與待確認、完成條件和失敗返回位置。讀過、查核過、核准過、模擬送出、工具已測試是不同狀態,不能混寫。README讓接手的人知道怎麼準備、指定Skill、執行、人工核准、換料與核對。 工作流以情報Skill→營運Skill→分析Skill組織,再交單次開發任務;重複開發驗收Skill選做,每一步明確指定使用方法文件。這是三種代理的重複業務方法,不要求第四份Skill、不同帳號或同時並行。固定欄位與公式由工作流約束,語意判斷與開發交Codex,人保留來源核對、版本核准與結果驗收。沒有連續自動執行紀錄時,描述為由人逐步串接,不稱已全自動執行。 這門課完成的證據是自己的來源表、狀態、Skill、營運處理、公式與可開作品。後續換自己的專業,先確認材料權限與適用邊界,重做測試,再討論真實部署、寄送或經營決定。