Skip to content
系列
11 篇文章

CS146S:AI 原生開發十週

照 Stanford CS146S「The Modern Software Developer」的十週大綱逐週讀:從 agent 內部構造、context 工程、skills 與客製,到 codebase 就緒度、code review、安全、背景 agent、團隊化與 software factory。每篇對照課程指定材料與可查證的一手來源。

Stanford CS146S 兩版大綱對照:一年之間,這門 AI 開發課改掉了什麼

Stanford CS146S 的 Fall 2026 大綱把 prompting 從整整一週壓成一節,砍掉終端機與 UI 生成兩週,換上 Agent Skills、Agent-Ready Codebases、Background Agents、AI-Native Team。評分也動了:Final Project 從 80% 降到 50%,多出 30% 的 open source 貢獻。這個系列照十週逐篇讀。

CS146S Week 1:coding agent 的內部構造,其實是一個 while 迴圈

CS146S 第一週的講題是「用 200 行寫出 Claude Code」加上「解剖 production agent 的 system prompt」。agent loop 本身確實只有十幾行。課程投影片最後一頁列了四條 Claude 底下實際在做的事,其中一條是用 `<system-reminder>` 標籤在各處防止模型漂掉——這在官方文件裡找不到。

CS146S Week 2:context 工程、RePPIT,與 MCP 的 98.7% 那一刀

Fall 2026 把整整一週的 prompting 壓成這週的一節,換上 RePPIT(Research、Propose、Plan、Implement、Test)與 MCP。RePPIT 的兩條硬規則最值得抄:propose 一定要兩個方案、寫 code 的那個 instance 不准 review 自己的 code。MCP 那邊 Anthropic 量到把工具改成程式碼呼叫可以把 150,000 tokens 壓到 2,000。

CS146S Week 3:Agent Skills 是一個資料夾,難的是那兩行 description

Agent Skills 的規格小到一句話講得完:一個含 SKILL.md 的資料夾。真正的設計在三層 progressive disclosure——開機只載 name 與 description,命中才讀全文,需要才展開附檔。本站自己的 repo 有 35 個 skill、7,893 行 SKILL.md,開機成本仍然只有那 35 組 metadata。

CS146S Week 4:CLAUDE.md 該寫什麼、hooks 該擋什麼、subagent 該切在哪

課程把指揮 agent 的工具列成四件:指示檔、hooks、commands、subagents。指示檔是唯一每次開機都全額進 context 的,所以它是 config 不是 memory;hooks 補上「規則會被忽略、hook 不會」那一塊;commands 是四件裡唯一由人主動觸發的。課程另給一張表,把軟體任務七步驟裡只剩一步半標成人的工作。

CS146S Week 5:Express 拿 28 分、CockroachDB 拿 74 分——agent 就緒度是可以量的

Factory 把「repo 夠不夠格讓 agent 動」拆成八根柱子、五個等級,並公開了實測分數:CockroachDB L4(74%)、FastAPI L3(53%)、Express L2(28%)。核心論點是 agent readiness ≈ codebase 裡確定性驗證迴圈的密度——linter、type checker、測試,這些對 agent 來說是獎勵訊號。

CS146S Week 6:Google 為了讓 AI review 有用,先刪掉 17 條規則

Google 的 AutoCommenter 部署到數萬名工程師身上,論文寫出了整條調校過程:把 17 條「技術上正確但沒價值」的規則停掉,有用率從 54% 升到 66%,目標訂在 80% 才准進下一階段。最後的留言解決率約 40%。AI code review 的瓶頸從來不是抓不到,是抓太多。

CS146S Week 7:o3 找到 Linux kernel 零日,代價是 1:50 的訊噪比

課程量到的 AI SAST 誤報率是 50–100%,而傳統 SAST 本來也有 50% 以上——真正的新問題是非決定性:同一個 prompt 跑兩次結果不同,你無法回答「掃完了沒有」。課程列的 agent 攻擊向量有五種,其中 intent breaking 攻擊的是 agent 的計畫本身。

CS146S Week 8:把 agent 丟到雲端跑之後,瓶頸從等待變成審查

背景 agent 把「你盯著它跑」換成「它自己跑完開 PR」。三家的做法收斂到同一組零件:隔離環境、外部觸發(issue、Slack、Linear)、產出是 PR。真正的新問題是你變成瓶頸——五個 agent 同時跑完,五份 diff 排隊等你讀,而它們互相不知道彼此存在。

CS146S Week 9:一個人接 MCP 沒問題,三百個人接就需要一座門

個人怎麼接工具是偏好問題,組織怎麼接是治理問題——誰能碰什麼資料、金鑰放哪、成本算誰的。Anthropic 自己公布的十個團隊使用紀錄裡有個好指標:安全工程團隊佔了整個 monorepo 自訂 slash command 的 50%。採用不是均勻擴散的,它先在會自己造工具的團隊裡起飛。

CS146S Week 10:software factory 不是自動化,是把回饋迴圈交出去

最後一週的講題是「self-running, self-improving software systems」。前九週的零件其實都出現過:確定性驗證迴圈、可寫回的 skill、背景 agent、集中治理。課程投影片有個容易被忽略的比例——寫程式只佔工程時間的 30%,另外 70% 是把它跑在 production 上。