AI Agent Literacy 學習分析工具・NTNU・Week 1 – 16 作品集

WEEK 05

讓 Codex 做對:驗證與 context window

這週先看怎麼寫一份驗證清單,讓 Codex 知道怎樣才算做好、做完自己檢查。Codex 可以在對話中途換模型,但每個模型都有自己的 context window。再看換模型時發生什麼事、用量為什麼會一次跳高,以及開工前怎麼選、真的要換時怎麼換。最後是這週的作業「成績分析小報告」:用 Codex 分析兩個班的成績,練習用 AGENTS.md、VERIFY.md 把關。

影片 01怎樣才算做好:寫一份驗證清單

  1. 「做好了」是 Codex 自己判斷的,沒寫清楚的地方,每次可能不一樣。小安只說「幫我把銀杏散步地圖全部做好」:問兩次,一次做了 12 個景點、有檢查手機,另一次只有 4 個景點、沒檢查手機,手機上還要左右捲動(示意)。AI 每次的回答不一定一樣;它不知道你心裡的「做好」長什麼樣,所以「怎樣算做好」要寫下來。

  2. AGENTS.md 是長期協作規則,VERIFY.md 是驗收單。長期協作規則寫「怎麼做」:繁中、檔案放哪、不要改什麼,Codex 每段對話一開始都會讀它,這是 Week 3 學過的。驗收單寫「怎樣算做好、怎麼檢查」。VERIFY.md 這個檔名是我們的習慣,不是官方規定;OpenAI 的〈Codex Best practices〉建議把「做好是什麼、怎麼驗證」寫給 Codex。

  3. 好的驗證是「可以檢查」的。每一條都寫清楚:看什麼、怎麼看、應該看到什麼。「要好看」「不要有錯」都不算,有數字就寫數字。像「地圖上有 12 個標記」「寬 390 px 時不會左右捲動」,寫進清單就不用每次靠它猜;「標記點得到」沒有數字,就沒辦法檢查,改成「寬 390 px 時,每個標記至少 44 px」才檢查得了。

  4. 在 AGENTS.md 加上一定要寫的一句:「每次做完一個新功能,都要把 VERIFY.md 完整驗證一次,確保全部通過。」Codex 每段對話一開始會讀 AGENTS.md,但不會自己去找 VERIFY.md,要在 AGENTS.md 指名,它才會去讀。清單讓它比較可能自己發現問題,例如照片檔名的大小寫不一樣(Mac 不分檔名大小寫,網站會分),但不保證找得到所有問題。

  5. 你還是要抽查,清單會越寫越好。看它最後的回報表,自己點開一兩條確認;沒辦法檢查的,它應該照實說。發現新的問題,就加一條進驗收單。影片裡開頭兩次的結果、對話順序、展開的指令輸出和內建瀏覽器畫面是示意,check_data.py 的輸出是真的跑出來的。

影片 02不要一直換模型

  1. 每個模型都有自己的 context window。用 GPT-6 Luna 做了一陣子,每一輪都會把整段對話送出去;Luna 讀過的部分有暫存,所以很快。對話越長,context window 裝得越滿。

  2. 中途換模型,新模型要從頭讀一遍。換成 GPT-6.1 Sol 之後,Sol 要把整段對話放進它自己的 context window,所以換過去的那一輪,用量一次跳很高,回應也比較慢。

  3. 換模型會讓暫存用不到。Codex 平常會用暫存,便宜地重用前面讀過的內容;暫存是跟著模型的,OpenAI 官方文章〈Unrolling the Codex agent loop〉說明,中途換模型,暫存會失效,整段要重新讀。

  4. 開工前就選好模型。選好之後,這段對話就一路用它。真的要換,先在原本的對話裡請目前的模型寫一段交接摘要,再開新對話、換模型、貼上摘要;也可以記在 progress.md,或寫進 Week 3 學過的長期協作規則 AGENTS.md。

  5. 影片裡的面板和數字都是示意。context window 面板借用 Claude Code 的 /context 畫面,Codex 看不到這張表;長條、用量和開頭的例子也不是實測數字。

影片 03作業:成績分析小報告

這週你是助教:用 Codex 分析兩個班的成績,交一份成績分析小報告。

作業檔案:下載 week5-hw.zip(裡面有 grades.csv 和 評分說明.md),也可以在 GitHub 上直接看、單獨下載。Mac 用 Safari 下載時會自動解壓縮。

  1. 任務:用 Codex 做一份成績分析小報告。下載 week5-hw.zip,裡面有兩個班的成績表 grades.csv 和 評分說明.md(姓名、學號都是虛構的)。請 Codex 分析,寫成 report.md,最上面先放一張答案卡:甲班、乙班各有幾位同學;期末考全班平均(小數第一位);學期成績及格率(全班、甲班、乙班);學期成績不及格、需要老師關心的同學;一張兩班學期成績分布的圖。答案卡下面,用幾段話寫你怎麼算的、遇到什麼問題、怎麼處理。

  2. 專案要有這四樣。Codex 開在你的專案資料夾(report.md 附上 Codex 回報的專案路徑);AGENTS.md:寫給 Codex 的長期規則,這個專案的規則從哪裡來、要照什麼算、輸出長什麼樣子;VERIFY.md:做完要檢查哪些事,請 Codex 每次做完都照它檢查,把結果寫在 report.md 最後;最後把整個專案推到你的公開 GitHub repo,commit 看得出你一步一步怎麼做。

  3. 先想清楚。Codex 很少說「我不會」,它通常會很有自信地給你一個數字;數字對不對,要靠你寫的 AGENTS.md 和 VERIFY.md 把關。這份成績表是助教從兩個班的登錄表合併的,期間也有同學補交過;計分的規則都寫在 評分說明.md,Codex 不一定會自己去讀,就算讀了也不一定照做;你的 repo 是公開的,全世界都看得到。

  4. 越短完成越好。可以和 Codex 多輪對話,但把規則寫進 AGENTS.md、VERIFY.md,比在對話裡一直補充有效。寫好以後開一個 New chat,只下一句指令,看 Codex 能不能靠這兩份檔自己做對;能的話,你的規則就寫清楚了。

  5. 交作業。把你的 GitHub repo 連結交給老師。自願:把你和 Codex 的完整對話複製下來一起交,老師會幫你看怎麼下指令更好;對話裡可能有你的個人資料,所以這一項要你同意才交,不交也不影響。

補充 1按下 Enter 之後,Codex 做了什麼

  1. 腦和手是分開的。模型在 OpenAI 的伺服器上,只會讀內容、寫回覆,不會自己動手;真正在你的電腦上跑指令、讀檔、寫檔的是 Codex app。Codex 透過 OpenAI 的 API,把對話送給模型。

  2. 按一次 Enter,背後來回很多次。Codex 把整段對話送給模型,模型回的要嘛是「請幫我跑這個指令」,要嘛是最後的回答。Codex 跑完把結果接到對話後面,再送一次,直到模型給出最後的回答(OpenAI〈Unrolling the Codex agent loop〉)。

  3. 讀過的內容會送到 OpenAI。模型看不到你的檔案,是 Codex 把檔案內容貼給它看。所以姓名、學號這類個資,先拿掉或換成代號,再放進專案資料夾。

  4. 搜尋在 OpenAI 那邊,下載在你的電腦。網路搜尋是 OpenAI 提供的工具,預設查的是 OpenAI 整理好的快取索引,不用你允許;查到的東西請它附上來源網址,自己點開確認。下載是 Codex 在你電腦上跑的終端機指令,預設的沙箱不能連網,所以要你允許,按之前先看清楚它要連去哪、下載什麼。

  5. 每一步的結果都疊進 context window。讀很大的檔案、搜很多次,對話就滿得很快。影片裡的面板、紙條張數和傳送次數都是示意;Windows 上指令名稱不一樣(PowerShell),流程一樣。

補充 2對話滿了會怎樣

  1. 快滿的時候,Codex 會自動壓縮。它把前面的對話換成一份比較短的精簡版,再接著做,你不用按什麼。依 Codex 原始碼,壓縮後留下的是這段對話的固定說明、你最近說的話和一份摘要;Codex app 的活動紀錄會多一列「Context automatically compacted」。

  2. 壓縮可能會掉細節。精簡版留的是重點,前面講過的細節,例如為什麼這樣決定、確切的欄位名稱、某次算出來的數字,可能就不在了,模型會開始「記錯」。影片裡缺考的人被算成 0 分是示意,壓縮不是每次都會掉同一件事。

  3. 官方的提醒。Codex 原始碼裡寫著:長對話和多次壓縮,可能讓模型比較不準;可以的話開新對話,讓每段對話小而專一。這句提醒在 Codex app 裡不會顯示。

  4. 習慣一:同一個專案開幾個對話,各做一件事。在專案的頁面輸入,新對話就會開在這個專案底下。一件事可以是一個分析問題、一張圖、一個錯誤、報告的一節,做完就開新對話。想看用了多少,可以在 Codex app 的設定 › General 打開 Show context window usage,輸入框底列會出現一個小圓環,滑過去會顯示用了幾 %。

  5. 習慣二:寫進 AGENTS.md,或寫在另一個檔案並在 AGENTS.md 要求每次都讀。短的規則直接寫進 AGENTS.md(長期協作規則);比較多的決定、數字、進度,寫在另一個檔案(例如 decisions.md,檔名可以自己取),再在 AGENTS.md 加一句「每次開工前,先讀 decisions.md」。Codex 每段對話一開始會讀 AGENTS.md,但不會自己去讀其他檔案,要指名。檔案存在你的電腦上,壓縮只動對話、不動檔案。影片裡的面板、紙條張數、用量和數字都是示意。

練習 1進入遠端電腦

這不是影片,而是一台在瀏覽器裡開啟的「遠端電腦」,和 Week 3、Week 4 是同一台,換成這週的任務,有 Mac 和 Windows 兩種,選你平常用的那一種。外觀和操作都像真的電腦,但只是練習用的,弄壞了隨時重來,不會動到你自己的電腦。連線後先選一個任務(例如「開工前選好模型」),再照著任務卡一步一步做;要離開時,按畫面上方中間的「中斷連線」。每次進入都是一台全新的電腦;重新整理或離開後,這次的進度不會留下。

練習環境的畫面是繁體中文;需要用滑鼠和鍵盤操作,建議用電腦的瀏覽器開啟,手機的螢幕太小。

  1. 驗證清單:讓 Codex 知道怎樣才算做好。請 Codex 起草 VERIFY.md,把檢查不了的那一條改成有數字的,在 AGENTS.md 指名它;做一個新功能,看它自己照清單驗證、交回報表,修好再驗一次,最後你自己抽查一條。

  2. 模型與 context window:三個好習慣。開工前選好模型,真的要換就先請原本的模型寫交接摘要、開新對話;看活動紀錄,搜尋不用你允許、下載要你允許,按之前看清楚它要連去哪;對話滿了會自動壓縮,重要的決定寫進 AGENTS.md,一件事一段對話。

  3. 作業前的準備:專案要有這四樣。建公開的 GitHub 倉庫、clone、搬進作業檔、在 Codex 打開專案資料夾、建 AGENTS.md 和 VERIFY.md 的空殼、第一個 commit。練習裡的作業檔是替身,不分析成績;內容要你在自己的電腦上讀過評分說明、自己寫。卡住時按任務卡上的「提示」。