CS2680 第 1 堂(2026-09-02)先說明 AI 系統和傳統系統的差別:運算分散在 CPU 與 GPU、浮點運算不保證每次一樣、狀態大到要跨 GPU 搬。接著把 agent 比作新型電腦(LLM 是 CPU、context window 是記憶體、harness 是作業系統),指出 agent 的一個請求會變成「推論 → 工具 → 推論」的長鏈,所以每秒 token 數是錯的目標,要看任務成功率、端到端延遲與每次成功的花費。本文用兩個 agent 的帳算一次這些指標怎麼用。
CS2680 第 2 堂(2026-09-09)拆開 Claude Code:你打一句話,它會呼叫模型很多次;模型每次只「提出」要跑的工具,harness 檢查權限後才執行,再把結果放回 context,context 滿了就壓縮。後半講記憶(你寫的 CLAUDE.md 與 Claude 自己記的 auto memory)與四種擴充:skill 管怎麼做、MCP 管連到外面、hook 管一定要發生的事、plugin 管打包。本文先補一次 API 呼叫長什麼樣,再用「修好一個測試」走完整條 loop。
CS2680 作業 1 要你做一個網頁來驅動 Claude Code:送出任務,即時看到 agent 讀了什麼、跑了什麼、結果如何,最後顯示花了多少錢、幾秒、幾輪。關鍵是讀懂 `claude -p --output-format stream-json --verbose` 的事件串流:tool_use 和 tool_result 靠同一個 id 配對,subagent 的事件靠 parent_tool_use_id 掛回呼叫它的那一步。這篇拆解七項要求、示範用 40 行 Python 把事件串成一棵樹並分辨成功與失敗,最後整理交件、評分與開發時最容易卡住的地方。
CS2680 第 3 堂(2026-09-14)前半講怎麼把自己放大:先用 Superpowers 與 Caveman 兩個 plugin 看 skill、hook、proxy 怎麼搭,再講三種擴充方向:平行開多個 agent 買牆鐘時間、派 subagent 買專注、讓 agent 跑很久買範圍。後半講放大之後的代價:用自然語言叫 agent 寫程式,不確定性會從語意、context、模型取樣、工具環境四層滲進來,對策是先講清楚、提案與執行分開、緊縮驗證。本文用「三個 bug 開三個 worktree」算一次平行到底省了什麼。
CS2680 第 4 堂(2026-09-16)從「用 agent」換到「設計 agent」:agent 是模型加一個 loop,你要決定給它哪些工具、每一步讓它看到什麼。工具這半講找程式碼的四種方法、改程式碼的四種方法、shell 的威力與風險,以及「少而正交、專用、輸出省 token、錯誤教得會」的設計原則。context 這半講 context 為什麼是有限資源、四種管理手段(從擋在門口到最後才摘要)、五種 context 失敗,最後用一篇論文說明:context 很緊時,同一個模型只換 harness,解題數可以多出七成到一倍以上。
CS2680 作業 2(Mads-Loop)要你自己寫一個 coding agent harness:用指定的小模型 qwen3.6-35b-a3b,在 Docker 容器裡修 SWE-bench Pro 的真實 issue,並照規定格式記下每一步。作業頁明說它給的設計不要照單全收,10 題裡也有解不了的題。這篇整理規格、作業頁值得懷疑的幾處、harness 最常壞的五個地方與各自的處理方式(附一段實跑過的片段),以及怎麼自建四題評估集、怎麼判斷一題是不是真的解不了。不含官方解答。
CS2680 第 5 堂(2026-09-23)講多 agent 系統怎麼設計。拆成多個 agent 有四個理由:專長、隔離、平行、context 管理;每種架構都可以用三個問題描述:誰指揮、工作怎麼切、訊息怎麼傳。課堂列了八種架構,再講任務切分的六種方法、一條判斷拆不拆的粒度公式、六種常見的切分失敗,以及通訊為什麼其實是分散式系統問題:訊息會遺失、重送,兩個 agent 會同時改同一份東西。最後對照 A2A 與 MCP 的分工,並以「真的需要多 agent 嗎?」作為第一條設計原則。
CS2680 第 6 堂(2026-09-28)前半講 agent 的記憶:把一件事留下來,要依序決定寫不寫、存成什麼樣子、存在哪裡、什麼時候取回、要不要歸納成通則、還算不算數,另外還有記憶歸誰管。過期的事實不要直接刪,要記下它什麼時候成立、從哪裡來。後半講可靠度:每步 95% 成功,20 步全對只剩約 36%;失敗可以歸到任務規格、harness、模型、工具、環境五層,每層各有修法。兩半的接點是一個 harness 層的失敗:把過期的筆記當成事實。
CS2680 第 7 堂(2026-09-30)講怎麼量一個 agent 好不好。先分清楚量的是零件還是整條任務,以及「成功」指的是答對、做出能跑的程式,還是把環境改到對的狀態。指標方面,pass@k 問試 k 次有沒有一次成功,pass^k 問 k 次是不是全部成功;同一組試驗結果,兩者可以差到 0.9 和 0.3。接著看八個代表 benchmark 各量什麼,再看分數什麼時候不可信:解答可能在訓練資料裡、可能被 agent 上網查到、可能藏在環境的 git 歷史裡,評分器本身也可能被鑽漏洞。
CS2680 第 8 堂(2026-10-07)分兩半。前半拆 agent 的帳單:成本是一條乘式,使用者數 × 每人 session 數 × 每個 session 的 turn 數 × 每個 turn 的 step 數 × 每個 step 的 token 數 × 每個 token 的價格,後四項是你能砍的。學生自己的 Claude Code 紀錄顯示,97.6% 的 token 是命中快取的重讀,所以「prefix 要穩定」比「prompt 要短」更重要。速度看的是關鍵路徑,不是每一步加總。後半比較三種 harness 架構(單體、模組化、微核心)與八個開源或商用 harness 的設計取向。本文用一張手算帳單示範:把時間戳放進 system prompt 開頭,同一個任務的帳單會從 23.6 單位變回 65 單位以上。
CS2680 作業 3(Mads-Opt)是一場 harness 競賽:同一批 SWE-bench Pro 題目,比誰解得多、每解一題花得少、每解一題等得短。三個指標不加權,改用 skyline(Pareto)分層排名:沒有人在三項都不比你差、還至少一項比你好,你就是第 1 名。這篇整理作業的容器架構與硬限制、排名與計分怎麼算(附手算例子),用作業頁公布的模型價格先算一題大概花多少,再把第 8 堂的成本與速度槓桿對到這份作業。不含官方解答,也不談具體解法。