Claude Code
https://www.youtube.com/watch?v=AJpK3YTTKZ4
/init
讀取專案內容,自動生成CLAUDE.md雛形
/clear
重設對話履歷,將context歸零
/compact
壓縮對話內容,節省context長度
以[技巧名]/SKILL.md命名
存放於.claude/skills/
code:SKILL.md
---
name:
description:
allowed-tools: Bash, Read, Edit...
model:
context:
maxTurns:
disable-model-invocation: (是否要求自動執行)
hooks:
---
手動執行時,則透過斜槓指令觸發
Custom Commands
.claude/commands
Sub Agent
以與主要對話獨立開來的context執行特定任務,避免壓迫容量
綁定特定事件,自動執行shell指令
例如編輯檔案之後、執行指令前後等等
於.claude/settings.json設定
例如自動執行Linter
1. 許可
Deny/Ask/Allow
2. 擴充功能
Hooks:無消費context
Skill:低消費context
Plugin:中消費context
MCP:高消費context
3. Context與Memory
呼叫模型前會進行5階段壓縮
1. 削減輸出:輸出內容過大時,改為提供參照
2. 移除舊期記錄:移除某個時間點之前的對話記錄、工具呼叫
3. microcompact:移除舊期的工具結果
4. context collapse:簡化部分對話內容
5. auto-compact:簡化某個時間點之前的記錄
會視context的負荷程度逐步處理
Memory
不使用向量搜尋,只使用純文字的Markdown管理階層構造
於必要時LLM會搜尋檔案標題,尋找最相關的5個檔案
Claude.md
非System Prompt,而是「使用者的訊息」,因此沒有必定會遵守的保證
如果有一定想讓代理遵守的規則,則需要寫在許可部分中
意圖地將guidance與強制區分開來
4. 子代理
大型任務會切分成多個子代理,以獨立的context處理,只會回傳簡約給主代理
5. session永久化
每次對話都會儲存為append-only的JSONL檔,使後續與分歧變得簡單
https://www.youtube.com/watch?v=We7BZVKbCVw