AI 互動教室 ‹ 生成式 AI 導論
下載 .py 單獨開啟實驗場 ↗ 留言回報
GENAI BASICS · 06 · 開發新範式

新開發範式:
Vibe Coding 到 Spec-Driven

上一課看完模型怎麼「思考」,這一課換人類上場:用 AI 寫程式的四種姿勢。 需求都一樣——「做一個報帳單審核小工具」——但你交給 AI 的東西完全不同。 點四個分頁比比看(示範文本,用來對照範式的差異):

同一需求的四種交付物示範——差別不在 AI 多聰明,在你給它什麼、在哪裡驗收。

右邊的實驗場是真的 Python(在你的瀏覽器裡跑,不用安裝任何東西)。 首次載入約需 30–60 秒,正好夠你讀完第 1 節。這一課右邊只有兩個實驗, 但其中一個的 token 帳是真的用 tiktoken 量出來的——改壞了重新整理就復原。

01 · VIBE CODING

Vibe Coding:講人話,讓 AI 寫

一句話重點:用自然語言描述需求、AI 生成程式,人只做測試與判斷—— 快到不可思議,但品質全押在「你會不會驗」。

這個詞是 Andrej Karpathy 在 2025 年初丟出來的:與其逐行寫码,不如 「完全順著感覺走」——描述、生成、跑跑看、再描述。工具就是你身邊那些: Claude Code、Cursor、GitHub Copilot。一個典型的 vibe 迴圈長這樣:

你:做一個網頁小工具,貼上發票金額清單, 幫我算總額和平均,超過 2000 的標紅色。 AI:(生成 80 行 HTML+JS) 你:(貼進瀏覽器跑)標紅色沒生效。 AI:(修正 CSS 選擇器) 你:(再跑)可以了,收工。

注意這個迴圈裡人做了什麼:沒讀一行程式碼,但每一輪都動手驗證結果。 這就是 vibe coding 的安全邊界——改壞的代價小(自用、可重來)、 對錯一眼可辨的東西,vibe 是最快的路。反過來,會碰錢、碰資料、 別人要接手維護的東西,「能動」跟「能上線」中間差的就是接下來三站。

02 · AGENTIC ENGINEERING

Agentic Engineering:從「下指令」到「帶團隊」

一句話重點:Vibe Coding 的專業版——重心從「寫程式」移到 編排與監督 Agent:拆任務、設驗收、留脈絡。

當 AI 從「補全下一行」進化成「自己開檔案、跑測試、改到過」的 agent (上上課的主角),工程師的工作跟著變形: 像帶新同事一樣帶它——任務拆到可驗收、規範寫到可查閱、進度有檢查點

最具體的動作是把「每次都要重講的事」寫成專案脈絡檔。 Claude Code 讀 CLAUDE.md、Cursor 讀 rules 檔,格式就是普通 Markdown:

# CLAUDE.md(放在 repo 根目錄,AI 每次對話自動讀) ## 專案是什麼 報帳審核工具:前端 React、後端 FastAPI、資料庫 PostgreSQL。 ## 硬性規則 - 金額運算一律用 Decimal,禁止 float - API 改動要同步更新 tests/ 對應測試 - 提交前跑 `make lint test`,全綠才算完成

然後把「做完」定義成可驗證的條件(測試通過、lint 全綠、行為對照清單打勾), 讓 agent 對著驗收條件自我修正,而不是對著你的耐心修正。 到右邊 1️⃣ 挑幾個專案情境,看你該站在光譜的哪一格。

03 · CONTEXT ENGINEERING

Context Engineering:餵對資訊,比餵多資訊重要

一句話重點按需組裝最小的正確資訊給模型, 取代「上下文越大越好」的迷信——省的是錢,賺的是準確率。

第 1 課說過:上下文窗再大,「塞越多」都不等於「答越好」, 而且每個 token 都要錢。Context engineering 就是把「該給什麼」當工程問題管理: 檢索出相關的知識段落(而不是整份文件)、把冗長歷史摘要(而不是全文重播)、 規範放在固定位置(而不是每次口頭重講)。

右邊 2️⃣ 的帳是真的:同一個客服問題,「全塞」757 個 token, 「檢索相關段+歷史摘要」236 個——省 69%(tiktoken o200k_base 實測,2026-08)。 每輪對話都付一次,乘上流量就是月底帳單的差距; 而且無關內容變少,模型被雜訊帶偏的機率也跟著降。

實務動作取代的壞習慣
檢索後只塞相關段(下一課 RAG 的本行)整份文件複製貼上
歷史摘要+保留最近幾輪原文對話全文無限重播
規範進 CLAUDE.md / system prompt 固定位置每次對話重新交代一遍
工具與參考資料按需載入(要用才給說明書)把所有工具說明全掛上去
04 · SPEC-DRIVEN DEVELOPMENT

Spec-Driven:規格是唯一真相源

一句話重點:先把行為寫成規格(spec),AI 對著規格實作、對著規格驗收—— 工具如 Spec Kit/OpenSpec/BMAD

Vibe 的極限在「你講的話就是規格」——講漏了,AI 只能猜。 Spec-driven 把這件事翻過來:行為先寫成結構化規格, 需求變更先改 spec、再讓 AI 依 spec 改實作,審查時看的是「diff 是否符合 spec」。 OpenSpec 的規格長這樣(Requirement + 可驗證的 Scenario):

# openspec/specs/expense-review/spec.md ### Requirement: 超額單據必須標記 金額超過部門上限的報帳單 SHALL 標記為「待主管覆核」。 #### Scenario: 超過上限 - WHEN 單據金額 > 部門上限 - THEN 狀態設為「待主管覆核」,並通知主管

GitHub 的 Spec Kit 把整條流程做成指令(在 Claude Code、Copilot 等代理裡用):

uvx --from git+https://github.com/github/spec-kit.git specify init my-project # 然後在 AI 代理裡依序走: /speckit.specify # 描述要做什麼、為什麼(產生 spec) /speckit.plan # 定技術選型與架構 /speckit.tasks # 拆成可執行的任務清單 /speckit.implement # 依任務清單實作

BMAD 則是把這條流程角色化的多 agent 框架(分析師、PM、架構師、開發各司其職)。 工具會換,骨架不變:規格在前、實作在後、驗收對規格。 什麼時候值得付這個「先寫規格」的成本?右邊 1️⃣ 的光譜圖給你判斷基準—— 多人維護、合規要求越重,越該往這一站走。

05 · 速查

本課名詞速查卡

發講義用的濃縮版——一個名詞一句話:

Vibe Coding 自然語言描述需求、AI 生成程式,人只做測試判斷——低風險小工具的最快路徑。
Agentic Engineering Vibe 的專業版:重心在編排與監督 Agent——拆任務、設驗收條件、寫 CLAUDE.md 留脈絡。
Context Engineering 按需組裝最小正確資訊取代無限上下文迷信——實測同一問題省 69% token,還降低被雜訊帶偏。
Spec-Driven Development 規格是唯一真相源,AI 對規格實作與驗收——工具如 Spec Kit/OpenSpec/BMAD
06 · 實戰

換你動手

LEVEL 1

在右邊 2️⃣ 把兩個開關全關,token 掉到多少、省幾成?再各只關一個——知識和歷史,哪個開關省得多?

LEVEL 2

在實驗區把 knowledge 改成 3000、history 改成 1200(模擬塞大文件+長對話),算一天一萬輪的量。什麼規模下 context engineering 從「可有可無」變成「非做不可」?

LEVEL 3

「歷史摘要」有代價:想出三個「摘要會把事情弄壞」的具體情境,以及你會怎麼驗證摘要沒摘壞。(提示:想想被摘掉的訂單編號。)

卡住了?三題在 notebook 最後一格都有折疊解答——先自己做,再打開對照。

07 · 驗收

情境測驗

離開前試試看:下面的情境都真的會遇到。每題選一個你認為的最佳做法,選了馬上看得到解釋。

Q1 情境題

你週末 vibe 出一個報帳小工具自己用,很順手。主管看到說「很棒,下個月全部門 40 人都用它報帳」。上線前最該補的是?

從「自用」到「40 人碰錢的工具」,改壞的代價變了,開發姿勢就要跟著換站——這正是光譜圖的用法。該補的不是「重寫」而是「可驗證性」:測試蓋住金額與權限這些會出事的路徑、行為寫成規格,之後不管人改還是 AI 改,都有東西可對。A 低估了場景變化(vibe 的品質保證只有「你驗過的那幾條路」);B 把 AI 的產能優勢整個丟掉,而且逐行重寫不等於有測試;D 搞錯了問題——缺的是驗收機制,不是生成品質。

Q2 情境題

你用 AI 代理改公司後端,發現每次新對話都要重講一遍「金額要用 Decimal」「改 API 要同步改測試」,偶爾忘了講它就犯。最好的解法是?

「每次都要重講」是 context engineering 最典型的病徵,藥方是把規則放進固定位置:CLAUDE.md 這類專案脈絡檔每次對話自動載入,規則從「口頭交代」變成「基礎設施」。A 方向對但劑量錯——三萬字全塞是「無限上下文迷信」,又貴又稀釋重點,硬規則只需要幾行;C 誤解了機制——新對話是全新的上下文,窗再大也不會自動繼承上一場對話;D 放棄得太早,這問題有標準工程解。

Q3 情境題

你的團隊接了一個金融客戶的案子,對方稽核要求「每個系統行為都要能對應到書面需求」。團隊平常用 vibe + agent 開發,速度很快。你該怎麼調整?

稽核要的是「行為 → 需求」的對應鏈,這正是 spec-driven 的本行:規格先行,每個行為都能回答「規格哪一條允許」,變更有提案紀錄。關鍵是 C 沒有放棄 AI——Spec Kit/OpenSpec 這類工具就是設計來讓 AI 在規格框架裡高速實作的。A 是事後補文件:反向整理出來的「需求」只是實作的鏡子,說明不了「為什麼該這樣」,稽核一問就穿幫;B 把工具和流程混為一談,手工開發沒有 spec 一樣不可追溯;D 不是工程對策。

Python 環境載入中(首次約 30–60 秒)…讀完第 1 節它就好了