Skip to main content

第 8 課:進階功能

學習目標

完成本課程後,您將能夠:

  • 使用子代理進行專門任務(Explore、Plan、Bash)
  • 執行和管理背景任務
  • 設定鉤子進行自動化
  • 理解工作階段管理
  • 管理脈絡壓縮

先決條件

  • 完成第 1-7 課 - 核心操作、技能和配置
  • 舒適的基本工作流程 - 檔案操作和權限
  • 多專案經驗 - 至少在 2-3 個專案上工作過

預估時間: 30 分鐘


子代理

子代理是 Claude Code 可以啟動以處理特定類型任務的專門代理。

什麼是子代理?

將子代理想像成專家:

  • Main Claude(專案經理) = 協調一切
  • 子代理 = 處理特定任務的專家

為什麼使用子代理

專注:

  • 每個代理專注於一件事
  • 不同任務的獨立脈絡
  • 優化工作

效率:

  • 並行處理獨立任務
  • 更快的工作流程

優化:

  • 針對工作的工具
  • 在某些任務上更快的工具
  • 更好的工作流程

三種子代理類型

1. Explore Agent

用途: 快速探索和理解程式庫

何時使用:

  • "authentication 如何實作?"
  • "哪些檔案處理使用者輸入?"
  • "API 端點 X 在哪裡?"
  • 理解新專案

如何運作:

  • 使用 Glob 和 Grep 廣泛探索
  • 並行讀取多個檔案
  • 建立程式庫的心智地圖
  • 報告回發現

2. Plan Agent

用途: 在執行前設計實作策略

何時使用:

  • "新增使用者驗證"
  • "重構為使用 TypeScript"
  • 複雜的多檔案變更
  • 架構決策

如何運作:

  • 分析需求
  • 探索程式庫
  • 建立逐步計畫
  • 識別相依性
  • 呈現供審查

3. Bash Agent

用途: 安全地執行命令列任務

何時使用:

  • 執行建置腳本
  • 安裝相依性
  • 執行測試
  • 任何終端機操作

如何運作:

  • 存取專用 Bash 工具
  • 可執行多個命令
  • 優雅地處理錯誤
  • 報告命令輸出

叫用子代理

自動叫用: Claude 自動選擇何時使用子代理。

手動叫用:

You: 使用 Explore agent 查找所有資料庫查詢

背景任務

背景任務允許長時間運作在您處理其他事時繼續。

為什麼需要背景任務

問題: 某些操作需要時間

  • 執行完整測試套件
  • 大型檔案搜尋
  • 處理多個檔案
  • 監看檔案變更

解決方案: 在背景執行它們

  • 繼續工作
  • 檢查進度
  • 完成時非同步處理

啟動背景任務

方法 1:明確背景請求

You: 在背景執行完整測試套件

方法 2:背景旗標

claude --background "npm test"

方法 3:對話期間

You: 搜尋所有 Python 檔案中的 TODO 註解

Claude: 這將需要一陣子。在背景執行?

[任務在背景執行]

鉤子與自動化

鉤子允許您在事件發生時自動觸發動作。

什麼是鉤子

鉤子是腳本或命令,當特定事件發生時自動執行。

Hook 事件:

  • pre-tool - 任何工具使用前
  • post-tool - 工具完成後
  • pre-commit - git commit 前
  • post-commit - git commit 後
  • on-edit - 編輯檔案時
  • session-start - 工作階段啟動時
  • session-end - 工作階段結束時

配置鉤子

在設定檔中:

{
"hooks": {
"pre-commit": ["npm run lint", "npm run test"],
"on-edit": ["./scripts/format.sh"]
}
}

工作階段管理

Claude Code 工作階段可以持久化和恢復。

工作階段持久性

儲存的內容:

  • 對話歷史
  • 檔案操作脈絡
  • 任務狀態
  • 使用的設定

工作階段儲存在:

  • Linux/macOS: ~/.local/state/claude-code/sessions/
  • Windows: `%LOCALAPPDATA%\claude-code\sessions``

恢復工作階段

方法 1:自動恢復

claude --resume

恢復最近的工作階段。

方法 2:特定工作階段

claude --resume session-id

方法 3:期間工作階段

You> /sessions
[列出可用工作階段]
You: 恢復工作階段 abc123

✅ 檢查您的理解

  1. 哪個子代理專門探索程式庫?

    • Plan Agent
    • Bash Agent
    • Explore Agent
    • Search Agent
  2. 背景任務的用途是什麼?

    • 執行任務在背景時繼續工作
    • 刪除舊檔
    • 管理權限
    • 使用更快的工具
  3. 哪個 hook 在 git commit 前執行?

    • post-commit
    • pre-commit
    • on-edit
    • session-start
  4. True or False: 您可以恢復之前的 Claude Code 工作階段。

    • True
    • False
  5. 脈絡壓縮做什麼?

    • 刪除舊對話
    • 壓縮對話歷史以節省 tokens
    • 加密對話
    • 匯出對話到檔案

答案: 1-c, 2-a, 3-b, 4-True, 5-b


⭐ 2.1.33 新增:進階代理功能

Claude Code 2.1.33 引入幾個建構在本課程概念上的進階功能。

代理團隊(第 18 課)

雖然子代理獨立工作,但代理團隊在分割窗格終端機中一起工作:

// settings.json
{
"teammateMode": "tmux",
"agentTeams": {
"fullstack": {
"teammates": [
{"name": "backend", "systemPrompt": "後端開發"},
{"name": "frontend", "systemPrompt": "前端開發"}
]
}
}
}

與子代理的主要差異:

  • 視覺化協作 - 即時看到隊友工作
  • 直接訊息傳遞 - 隊友之間互傳訊息
  • 分割窗格 - tmux、WezTerm、iTerm2 支援
  • spawnTeam 工具 - 以程式設計方式建立團隊

深入瞭解: 第 18 課:代理團隊與隊友

增強的鉤子(第 20 課)

鉤子現已可用於技能、代理和指令:

---
name: deploy
hooks:
pre-tool:
command: ./scripts/pre-deploy.sh
post-tool:
command: ./scripts/notify.sh
---

新的鉤子功能:

  • 技能鉤子 - 技能的前/後工具執行
  • 代理鉤子 - 子代理開始/停止鉤子
  • 權限鉤子 - 自動批准/拒絕模式
  • 逾時:10 分鐘 - 從 60 秒增加

深入瞭解: 第 20 課:2.1.x 進階功能

萬用字元權限(第 20 課)

使用萬用字元簡化權限規則:

{
"permissions": {
"allowedOperations": [
"Bash(npm *)", // 所有 npm 指令
"Bash(git *)", // 所有 git 指令
"Bash(* test)", // 任何測試指令
"Read(*.md)" // 所有 markdown 檔案
]
}
}

工作階段分叉(第 20 課)

使用工作階段分叉安全實驗:

# 分叉目前工作階段
claude --fork-session

# 倒轉到先前點
/rewind

外部編輯器(第 20 課)

Ctrl+G 在您喜愛的編輯器中編輯提示:

export EDITOR=vim  # 或 nano、code 等

# 在 Claude Code 中
[輸入提示... 按 Ctrl+G]

[Vim 開啟您的提示]
[編輯並儲存]

[提示在 Claude 中更新]

總結

在本課程中,您學到了:

  • 子代理 - Explore、Plan、Bash 專家
  • 背景任務 - 非同步執行
  • 鉤子 - 事件驅動的自動化
  • 工作階段管理 - 持久化和恢復
  • 脈絡壓縮 - 管理長對話

下一步

在**第 9 課:Git 整合**中,您將學到:

  • 使用 Claude 進行 git 操作
  • /commit skill
  • 建立拉取請求
  • 搜尋 git 歷史

進階閱讀


繼續至第 9 課:Git 整合