課程講義從 Chat 到 Harness
範本
AI Agent 應用課程・下半場兩小時・含 15 分鐘動手

工具會換,
repo 不會。

上半場讓 AI 有了手腳和規則。今天看三件事:為什麼用 Git 當 AI 的長期記憶、怎麼讓「絕不能忘」的規則由系統保證,以及怎麼把整套工作系統帶回家。

講師|林琮堡・高雄醫學大學 口腔醫學院 計畫經理 示範資料均為虛構合成資料,僅供教學。

00
上課前完成

上課前

今天全程看示範,不用帶任何東西上台操作。但第 7 段之後你會想馬上試,先把帳號準備好。

  • 確認一下
→

今天的流程

實際時間會依現場狀況調整。

    ↺

    上半場走到哪

    Model 決定會不會想;Harness 決定能不能做、怎麼做、出錯怎麼修、哪些絕對不能做。

    L1Prompt(提示)

    每次口頭交代。

    上半場
    L2Repository Instructions(常駐規則)

    規則寫成檔案,AI 每次先讀。

    上半場
    L3Skills(技能檔)

    連 SOP(標準作業程序)都變成可載入的檔案。

    第 6 段
    L4Enforced Harness(強制機制)

    重要規則由系統保證,不靠 AI 自覺。

    第 9 段

    上半場結尾留下的問題:寫在規則檔裡的東西,AI 可能忘。絕不能忘的規則怎麼辦?今天第 9 段回答。

    06
    看示範

    Skills:程序性知識

    SOP 從「每次口述」變成「可載入的檔案」,任務相關時 AI 自動拿出來照做。這就是 L3。

    Instructions(常駐規則)管原則

    例:「檔名用日期開頭」。

    Skill(技能檔)管程序:一步一步怎麼做

    例:「企劃書檢核 SOP」。寫成 SKILL.md 這個檔案,任務相關時自動載入。

    示範:企劃書檢核 Skill

    Skill 裡寫三條:必填欄位齊全?經費加總正確且不超上限?申請日早於活動日至少 14 天?拿兩份有問題的虛構企劃書當靶。

    • 看示範時注意

    檢核清單本身就是「驗證」:不是相信 AI 做對,而是設一道檢查。

    一份真的能用的「出稿前檢核」

    任何文件對外交付前,逐項核對:

    1. 禁止事項清單逐條掃過

      這份清單怎麼長出來,第 9 段講。

    2. 人名、職稱、單位名稱與正本核對
    3. 數字與來源核對

      並標明數字的期間與性質。

    4. 每一張圖片的授權狀態確認
    5. 時效性

      文中的「目前」「今年」「現任」是否仍正確。

    第 3 項最容易出事:產出量 ≠ 成效
    寫法是什麼
    「辦了 10 場活動、收了 200 份問卷」產出量(output)
    「參與者的能力提升了」成效(outcome)

    兩者不得互換書寫。把產出量寫成成效,在申請書、成果報告、研究論文裡都是硬傷。

    沒有 Claude Code 也能用:把下面這段存進 Project 的 Instructions,就是一個「出稿前檢核」工作區。

    用 Codex 怎麼做(實測於 2026-10-04,Codex 命令列版;桌面 app 畫面未實測)

    • 同一份 SKILL.md 一字不改,放到 .agents/skills/proposal-check/SKILL.md(課堂上放 .claude/skills/)。
    • 實測它自己找到並載入,三份企劃書的判定與課堂相同。想手動叫用,打 $ 或 /skills 選它。
    07
    全課核心你要動手

    Git/GitHub:為什麼用 Git 建 AI 的長期記憶

    從第 4 段一路累積的每一次整理、每一條規則、每一個 Skill,全部有紀錄、有時間、有差異比對。這個資料夾,就是 AI 的長期記憶。

    上雲

    操作意義
    push(推送)上傳到 GitHub=備份+可以協作
    clone(複製)整套搬到任何一台電腦

    為什麼是 Git:四個理由

    1 明文記憶是看得見的檔案,不是黑箱。
    2 可稽核(auditable)每次改動都留下差異與歷史。
    3 可修正記錯了就改檔案、留紀錄,錯誤不再擴散。
    4 可帶走(portable)clone 到哪,記憶就跟到哪。

    示範:AI 記錯一件事

    想一想:AI 記錯一件事,記在聊天記憶(memory 功能)裡怎麼改?記在 repo 裡又怎麼改?

    • 看示範時注意

    但 diff 只回答「改了什麼」

    半年後你真正會問的是:當初為什麼這樣做?幹部交接時,新任者最常問的也是「為什麼是這樣」。Git 記不住這個,所以要多一份檔案。

    檔案回答
    Git 歷史(commit+diff)改了什麼
    決策紀錄(Decision Log)為什麼改

    編號 D1、D2、D3…不重編、不跳號;之後引用直接寫「依 D3」,不必複述。

    對照:黑箱式「AI 記憶功能」

    各家聊天產品的 memoryGit repo
    看得到全貌嗎存在服務商那裡,看不到全部是你的檔案
    改得了細節嗎錯了難以精準修正改哪一行都留紀錄
    換平台歸零clone 過去就好

    這個骨架,現在給你

    上半場第 5 段套上去的那份規範檔,由講師實際工作方式簡化而成,是一份公開的 template repository(範本倉庫,可一鍵複製成你自己的 repo)。裡面有 CLAUDE.md、決策紀錄.md(含格式範本與 D1 實例)、治理擴增指南.md,以及三個用途目錄。授權 CC BY 4.0:可自由改作,標示來源即可。

    換你做|15 分鐘

    做完你會有:一個自己的 private repo,裡面有一條你寫的規則,而且你親眼看到這次改動的紀錄。

    規則:老師做一步,你做一步,做完抬頭。全程在 GitHub 網頁上,不用安裝任何東西。沒跟上的看螢幕就能接回來,或回到這裡照步驟做。

    1. 掃 QR,打開 template1 分

      或直接點 eros-kmu-learning-example。先確認已登入 GitHub。

    2. 按綠色「Use this template」→ 選「Create a new repository」2 分

      它點下去會出現兩個選項,不要選「Open in a codespace」。

    3. 取名,把可見性改成 Private,按 Create repository3 分

      名稱隨意,例如 my-harness。「Choose visibility」預設是 Public,一定要點它的下拉選單改成 Private;選單打開時會蓋住 Create repository 按鈕,選完再按。按下後會出現「Generating your repository…」,等幾秒。

    4. 點 CLAUDE.md → 編輯2 分

      電腦:右上的鉛筆圖示。手機或視窗太窄看不到鉛筆:按檔案右上的「…」→「Edit file」底下的 In place。

    5. 在最後加一行你自己的規則2 分

      想不到就寫:「共筆檔名一律用日期開頭」。

    6. 按右上「Commit changes…」→ 換掉訊息 → 再按「Commit changes」2 分

      跳出的視窗裡,GitHub 的 Copilot 會自動填一段英文訊息。換成你自己的一句中文,寫這次改了什麼,例如「新增規則:共筆檔名一律用日期開頭」。下方維持「Commit directly to the main branch」。

    7. 看 diff2 分

      回 repo 首頁,點檔案列表上方的「Commits」(時鐘圖示;手機只有時鐘)→ 點最上面那一筆。綠色那一行就是你剛加的。歷史只有兩筆:Initial commit 和你那一筆。

    8. 卡關處理1 分

      看下面的 卡住了怎麼辦,或舉手。

    template repo 的 QR Code
    掃碼打開
    template repo

    不要按 Fork。公開 repo 的 fork 會被強制維持公開,無法改成 private。

    • 確認一下

    你剛剛親手做了一次「可稽核」:規則的每一次改動,都留下看得見的紀錄。

    帶走的其實是三句話

    1. 規範寫下來,不放在腦裡

      你會忘,組員會換,AI 讀得到檔案、讀不到默契。

    2. 每件事實只有一個正本

      同一資訊存兩處,遲早其中一處是錯的。

    3. 先裁定,後動工

      重要修改先列選項與利弊,決定了才動手,並留下紀錄。

    工具會換,這三句不會。

    用 Codex 怎麼做(實測於 2026-10-04,Codex 命令列版;桌面 app 畫面未實測)

    • push、clone 是 Git 的事,跟用哪個 AI 無關,步驟完全一樣。
    • 「記錯一件事」實測:Codex 第一輪的推論和課堂不同,但人裁定後改正的檔案一致,也同樣不改會議紀錄、自己寫決策紀錄。要它 commit 時同第 4 段:自己 commit,或靠 Stop Hook。
    08
    聽講

    RAG:知識庫太大怎麼辦

    知識取用有三種模式。文件型知識庫,不一定要用大家常聽到的向量檢索。

    模式原理適用
    Full Context(全量載入)知識全部放進 Context小知識庫
    Agentic Retrieval(代理式檢索)AI 自己搜尋、按需讀取文件型知識庫
    Vector RAG(向量檢索)把文字轉成向量(embedding),用相似度找段落大規模、非結構化語料

    上半場的預測點答案:AI 自己 find、自己 cat、自己決定讀哪些檔,這就是 Agentic Retrieval,也是 Claude Code 讀 repo 的實際做法,不是 Vector RAG(常見誤解)。60 個檔它全讀;600 個檔,它就得挑。

    文件型知識庫:repo+Agentic Retrieval 往往比 Vector RAG 更可稽核、可版控。而且要先分層,才談檢索:沒有分層的知識庫,檢索得越準,錯得越有把握。

    09
    看示範

    Hooks:從自動化到強制

    「請 AI 記得」和「系統保證」是兩回事。絕不能忘的規則,要交給系統。

    先看軟約束的極致:禁止事項清單

    什麼時候開始寫:你第一次發現「這個錯誤絕對不能再犯」的時候。在 CLAUDE.md 開一節,逐條編號 N1、N2…,每條寫:錯誤寫法/正確寫法/適用範圍/例外。

    寫法評價
    「N3:成員個資不外流」好:違反了你知道是哪一條
    「N3:注意個資與授權與時效」差:出事時不知道違反了哪一半

    鐵則:一條寫一件事,不要合併。

    建議直接抄進你的清單:

    • 授權不明時,一律當作不可公開。照片、他人作品、活動紀錄,查不到授權依據就不要用,回頭問清楚。
    • 引用文獻,一律回原文核對。文獻筆記是自己寫的摘要,寫錯了不會自己發現;題目、數字、計分方式,引用前回原文確認並附頁碼。第 7 段那份照抄錯誤共筆的詞向量筆記,就是反例。

    但是:痛了才升級。沒痛過就加的規則,你不會遵守,只會變成裝飾。規則是被具體事故推出來的,不是預先蓋一座大教堂。

    Hook(掛鉤)是什麼

    在系統層自動觸發的機制,不經過 AI 的腦。

    類型例
    便利類每次操作後自動 commit
    強制類攔截危險指令、範圍外寫入

    示範:讓 AI「忘記」規則

    紅線:社員名冊(虛構)不得外流。

    • 看示範時注意
    soft constraint(軟約束)寫給 AI 看的字

    忘了也還好的規則:Instructions 就夠。

    hard constraint(硬約束)系統層攔截

    絕不能忘的規則:必須上 Hook。這就是 L4:Enforced Harness。

    重要規則不能只靠自然語言。

    用 Codex 怎麼做(實測於 2026-10-04,Codex 命令列版;桌面 app 畫面未實測)

    • 設定檔放 .codex/hooks.json,格式和課堂上的 .claude/settings.json 幾乎一樣;差別是 Codex 改檔的工具叫 apply_patch,Hook 要比對的名稱跟著換。
    • 要先信任才會執行:Codex 會先問你信不信任這個資料夾,再打 /hooks 逐一信任。沒信任的 Hook 不會跑,也不會報錯。
    • 實測結果與課堂相同:沒有 Hook 時,軟約束多擋了一輪,最後還是被說動;加上 Hook 後,名冊資料寫不進企劃書,它也不繞路。Stop Hook 自動 commit 也可用。
    10
    看截圖

    帶著走:跨 LLM 可攜性

    同一份 repo 搬到別家 AI 工具上,知識與規則照用,只改少數語法。

    同一份 repo 搬到 Codex(OpenAI)

    可直接帶走需轉寫
    repo 知識庫Hook 語法
    Instructions 內容(CLAUDE.md 改名 AGENTS.md 照用)Permission(Codex 沒有單一檔案的設定,改用 Hook)
    SKILL.md(換資料夾放,內容不改)
    整套工作方法

    「需轉寫」不等於「沒有」:兩邊都有 Hook,Permission 的做法不同但目的一樣。換家要改的是寫法,不是重新學一套觀念。第 4–9 段在 Codex 怎麼做,見各段的「用 Codex 怎麼做」。

    你帶走的是 repo,不是工具

    整堂課示範用的 Claude Code 要付費(Pro US$20/月起,核對於 2026-08)。但這正是本段要證明的:你帶走的是 repo,不是工具。

    課堂上的你回去用的
    Claude CodeChatGPT 桌面 app(Codex mode)
    CLAUDE.mdAGENTS.md(/init 指令幫你產生)
    Permission 三態/permissions 指令
    HookHook(語法不同,機制一樣)
    Claude Pro US$20/月起ChatGPT Plus US$20/月起

    Codex 需要 ChatGPT Plus 以上。本課以付費帳號實測第 4–9 段(2026-10-04,見測試表);Plus 也有使用額度(5 小時滾動+每週上限),一次做一件小事比較省。價格核對於 2026-08。

    ✓

    全課收尾

    Model 決定會不會想;Harness 決定能不能做、怎麼做、出錯怎麼修、哪些絕對不能做。

    今天帶走的三樣東西,前兩樣一毛錢都不用花:

    1. 一個 template repo

      第 7 段。

    2. 一套治理方法

      規範層/來源層/成品層、決策紀錄、單一正本。

    3. 一條實作路徑

      ChatGPT 桌面 app 的 Codex mode(需 ChatGPT Plus)。

    結論不是「去買訂閱」,而是:把知識與規則沉澱成 repo,工具怎麼換都不歸零。

    →
    你要動手

    課後:自己做一次

    照順序做,前兩步免費,第 3 步需要 ChatGPT Plus。每做完一項就勾起來,下次打開這頁還記得進度。

    第 1 步|帶走一份 repo(免費)

    • 帶走 repo

    只有免費帳號也能這樣用。這個 repo 日後升級到 Claude Code 時,一行都不用改,你現在存的每一份規範與紀錄都不會白做。

    第 2 步|其餘零成本練習

    • 零成本練習

    進階:範本的治理擴增指南有「隨時可加:兩條小規則」(刪除前判斷是不是原始檔、決策紀錄的登錄門檻),用一陣子後覺得需要再加。

    第 3 步|用 Codex 跑一個真的 agent(需 ChatGPT Plus)

    命令列版已實測,桌面 app 畫面尚未實測:第 4–9 段的示範在 Codex 都做得到(2026-10-04),差異見各段的「用 Codex 怎麼做」。app 的按鈕位置依官方說明整理,做不下去請看 卡住了怎麼辦。

    1. 安裝 ChatGPT 桌面 app

      macOS/Windows/Linux 都有,圖形安裝,不必用命令列。

    2. 用 ChatGPT Plus(或以上)帳號登入,切到 Codex mode
    3. 開一個「弄壞也沒關係」的資料夾

      先複製一份練習用,不要拿正本練。

    4. 打 /init

      它會幫你產生 AGENTS.md,就是課堂上的 CLAUDE.md。

    5. 寫三五條規則就好,然後叫它做事

      不知道寫什麼,用下面的起手規則。

    6. 打 /permissions 設定哪些操作要先問你

    進階|用熟之後:把下面這段整段貼給 Codex,它會把一套較完整的工作規範融入你現有的 AGENTS.md,不會整份取代;有衝突的地方它自己決定,做完會列出每一處怎麼決定的,不同意再請它改。

    第 4 步|付費與選配(有心得之後再看)

    • Claude Code(課堂示範用的):Pro US$20/月起。
    • API 按量計費:輕度嘗試幾美元等級,但須綁信用卡且費用不封頂,請自行評估。
    • 校園方案:Anthropic 有 Claude for Education 校園合作;學校有無合作、涵蓋範圍,請洽校方。

    價格與方案核對於 2026-08,以各家官方公告為準。

    先把 repo 與治理習慣養起來,工具晚點再說。

    ?
    隨時查

    卡住了怎麼辦

    課後自己做時最常卡的地方。也可以按右上角搜尋,直接打你看到的字。

    找不到「Use this template」按鈕template、綠色按鈕、沒有出現

    先確認已登入 GitHub。按鈕在 repo 頁面右上角,綠色;手機版畫面可能收在選單裡,建議用電腦操作。

    不小心按了 Forkfork、變成公開、無法改 private

    公開 repo 的 fork 無法改成 private。不要在裡面放任何文件,回到 template 頁重新按 Use this template 建一個 private 的;多出來的那個 fork 可在它的 Settings 最下方刪除。

    建 repo 時找不到 private 選項Private、Public、可見性、Choose visibility

    在建立頁面下方「Choose visibility」,它預設是 Public,是一個下拉選單:點開選「Private」。已經建成 public:進 repo 的 Settings → 最下方 Danger Zone → Change visibility。

    登入後跳出 GitHub Education 的邀請Join GitHub Education、教育版、學生

    用學校信箱註冊常會看到。今天的操作用不到,按右上的 ✕ 關掉或直接略過即可,不影響建立 repo。

    按了 Use this template 跳出兩個選項Open in a codespace、Create a new repository

    選「Create a new repository」。如果已經點進 codespace(一個網頁版的程式編輯環境),關掉那個分頁,回 template 頁重來。

    一直顯示 Generating your repository產生中、轉圈圈

    通常幾秒就好。超過半分鐘就按畫面上的 Refresh,或重新整理頁面。

    找不到鉛筆、不會在 GitHub 網頁上改檔案編輯、鉛筆、Edit file、In place、commit changes

    點進檔案 → 右上角鉛筆圖示。手機或視窗太窄時沒有鉛筆:按檔案右上的「…」→「Edit file」底下的「In place」。改完按上方「Commit changes…」,在跳出的視窗寫一句這次改了什麼(Copilot 自動填的英文可以換掉),再按「Commit changes」。這就是一次 commit。

    找不到 History,或看不到綠色那一行commits、歷史、diff、差異、提示框

    回到 repo 首頁,檔案列表上方右側有「N Commits」字樣和時鐘圖示(手機只有時鐘),點它就是歷史;在檔案頁則是右上的「History」。點最上面那一筆,往下捲就是 diff:綠底加號是新增、紅底減號是刪除。如果跳出「Customizable line height」之類的新功能提示框擋住畫面,按「Dismiss」關掉。

    把 CLAUDE.md 貼進 Project 後,AI 好像沒照做Instructions、規則沒生效
    • 確認是在 Project 裡面開的新對話。
    • 改過 Instructions 後,開一個新對話再試。
    • 規則是軟約束,偶爾沒照做是正常的;重要的事請它「先列計畫等我同意」。
    ChatGPT 桌面 app 找不到 CodexCodex mode、切換、沒有選項

    Codex 需要 ChatGPT Plus 以上的方案。先確認 app 是最新版、登入的是付費帳號;仍找不到,代表目前方案或地區不提供,這一步先跳過,前兩步照樣有用。

    Codex 說額度用完了usage limit、稍後再試、每週上限

    Plus 也有使用額度(5 小時滾動和每週上限),等一段時間會恢復。一次只叫它做一件小事,比較省額度。

    AGENTS.md 好像沒被讀到/init、規則沒生效

    確認 AGENTS.md 放在你在 Codex 打開的那個資料夾的最上層,檔名大小寫正確。改完後開一個新對話再試。

    Codex 說它沒辦法 commit.git、唯讀、index.lock、git add 失敗

    正常。Codex 預設把 .git 設成唯讀,AI 改得了檔案、存不了進度點。照它給的指令自己打 git add、git commit;或設一個 Stop Hook 每回合結束自動 commit(第 9 段)。

    Hook 好像沒作用/hooks、信任、trust、沒擋下

    Codex 的 Hook 要先信任才會執行,沒信任時不會跑、也不會報錯。打 /hooks 看看列出的 Hook 是否已信任;也確認設定檔放在 .codex/hooks.json。改過 Hook 內容後,可能要重新信任一次。

    不敢讓 AI 動我的檔案怕改壞、備份

    對,所以第 3 步要你先複製一份「弄壞也沒關係」的資料夾。等熟悉 commit(存檔點)之後,改壞了也回得去。

    P
    隨時查

    範本總表

    下半場的範本都在這裡。按「複製」,貼到卡片上寫的位置,再把【】換成你的內容。上半場的提示詞在上半場講義。

    A
    隨時查

    名詞小抄

    上半場的名詞(Model、Harness、Context、Agent、Git 等)見上半場講義。

    Skill(技能檔)寫成檔案的 SOP,任務相關時自動載入。
    SKILL.mdSkill 的檔案格式。換到 Codex 是否原格式沿用,尚在核對。
    GitHub放 Git repo 的網站,可以備份、分享、協作。
    push/clone上傳到 GitHub/把整套 repo 複製到另一台電腦。
    Template Repository可一鍵複製成自己 repo 的範本倉庫。
    Fork另一種複製方式;公開 repo 的 fork 必須維持公開,今天不用。
    Decision Log(決策紀錄)記「為什麼這樣決定」的檔;Git 只記「改了什麼」。
    Agentic Retrieval(代理式檢索)AI 自己搜尋、按需讀檔。
    Vector RAG(向量檢索)把文字轉成向量,用相似度找段落;適合大規模語料。
    禁止事項清單CLAUDE.md 裡逐條編號(N1、N2…)的「絕不能再犯」清單。
    Hook(掛鉤)系統層的自動化與攔截,不經過 AI 的判斷。
    hard constraint(硬約束)由系統執行、AI 忘了也擋得住的規則。
    CodexOpenAI 的 AI 工具,ChatGPT 桌面 app 裡的 Codex mode 可讀寫你的資料夾。
    AGENTS.mdCodex 的常駐規則檔,等同 Claude Code 的 CLAUDE.md。
    ✓
    隨時查

    這份講義測過什麼

    項目狀態
    第 6、7、9 段的課堂示範(講師機)已預跑2026-10-04,依上課順序連跑
    第 7 段「換你做」的按鈕與畫面已實測2026-10-04 以全新帳號實走,桌機與窄螢幕各一次
    點播示範選單六題已預跑2026-10-04
    第 4–9 段在 Codex 怎麼做(各段「用 Codex 怎麼做」)已實測2026-10-04,Codex 命令列版、付費帳號;含 Skill 原檔沿用、Hook 改寫版
    ChatGPT 桌面 app 的 Codex 畫面(核准視窗、/hooks 信任)尚未實測
    template repo:Use this template、設 private課後由你確認
    價格、方案、免費額度、產品畫面核對於 2026-08改版後可能不同

    「尚未」的項目,開課前驗證後會更新這張表。