119 lines
3.8 KiB
Markdown
119 lines
3.8 KiB
Markdown
|
|
---
|
|||
|
|
name: continuous-learning
|
|||
|
|
description: 自動從 Claude Code 會話中擷取可重用的模式,並將其儲存為已學習技能以供未來使用。
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 持續學習技能 (Continuous Learning Skill)
|
|||
|
|
|
|||
|
|
在會話結束時自動評估 Claude Code 工作階段,以擷取可儲存為已學習技能 (Learned skills) 的可重用模式。
|
|||
|
|
|
|||
|
|
## 何時啟用
|
|||
|
|
|
|||
|
|
- 設定從 Claude Code 會話中自動擷取模式的功能。
|
|||
|
|
- 配置用於會話評估的 Stop 鉤子 (Hook)。
|
|||
|
|
- 審查或整理 `~/.claude/skills/learned/` 中的已學習技能。
|
|||
|
|
- 調整擷取閾值或模式類別。
|
|||
|
|
- 比較 v1(本版本)與 v2(基於本能)方法的差異。
|
|||
|
|
|
|||
|
|
## 運作方式
|
|||
|
|
|
|||
|
|
此技能在每個會話結束時作為 **Stop 鉤子** 執行:
|
|||
|
|
|
|||
|
|
1. **工作階段評估**:檢查會話訊息量是否足夠(預設為 10 則以上)。
|
|||
|
|
2. **模式檢測**:識別會話中可擷取的模式。
|
|||
|
|
3. **技能擷取**:將有用的模式儲存到 `~/.claude/skills/learned/`。
|
|||
|
|
|
|||
|
|
## 配置說明
|
|||
|
|
|
|||
|
|
編輯 `config.json` 進行自定義:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"min_session_length": 10,
|
|||
|
|
"extraction_threshold": "medium",
|
|||
|
|
"auto_approve": false,
|
|||
|
|
"learned_skills_path": "~/claude/skills/learned/",
|
|||
|
|
"patterns_to_detect": [
|
|||
|
|
"error_resolution",
|
|||
|
|
"user_corrections",
|
|||
|
|
"workarounds",
|
|||
|
|
"debugging_techniques",
|
|||
|
|
"project_specific"
|
|||
|
|
],
|
|||
|
|
"ignore_patterns": [
|
|||
|
|
"simple_typos",
|
|||
|
|
"one_time_fixes",
|
|||
|
|
"external_api_issues"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 模式類型
|
|||
|
|
|
|||
|
|
| 模式 | 描述 |
|
|||
|
|
|---------|-------------|
|
|||
|
|
| `error_resolution` | 特定錯誤是如何被解決的 |
|
|||
|
|
| `user_corrections` | 來自使用者指正的模式 |
|
|||
|
|
| `workarounds` | 針對框架/函式庫特有問題的變通方案 |
|
|||
|
|
| `debugging_techniques` | 有效的偵錯方法 |
|
|||
|
|
| `project_specific` | 專案特定的慣例 |
|
|||
|
|
|
|||
|
|
## 鉤子設定 (Hook Setup)
|
|||
|
|
|
|||
|
|
將以下內容新增至您的 `~/.claude/settings.json`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"hooks": {
|
|||
|
|
"Stop": [{
|
|||
|
|
"matcher": "*",
|
|||
|
|
"hooks": [{
|
|||
|
|
"type": "command",
|
|||
|
|
"command": "~/claude/skills/continuous-learning/evaluate-session.sh"
|
|||
|
|
}]
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 為什麼選擇 Stop 鉤子?
|
|||
|
|
|
|||
|
|
- **輕量化**:每個會話僅在結束時執行一次。
|
|||
|
|
- **無阻塞**:不會增加每則訊息的回應延遲。
|
|||
|
|
- **完整脈絡**:可以存取完整的對話紀錄。
|
|||
|
|
|
|||
|
|
## 相關資源
|
|||
|
|
|
|||
|
|
- [The Longform Guide](https://x.com/affaanmustafa/status/2014040193557471352) - 持續學習章節
|
|||
|
|
- `/learn` 指令 - 在會話中手動擷取模式
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 比較筆記 (研究時間:2025 年 1 月)
|
|||
|
|
|
|||
|
|
### 與 Homunculus 的比較
|
|||
|
|
|
|||
|
|
Homunculus v2 採用了更為精細的方法:
|
|||
|
|
|
|||
|
|
| 特性 | 我們的做法 (v1) | Homunculus v2 |
|
|||
|
|
|---------|--------------|---------------|
|
|||
|
|
| 觀察方式 | Stop 鉤子 (會話結束) | PreToolUse/PostToolUse 鉤子 (100% 可靠) |
|
|||
|
|
| 分析方式 | 主上下文 (Main context) | 背景 Agent (Haiku) |
|
|||
|
|
| 粒度大小 | 完整的技能 (Full skills) | 原子級「本能 (Instincts)」 |
|
|||
|
|
| 信心評分 | 無 | 0.3-0.9 加權評分 |
|
|||
|
|
| 演進路徑 | 直接轉為技能 | 本能 → 聚類 → 技能/指令/Agent |
|
|||
|
|
| 共享機制 | 無 | 匯出/匯入本能 |
|
|||
|
|
|
|||
|
|
**來自 Homunculus 的關鍵洞察:**
|
|||
|
|
> 「v1 依賴技能來觀察。技能是機率性的——觸發率約 50-80%。v2 使用鉤子進行觀察(100% 可靠),並將『本能』作為學習行為的最小原子單位。」
|
|||
|
|
|
|||
|
|
### v2 的潛在增強方向
|
|||
|
|
|
|||
|
|
1. **基於本能的學習** - 更小、更原子的行為,並帶有信心評分。
|
|||
|
|
2. **背景觀察者** - 使用並行的 Haiku Agent 進行分析。
|
|||
|
|
3. **信心衰減** - 如果被矛盾的事實推翻,本能的信心分數會下降。
|
|||
|
|
4. **領域標籤** - code-style、testing、git、debugging 等。
|
|||
|
|
5. **演進路徑** - 將相關的本能聚類成技能或指令。
|
|||
|
|
|
|||
|
|
參見:`/Users/affoon/Documents/tasks/12-continuous-learning-v2.md` 獲取完整規範。
|