Everything Claude Code 原始碼解讀:用 Plugin 架構打造 AI 編程助手的知識體系

在 AI 編程工具百花齊放的時代,多數人關注的是「如何使用」Claude Code,卻少有人深入研究「如何系統性地配置」它。Everything Claude Code 是一個來自 Anthropic 黑客松冠軍的實戰配置集合,歷經 10 個月以上的日常高強度使用淬煉而成。讀完這份原始碼,你能學到的不只是 Claude Code 的配置技巧,更是一套完整的「AI 助手知識管理架構」——如何讓 AI 從工具使用中持續學習、如何設計分層的品質防線、如何在 context window 的物理限制下最大化效率。

Everything Claude Code GitHub Repository — 完整的 Claude Code 配置集合,包含 agents、skills、hooks、commands、rules 與 MCP 配置

專案概覽

Everything Claude Code 不是一個傳統意義上的「軟體專案」——它是一個 Claude Code Plugin,由 Markdown 定義檔、JSON 配置和 Node.js 腳本組成。專案包含 301 個檔案,涵蓋 13 個 agent 定義、30+ 個 skill 工作流、20+ 個 slash command、8 個 rule 規範、完整的 hooks 生命週期管理,以及跨平台(Windows/macOS/Linux)的 Node.js 腳本基礎設施。

技術棧:Markdown(agent/skill/rule 定義)、JSON(hooks/plugin 配置)、Node.js(跨平台腳本)、Shell(legacy hooks)、Python(instinct CLI)。

架構總覽

everything-claude-code/
├── .claude-plugin/          # Plugin 元資料與 marketplace 配置
│   ├── plugin.json          # 元件註冊表:宣告所有 agents、skills 的路徑
│   └── marketplace.json     # 自託管 marketplace 目錄
│
├── agents/                  # 專職子代理定義(Markdown + YAML frontmatter)
│   ├── planner.md           # 規劃專家:分解需求為可執行步驟
│   ├── architect.md         # 架構師:系統設計與技術決策
│   ├── code-reviewer.md     # 程式碼審查:品質、安全、效能
│   ├── security-reviewer.md # 安全專家:OWASP Top 10 全面審查
│   ├── tdd-guide.md         # TDD 專家:測試驅動開發流程
│   └── ...                  # 共 13 個專職代理
│
├── skills/                  # 工作流定義與領域知識
│   ├── continuous-learning/    # v1: Stop hook 觸發的學習系統
│   ├── continuous-learning-v2/ # v2: Hook 驅動的 instinct 學習系統
│   ├── iterative-retrieval/    # 漸進式上下文檢索模式
│   ├── verification-loop/      # 驗證迴圈:建置/型別/測試/安全
│   ├── strategic-compact/      # 策略性 context 壓縮
│   ├── eval-harness/           # Eval-Driven Development 框架
│   └── ...                     # 含前後端模式、語言專屬知識
│
├── commands/                # Slash 命令:串接 agent 與 skill 的入口
│   ├── plan.md              # /plan:規劃後等待確認才執行
│   ├── tdd.md               # /tdd:測試驅動開發
│   ├── learn.md             # /learn:手動萃取可複用模式
│   ├── verify.md            # /verify:執行完整驗證迴圈
│   └── ...
│
├── rules/                   # 永遠遵循的守則(模組化設計)
│   ├── security.md          # 安全:無硬編碼密鑰、輸入驗證
│   ├── performance.md       # 效能:模型選擇策略、context 管理
│   ├── agents.md            # 代理協作:何時委派、平行執行
│   └── ...
│
├── hooks/                   # 事件驅動的自動化
│   └── hooks.json           # 完整生命週期 hook 配置
│
├── scripts/                 # 跨平台 Node.js 基礎設施
│   ├── lib/utils.js         # 共用工具函式庫
│   ├── lib/package-manager.js # 套件管理器偵測
│   └── hooks/               # Hook 實作腳本
│
├── contexts/                # 動態 system prompt 注入
│   ├── dev.md               # 開發模式:寫碼優先
│   ├── review.md            # 審查模式:品質優先
│   └── research.md          # 研究模式:探索優先
│
└── mcp-configs/             # MCP Server 配置範本
    └── mcp-servers.json     # GitHub、Supabase、Vercel 等
Code language: PHP (php)

這個結構揭示了一個核心設計理念:Claude Code 的配置不是一個扁平的設定檔,而是一個分層的知識架構。每一層都有明確的職責邊界。

核心設計解析

設計一:Plugin 元件註冊表——用 JSON Schema 統治所有定義

整個專案的入口是 .claude-plugin/plugin.json,它扮演著「元件註冊表」的角色,明確宣告哪些檔案是 agent、哪些路徑包含 skills。

.claude-plugin/plugin.json — Plugin 元資料入口,定義所有元件的註冊路徑

{
  "name": "everything-claude-code",
  "version": "1.2.0",
  "skills": ["./skills/", "./commands/"],
  "agents": [
    "./agents/architect.md",
    "./agents/build-error-resolver.md",
    "./agents/code-reviewer.md",
    ...
  ]
}
Code language: JSON / JSON with Comments (json)

值得注意的是,這裡刻意沒有宣告 "hooks" 欄位。這是因為 Claude Code v2.1+ 會自動載入 plugin 中的 hooks/hooks.json,如果再次顯式宣告會觸發「Duplicate hooks file detected」錯誤。這個設計決策經歷了多次 fix/revert 循環(#29、#52、#103),最終加入了 regression test 來防止回歸——這是在實際使用中踩坑後的防禦性設計。

設計二:Agent 定義的 YAML Frontmatter 協定

每個 agent 都以 Markdown 檔案定義,使用 YAML frontmatter 來宣告元資料。這個設計讓 agent 定義同時具備「機器可解析」和「人類可閱讀」的特性。

agents/planner.md — 規劃專家代理,負責將複雜需求分解為可執行的實作計畫

---
name: planner
description: Expert planning specialist for complex features and refactoring.
  Use PROACTIVELY when users request feature implementation...
tools: ["Read", "Grep", "Glob"]
model: opus
---
Code language: CSS (css)

三個關鍵的設計決策隱含在這個簡短的 frontmatter 中:

  1. 工具白名單(tools:planner 只有 Read/Grep/Glob——它只能讀取,不能寫入。這落實了「規劃者不應該直接動手」的職責分離原則。相比之下,tdd-guide["Read", "Write", "Edit", "Bash", "Grep"],因為它需要撰寫測試和執行測試。
  2. 模型選擇(model:架構性思考使用 opus(最深推理),而不是成本較低的 haiku。這反映了 performance rule 中明確的模型選擇策略。
  3. 主動觸發描述:description 中寫著 “Use PROACTIVELY”——這不只是給人看的,也是給 Claude Code 的行為指令,讓它在偵測到相關場景時主動委派。

設計三:Hooks 生命週期管理——事件驅動的品質防線

hooks.json 是整個專案最精密的設計之一。它定義了從 session 開始到結束的完整生命週期 hook,涵蓋 SessionStartPreToolUsePostToolUsePreCompactStopSessionEnd 六個事件點。

hooks/hooks.json — 完整的生命週期 hook 配置,實作事件驅動的品質防線

以 PreToolUse 為例,這裡有一個精巧的 dev server 攔截器:

{
  "matcher": "tool == \"Bash\" && tool_input.command matches \"(npm run dev|pnpm( run)? dev|yarn dev|bun run dev)\"",
  "hooks": [{
    "type": "command",
    "command": "node -e \"console.error('[Hook] BLOCKED: Dev server must run in tmux for log access');...;process.exit(1)\""
  }],
  "description": "Block dev servers outside tmux - ensures you can access logs"
}
Code language: JSON / JSON with Comments (json)

這個 hook 會阻止 Claude 在非 tmux 環境下啟動 dev server,強制使用 tmux 以確保日誌可存取。設計理念是:AI 助手不應該啟動它自己無法持續監控的長期服務。

PostToolUse 中的多層 TypeScript 品質防線同樣值得注意:

[
  { "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx|js|jsx)$\"",
    "command": "...npx prettier --write..." },
  { "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx)$\"",
    "command": "...npx tsc --noEmit..." },
  { "matcher": "tool == \"Edit\" && ...\"\\\\.(ts|tsx|js|jsx)$\"",
    "command": "...console.log detection..." }
]
Code language: JSON / JSON with Comments (json)

每次編輯 TypeScript/JavaScript 檔案後,自動執行三個檢查:Prettier 格式化 → TypeScript 型別檢查 → console.log 偵測。這是一個分層防禦的設計:格式→型別→衛生,層層遞進。

設計四:記憶持久化——Session 生命週期的狀態管理

Session 記憶持久化是這個專案中最具工程深度的設計。它通過 SessionStartSessionEndPreCompact 三個生命週期 hook 組成完整的狀態管理迴圈。

scripts/hooks/session-start.js — Session 啟動時載入前次狀態和偵測套件管理器

async function main() {
  const sessionsDir = getSessionsDir();
  const learnedDir = getLearnedSkillsDir();

  ensureDir(sessionsDir);
  ensureDir(learnedDir);

  // 檢查近 7 天的 session 檔案
  const recentSessions = findFiles(sessionsDir, '*-session.tmp', { maxAge: 7 });

  if (recentSessions.length > 0) {
    const latest = recentSessions[0];
    log(`[SessionStart] Found ${recentSessions.length} recent session(s)`);
    log(`[SessionStart] Latest: ${latest.path}`);
  }

  // 檢查已學習的技能
  const learnedSkills = findFiles(learnedDir, '*.md');
  // 偵測並回報套件管理器
  const pm = getPackageManager();
  log(`[SessionStart] Package manager: ${pm.name} (${pm.source})`);
}
Code language: JavaScript (javascript)

scripts/hooks/session-end.js — Session 結束時建立或更新狀態檔

Session End hook 的檔案命名策略也值得注意:${today}-${shortId}-session.tmp,其中 shortIdCLAUDE_SESSION_ID 的最後 8 位。這讓同一天的多個 session 各自獨立追蹤,不會互相覆蓋。

scripts/hooks/pre-compact.js — Context 壓縮前保存當前狀態,防止重要資訊在摘要中遺失

PreCompact hook 在 context 壓縮前保存狀態——因為壓縮是有損的,重要上下文可能在摘要過程中遺失。這形成了一個防禦性的三角架構:啟動時恢復 → 壓縮前保存 → 結束時持久化

設計五:策略性 Compact——在物理限制下的智慧妥協

Context window 是 LLM 最根本的物理限制。auto-compact 會在任意時間點觸發,經常打斷正在進行的任務。strategic-compact 的設計理念是:讓 compact 發生在邏輯上合理的時間點

scripts/hooks/suggest-compact.js — 根據工具呼叫次數,在策略性時間點建議手動 compact

async function main() {
  const sessionId = process.env.CLAUDE_SESSION_ID || process.ppid || 'default';
  const counterFile = path.join(getTempDir(), `claude-tool-count-${sessionId}`);
  const threshold = parseInt(process.env.COMPACT_THRESHOLD || '50', 10);

  let count = 1;
  const existing = readFile(counterFile);
  if (existing) {
    count = parseInt(existing.trim(), 10) + 1;
  }
  writeFile(counterFile, String(count));

  // 在閾值時建議 compact
  if (count === threshold) {
    log(`[StrategicCompact] ${threshold} tool calls reached - consider /compact if transitioning phases`);
  }
  // 之後每 25 次工具呼叫提醒一次
  if (count > threshold && count % 25 === 0) {
    log(`[StrategicCompact] ${count} tool calls - good checkpoint for /compact if context is stale`);
  }
}
Code language: JavaScript (javascript)

關鍵在於它只是建議,不是強制——”consider /compact if transitioning phases”。這尊重了使用者的判斷,因為只有使用者知道當前是否處於任務邊界。

設計六:Continuous Learning v1 → v2 的架構演進

Continuous Learning 的版本演進是這個專案中最能體現設計迭代思維的部分。

skills/continuous-learning/SKILL.md — v1 學習系統:Stop hook 觸發,完整 skill 為學習單位

v1 的設計是在 session 結束時(Stop hook),評估整個 session 是否包含可萃取的模式,然後直接生成完整的 skill 檔案。問題在於:

  1. Stop hook 只觸發一次——如果 session 中途崩潰,學習就丟失了
  2. 學習粒度太粗——一個完整的 skill 可能包含多個不相關的模式
  3. 沒有信心度機制——無法區分「偶然觀察」和「確認的偏好」

skills/continuous-learning-v2/SKILL.md — v2 學習系統:Hook 驅動的 instinct 架構,帶信心度評分

v2 引入了三個根本性改變:

v1: Stop hook → 完整 skill
v2: PreToolUse/PostToolUse hooks → 觀察 → 原子 instinct(帶信心度)→ 聚類 → skill/command/agent
Code language: HTTP (http)

Instinct(本能) 是 v2 的核心抽象——一個原子化的行為學習單位:

---
id: prefer-functional-style
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
source: "session-observation"
---
Code language: JavaScript (javascript)

信心度評分系統的設計精妙之處在於其動態性:

  • 重複觀察到 → 信心度上升
  • 使用者糾正 → 信心度下降
  • 長期未觀察 → 信心度衰減(confidence_decay_rate: 0.02
  • 達到 auto_approve_threshold: 0.7 → 自動應用

這模擬了人類學習的模式:反覆確認的行為成為直覺,被糾正的行為被抑制,長期未使用的行為逐漸遺忘。

設計七:Iterative Retrieval——解決子代理的上下文困境

當主代理委派任務給子代理時,面臨一個根本矛盾:子代理不知道它需要什麼上下文,而主代理不知道子代理會遇到什麼問題。

skills/iterative-retrieval/SKILL.md — 漸進式上下文檢索模式,解決多代理工作流中的上下文問題

標準方法的困境:
- 送出所有上下文 → 超過 context 限制
- 不送上下文 → 代理缺乏關鍵資訊
- 猜測需要什麼 → 經常猜錯

解決方案:四階段迭代檢索
DISPATCH(廣泛搜尋)→ EVALUATE(相關性評分)→ REFINE(精煉查詢)→ LOOP(最多 3 輪)

這個設計的精髓在於學習程式碼庫的術語。文件中舉了一個例子:搜尋 “rate limiting” 找不到結果,因為程式碼庫用的是 “throttle”——第一輪迭代就能發現這個術語差異,第二輪用正確的術語搜尋。最多 3 輪的限制防止了無限迴圈,同時 “3 個高相關性檔案勝過 10 個平庸的檔案” 的停止條件確保了效率。

設計八:Model 選擇策略——成本與能力的分層優化

Performance rule 中定義了明確的模型選擇策略,這個策略被 agent 定義中的 model 欄位具體實現。

rules/performance.md — 效能優化守則,包含模型選擇策略和 context 管理原則

**Haiku 4.5** (90% of Sonnet capability, 3x cost savings):
- Lightweight agents with frequent invocation
- Worker agents in multi-agent systems

**Sonnet 4.5** (Best coding model):
- Main development work
- Orchestrating multi-agent workflows

**Opus 4.5** (Deepest reasoning):
- Complex architectural decisions
- Maximum reasoning requirements
Code language: CSS (css)

這不只是文字建議——它直接反映在 agent 定義中:plannerarchitectcode-reviewersecurity-reviewer 使用 opus,而 continuous-learning-v2 的 observer 使用 haiku。設計原則是:一次性的深度思考用最強模型,高頻的輕量任務用最便宜的模型

設計九:Agent 協作規範——何時委派、如何平行

Agent 協作不是隨意的——rules/agents.md 定義了明確的委派時機和平行執行規範。

rules/agents.md — 代理協作守則,定義委派時機和平行執行策略

## Immediate Agent Usage
No user prompt needed:
1. Complex feature requests → Use **planner** agent
2. Code just written/modifiedUse **code-reviewer** agent
3. Bug fix or new featureUse **tdd-guide** agent
4. Architectural decisionUse **architect** agent

## Parallel Task Execution
ALWAYS use parallel Task execution for independent operations
Code language: PHP (php)

這裡的 “No user prompt needed” 是關鍵——代理會根據場景主動觸發,而不是等待使用者指示。再加上 “Multi-Perspective Analysis” 的設計(Factual reviewer + Senior engineer + Security expert + Consistency reviewer + Redundancy checker),形成了一個多視角品質保障的架構。

設計十:跨平台腳本基礎設施——用 Node.js 統一三大平台

所有 hook 腳本從最初的 Bash 遷移到了 Node.js,這是一個影響深遠的架構決策。

scripts/lib/utils.js — 跨平台工具函式庫,提供檔案操作、日期處理和系統資訊

const isWindows = process.platform === 'win32';
const isMacOS = process.platform === 'darwin';
const isLinux = process.platform === 'linux';

function commandExists(cmd) {
  // 驗證命令名稱 - 只允許字母數字、連字符、底線、點
  if (!/^[a-zA-Z0-9_.-]+$/.test(cmd)) {
    return false;
  }
  try {
    if (isWindows) {
      const result = spawnSync('where', [cmd], { stdio: 'pipe' });
      return result.status === 0;
    } else {
      const result = spawnSync('which', [cmd], { stdio: 'pipe' });
      return result.status === 0;
    }
  } catch { return false; }
}
Code language: JavaScript (javascript)

注意 commandExists 中的輸入驗證——/^[a-zA-Z0-9_.-]+$/ 正則表達式防止了 command injection 攻擊。使用 spawnSync 而非 execSync 避免了 shell 插值風險。這是 security rule 在基礎設施層的具體落實。

所有 hook 都遵循一個錯誤處理模式:

main().catch(err => {
  console.error('[SessionStart] Error:', err.message);
  process.exit(0); // Don't block on errors
});
Code language: PHP (php)

process.exit(0) 而非 process.exit(1)——即使 hook 出錯也不阻塞 Claude 的主流程。這體現了「基礎設施不應該成為使用者的障礙」的設計原則。

設計理念萃取

  • 分層知識架構:Rules(永遠遵循)→ Skills(按需啟用)→ Agents(專職委派)→ Commands(使用者入口)→ Hooks(自動觸發)。每層有明確的職責邊界,就像微服務架構的關注點分離。這種分層讓配置可以漸進式採用——從 rules 開始,逐步加入更多層級。
  • 事件驅動的品質防線:不依賴使用者記住要做什麼檢查,而是把品質守則嵌入工具使用的生命週期中。每次編輯後自動格式化、型別檢查、console.log 偵測——這是「shift left」理念在 AI 編程助手中的極致實現。
  • 學習系統的原子化設計:Continuous Learning v2 從完整 skill 演進到原子 instinct,帶信心度評分和衰減機制。這個設計可以借鏡到任何需要「從使用者行為中學習」的系統——與其試圖學習完整的工作流,不如學習原子化的行為偏好,再透過聚類組合。
  • 防禦性的狀態管理:SessionStart/PreCompact/SessionEnd 三個 hook 形成的狀態管理三角,確保記憶不會因為 context 壓縮或 session 中斷而遺失。在任何涉及有損操作的系統中,「壓縮前保存」都是值得採用的模式。
  • 建議而非強制:Strategic Compact 只是建議使用者在邏輯邊界處 compact,而不是自動觸發。在 AI 助手的設計中,區分「自動化」和「建議」的邊界至關重要——高風險的操作應該交由使用者判斷。

延伸思考

Everything Claude Code 展示了一種全新的思考方式:AI 編程助手的配置本身就是一個軟體工程問題。它需要架構設計(分層的元件結構)、狀態管理(session 持久化)、品質保障(hook 防線)、持續學習(instinct 系統)和跨平台支援(Node.js 基礎設施)。

如果你正在建構任何形式的 AI agent 系統,以下是可以直接借鏡的具體做法:

  1. 用 YAML frontmatter + Markdown 定義 agent——兼顧機器解析和人類可讀,同時透過 tools 白名單落實最小權限原則。
  2. 設計生命週期 hook 而非一次性腳本——把品質檢查嵌入工具使用的事件流中,讓品質成為「預設行為」而非「額外步驟」。
  3. 為學習系統設計信心度和衰減機制——不是所有觀察都同等重要,時間會改變行為偏好的有效性。
  4. 在有損操作前保存狀態——無論是 context 壓縮、資料遷移還是系統升級,「壓縮前快照」是一個通用的防禦模式。
  5. 模型選擇要匹配任務特性——深度推理用最強模型,高頻輕量用最便宜的。這不只適用於 Claude Code,也適用於任何多模型 AI 系統的設計。

Vibe Coding:把觀念變成程式碼

以下是你可以直接給 AI 的 prompt 指令,將本文介紹的設計觀念應用到你的專案中:

事件驅動的品質防線

場景:你的專案有一些品質規範(格式化、型別檢查、安全掃描),但總是依賴開發者「記得」手動執行,想把這些檢查嵌入 Claude Code 的工具使用生命週期中。

給 AI 的指令

我想為我的專案設計 Claude Code hooks,實作「事件驅動的品質防線」。請幫我建立 hooks.json,在以下時機自動觸發檢查:

1. PostToolUse:每次 Edit 或 Write 修改 [你的語言,例如 TypeScript] 檔案後,自動執行格式化工具([例如 Prettier])和型別檢查([例如 tsc –noEmit])
2. PreToolUse:攔截危險操作,例如阻止在非 tmux 環境下啟動 dev server、阻止直接刪除 production 設定檔
3. Stop:在每次對話結束時,自動執行完整的 lint 檢查

使用 Node.js 腳本而非 Bash,確保跨平台相容。每個 hook 腳本出錯時用 process.exit(0) 避免阻塞主流程——這是「基礎設施不應該成為使用者障礙」的原則。

我的專案使用 [你的技術棧],套件管理器是 [npm/pnpm/yarn/bun]。

效果:AI 會根據你的技術棧產生完整的 hooks.json 配置和對應的 Node.js 腳本,包含 matcher 正則表達式、分層的檢查邏輯,以及防禦性的錯誤處理。你會得到一個每次編輯後自動執行品質檢查的工作流。

用 YAML Frontmatter 定義專職子代理

場景:你的專案需要多個角色協作(例如規劃、實作、審查),想為 Claude Code 建立專職子代理,每個代理有明確的職責邊界和工具權限。

給 AI 的指令

請幫我為專案建立一組 Claude Code 子代理(subagents),採用「YAML Frontmatter + Markdown」的定義格式。我需要以下角色:

1. 規劃代理(planner):只能讀取不能寫入,工具限定為 Read/Grep/Glob,使用 opus 模型進行深度推理
2. 實作代理(implementer):擁有完整的讀寫工具,使用 sonnet 模型
3. 審查代理(reviewer):只能讀取,使用 opus 模型,從程式碼品質、安全性、效能三個視角審查

每個代理的 description 要包含「Use PROACTIVELY when…」的主動觸發條件,讓 Claude Code 在偵測到相關場景時自動委派。工具白名單要落實最小權限原則——規劃者不應該直接動手寫程式碼。

我的專案是 [專案描述],主要語言是 [語言]。

效果:AI 會產生符合 Claude Code Agent 規格的 Markdown 檔案,每個檔案包含 YAML frontmatter(name、description、tools、model)和詳細的行為指令。你可以直接放入 .claude/agents/ 目錄使用。

防禦性的 Session 狀態管理

場景:你在使用 Claude Code 處理長期專案時,經常因為 context 壓縮或 session 中斷而遺失重要的工作脈絡,想建立一個「啟動時恢復、壓縮前保存、結束時持久化」的三角防禦架構。

給 AI 的指令

請幫我實作 Claude Code 的 session 記憶持久化系統,採用「防禦性狀態管理三角」模式:

1. SessionStart hook:檢查近 7 天的 session 檔案,載入最近的工作狀態;偵測專案的套件管理器
2. PreCompact hook:在 context 壓縮前保存當前狀態——因為壓縮是有損的,重要上下文可能在摘要中遺失
3. SessionEnd hook:建立或更新狀態檔,檔名用 ${日期}-${sessionId後8位}-session.tmp 格式,確保同一天多個 session 不會互相覆蓋

使用 Node.js 實作所有腳本,放在 scripts/hooks/ 目錄下,共用工具函式抽取到 scripts/lib/utils.js。狀態檔儲存在 .claude/sessions/ 目錄。

關鍵設計原則:即使 hook 出錯也不能阻塞 Claude 主流程(process.exit(0))。

效果:AI 會產生完整的三個 hook 腳本和共用工具函式庫,包含檔案操作、日期處理、session ID 解析等功能。你的 Claude Code 會在每次啟動時自動恢復上次的工作脈絡,在壓縮前自動保存關鍵資訊。

策略性 Context 管理

場景:你在使用 Claude Code 進行大型任務時,auto-compact 經常在不恰當的時間點觸發,打斷正在進行的工作。想實作策略性的 compact 提醒,在邏輯邊界處建議壓縮。

給 AI 的指令

我想實作 Claude Code 的「策略性 Compact」機制。請建立一個 PostToolUse hook 腳本,功能如下:

1. 用計數器檔案追蹤本次 session 的工具呼叫次數(以 CLAUDE_SESSION_ID 區分)
2. 達到閾值(預設 50 次,可透過 COMPACT_THRESHOLD 環境變數調整)時,輸出建議訊息:「考慮在階段轉換時執行 /compact」
3. 之後每 25 次工具呼叫提醒一次
4. 關鍵:只是建議而非強制——因為只有使用者知道當前是否處於任務邊界

這是「建議而非強制」的設計原則——高風險的操作應該交由使用者判斷。

效果:AI 會產生一個輕量的計數器 hook 腳本,在合適的時機提醒你手動 compact,而不是被 auto-compact 突然打斷。你可以在完成一個子任務後再壓縮,保持工作流的連貫性。

模型選擇策略的分層優化

場景:你正在設計一個多代理系統(不限於 Claude Code),需要為不同類型的任務選擇合適的模型,在成本和能力之間取得平衡。

給 AI 的指令

我正在設計一個多代理系統,需要制定模型選擇策略。請根據以下「成本與能力分層優化」原則,為我的系統中每個代理角色推薦合適的模型等級:

– 深度推理層(Opus 等級):複雜架構決策、安全審查、程式碼審查——一次性的深度思考
– 主力開發層(Sonnet 等級):日常開發、工作流編排——品質與成本的平衡點
– 高頻輕量層(Haiku 等級):行為觀察、格式檢查、簡單分類——高頻呼叫用最便宜的模型

我的系統包含以下角色:[列出你的代理角色和職責]

請為每個角色建議模型等級,並說明理由。同時估算在 [預期使用量] 下的月成本差異。

效果:AI 會為你的每個代理角色推薦具體的模型等級,附上選擇理由和成本估算。這個策略可以直接寫入你的 rules 或 agent 定義中,作為團隊的模型選擇規範。

延伸閱讀

0

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *