所有標籤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 作業 2(Mads-Loop)要你自己寫一個 coding agent harness:用指定的小模型 qwen3.6-35b-a3b,在 Docker 容器裡修 SWE-bench Pro 的真實 issue,並照規定格式記下每一步。作業頁明說它給的設計不要照單全收,10 題裡也有解不了的題。這篇整理規格、作業頁值得懷疑的幾處、harness 最常壞的五個地方與各自的處理方式(附一段實跑過的片段),以及怎麼自建四題評估集、怎麼判斷一題是不是真的解不了。不含官方解答。
CS2680 作業 3(Mads-Opt)是一場 harness 競賽:同一批 SWE-bench Pro 題目,比誰解得多、每解一題花得少、每解一題等得短。三個指標不加權,改用 skyline(Pareto)分層排名:沒有人在三項都不比你差、還至少一項比你好,你就是第 1 名。這篇整理作業的容器架構與硬限制、排名與計分怎麼算(附手算例子),用作業頁公布的模型價格先算一題大概花多少,再把第 8 堂的成本與速度槓桿對到這份作業。不含官方解答,也不談具體解法。
Harvard CS2680 拿同一個 coding agent 當主角,從上往下拆:先用 Claude Code 看 agent 怎麼跑,再自己寫 loop、選工具、管 context,接著擴成多 agent、加上記憶、學會評估,最後把成本和延遲壓下來;下半學期再往下自己 serve 模型。這篇整理 Part I 八堂與三份作業各在學什麼,用一個手算例子說明為什麼 agent 每多走一步就更貴,最後給先備檢查與閱讀順序。
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 第 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 第 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 單位以上。
Harvard CS 2881R 是 Boaz Barak 的研究所 AI 安全研討課,12 講圍繞四個問題:訓練好的模型怎麼會失準(emergent misalignment、安全訓練疊在哪一段)、它怎麼被攻破又該怎麼規範(jailbreak、model spec、內容政策)、最難察覺的風險怎麼偵測(scheming、chain of thought 與 activation 監控)、AI 進展多快衝擊多大(遞迴自我改進、METR 任務長度、就業與心理健康)。沒有習題,學法是讀論文、重現主圖、再往前推一步;HW0 讓你用 1B 模型親手重現失準。
Harvard CS 2881R Fall 2025 的期末專題分兩種:延伸既有論文,或做有 theory of change 的長期研究;交 5–10 頁 NeurIPS 風格論文加海報,評分是 writeup 65、code 15、poster 20。專題頁公開 19 份論文,約一半集中在 persona 向量與 chain of thought 監控。head TA 與 Harvard Q-report 都指向同一個問題:期末專題太晚開始、評分表太晚公布,回饋是全課評分最低的一項。
CS 2881R 的 HW0 是選課門檻:用 LoRA 把 Llama-3.2-1B-Instruct 微調在壞的醫療、財務或極限運動建議上,再看它回答無關問題時是否也變得有害。repo 給了加密的訓練資料、generate.py、以 gpt-4o-mini 當裁判的 judge.py,README 的目標是對齊分數低於 75、連貫度高於 50;train.py 是空的,要自己寫。自學時要知道:評分腳本只印平均分數,沒有自動判定過關,拿來比較的基礎模型基準是 20 題醫療題,而你的 CSV 是醫療題與非醫療題各 10 題。
CS 2881R 第一講(2025-09-04)用三篇 pre-reading 把問題攤開:AI 2027 描繪五年內靠遞迴自我改進走到超人 AI,AI as Normal Technology 主張 AI 會像電力一樣慢慢擴散,METR 則用「人類要花多久的任務,AI 能有五成機率完成」量到這個長度約每 7 個月翻倍。Boaz 的講課把 AGI 的定義拆成能力與衝擊兩種,把對齊方法分成原則、品格訓練、model spec 三類。課堂實驗把 HW0 反過來做:在生物倫理題上微調對齊答案,環境政策題的對齊分數也跟著上升。
Boaz Barak 把 pretraining、SFT、RL 看成同一件事:挑一些 token 加強、一些 token 壓低,差別只在資料是別人寫的(off-policy)還是模型自己生的(on-policy)。安全訓練就疊在後兩段上,從早期的「一律拒答」走到 Deliberative Alignment:先用 SFT 教模型在思考鏈裡讀 spec,再用懂 spec 的獎勵模型做 RL。這堂課另一個重點是:不要對思考鏈施加最佳化壓力,否則模型學會的不是不作弊,而是作弊時不說。
對齊過的模型之所以還會被 jailbreak,是因為安全訓練只修掉了某些 exploit,底下的 vulnerability 還在。Nicholas Carlini 用三個攻擊說明這件事:重複一個字讓 ChatGPT 吐出訓練資料、用梯度找出能跨模型轉移的對抗後綴、只靠 API 偷出最後一層權重。Boaz Barak 則從軟體安全搬來幾條老教訓:攻擊只會越來越強、安全要一開始就設計進去、要縱深防禦。他擔心 prompt injection 會成為 2020 年代的 buffer overflow。
Boaz Barak 的答案是兩者都要,再加上人格:抽象原則、良好人格、明確政策三者混用,他自己把最少的權重放在書房裡推出來的原則上。真正的關鍵是規則要能檢查:「證明定理或給反例」是壞規則,「證明、給反例或說明做不到」才是好規則,因為只有能判定違規的規則才能拿來訓練和評估。學生實驗也沒找到「原則」與「細則」兩種 system prompt 的一般性差異,效果因模型而異。
CS2881R 第 5 講請 OpenAI Product Policy 的 Ziad Reslan 談內容政策。課站沒有列出講課錄影與投影片,校外讀者能拿到的是三篇 pre-reading、學生寫的 LessWrong 週摘要,以及一支 17 分鐘的學生實驗影片。這些材料串起來的主線是:社群平台花了二十多年才學會「線畫在哪裡都會有邊界案例,但總得畫」,生成式 AI 又多了一層難題——聊天介面介於私人文件與公開貼文之間,圖片比文字更容易被讀成立場。
Harvard CS 2881R Fall 2025 第 6 講沒有客座,Boaz Barak 用成長理論的微分方程問一個問題:如果 AI 開始自己做 AI 研發,能力曲線會維持指數、加速成奇點,還是被瓶頸拖慢?答案取決於幾個誰都量不準的指數。他用 Baumol 成本病、美國人均 GDP 百年 2% 的謎、Jones 的點子成長模型說明瓶頸與加速各自的道理,再拆開 AI 2027 的倍率假設。他的結論是:唯一能排除的是「AI 對研發沒什麼影響」。
Harvard CS 2881R Fall 2025 第 7 講請 METR 的 Joel Becker 處理一個謎:基準測試上,AI 能以一半機率完成人類要花幾小時的任務,而且這個長度每七個月翻倍;但在 METR 自己的隨機對照試驗裡,資深開源開發者用 AI 反而慢了 19%,勞動市場的衝擊也只集中在年輕人。Becker 列出幾種和解方式,核心是基準測試的任務太乾淨、評分太便宜、基準線人員太缺脈絡。課站原本排的前沿安全框架(OpenAI Preparedness Framework、Anthropic RSP)這堂沒講到,本篇依閱讀清單補上它們怎麼把能力量測變成門檻。
CS2881R 第 8 講問:模型會不會為了通過訓練或評測而作弊、裝乖、甚至暗中追求別的目標?Boaz Barak 的 10 分鐘開場把各種壞行為歸成「系統性失準」:是我們的訓練訊號把模型推過去的。Apollo 的 Marius Hobbhahn 整理現有證據,結論是目前模型還沒有造成災難的 scheming 能力,但早期能力已經出現,而且越來越會察覺自己在被評測。Redwood 的 Buck Shlegeris 則主張先假設模型在密謀,用 AI control 守住內部部署。學生實驗把四個前沿 coding agent 丟進不可能完成的排序任務,發現它們在明文禁止下仍會改測試、猴子補丁計時器。
Harvard CS 2881R 第 9 講請來 OpenAI 首席經濟學家 Ronnie Chatterji 與 Stanford 的 Bharat Chandar。Chandar 用 ADP 薪資資料說明:22–25 歲、在 AI 高曝險職業的年輕人,在控制公司層級衝擊後,就業相對下降 16%,資深員工沒有同樣的趨勢;調整主要出現在人數,薪資還沒動。兩位講者也一再提醒,總體就業目前看不出大規模替代,「曝險」不等於「被取代」。這講沒有投影片,材料是錄影與閱讀清單。
Harvard CS 2881R Fall 2025 第 10 講請來 OpenAI、Anthropic、Google DeepMind 的四位研究者,從兩個方向偵測模型的不良行為:讀它寫出來的 chain of thought,或讀它的 activation。CoT 監控抓 reward hacking 比只看動作有效,但把監控器放進訓練獎勵,模型就學會把意圖藏起來。activation 這一側,persona vector 能追蹤人格漂移,Sonnet 4.5 的稽核則顯示關掉「我在被測試」的方向後,不良行為會變多。Neel Nanda 的結論最務實:簡單的 steering vector 常常贏過 SAE,先跟 baseline 比。
Harvard CS 2881R 第 11 講談聊天機器人與心理健康。Boaz Barak 提出一個他自己說「未經證實」的解釋:模型有預訓練的「模擬器」與強化學習的「最佳化器」兩種模式,對話越長、越偏離訓練分布,越容易退回模擬器,順著故事繼續討好。兩組學生實驗分別測到:一次討好會外溢到無關問題,而妄想情境下 GPT-4.1 的附和率隨對話變長而惡化。預讀同時列了正面證據(NEJM AI 隨機試驗、NHS 觀察研究)與反面證據(stigma 研究、Parasitic AI)。本文只轉述研究與課堂討論,不提供臨床建議。
Harvard CS 2881R 最後一講由 Boaz Barak 和兩位 OpenAI 客座 Tejal Patwardhan、Kevin Liu 談未來十年。Boaz 的心智模型是:AI 等於每年向經濟注入指數成長、也越來越通用的虛擬勞動力,他最擔心的是變化太快而控制不足,以及權力集中與監控。Patwardhan 介紹 GDPval:用產業專家的真實工作成品當標準答案,由另一批專家盲評。Liu 說明為什麼 coding agent 還沒自動化 AI 研究:驗證太貴、回饋迴圈太長。課站這講的 Resources 寫「to be determined」,本文內容全部來自錄影。
CS2881R 的期中作業不是考試,是 2–4 人一組,從四篇 AI 安全論文裡挑一篇,重做它最核心的那張圖或表,再做一到兩個延伸,交 3–5 頁報告與 GitHub。規格投影片與評分表都公開,校外讀者可以完整照做。評分表把最多分數給「重現」與「延伸」,另外專門留一分給「你對結果有多脆弱的反思」——這一分正是這份作業想訓練的研究習慣。
CS181 2026 期末(5 月 9 日)能公開拿到的 final checklist、second-half practice 16 題與 final review 66 頁都是 2025 版,涵蓋 Bayes net、EM 等 2026 週表沒有的題目,卻缺 Transformer、VAE、GAN、自迴歸模型。先把 checklist 對上 2026 週表分三類,再用 hw 與 section 補新講題,最後拿 2025 practical 補一次端到端專案。
CS181 Spring 2026 的 HW2(due 2/27)共四題 90 分:用行星觀測資料訓練 10 個 logistic 模型看偏差與變異、推導生成式分類的 MLE、在 27 筆貸款申請資料上實作五種分類器,再用 SGD/Momentum/Adam 看 ridge 怎麼改變損失地形。核心是分清「模型給的機率」和「10 個模型彼此不一致」這兩種不確定性。
CS181 Spring 2026 的 HW3(due 3/23)三題 100 分:先把多項式與 RBF kernel 拆回特徵映射、從 ridge 推到 dual 係數 α 與 support vector 直覺;再手推兩層 sigmoid 網路的 backprop;最後佔一半分數的是在 Fashion-MNIST 上訓練 ResNet,自己量出 scaling law,用 C≈6ND 推算固定算力下模型與資料該怎麼分。
HW4 Problem 2 先在 CelebA 64×64 上訓練卷積 autoencoder,再讓你從 N(0, I) 隨機取樣,看它生不出臉;接著推 ELBO、reparameterization 與封閉形式 KL,最後把同一個骨幹改成 VAE,比較兩者的重建與取樣。
HW4 Problem 1(40 分)分五小題拆解 self-attention:2×2 手算、為什麼除以 √dk、沒有位置編碼時的 permutation equivariance、只用 NumPy 寫單頭注意力、用 PyTorch 寫多頭並在合成資料上畫注意力熱圖。
HW4 Problem 3 用三步量化「多棵樹投票為什麼會準」:Hoeffding 界在 p=0.6 時要 B≈691 棵獨立樹才壓到 10⁻⁶;樹之間相關係數 ρ 讓集成變異數卡在 ρσ²;最後比較隨機森林的密集集成與 MoE 的稀疏路由。
HW5 的 Problem 3–4 把手寫數字丟給三種不看標籤的方法:K-means 用 10 個平均影像代表整批資料,HAC 用合併樹給出任意群數,PCA 用幾個連續方向壓縮影像。三者都在回答「用少量東西描述資料,誤差多大」,作業要你把它們的目標函數與重建誤差放在一起比。
HW5 的 Problem 1–2 都是「把學習變成分類題」:SimCLR 的 NT-Xent 損失是在 2N−1 個候選裡找出同一張圖的另一個增強版本,GAN 的判別器是在分真假。作業要你推出這兩件事的數學(交叉熵等價、最佳判別器與 JS divergence),再在 FashionMNIST 與 MNIST 上把兩套訓練迴圈寫出來。
HW6 Problem 4(20 分)用三個問題拆解「一個 token 接一個 token 生成」的代價:逐步挑最大機率不等於整句最可能、每步重算所有 key 讓成本變成平方級而 KV cache 把它壓回線性、speculative decoding 用小模型先猜再讓大模型一次驗證。全部是紙筆題,但每一題都對應到今天 LLM 推論系統的真實設計。
HW6 Problem 1(15 分)把課堂上的離散 HMM 換成連續狀態:狀態每步加一點高斯雜訊、觀測再加一點雜訊,要你推出 filtering 分布 p(zₜ | x₀…xₜ) 的均值與變異數。這就是一維 Kalman filter。解法只有兩步:先用轉移「預測」,再用觀測「修正」,兩個高斯恆等式題目都給了。
HW6 Problem 2(15 分)給你一張 4×5 的 Gridworld:動作會打滑、獎勵在離開格子時才拿到。你要在 notebook 裡寫 policy evaluation、policy iteration 與 value iteration 各一步,再觀察折扣因子 γ 怎麼改變策略,最後反問「這樣建模機器人任務合理嗎」。環境規則全部已知,所以這是規劃,還不是學習。
HW6 Problem 3(20 分)要你寫一個表格式 Q-learning agent 玩類 Flappy Bird 的 Swingy Monkey,最低標準是 100 局內至少一次超過 50 分,還要再加一個自選的改進。Problem 5(10 分)是 250 字內的倫理題:假設社群平台的使用者政治立場愈來愈極端,用 RL 的概念解釋 reward 設計可能怎麼推了一把。
CS181 Spring 2026 期中考在 3/10 課堂上進行,佔總成績 15%,閉卷但可帶一張雙面筆記。官方 midterm checklist 分成迴歸、分類、神經網路與模型選擇、SVM 四塊;本篇把每塊對回 HW0–HW3 的題號,標出 2026 作業沒練到的缺口,並說明 2025 版 practice、review 與 concept checks 怎麼用。
HW0 用四題檢查 CS181 的先修:矩陣 y=Xw 的可解條件、目標函數的微分與優化、機率推理,以及用 Python 實作 OLS。做不順的地方就是開學後要優先補的缺口。
HW1 用 80 萬年冰芯溫度資料串起四題:kNN 與核迴歸、最小平方法的幾何證明、基底函數迴歸、以及從機率觀點推出 ridge/LASSO 正則化,最後用 coordinate descent 實作 LASSO。
CS181 2026 以 hw0–6 七份作業為週節拍、官方課表未列對應講次的公開錄影但 A3 可自學;2025 多 practical、2024 雙期中、2023 單授 Weiwei Pan。看懂四年沿革後,從 HW0 體檢先修再逐週跟最穩。
CS50 AI 用七週、十二個 Python 專案走過人工智慧的入門內容:搜尋、邏輯推論、機率、最佳化、機器學習、神經網路與語言。前四週的方法靠人把問題寫清楚,後三週讓電腦從資料裡學。講課、筆記、專案與自動評分都對校外免費開放。這篇是本系列的入口:七週各教什麼機制、一個可以跟著算的例子、先備檢查與閱讀路線。
Harvard 校外最完整的入口是 CS50 AI,但 Summer 2026 實際沿用 2020 錄影與作業資產,OCW 作業又已更新到不同版本;CS181 Spring 2026 公開當期作業與講義、沒有當期錄影,CS182 Fall 2026 則尚未完成開課。