你聽說過 Claude Code,但不知道它和一般 AI 聊天機器人有什麼不同?其實 Claude Code 是一套能直接在終端機裡運作的 AI 編碼助理,它不只會回答問題,更能讀取檔案、修改程式碼、執行命令,讓開發者把繁瑣的編程任務交給 AI 自動處理。本文整理 Claude Code 的核心架構與實用功能,從 Hooks、CLAUDE.md 到 MCP 伺服器整合,讓你一篇就能上手。
什麼是 Claude Code?為什麼它需要工具系統?
Claude Code 是 Anthropic 推出的 AI 編碼助理,可以在命令列介面(CLI)環境中直接與你的專案互動。但語言模型本身有一個根本限制:它們只能處理文字輸入與輸出,無法直接與外部系統互動。
這就是為什麼 Claude Code 需要「工具系統」的原因。透過工具,AI 可以:
- 讀取你的程式碼檔案(Read 工具)
- 修改或新增檔案(Edit、Write 工具)
- 在程式碼庫中搜尋(Grep、Glob 工具)
- 執行終端機指令(Bash 工具)
- 瀏覽網頁抓取資料(WebFetch 工具)
工具系統讓 Claude Code 從「只會聊天的 AI」進化成「真正能幫你幹活的開發夥伴」。
Claude Code 有哪些核心功能?
一、CLAUDE.md — 三種層級的專案說明書
CLAUDE.md 是你給 Claude Code 的「說明書」,告訴它這個專案的規則、慣例和注意事項。它分為三種層級,用途各不相同:
| 層級 | 位置 | 用途 |
|---|---|---|
| 專案層級 | 專案根目錄 CLAUDE.md | 與團隊共享、提交到 Git,記錄整個專案的規範 |
| 本地層級 | 專案根目錄 CLAUDE.local.md | 個人使用、不提交 Git,記錄你自己的偏好設定 |
| 機器層級 | ~/.claude/CLAUDE.md | 全域設定,適用於這台電腦上的所有專案 |
舉例來說,你可以在專案層級的 CLAUDE.md 寫上「使用 TypeScript 嚴格模式」,在本地層級寫上「我偏好用 pnpm 而非 npm」,在機器層級寫上「永遠用繁體中文回應」。
二、Plan 模式 vs 思考模式
Claude Code 提供兩種不同的推理方式,適合不同類型的任務:
- 計劃模式(Plan Mode):處理「廣度」,適合多步驟任務。當你要重構一個模組、新增一個功能時,Plan 模式會先列出所有需要修改的檔案和步驟,讓你確認後再執行,避免亂改一通。
- 思考模式(Thinking Mode):處理「深度」,適合複雜邏輯問題。當你遇到一個難以理解的 Bug,或需要設計複雜演算法時,思考模式會花更多 token 深入推理,給出更精確的分析。
簡單記:計劃模式管多步驟流程,思考模式管複雜邏輯推理。
三、自訂命令與 $ARGUMENTS 佔位符
Claude Code 讓你建立可重複使用的自訂命令,將常見的開發流程標準化。最重要的技巧是:在 Markdown 命令檔中使用 $ARGUMENTS 佔位符,就能讓命令接受執行時傳入的參數。
例如建立一個 .claude/commands/review.md 檔案,內容寫:
請幫我 code review 以下檔案,重點檢查安全性問題:
$ARGUMENTS之後輸入 /review src/auth.ts,Claude Code 就會自動把 src/auth.ts 帶入 $ARGUMENTS,對這個檔案進行 code review。
四、Hooks 鉤子機制
Hooks 是 Claude Code 中最強大的控制機制,讓你在 AI 執行工具之前或之後插入自己的邏輯。主要有兩種類型:
- PreToolUse Hook:在工具執行前觸發。如果符合條件,可以阻止工具呼叫發生。這是唯一能預防 AI 做某些動作的 Hook 類型。
- PostToolUse Hook:在工具執行後觸發。適合用來記錄 log、發送通知,但無法阻止已發生的動作。
Claude Code 怎麼用?Hooks 實際設定教學
實例:禁止 Claude 讀取 .env 檔案
假設你想保護專案中的 .env 機密檔案,不讓 Claude Code 讀取或搜尋,正確做法是:
- Hook 類型:PreToolUse(事前攔截,才能阻止動作)
- 匹配工具名稱:Read 和 Grep(讀取檔案和搜尋內容的工具)
在 .claude/settings.json 中設定:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read|Grep",
"hooks": [
{
"type": "command",
"command": "if echo '$TOOL_INPUT' | grep -q '\.env'; then echo 'BLOCKED: Cannot read .env files' >&2; exit 1; fi"
}
]
}
]
}
}這樣每次 Claude Code 嘗試讀取或搜尋包含 .env 的路徑,Hook 就會攔截並拒絕執行。
MCP 伺服器與 GitHub Actions 整合
MCP(Model Context Protocol)伺服器讓 Claude Code 連接外部工具,例如瀏覽器自動化、資料庫查詢、Notion 等。當你將 Claude Code 整合到 GitHub Actions 時,需要設定適當的權限。
重點:MCP 操作需要一個統一的總括授權(single blanket permission),而非為每個工具單獨設定權限。這樣才能讓 GitHub Actions 工作流程順利執行,不會因為缺少某個工具權限而中斷。
使用注意事項與常見誤解
- 誤解一:語言模型記憶體有限,所以需要工具系統 — 其實根本原因不是記憶體,而是語言模型只能處理文字 I/O,無法直接操作檔案系統或外部服務。
- 誤解二:用 PostToolUse Hook 可以阻止工具執行 — PostToolUse 是事後觸發,動作已經發生了,無法攔截。要阻止必須用 PreToolUse。
- 誤解三:本地層級 CLAUDE.md 是團隊共享的 — 本地層級(.local.md)是個人使用、不提交 Git 的,只有專案層級才是團隊共享。
- 誤解四:自訂命令要用 @parameters 裝飾器 — 不需要裝飾器,直接在 Markdown 文件中放
$ARGUMENTS就能接收執行時參數。
結論
Claude Code 的強大之處在於它的工具系統與高度可客製化性。透過 CLAUDE.md 設定專案規則、用 Hooks 控制 AI 行為邊界、用自訂命令自動化重複任務,再搭配 MCP 伺服器擴展外部連接能力,你可以打造出一套完全符合自己工作流程的 AI 開發環境。
如果你已經在用 Claude Code,可以先從建立一個專案層級的 CLAUDE.md 開始,把你的專案規範寫進去,感受一下 AI 助理「懂你」的感覺。你現在最想用 Claude Code 解決哪個開發痛點?歡迎在留言區分享!

.png)