AI 程式設計教程中文版
從原理到實戰

01 · Claude Code 是什麼

解釋 Claude Code 為什麼不是聊天框,而是能進入本機專案、讀檔案、改程式碼、跑命令並圍繞任務規劃的程式設計 Agent。

翔宇拆了一圈 AI 程式設計工具,原本以為差距在模型能力。追到底才發現,真正改變體驗的是一個樸素到不起眼的設計決定——AI 住在哪裡。想通這一點,Skills、MCP、Agent Teams 這些功能全都順理成章了。——翔宇

這一篇用 14 分鐘換什麼:把 Claude Code 從另一種聊天框重新理解成住進你電腦裡的 coding agent。讀透之後,後面 11 篇裡的每一個名詞——CLAUDE.md、上下文、Skills、SubAgents、MCP、Hooks——都會自動連成一個系統,不再零散。

1. 一個你可能沒注意的動作

你在寫程式碼,遇到一個看不懂的報錯。

接下來你做了一件事——你可能太熟悉以至於根本沒注意自己在做:把報錯資訊複製了,切到瀏覽器,開啟 ChatGPT,貼上進去。

ChatGPT 給了解釋。你覺得有道理,但它說我需要看一下你的程式碼。你回到編輯器,複製了那個函式,切回瀏覽器貼上。它又問呼叫這個函式的地方。你翻了另一個檔案,複製,貼上。它再問資料庫表結構。你嘆了口氣,又去找。

來回七八次,四十分鐘

這個過程裡,你充當了一個角色——搬運工。在兩個視窗之間來回搬運資訊:從編輯器搬到瀏覽器,從瀏覽器搬回編輯器。

停下來想一個問題:你的程式碼就在你電腦上。AI 為什麼不能自己去看?

2. 把所有表面現象剝掉,只剩一個問題

如果問 ChatGPT 寫程式碼為什麼不夠順暢,十個人裡有八個會說:它理解力不夠、它寫的程式碼跑不通、它不瞭解最新的框架。

這些都是真實的痛點。但我們做一個思維實驗:假設明天 ChatGPT 升級了,變得和世界頂級程式設計師一樣聰明。程式碼寫得完美,理解力超強,最新的框架全知道。

你還是得把程式碼複製出來給它看。它還是不知道你的專案有哪些檔案。你還是不能讓它幫你跑一下 npm test

智力翻了十倍,但你當搬運工的那四十分鐘——一分鐘都沒少。

關鍵點:我們習慣把所有問題歸結為 AI 不夠聰明。但有一類問題和智力無關——再聰明的人,如果被關在隔壁房間只能靠你傳紙條溝通,效率也快不起來。

這個思維實驗指向一件事:AI 夠不到你的程式碼

它沒有眼睛去看你的檔案。它沒有手去改你的程式碼。它沒有腳去跑你的命令。它被困在瀏覽器的一個文本框裡,唯一的資訊來源就是你貼上進去的那些文字。

就像一個外科醫生再厲害,如果他在電話裡指揮你給自己做手術,效果也好不到哪去。瓶頸從來不是他的醫術,是他不在手術室裡

這是 AI 輔助程式設計最底層的一個位置問題,不是智力問題。

3. 把 AI 搬到你的電腦裡

理解了瓶頸在位置,解決方案就很自然了——把 AI 從瀏覽器搬到你的電腦裡。

這就是 Claude Code 做的事。一句話講完:它是一個住進你電腦裡的 AI 程式設計 agent(智慧代理)

它跑在哪裡?最經典的形態是終端——也就是你電腦上輸入文字命令的那個視窗。但 Claude Code 不止終端,從 2026 年開始它支援 5 個入口(Terminal CLI / VS Code / JetBrains / Desktop app / Web),共用同一套引擎,CLAUDE.md 和 MCP 配置跨入口生效。詳細差異在本篇 §7 展開。

位置變了,會發生什麼?看這張對比圖。

flowchart LR
    subgraph Before["💬 瀏覽器聊天框時代"]
        U1["👤 你"]
        AI1["🤖 ChatGPT<br/>住在瀏覽器裡"]
        Code1["📁 你的程式碼<br/>在你電腦上"]
        U1 -->|複製貼上| AI1
        AI1 -->|給你建議| U1
        U1 -.->|手動搬運| Code1
        Code1 -.->|再手動搬運| U1
    end

    subgraph After["💻 Claude Code 時代"]
        U2["👤 你"]
        AI2["🤖 Claude Code<br/>住在你電腦上"]
        Code2["📁 你的程式碼"]
        Term["⚡ 終端 / 命令"]
        U2 -->|自然語言指令| AI2
        AI2 -->|直接讀| Code2
        AI2 -->|直接改| Code2
        AI2 -->|直接跑| Term
    end

    style Before fill:#fee2e2,stroke:#ef4444
    style After fill:#dcfce7,stroke:#22c55e
    style AI2 fill:#dcfce7,stroke:#22c55e,stroke-width:2px

住進你電腦裡這五個字看起來很普通,但它引發了一連串變化——四件 ChatGPT 永遠做不到的事

它能看你的檔案

不是你貼一個片段給它——是它自己開啟你的目錄,把需要的檔案都讀一遍。

回到那個登入報錯的場景。你說一句登入功能報錯了。它不會問你要程式碼——它自己去找路由檔案、控制器、資料庫模型、認證中介軟體,把整條鏈路看一遍。你省掉了來回貼上的七八個回合。它一次能看多少?這個問題留給 02 · 一次能看多少程式碼 拆。

它能改你的程式碼

你說把 userName 改成 userId。它找到所有用到這個變數的地方——可能散落在十幾個檔案裡——全部改完。你在編輯器裡就能看到檔案變了。不是給你一段程式碼讓你自己替換,是它來動手

它能執行命令

安裝依賴、跑測試、啟動服務、提交程式碼——你用自然語言說,它在終端裡執行。你說裝 Prisma 然後建立使用者表,它跑 npm install、寫 schema、執行遷移。不是告訴你步驟,是它動手

它能自己規劃

這一點最容易被低估。你說重構這個模組,它不會只改一行。它會想:先讀哪些檔案?依賴關係怎麼處理?改完哪些測試可能受影響?然後制定計劃,逐步執行,最後跑測試驗證。你可以隨時叫停,也可以讓它跑完。

四件事合在一起——看檔案、改程式碼、跑命令、自主規劃——AI 從隔壁房間的顧問變成了坐在你旁邊的搭檔。

反向驗證:這四件事為什麼 ChatGPT 那種網頁端永遠做不到?因為瀏覽器有沙箱(sandbox = 瀏覽器對指令碼的安全圍欄)—— 網頁裡的 JavaScript 出於安全考慮,不能任意讀你硬碟檔案、不能跑系統命令、不能呼叫本地 Python。這是瀏覽器在設計層面就堵死的能力,不是哪天網頁升級就能突破的。Claude Code 不在瀏覽器裡,不受這個約束——所以才能做到這四件事。位置不一樣,許可權邊界根本不一樣。

回到開頭那個登入 bug 的場景。在 Claude Code 裡,那 40 分鐘會變成這樣:

👤 你:登入功能報錯了,錯誤密碼後頁面空白。

🤖 Claude Code(自己讀 5 個檔案:src/auth/login.jscontrollers/auth.tsmodels/user.tsmiddleware/auth.tsschema.prisma

問題在 login.js:42——錯誤密碼時拋了 throw 但前端沒接住。我修一下並加測試 (改完,跑了 3 個測試 case 全過)要 commit 嗎?

七八輪貼上變成 1 輪對話。不是 AI 變聰明了,是 AI 終於在手術室裡了。

4. 一個位置決定,長出整個功能生態

後面你會遇到一系列功能名詞:Skills、SubAgents、Agent Teams、MCP、Hooks、CLAUDE.md。初看像一堆互不相關的東西。但它們全都是從 AI 住在你電腦裡這個根基上長出來的。

flowchart TB
    Root["🏠 AI 住在你電腦裡<br/>(位置就是根因)"]

    subgraph FS["📁 檔案系統能力"]
        F1[CLAUDE.md 長期記憶]
        F2[".claude/skills 工作流檔案"]
        F3[上下文看完整專案]
    end

    subgraph Exec["⚡ 命令執行能力"]
        E1[Hooks 自動跑指令碼]
        E2[SubAgents 派分身]
        E3[多 Agent 並行]
    end

    subgraph Net["🌐 本地程序能力"]
        N1[MCP 接外部服務]
        N2["資料庫 / GitHub / Slack"]
        N3[瀏覽器自動化]
    end

    subgraph Tool["🛠️ 你的工具箱"]
        T1["Python / FFmpeg / Git"]
        T2[任何 CLI]
        T3[裝什麼用什麼]
    end

    Root --> FS
    Root --> Exec
    Root --> Net
    Root --> Tool

    style Root fill:#dcfce7,stroke:#22c55e,stroke-width:3px
    style FS fill:#fef3c7,stroke:#f59e0b
    style Exec fill:#dbeafe,stroke:#3b82f6
    style Net fill:#f3e8ff,stroke:#a855f7
    style Tool fill:#fee2e2,stroke:#ef4444

每一個分支都有同一個前提:AI 住在你電腦裡。如果 AI 還在瀏覽器,這些功能一個都做不了。

底層邏輯:位置不是一個孤立的技術細節——它是整個 Claude Code 功能生態的根基。後面每篇教程拆解的每個功能,你都會看到同一條線索:因為 AI 在你電腦上,所以它能 XXX。理解了根基,枝葉自然生長。

5. 你的電腦能做什麼 = Claude Code 能做什麼

你可能會有一個直覺:Claude Code 是寫程式碼的工具。

它的核心能力其實更寬——是在你的電腦上執行任務。寫程式碼只是其中一種。

你電腦上有什麼Claude Code 就能做什麼實際場景
Python資料分析、指令碼自動化、生成圖表處理 Excel、爬資料、出報表
FFmpeg影片轉碼、音訊提取、字幕處理剪影片、做字幕
Whisper語音轉文字把會議錄音轉筆記
Playwright操作瀏覽器、填表單、截圖自動化測試、批次爬取
Git提交程式碼、解決衝突、建立 PR日常版本控制
任何 CLI 工具能在終端跑的它都能調kubectl、docker、AWS CLI 等

它的能力邊界 = 你電腦的能力邊界 + MCP(Model Context Protocol,模型上下文協議)連線的外部服務。MCP 怎麼連,09 · 怎麼連外部服務 會拆。

當然有限制:它不能直接操作滑鼠鍵盤(除了透過 Playwright 間接操作瀏覽器),不能看你的螢幕截圖(除非你主動給它),執行命令前會先徵求你同意(安全設計,11 · 該給 AI 多少許可權 會講)。

打個比方:Claude Code 像你僱了一個什麼都願意學的實習生,他坐在你的工位上。你桌上有什麼工具,他就能用什麼——螺絲刀、萬用表、顯微鏡,不挑。他的能力上限不取決於他自己,取決於你的工具箱。當然,他幹活比你快得多,因為他每秒能讀幾萬行文字。

6. 三個模型,一條原則

Claude Code 背後有三組模型可選。你可能會想:選最強的不就完了?

做一個類比:你出門買個早餐——會開車去嗎?大多數人不會,走路 5 分鐘的事開車反而更慢(還得找停車位)。但如果你要去 200 公里外的城市,走路就不現實了。

選模型的邏輯一樣:用最小夠用的那個

模型別名一句話定位什麼時候用當前預設指向
haiku走路——快、近、零成本簡單問答、格式轉換Haiku 最新版
sonnet開車——日常通勤首選絕大多數編碼任務Sonnet 4.6(Anthropic API)
opus飛機——長途才用複雜架構、深度除錯Opus 4.7(Anthropic API,需 v2.1.111+)
opusplan飛機+車——plan 期 opus,執行期 sonnet想要 opus 思考、sonnet 執行自動切換
best自動跟最強不想自己選當前等同 opus

事實基準(2026-05 最新):Anthropic API 上 opus 解析為 Opus 4.7sonnet 解析為 Sonnet 4.6。Bedrock / Vertex / Foundry 上的別名指向略有滯後(詳見 https://code.claude.com/docs/en/model-config)。

想鎖版本就用全名(如 claude-opus-4-7),不鎖就用別名跟隨官方推薦。

預設掛 sonnet。遇到搞不定的複雜問題切 opus。簡單到不用動腦子的活切 haiku 省錢。

新手常見的錯配:剛上手就把所有任務都開 opus,結果兩個問題——一是費用快速膨脹(opus 是 sonnet 的 5 倍貴),二是簡單任務被過度推理汙染(opus 會順手給出"是否需要重構整個模組"的建議,新手照著改反而引入風險)。判斷方式跟早餐 vs 長途一樣:走路能到的別開車

深入一步:effort 思考深度

Opus 4.7、Opus 4.6、Sonnet 4.6 都支援 effort 引數(思考深度)。

  • Opus 4.7:5 檔 low / medium / high / xhigh / max,預設 xhigh
  • Opus 4.6 / Sonnet 4.6:4 檔 low / medium / high / max(無 xhigh),預設 high

同一個模型,讓它快速掃一眼(low)或仔細想想(xhigh),token 成本能差幾倍。

effort 背後的快思考 vs 慢思考哲學,05 · AI 怎麼決定想多深 會展開。這裡先知道有這個開關就夠了。

7. 5 個入口,位置程度不一樣

Claude Code 當前有 5 個入口,但住在哪裡程度不一樣。理解這個差異,對後面許可權和雲端任務章節會有幫助。

Terminal CLI

位置定位:100% 本地

關鍵特徵:主戰場,許可權最深、自動化最強。能讀你磁碟任何檔案、跑任何 CLI 命令。

適合:日常程式設計、CI 整合、指令碼化批次任務。

IDE 擴充套件

位置定位:本地(嵌入 IDE)

關鍵特徵:跟編輯器檢視深度整合(inline diff、@-mention、command palette)。VS Code / Cursor / JetBrains 都支援。

適合:邊寫邊問、看著 diff 改、需要視覺化對比。

Desktop App

位置定位:本地(獨立桌面程序)

關鍵特徵:多會話並行、視覺化 diff 審閱、定時任務(schedule)。macOS / Windows 都有。

適合:同時跑多個 Agent、長任務監控、定時跑 PR review。

Web

位置定位遠端(Anthropic 雲端容器)

關鍵特徵:長任務非同步跑,電腦關機也在跑;不直接接你電腦檔案,讀的是它自己 clone 的專案副本。

適合:扔一個超長任務後去喝咖啡、不想本地跑、移動端啟動。

移動 / 遠端

位置定位:遠端轉發

關鍵特徵:iOS App、Remote Control、Slack / Discord 等 Channels 把任務路由到電腦端會話或雲端會話。

適合:地鐵上發任務、晚上手機看進度、外網時讓家裡電腦幹活。

關鍵區分:前 3 個真正住在你電腦裡,後 2 個是雲端的 Claude Code。你電腦關機時雲端能繼續,但讀不到你磁碟檔案。

這件事不影響本篇對位置的理解:核心仍然是有一個能直接操作程式碼檔案 + 跑命令的現場,無非這個現場可以是你的電腦,也可以是 Anthropic 雲端的臨時容器。

5 個入口怎麼選——一句話決策

你正在做什麼選哪個入口
日常程式設計、需要操作本地儲存庫Terminal CLI(最強許可權)
邊寫邊問、想看 inline diffIDE 擴充套件
同時跑多個 Agent、長任務監控Desktop App
扔超長任務後去喝咖啡、本地不在家Web(雲端容器,讀不到你磁碟)
地鐵上 / 手機端發任務移動 / 遠端(路由到電腦或雲端)

8. 檢驗你真懂了嗎

費曼說,檢驗你是不是真的理解一件事,試試能不能解釋給朋友聽。

#試著用自己的話回答對應章節
1有人說 AI 程式設計工具選最聰明的就行——你能反駁嗎?論據是什麼?§2 思維實驗
2不用術語,用買早餐 / 修水管這種類比能講清 Claude Code 的核心設計決定嗎?§3 把 AI 搬到電腦裡
3動手題 ⭐:現在開啟終端,讓 Claude Code 完成"列出當前專案所有 .md 檔案,按行數從大到小排序,告訴我前 3 個分別講什麼"。這一個任務裡你能數出幾個只有"AI 住在你電腦裡"才做得到的動作?提示:至少 3 個。§4 功能生態

過關標準:能用一句話說清——Claude Code 改變體驗的不是模型變聰明,而是 AI 從瀏覽器搬到了你電腦裡——所以它能看檔案、改程式碼、跑命令、自主規劃。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
agent智慧代理能圍繞目標自主使用上下文、工具、反饋迴圈的 AI 系統
coding agent程式設計智慧代理面向程式設計任務的 agent,Claude Code 是典型代表
token詞元模型讀 / 寫文本的最小單位,1 箇中文字大約 2 token
context window上下文視窗一次對話裡 AI 能同時看到的資訊總量,詳見 02 篇
CLAUDE.md專案記憶檔案寫給 Claude 的長期指令,每次啟動自動讀,詳見 03 篇
Skills技能檔案把工作流寫成檔案,Claude 按需載入,詳見 06 篇
SubAgents子代理 / 分身主 Claude 派出去做子任務的獨立工作單元,詳見 07 篇
MCPModel Context Protocol,模型上下文協議Agent 接外部工具的標準協議,詳見 09 篇
Hooks鉤子操作前後自動執行的指令碼,詳見 10 篇
effort思考深度控制模型在每步上花多少 token 思考,詳見 05 篇

官方資料

接下來去哪

不用按順序全讀。挑你最好奇的那條線走就行——每篇開頭都會標註需要先讀哪篇。

本頁目錄