知識分享 · AI 協作開發
從一個人用 AI 到 AI Native 公司:
規格書是鷹架,不是藍圖
花一個月寫了 5,000 行規格書,連基礎模組都跑不動;拆成小模組各寫小規格,一兩天就跑通。Noopher AI 創辦人陳宜昌在 HWDC 2026 主題演講,從一個人用 AI、帶 Agent Team 談到 AI 執行、人做決策的 AI Native 公司。
三個層次:團隊開發要算進一群 Agent
以前講團隊開發,講的是一群人怎麼分工;現在還得把一群 AI Agent 算進去。這是陳宜昌(YC)在 iThome 主辦的 Hello World Dev Conference 2026(HWDC)的主題演講,他把問題分成三個層次往上談:一個人用 AI、一個人帶一組 Agent Team、一群人跟一群 Agent 合作 —— 最後一層,就是他說的 AI Native 公司。
講者做了八年機器學習研發,曾任聯發創新基地(MediaTek Research)資深技術經理,帶隊開發 Breeze 系列繁體中文語言模型(他介紹為臺灣第一個繁中語言模型);近幾個月離開聯發科,創辦 Noopher AI,目標是做成一家 AI Native 公司。演講用了他自己的兩個案例:與臺大李宏毅教授合作的語音聊天機器人,以及 Noopher AI 的內部開發流程。
演講的三個層次。每一層都有一個講者親身踩過的坑。
一個人+AI:一份 5,000 行的規格書
從聊天框到 Coding Agent
2025 年 4 月,要 AI 寫程式還得靠聊天框。講者當時要寫一段程式,檢查兩段推理畫成的樹是否同構(判斷兩段思路是否相同),自己花了 4 小時寫不出來;把過程中整理的問題定義和測試貼進聊天框,半小時 AI 就寫好了。但這沒變成日常:沒有前面那 4 小時的準備,光是把 prompt 組織好就很難。
轉折是 2025 年 11 月底 Claude Opus 4.5 推出,Coding Agent 進到電腦裡,跟你改同一份程式碼。他測了幾個案例,「不用還好,一用就嚇一跳」,自覺晚了市場兩三個月,便辦了線上共學社群 Open Vibe Developers(8 場、每場三、四百人,講者自述),後來在 COSCUP 歸納出三條原則:規格先行、測試驅動開發(TDD)、照顧好 LLM 的 context。
失敗案例:寫了一個月的規格書
實戰專案來自他和李宏毅教授團隊合作、入選 ICLR 2026 的 TASTE(讓語音和文字做 token 級對齊)。他真正想做的是像 ChatGPT Voice Mode 那樣打開就能聊的語音聊天機器人,於是和李教授的兩位實習生做第二代 TASTE2:模型要從 batch mode 改成 streaming、要中文化、要做對話後訓練;後端要 streaming、async、多使用者,最麻煩的是動態調配 GPU —— GPU 天生用 batch 跑,上面的系統卻要 streaming。講者說,沒有 AI Coding,他們三個人不可能 8 個月做出來(講者自述)。
照規格驅動的做法,他們花了一個月寫出 5,000 行以上的規格書,每個細節都 review 過、想得到的 edge case 都寫了,後面還附一堆 reference 和測過的範例程式。結果 AI 生成跑了很久,連基礎的 module 都跑不起來,修了很久也找不到問題在哪。
講者的診斷:他們違反了自己的第三條原則。規格塞滿細節,context 沒有聚焦在眼前要解決的問題上,程式品質自然差。他叫停,回到軟體工程的老辦法 —— 拆問題:拆成三個 submodule,再用一個 orchestrator 串起來,每個模組一份小規格。規格小,AI 理解得好,第一個 submodule 一個早上、一小時就跑通;模組做好就有現成的程式碼,AI 看著 interface 去接,連最複雜的 orchestrator 都寫得很快,幾乎不需要規格。一兩天整個跑通。
| 面向 | 藍圖式 | 鷹架式 |
|---|---|---|
| 規格 | 5,000 行以上,另附大量參考 | 三個 submodule 各一份小規格 |
| AI 的 context | 塞滿細節,沒有聚焦 | 只裝眼前這個模組 |
| 結果 | 連基礎 module 都跑不起來 | 第一個模組一小時跑通,整體一兩天 |
| 模組怎麼接 | 靠規格事先寫死細節 | 靠已經能跑的程式碼與 interface |
結論就是本文標題:規格要當鷹架,不要當藍圖。藍圖是把所有細節想清楚、照圖施工;鷹架是蓋的時候拿來撐,蓋完就收掉,AI 看到的程式與規格才會乾淨。講者的說法是:不要以為規格是唯一的指引,好的程式碼是更強的指引,而且是可以驗證的指引。
海外開發者的兩個分歧
講者原本整理了更多海外開發者的觀點,因為時間只留下兩個分歧點。
分歧一:先寫規格,還是直接做原型?
- 規格派 Matt Pocock:用 grill-me skill 讓 AI 一直問你問題,問到雙方對齊,再寫規格、照規格開發。
- 原型派 Boris Cherny(Claude Code 的創造者與負責人):不寫規格,寫 prompt 先做一版,測完有問題就改,一直迭代。原型一定很多問題,沒關係,出來之後要嘛把細節修對,要嘛看著原型重做一份 —— 原型就是規格。(Boris 的其他心法見〈Claude Code 怎麼用才對?〉。)
講者自己看狀況:任務難描述就走原型,好描述就走規格。規格寫完可以放著讓它跑,你去喝咖啡;做原型則得一直坐在 terminal 前跟 AI 互動。所以規格省時間,原型省掉一開始討論規格的過程 —— 他坦白說討論規格其實很難,AI Agent 講的語言跟人不太一樣,光是理解它的思路就不容易。
分歧二:AI 寫的程式碼,人要看多少?
| 人物 | 身分 | 演講中的說法 | 原始說法 |
|---|---|---|---|
| Simon Willison | Django 共同創造者 | 一口氣讓 AI 寫完,再請 AI 用導覽的方式帶他理解 | 〈Linear walkthroughs〉:請 Agent 讀完原始碼,規劃一份線性導覽,逐段解釋程式怎麼運作 |
| Silen Naihin | AutoGPT 開發者 | 別太看程式碼,管好 Agent 怎麼派出去、怎麼驗收 | 部落格寫「You no longer need to review the code.」,改測行為,以整合測試當安全網 |
| DHH | Ruby on Rails 創造者 | 看系統狀態:新系統做原型全交給 AI;Basecamp 這類 legacy codebase 要看更多 | Lex Fridman Podcast #501:Omarchy 新版 Quattro 沒有一行是他手寫的,但他看過整體輪廓、逐行看過模型層的關鍵程式,很多 UI 程式沒看;Basecamp、HEY 這類大型產品「出乎意料地難」完全交給 Agent |
| Andrej Karpathy | vibe coding 命名者 | 後來改口:vibe coding 適合拋棄式專案,專業工作要監督與驗證 | Sequoia Ascent 2026 與 Stephanie Zhan 的爐邊對談摘要:vibe coding 適合原型與個人工具;agentic engineering 要設計規格、監督計畫、檢查 diff、寫測試 |
四人說法不同,講者歸納的共識是:少看程式碼,多做監督與驗證。Step 05 會看到,他的公司把這個共識推到「人只鎖住三道關卡」。
一個人帶 Agent Team:人定架構、逐單對齊
第二個層次:一個人怎麼用好一群 AI。Noopher AI 的一張工單是這樣走的:
一張工單從架構到關單。規格只活在 issue 上;留下來的只有詞彙表和決策紀錄。
拆單最重要的是每一單都不要重疊,這是後面能一次跑好幾張單的前提。grill-with-docs 跟 grill-me 一樣讓 Agent 一題一題問到對齊,但會多留兩份檔案。講者舉例:系統上面有 meta-agent、下面有一群 member agent,兩個詞各是什麼意思,寫進 CONTEXT.md 詞彙表;「meta-agent 不碰程式、只負責指揮,member agent 才動手」是一個技術決策,寫進 ADR(Architecture Decision Record,架構決策紀錄)。這兩份文件是系統的「燈塔」:AI 自己跑時有疑惑會先查它們,文件代替你回答;沒有它們,AI 一遇到問題就回頭問你,你得一直講同樣的事。背後的邏輯是 DDD(領域驅動設計):程式的結構與命名跟著業務領域走,嘴上談的和寫出來的是同一套名字,在 Agent 時代特別容易跟 AI 對齊。至於規格,就是鷹架,放在 issue 上,做完關單,之後大多不再看。
docs/adr/;演講說的是舊名。另外,講者開源的 oat-agents(下一節)自己的 repo 就有 .dev_docs/CONTEXT.md 和 8 份 ADR —— 拿自己的流程開發自己的工具。
第一個月:我是不是 AI 的小弟?
Noopher AI 創立的第一個月,講者坐在電腦前把單拉下來,請 AI 寫計畫,看了覺得不錯就讓它執行。中途它零星發問:太複雜看不懂的,他同意;很簡單的,AI 通常判斷得不錯,他也同意 —— 「就是哪次不同意這樣」。Review 他寫成一個 skill:跑單元與整合測試、做 spec review,再加上圖下方說明的變異測試 —— 講者的說法是,改反之後測試沒亮紅燈,就一定有問題。報告出來,他還是每次都同意,然後進入下一輪。
一個月後他開始懷疑:我是不是在幫 AI Agent 服務的小弟?他做的事非常制式,坐著等、按同意,注意力沒有放在自己能發揮的地方。他要的是流程自己走、卡住才來問他 —— 於是開始試 Agent Team。(TDD 怎麼防止 AI 偷改測試,見〈被下載 700 萬次的五行字〉。)
兩版都失敗之後:oat-agents
| 版本 | 負擔 | 做法 | 卡在哪 |
|---|---|---|---|
| 第一版 | 人 | Claude Code 原生 subagent:planner、worker、reviewer 三個角色,用 worktree 切開執行環境;主視窗當 meta-agent 調度。單切得乾淨,一次跑好幾張,平行度很高。 | 所有資訊擠在唯一的主視窗。他去上個廁所,subagent 問「選 A 還是 B」,問題被洗版洗上去,回來沒看到,大家都停著等他。人的認知負荷沒有減少。 |
| 第二版 | Agent | 參考一位中國開發者的看板流:Backlog、To do、Doing、Review、Done;Agent 領單做事,把思路與決策寫在卡片上,做完自己移卡。 | Agent 得額外學看板規則、維護看板。他用 Fable 模型一個月燒掉約 10 億 token、寫一大堆 skill 和 instruction 想修好,新任務還是零星出錯。 |
講者的比喻是:老闆不要微觀管理。叫員工一直寫報告、回報進度,做開發的能量就被分掉了。回到第一性原理,需要的不是看板,而是看得到員工的電腦:其實第一版就夠了,只要再加一個看見每個 Agent 在做什麼的機制,把資訊流管好(後來他甚至設了一個助理 Agent 幫他看、再匯報)。找遍開源專案沒有類似的,他就自己寫了 oat-agents,以 MIT 授權開源:
- 結構簡單:一個 meta-agent 帶一群 member agent;團隊有哪些角色、照什麼規則運作,全用 plugin 自訂。
- Agent 沒有額外負荷:用的就是原生 Claude Code 和 Codex,沒有引入新的 harness(執行框架)。
- 隔離:worktree 管檔案、pod 隔離執行環境,每個 session 只專心做自己的任務。
- 看得見、接得手:TUI(文字介面)一個畫面列出每個 Agent 的狀態、token 數與花費;想下命令就透過 tmux 直接登入那個 session。
.devcontainer/ 建出(目前是 Kubernetes)。README 有繁體中文版。
AI Native 公司:AI 執行,人決策
最後一層:一群人跟一群 Agent。講者說,先弄清楚 AI Agent 擅長與不擅長什麼,才建得起組織。
- 擅長:執行力高、可平行,而且非常細心。以前改一個變數的資料型別,人常忘了改別處;AI Agent 通常每個該改的地方都會改到。流程化、機械式的任務特別適合它。
- 不擅長:對齊。它很容易一頭鑽進細節、不談大局,你得一直提醒「先談大局」;也正因為細心,容易困在細節裡,技術選型時很難跳脫框架。
他舉了個例子:討論架構時,AI 說只能在 A、B 之間二選一。他覺得有第三條路,提示「你再想一下」,AI 還是想不出來;等他講出第三種解法,AI 馬上說「哇,你說的對,這個太簡潔了」 —— 他形容這是花式吹捧。結論:AI 強在執行,人強在全盤決策與跟 AI 的對齊。所以 Noopher AI 把團隊徹底拆成兩個:
決策團隊 vs 執行團隊。人不是退出,而是守在中間。
執行團隊完全由 AI 主控,人不寫程式碼。決策團隊除了做決策,還有兩件演講特別強調的事:
- 理解工程:人跟程式脫節,就做不出好決策。講者當菜鳥時,公司動輒幾萬行程式碼,接到單就問待了十幾年的老鳥,老鳥說「改這個檔案、那個檔案就好」,照做真的就完成了。現在的新人沒這麼好過:你的任務是領導 AI 寫程式,一進公司就得懂整個系統 —— 好在也能用 AI 幫你看懂公司那一萬行程式碼。
- 探索工程:帶著理解去看原型,做 A、B、C、D 幾版改進,用測試知道哪版好,決定下一步;或讓 AI 上網找相關資訊,再做一個新原型去試。走過的錯誤決策全部回到原型,疊出更好的版本。
打造原型時,他們幾乎不看程式碼,只卡上圖中間的三道關卡;其中介面那一關,講者說「這些我們會下去看,把它鎖死」。講者也坦白:這是原型期的做法,公司脫離原型期之後可能不同,「不過我還沒走到這一步」。他的三點小結:
- 徹底切分執行與決策,執行全交給 AI。好的 Agent 執行團隊像生產線:持續運作、能最佳化、能學習,跟人對齊,隨時看得懂。
- 人定義目標:以市場、客戶與成果為標竿。AI Agent 只會「做」,做跟成果是兩件事;要的成果,決定人怎麼派工。
- 人跟人的 scope 盡量拆開,每個人都要理解整個系統。重心從親手做,變成持續對齊、持續決策。
這就是講者說的弔詭:AI 替你實作了,你反而要更了解整個專案。
編按:小團隊明天就能用的開工檢查表
| 項目 | 出處 | 開工前,人先寫下或鎖住什麼 |
|---|---|---|
| ① 驗證 | Step 03、05 | 這個系統要怎麼驗證:要過哪些單元與整合測試,review 再加變異測試。 |
| ② 介面 | Step 05 | 前後端 interface、模組的資料介面,人親自看過後鎖死。 |
| ③ use case | Step 05 | 系統怎麼被使用、怎樣才算跑通,先把 use case 定下來。 |
| ④ 拆單 | Step 03、05 | 每張單範圍不重疊(前後端分開、一模組一單);成員負責的 scope 也拆開。 |
| ⑤ 規格 | Step 01、03 | 寫在 issue 上、範圍小,做完就關單;長期留著的是詞彙表與 ADR。 |
一句話總結:AI 時代最重要的是判斷力
三個層次各一句:一個人用 AI,規格當鷹架,蓋完就收;一個人帶 Agent Team,Agent 專心做事,人負責看見脈絡;一群人加一群 Agent,實作交給 AI,人負責理解、探索與決策。
講者最後的看法是:AI 時代最重要的是判斷力 —— 決定做什麼的判斷力,靠的是眼光與品味;過程中的判斷力,則是在 AI 給的大量雜訊與發散選項裡找出真正的訊號。這些都憑個人的認知,而 AI 可以拓寬認知:他創業後沒請會計師和記帳師,自己靠 AI 學會計與記帳,再用 AI Coding 寫一套系統自己作帳。他的結語:這是充滿機會的時代,拓寬你的認知,然後跑起來。
互動實驗室:你的團隊卡在哪一層?
五個導入 AI 協作開發時常見的症狀,點選看演講裡對應的層次與做法:
參考與引用來源 (References & Sources)
- 1. 原影片:AI Coding 新時代的團隊開發:從一個人用 AI 到 AI Native 公司|陳宜昌 YC|HWDC 2026 Keynote https://www.youtube.com/watch?v=-B9WLMJAiZM
- 2. Hello World Dev Conference 2026 官方網站 https://hwdc.ithome.com.tw/2026
- 3. oat-agents(Open Agent Team)GitHub repo https://github.com/Noopher-AI/oat-agents
- 4. TASTE: Text-Aligned Speech Tokenization and Embedding for Spoken Language Modeling https://arxiv.org/abs/2504.07053
- 5. The Breeze 2 Herd of Models(MediaTek Research) https://arxiv.org/abs/2501.13921
- 6. Matt Pocock:grill-with-docs 說明文件 https://github.com/mattpocock/skills/blob/main/docs/engineering/grill-with-docs.md
- 7. Building Claude Code with Boris Cherny(The Pragmatic Engineer) https://newsletter.pragmaticengineer.com/p/building-claude-code-with-boris-cherny
- 8. Simon Willison:Linear walkthroughs https://simonwillison.net/guides/agentic-engineering-patterns/linear-walkthroughs/
- 9. Silen Naihin:I was a top 0.01% Cursor user. Here's why I switched to Claude Code 2.0. https://blog.silennai.com/claude-code
- 10. Lex Fridman Podcast #501:DHH 逐字稿 https://lexfridman.com/dhh-2-transcript/
- 11. Andrej Karpathy:Sequoia Ascent 2026 summary https://karpathy.bearblog.dev/sequoia-ascent-2026/
- 12. Anthropic:Introducing Claude Opus 4.5 https://www.anthropic.com/news/claude-opus-4-5
- 13. Michael Nygard:Documenting Architecture Decisions https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
- 14. Mutation testing(維基百科) https://en.wikipedia.org/wiki/Mutation_testing