Skip to content

Theo 重新設計 AI 編程工作流:別再盯程式碼了,高手玩的是對話

🎯 核心金句:「如果你花在看程式碼的時間,比看關於程式碼的對話還要多,那你其實已經落後了。」

TL;DR

Theo(T3 Stack / T3 Code 作者)在半年後推翻自己之前的 AI 編程教學,提出一套完全相反的哲學:停止對工具和程式碼的執念,回歸「對話 + 極致簡單」。模型越來越聰明,瓶頸已經從「會不會寫程式」轉移到「懂不懂你想要幹嘛」。


一、工作流全面解構

背景

  • Theo 是 T3 Stack 和 T3 Code 的作者,超級 AI 編程狂熱分子
  • 半年前拍過「我是怎麼用 AI 寫程式的」教學,現在覺得超丟臉
  • 最大體悟:不是挖到外星黑科技,而是完全相反的哲學

核心轉變

舊思維(半年前)              新思維(現在)
┌─────────────────────┐     ┌─────────────────────┐
│  追求最強工具鏈     │ ──► │  對話 + 極致簡單    │
│  研究 prompt 技巧   │ ──► │  對齊意圖(AGENTS.md)│
│  盯著程式碼 diff    │ ──► │  讀 AI 輸出的文字    │
│  多模型並行         │ ──► │  單一主力模型        │
│  複雜的 workflow    │ ──► │  兩句話 prompt       │
└─────────────────────┘     └─────────────────────┘

Theo 的心智演進

階段 心態 行為模式
初期 迷信工具 安裝各種外掛、研究最佳 prompt 模板
中期 發現瓶頸 模型變聰明了,但輸出總不對味
成熟 回歸本質 把時間花在 AGENTS.md 和對話品質上

💡 關鍵洞察:AI 編程的瓶頸已經從「模型能力」轉移到「人類能否清楚表達意圖」。


二、工具選擇:炫酷工具的誘惑與陷阱

Theo 的工具棧

┌──────────────────────────────────────────────┐
│              Theo 的工具棧                    │
│                                              │
│  ┌──────────────┐   ┌──────────────────┐    │
│  │  GPT 5.5     │   │  Codex 執行環境  │    │
│  │  (主力模型)   │   │  (AI 在本機跑)   │    │
│  └──────┬───────┘   └────────┬─────────┘    │
│         │                    │              │
│         ▼                    ▼              │
│  ┌──────────────────────────────────┐       │
│  │  桌面 App(遠端開發)             │       │
│  │  筆電合上 → AI 在雲端跑 → 自動同步│       │
│  └──────────────────────────────────┘       │
└──────────────────────────────────────────────┘

SSH 終端機 vs 桌面 App 對比

面向 SSH 終端機 桌面 App
連線穩定性 ❌ 容易斷線 ✅ 自動重連
快捷鍵 ❌ 需額外配置 ✅ 原生支持
貼圖/附件 ❌ 超麻煩(一半 prompt 要附圖) ✅ 原生拖放
多工追蹤 ❌ 終端切換負擔大 ✅ 視覺化管理
遠端體驗 ❌ 筆電合上就斷 ✅ 後台持續運行

⚠️ 現實濾鏡(必讀)

Theo 的特權 一般開發者的現實
10 倍 API 額度(近乎無限 Token) 需要精打細算用量
一人專案(可跳過 PR) 團隊協作需要 Code Review
T3 Code 作者(Claude Code 競爭對手) 無利益衝突,客觀評估
大量前置投資 AGENTS.md 需要花時間建立設定檔

🏷️ 最佳實踐:不要盲目抄襲 Theo 的工具選擇。他評價競品 Claude Code 時存在利益衝突——他自己是 T3 Code 的作者。選工具時優先考慮你自己的使用場景。


三、怎麼寫信給你的 AI 模型(含金量最高)

3.1 第一招:認真讀 AI 講的「廢話」

大多數人只盯著 AI 輸出的程式碼區塊,完全忽略前面的文字說明。Theo 認為這是大錯誤。

AI 輸出結構:
┌──────────────────────────────────────────┐
│  ████ 文字說明(大多數人跳過)████        │  ← 這裡藏著 AI 對你意圖的理解程度
│  - 為什麼這樣改?                          │
│  - 做了哪些假設?                          │
│  - 有什麼需要注意的?                      │
├──────────────────────────────────────────┤
│  ```typescript                            │  ← 大多數人只看這裡
│  // generated code                        │
│  ```                                      │
└──────────────────────────────────────────┘

為什麼要讀文字? - AI 太囉嗦 → 糾正它(建立風格契約) - AI 排版痛苦 → 調教它(提升後續可讀性) - 不掌控對話風格 → 失去專案脈絡控制權

3.2 第二招:AGENTS.md 情書寫法

把 AGENTS.md 當成「給 AI 的情書」而非冷冰冰的技術規格書。

傳統技術規格書 vs 情書式 AGENTS.md:

<!-- ❌ 傳統寫法:冷冰冰的規格書 -->
# 專案規格
- 框架:Next.js 14
- 資料庫:PostgreSQL
- 禁止使用 var
- 遵循 ESLint Airbnb 配置

<!-- ✅ 情書式寫法:對齊意圖 -->
# 我們在做什麼
我們正在建一個讓開發者能快速原型化想法的工具。
這個專案誕生於我對現有工具鏈的挫敗感——
每次想試一個想法,都要花 30 分鐘配置環境。

## 核心執念
- Boil the Ocean:大膽到瘋狂的方案也 OK
- Fight for the "Obvious":不耍聰明,追求 obvious
- Don't Be Afraid to Lie:工具可以模擬,
  但合約不能騙——持久性、隔離性、安全性必須真實

3.3 Theo 的 AGENTS.md 哲學框架(Lakebed 專案)

原則 含義 實際應用
Boil the Ocean 大膽到瘋狂的方案也 OK 鼓勵 AI 提出激進的架構建議
Let Their Agents Build What They Need 建 Primitives 不是 Features 提供基礎元件,讓使用者的 Agent 自行組合
Fight for the "Obvious" 不耍聰明,追求 obvious 拒絕過度設計,選擇最直覺的方案
Don't Be Afraid to Lie 工具可模擬,合約不能騙 持久性、隔離性、安全性必須真實實現

3.4 5 種 AGENTS.md 模式(來自 dev.to 參考文章)

AGENTS.md 模式選擇決策樹:

你的專案需要什麼?
│
├─► 明確的架構層級?
│   └─► Context Pyramid(金字塔模式)
│       架構 → 慣例 → 禁止事項,逐層收斂
│
├─► 不同檔案區域有不同的規則?
│   └─► Task Router(任務路由)
│       按目錄/檔案類型分派上下文
│
├─► AI 一直重新建議你已拒絕的方案?
│   └─► Decision Log(決策日誌)
│       用 ADR 記錄架構決策,防止死灰復燃
│
├─► 需要控制 AI 的操作危險等級?
│   └─► Safety Net(安全網)
│       允許 / 需確認 / 禁止 三級分類
│
└─► 專案持續迭代,上下文不斷變化?
    └─► Living Docs(活文件)
        定期更新,加入 Sprint 上下文

🏷️ 最佳實踐:手寫 AGENTS.md,不要用自動生成。感性地告訴 AI 你在腦袋裡想什麼、為什麼非做這個專案。對齊意圖後,AI 會變成超級懂你心意的高階隊友。


四、極致簡單原則

Theo 的日常操作模式

傳統 AI 編程工作流(複雜):
┌──────────────────────────────────────┐
│  1. 打開 10 個平行對話              │
│  2. 寫 200 字超詳細 prompt          │
│  3. 指定要改哪個檔案的第幾行        │
│  4. 複製程式碼區塊,手動貼上        │
│  5. 對照 diff,逐行檢查             │
│  6. 切換視窗,跑測試                │
└──────────────────────────────────────┘

Theo 的工作流(極致簡單):
┌──────────────────────────────────────┐
│  1. 開一條新對話(一個任務一條)     │
│  2. 說兩句話(語音轉文字)          │
│  3. 結束。不指定檔案,不貼程式碼    │
└──────────────────────────────────────┘

Prompt 長度對比

風格 Prompt 範例 效果
❌ 過度指導 「請在 src/components/UserProfile.tsx 的第 45 行附近,找到 handleAvatarUpload 函式,將裡面的 fetch 改為 axios,記得加上 error handling 和 loading state」 AI 可能改錯位置,你指的檔案可能是錯的
✅ 極致簡單 「用戶上傳頭像要能預覽」 AI 自己找到正確的檔案和函式

除錯心智模型迴圈

              AI 聽不懂你的需求?
                     │
           ┌─────────┴─────────┐
           │                   │
     ❌ 本能反應          ✅ 正確做法
           │                   │
    寫 200 字超複雜       回頭改 AGENTS.md
    的 super prompt       (從源頭補盲點)
           │                   │
           ▼                   ▼
    ┌────────────┐     ┌────────────────┐
    │ AI 更困惑  │     │ 回到乾淨新對話  │
    │ 越寫越長   │     │ 繼續用兩句話    │
    │ 惡性迴圈   │     │ prompt          │
    └────────────┘     │                │
                       │ 良性迴圈 ✨    │
                       └────────────────┘

核心原則清單

🏷️ 最佳實踐清單 - ✅ 一個任務 = 一條乾淨的新對話 - ✅ Prompt 不超過兩句話 - ✅ 用語音轉文字輸入,保持自然口語感 - ✅ 絕不告訴 AI 要改哪個檔案(人類自己常指錯) - ✅ 把 AI 當聰明的高階工程師,只丟目標 - ✅ 在 AGENTS.md 放微型詞彙表:「你就是 AI,我們就是開發者」 - ❌ 不要同時跑十幾個平行任務 - ❌ 不要在 prompt 裡指定檔案路徑 - ❌ 不要寫超長的 step-by-step prompt


五、什麼該抄什麼該打折

現實數據

Theo 的專案有 414 個未合併的 PR —— AI 讓寫程式太容易,Code Review 大塞車。

該抄 vs 該打折

┌─────────────────────────────────────────────────┐
│              ✅ 絕對該抄                         │
├─────────────────────────────────────────────────┤
│  • AGENTS.md 情書寫法(手寫、感性、對齊意圖)    │
│  • 極短 prompt 策略(兩句話搞定)                │
│  • 認真讀 AI 輸出的文字(不只看程式碼)          │
│  • 給模型自我驗證工具(讓 AI 自己跑測試)        │
│  • 除錯改 AGENTS.md 而非寫更長的 prompt          │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│              ⚠️ 必須打折                         │
├─────────────────────────────────────────────────┤
│  • 略過 Code Review(僅適用一人專案)             │
│  • 無限燒 Token(Theo 有特權 API 額度)          │
│  • 對競品的嚴苛評價(T3 Code vs Claude Code)    │
│  • 完全放棄 Claude(可能不適用你的場景)          │
│  • 桌面 App 遠端開發(需視你的基礎設施而定)      │
└─────────────────────────────────────────────────┘

DHH 的背書

DHH(Ruby on Rails 創始人)也盛讚 GPT-5.5:

"I've had more 'I can't believe it's this good' moments with GPT5.5 than any other model since Opus 4.5. All steering, no handwriting."

「All steering, no handwriting」——完美總結了 Theo 的哲學:你在方向盤上,AI 在寫程式碼


個人反思與行動項

核心收穫

  1. 從「指令者」到「對話者」:AI 編程不是下指令,而是一場持續的對話。品質取決於你如何引導,而非你如何命令。
  2. AGENTS.md 是投資,不是負擔:花 2 個月打磨 AGENTS.md,換來的是後續每次對話的高效率。
  3. 簡單是最難的:兩句話 prompt 背後是對 AGENTS.md 的深度投資和對專案的全盤理解。

行動項

  • 檢視目前的 AGENTS.md / system prompt,是否更像規格書還是情書?
  • 嘗試用兩句話 prompt 完成一個任務,觀察效果
  • 開始閱讀 AI 輸出的文字部分(不只是程式碼區塊)
  • 建立 Decision Log,記錄已拒絕的方案,防止 AI 死灰復燃

附錄

A. AGENTS.md 模板範例(Context Pyramid 模式)

# 專案意圖
一 句話描述這個專案為什麼存在、解決什麼問題。

## 架構概覽
- 技術棧:[列出]
- 目錄結構邏輯:[簡述]

## 編碼慣例
- 命名規則:camelCase
- 程式碼風格:簡潔、可讀優先
- 測試策略:[簡述]

## 絕對禁止
- 不要使用 [列出]
- 不要引入 [列出]
- 不要修改 [列出](除非明確要求)

B. 語彙表範例

## 詞彙表
- "AI" = 你,即協助寫程式的 AI 模型
- "開發者" = 我們,專案的所有者
- "Lakebed" = 這個專案的名稱
- "primitives" = 基礎可組合元件,不是完整功能

C. 相關資源