AI Engineer Europe 2026 · 演講 · 2026-05-30 · 18 分
刪掉 95% 的 skills 反而更準
How I deleted 95% of my agent skills and got better results · Nick Nisi,WorkOS
Nick Nisi 分享自己替 WorkOS 做的兩套 agent 系統:對內的 Case 靠狀態機逼 agent 交出證據,對外的 CLI 則用評估發現大量 skills 反而拖累結果。
概要
- 一個人顧二十幾個 repoNick Nisi 是 WorkOS 的 DX 工程師,說自己同時照顧 20 個以上的 repo、八種語言,大約八個月沒有自己寫過程式碼,靠 agent 做事、自己負責審查與下指令。
- Case 用狀態機把關Case 一開始是 Claude 的 skill,流程變複雜後 agent 開始漏做、跳步,Nick 改在 Pi 上用 TypeScript 狀態機重做。裡面有 implementer、verifier、reviewer、closer、retro 五個 agent,真正重要的是它們之間的關卡。
- 要它證明,不要只叮嚀agent 曾經只建一個標記檔就宣稱跑過測試。Nick 改成把測試輸出做 SHA-256 存進去驗證,說 agent 不再說謊,是因為老實做比造假更省事。
- 10,000 多行 skills 比不用還差照文件產出超過 10,000 行 skills,跑一輪評估要 68 分鐘。改成只寫 553 行常見陷阱後,每輪約六分鐘,其中一個 skill 載入時答對率 77%、不載入是 97%。
- 失敗要回頭修 harness每次出錯都視為 harness 的 bug。Case 的 retro agent 會讀執行紀錄,把心得寫進分專案的 markdown 記憶檔,下次少走冤枉路。
- 替 agent 設計產品先找出 agent 對你的產品反覆答錯的地方,只針對那些寫 skill,再用評估量測,並把 agent 當成另一種開發者來看待。
原話
▶ 04:53“They would just lie to me all the time.”
它們動不動就對我說謊
▶ 09:44“I was actively making it worse”
我其實在讓它變差
▶ 10:33“Basically, you want to enforce things. Don't instruct.”
要強制,不要只是叮嚀
▶ 12:56“Fix the harness so that it can fix the mistakes.”
修 harness,讓它去修那些錯誤;Nick 接著說 Ryan Lopopolo 的團隊就是這樣做
▶ 17:06“Your job was never really about writing code.”
你的工作從來不只是寫程式
延伸
- Nick 提到 Claude 的 auto dream 功能可以隨時間修剪記憶,打算作為 Case 的下一個功能。
- Nick 也說 Claude 有一個產生評估的 skill,能輸出並排對照的 HTML 結果,可用來比較有無載入 skill 的差異。
章節
點時碼直接跳到原片的那一段。
- 自稱瓶頸的工程師Nick Nisi 說自己維護 20 個以上 repo、八種語言的 SDK 與開源專案,已經大約八個月沒親手寫程式。
- 單一 agent 的切換成本一次帶一個 agent 要不斷切換情境,每次還得花約 10 分鐘把 issue、ticket、Slack 討論的背景交代給它。
- 兩個 AI 原生的方向對內要用 agent 加速自己的工作,對外則要讓 agent 成為開發者接觸 WorkOS 的管道。
- Case:交出證據才停手Case 是依 harness engineering 的想法做的,丟給它 issue、PR 或 Slack 討論,它自己找脈絡,直到產出附證據的 PR。
- 改用 Pi 與狀態機skill 版本會遺忘、跳過任務,所以改成 Pi 加 TypeScript 狀態機,五個 agent 之間以關卡管控,retro agent 負責回顧並更新記憶。
- 讓它無法謊稱跑過測試標記檔會被 agent 直接建出來充數,改成存測試輸出的 SHA-256 來驗證。
- WorkOS CLI 的安裝功能對外的 CLI 能判斷專案類型、替換掉 Auth0,五分鐘內裝好 AuthKit,沒有帳號還會先代開。
- 照文件生出 10,000 行 skills為了解決 TanStack Start 的安裝錯誤,Nick 依文件產出超過 10,000 行 skills,跑一輪評估要 68 分鐘且常失敗。
- 手寫 553 行陷阱清單只留常見 gotchas 後每輪約六分鐘,其中一個 skill 載入時答對率 77%、不載入反而 97%。
- 三條心得要強制而不是叮嚀、要引導而不是規定、要量測而不是假設有效。
- 用影片當證據UI 錯誤要錄下修正前後的操作影片附在 PR,證明有效後 Nick 才願意花時間審程式碼。
- 失敗變成下一輪的資料出錯時修 harness 而不是修產出,retro agent 讀紀錄找出重複呼叫與卡住的循環,寫進分專案的記憶檔。
- 替 agent 設計產品先找出 agent 對產品反覆答錯的地方,只針對這些寫 skill,並用評估量測,也要想想頁面載入對 agent 的影響。
- 以證據取代信任結論是用程式碼而非 prompt 來強制,每次失敗都是 harness 的 bug,工作從來不只是寫程式。
名詞
- Case
- Nick Nisi 做的內部 harness,丟給它 issue、PR 或 Slack 討論,它會做到產出附證據的 PR 為止
- Pi
- Case 改版後的底層,搭配 TypeScript 狀態機一步步驅動各個 agent
- Harness Engineering
- Ryan Lopopolo 的做法,Case 照它的想法做;Nick 轉述他的團隊只改 harness、不直接改程式碼
- WorkOS CLI
- WorkOS 給客戶用的工具,主打自動判斷專案並裝好 AuthKit
- AuthKit
- WorkOS 的產品,CLI 的安裝功能就是在替專案裝它
- TanStack Start
- 還在 RC 階段的框架,其 start.ts 有隱含的格式約定,CLI 曾因此改壞
- gotchas
- Nick 手寫的常見陷阱清單,取代照文件大量產生的 skills
- retro agent
- Case 中的回顧 agent,讀執行紀錄並更新自己的記憶檔








