Level 4 · 織命者(Fatebinder)

從「回應你」到「主動做事」的分水嶺。

這一關要做的

設計至少兩個 hooks,讓 AI 能在你沒指令時主動做事:

  1. 對話結束時的 hook(自動記憶、通知、備份等)
  2. 呼叫工具前的 hook(確認危險動作、注入 context)
  3. 測試 hook 的實際作用
  4. 觀察一週,記錄它救了你幾次 / 添了多少麻煩

各 CLI 的 hook 事件(重要:名稱不同!)

事件概念Claude CodeGemini CLICodex CLICopilot CLI
Session 開始SessionStartSessionStartSessionStartsessionStart
Session 結束SessionEndSessionEndsessionEnd
使用者 promptUserPromptSubmitUserPromptSubmituserPromptSubmitted
呼叫工具前PreToolUseBeforeToolPreToolUsepreToolUse
呼叫工具後PostToolUseAfterToolPostToolUsepostToolUse
工具失敗PostToolUseFailure
權限請求PermissionRequest
Agent 呼叫前BeforeAgent
Agent 呼叫後AfterAgent
Model 呼叫前BeforeModel
Model 呼叫後AfterModel
Agent 停止StopStopagentStop
通知Notification

觀察

  • Claude Code 的 hook 系統最豐富(8 個事件),推薦新手優先用這個
  • Gemini CLI 用完全不同的命名BeforeTool / AfterTool
  • Codex CLI 必須在 ~/.codex/config.toml 啟用 codex_hooks = true feature flag
  • Copilot CLI 用 camelCasepreToolUse 而非 PreToolUse

Hook 設定檔位置

CLI設定檔位置
Claude Code~/.claude/settings.json
Gemini CLI~/.gemini/settings.json
Codex CLI~/.codex/hooks.json + ~/.codex/config.toml(啟用 flag)
Copilot CLI~/.copilot/config.json

核心技術

  • Shell command 作為 hook handler(stdin 會收到 JSON 事件)
  • 非同步 hook(不會阻塞 AI 對話)
  • 事件 payload 格式:AgentPulse 專案有完整的 normalization 範例

參考:AgentPulse 的 hook 實作

Yaze 開發的 AgentPulse 已經正確處理了所有 4 個 CLI 的 hook 差異。 它的 hooks_configurator.rs 是學習 cross-CLI hook 安裝的最佳範例。

通關證明

你睡一覺醒來,發現 AI 已經自動幫你做了某件小事 (例如:自動備份 journal、自動 commit 代碼、自動寄送提醒)。

下一關

Level 5 · 通達者 — 讓她連上外部世界。