docs(zh-CN): sync Chinese docs with latest upstream changes (#341)

* docs(zh-CN): sync Chinese docs with latest upstream changes

* docs(zh-CN): update link

---------

Co-authored-by: neo <neo.dowithless@gmail.com>
This commit is contained in:
zdoc.app
2026-03-08 06:48:02 +08:00
committed by GitHub
parent da17d33ac3
commit abcf38b085
53 changed files with 2977 additions and 610 deletions

View File

@@ -1,33 +1,48 @@
---
name: continuous-learning-v2
description: 基于本能的学习系统,通过钩子观察会话,创建具有置信度评分的原子本能,并将其进化为技能/命令/代理。
description: 基于本能的学习系统,通过钩子观察会话,创建置信度评分的原子本能,并将其进化为技能/命令/代理。v2.1版本增加了项目范围的本能,以防止跨项目污染。
origin: ECC
version: 2.0.0
version: 2.1.0
---
# 持续学习 v2 - 基于本能的架构
# 持续学习 v2.1 - 基于本能
的架构
一个高级学习系统,通过原子化的“本能”——带有置信度评分的小型习得行为——将你的 Claude Code 会话转化为可重用的知识。
部分灵感来源于 humanplane (credit: @humanplane) 的 Homunculus 项目
**v2.1** 新增了**项目作用域的本能** — React 模式保留在你的 React 项目中Python 约定保留在你的 Python 项目中,而通用模式(如“始终验证输入”)则全局共享
## 何时激活
* 设置从 Claude Code 会话自动学习
* 通过钩子配置基于本能的行为提取
* 调整学习行为的置信度阈值
* 查、导出或导入本能库
* 将本能进化为完整技能、命令或代理
* 设置从 Claude Code 会话自动学习
* 通过钩子配置基于本能的行为提取
* 调整学习行为的置信度阈值
*、导出或导入本能库
* 将本能进化为完整技能、命令或代理
* 管理项目作用域与全局本能
* 将本能从项目作用域提升到全局作用域
## v2 的新特性
## v2.1 的新特性
| 特性 | v2.0 | v2.1 |
|---------|------|------|
| 存储 | 全局 (~/.claude/homunculus/) | 项目作用域 (projects/<hash>/) |
| 作用域 | 所有本能随处适用 | 项目作用域 + 全局 |
| 检测 | 无 | git remote URL / 仓库路径 |
| 提升 | 不适用 | 在 2+ 个项目中出现时,项目 → 全局 |
| 命令 | 4个 (status/evolve/export/import) | 6个 (+promote/projects) |
| 跨项目 | 存在污染风险 | 默认隔离 |
## v2 的新特性(对比 v1
| 特性 | v1 | v2 |
|---------|----|----|
| 观察 | 停止钩子(会话结束) | 工具使用前/后(100% 可靠 |
| 分析 | 主上下文 | 后台代理Haiku |
| 粒度 | 完整技能 | 原子化“本能” |
| 观察 | 停止钩子(会话结束) | PreToolUse/PostToolUse (100% 可靠) |
| 分析 | 主上下文 | 后台代理 (Haiku) |
| 粒度 | 完整技能 | 原子化“本能” |
| 置信度 | 无 | 0.3-0.9 加权 |
| 进 | 直接技能 | 本能 聚类 技能/命令/代理 |
| 进 | 直接进化为技能 | 本能 -> 聚类 -> 技能/命令/代理 |
| 共享 | 无 | 导出/导入本能 |
## 本能模型
@@ -41,6 +56,9 @@ trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
source: "session-observation"
scope: project
project_id: "a1b2c3d4e5f6"
project_name: "my-react-app"
---
# Prefer Functional Style
@@ -55,51 +73,69 @@ Use functional patterns over classes when appropriate.
**属性:**
* **原子** 一个触发条件,一个动作
* **置信度加权** 0.3 = 尝试性的0.9 = 乎确定
* **领域标记** 代码风格、测试、git、调试、工作流等
* **证据支持** 追踪是哪些观察创建了它
* **原子** -- 一个触发条件,一个动作
* **置信度加权** -- 0.3 = 试探性0.9 = 乎确定
* **领域标记** -- 代码风格、测试、git、调试、工作流等
* **证据支持** -- 追踪是哪些观察创建了它
* **作用域感知** -- `project` (默认) 或 `global`
## 工作原理
```
Session Activity
Hooks capture prompts + tool use (100% reliable)
┌─────────────────────────────────────────┐
│ observations.jsonl │
(prompts, tool calls, outcomes)
└─────────────────────────────────────────┘
│ Observer agent reads (background, Haiku)
┌─────────────────────────────────────────┐
│ PATTERN DETECTION │
│ • User corrections → instinct
• Error resolutions instinct
• Repeated workflows → instinct
└─────────────────────────────────────────┘
│ Creates/updates
┌─────────────────────────────────────────┐
instincts/personal/ │
│ • prefer-functional.md (0.7) │
│ • always-test-first.md (0.9) │
• use-zod-validation.md (0.6)
└─────────────────────────────────────────┘
│ /evolve clusters
┌─────────────────────────────────────────┐
│ evolved/ │
• commands/new-feature.md │
│ • skills/testing-workflow.md │
• agents/refactor-specialist.md │
└─────────────────────────────────────────┘
Session Activity (in a git repo)
|
| Hooks capture prompts + tool use (100% reliable)
| + detect project context (git remote / repo path)
v
+---------------------------------------------+
| projects/<project-hash>/observations.jsonl |
| (prompts, tool calls, outcomes, project) |
+---------------------------------------------+
|
| Observer agent reads (background, Haiku)
v
+---------------------------------------------+
| PATTERN DETECTION |
| * User corrections -> instinct |
| * Error resolutions -> instinct |
| * Repeated workflows -> instinct |
| * Scope decision: project or global? |
+---------------------------------------------+
|
| Creates/updates
v
+---------------------------------------------+
| projects/<project-hash>/instincts/personal/ |
| * prefer-functional.yaml (0.7) [project] |
| * use-react-hooks.yaml (0.9) [project] |
+---------------------------------------------+
| instincts/personal/ (GLOBAL) |
| * always-validate-input.yaml (0.85) [global]|
| * grep-before-edit.yaml (0.6) [global] |
+---------------------------------------------+
|
| /evolve clusters + /promote
v
+---------------------------------------------+
| projects/<hash>/evolved/ (project-scoped) |
| evolved/ (global) |
| * commands/new-feature.md |
| * skills/testing-workflow.md |
| * agents/refactor-specialist.md |
+---------------------------------------------+
```
## 项目检测
系统会自动检测您当前的项目:
1. **`CLAUDE_PROJECT_DIR` 环境变量** (最高优先级)
2. **`git remote get-url origin`** -- 哈希化以创建可移植的项目 ID (同一仓库在不同机器上获得相同的 ID)
3. **`git rev-parse --show-toplevel`** -- 使用仓库路径作为后备方案 (机器特定)
4. **全局后备方案** -- 如果未检测到项目,本能将进入全局作用域
每个项目都会获得一个 12 字符的哈希 ID (例如 `a1b2c3d4e5f6`)。`~/.claude/homunculus/projects.json` 处的注册表文件将 ID 映射到人类可读的名称。
## 快速开始
### 1. 启用观察钩子
@@ -115,14 +151,14 @@ Session Activity
"matcher": "*",
"hooks": [{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh pre"
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
}]
}],
"PostToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh post"
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
}]
}]
}
@@ -138,14 +174,14 @@ Session Activity
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh pre"
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}],
"PostToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh post"
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}]
}
@@ -154,93 +190,125 @@ Session Activity
### 2. 初始化目录结构
Python CLI 会自动创建这些目录,但也可以手动创建:
系统会在首次使用时自动创建目录,但也可以手动创建:
```bash
mkdir -p ~/.claude/homunculus/{instincts/{personal,inherited},evolved/{agents,skills,commands}}
touch ~/.claude/homunculus/observations.jsonl
# Global directories
mkdir -p ~/.claude/homunculus/{instincts/{personal,inherited},evolved/{agents,skills,commands},projects}
# Project directories are auto-created when the hook first runs in a git repo
```
### 3. 使用本能命令
```bash
/instinct-status # Show learned instincts with confidence scores
/instinct-status # Show learned instincts (project + global)
/evolve # Cluster related instincts into skills/commands
/instinct-export # Export instincts for sharing
/instinct-export # Export instincts to file
/instinct-import # Import instincts from others
/promote # Promote project instincts to global scope
/projects # List all known projects and their instinct counts
```
## 命令
| 命令 | 描述 |
|---------|-------------|
| `/instinct-status` | 显示所有已习得的本能及其置信度 |
| `/evolve` | 将相关本能聚类技能/命令 |
| `/instinct-export` | 导出本能用于共享 |
| `/instinct-import <file>` | 从他人处导入本能 |
| `/instinct-status` | 显示所有本能 (项目作用域 + 全局) 及其置信度 |
| `/evolve` | 将相关本能聚类技能/命令,建议提升 |
| `/instinct-export` | 导出本能 (可按作用域/领域过滤) |
| `/instinct-import <file>` | 导入本能 (带作用域控制) |
| `/promote [id]` | 将项目本能提升到全局作用域 |
| `/projects` | 列出所有已知项目及其本能数量 |
## 配置
编辑 `config.json`
编辑 `config.json` 以控制后台观察器
```json
{
"version": "2.0",
"observation": {
"enabled": true,
"store_path": "~/.claude/homunculus/observations.jsonl",
"max_file_size_mb": 10,
"archive_after_days": 7
},
"instincts": {
"personal_path": "~/.claude/homunculus/instincts/personal/",
"inherited_path": "~/.claude/homunculus/instincts/inherited/",
"min_confidence": 0.3,
"auto_approve_threshold": 0.7,
"confidence_decay_rate": 0.05
},
"version": "2.1",
"observer": {
"enabled": true,
"model": "haiku",
"enabled": false,
"run_interval_minutes": 5,
"patterns_to_detect": [
"user_corrections",
"error_resolutions",
"repeated_workflows",
"tool_preferences"
]
},
"evolution": {
"cluster_threshold": 3,
"evolved_path": "~/.claude/homunculus/evolved/"
"min_observations_to_analyze": 20
}
}
```
| 键 | 默认值 | 描述 |
|-----|---------|-------------|
| `observer.enabled` | `false` | 启用后台观察器代理 |
| `observer.run_interval_minutes` | `5` | 观察器分析观察结果的频率 |
| `observer.min_observations_to_analyze` | `20` | 运行分析所需的最小观察次数 |
其他行为 (观察捕获、本能阈值、项目作用域、提升标准) 通过 `instinct-cli.py``observe.sh` 中的代码默认值进行配置。
## 文件结构
```
~/.claude/homunculus/
├── identity.json # Your profile, technical level
├── observations.jsonl # Current session observations
├── observations.archive/ # Processed observations
├── instincts/
├── personal/ # Auto-learned instincts
└── inherited/ # Imported from others
└── evolved/
├── agents/ # Generated specialist agents
├── skills/ # Generated skills
└── commands/ # Generated commands
+-- identity.json # Your profile, technical level
+-- projects.json # Registry: project hash -> name/path/remote
+-- observations.jsonl # Global observations (fallback)
+-- instincts/
| +-- personal/ # Global auto-learned instincts
| +-- inherited/ # Global imported instincts
+-- evolved/
| +-- agents/ # Global generated agents
| +-- skills/ # Global generated skills
| +-- commands/ # Global generated commands
+-- projects/
+-- a1b2c3d4e5f6/ # Project hash (from git remote URL)
| +-- observations.jsonl
| +-- observations.archive/
| +-- instincts/
| | +-- personal/ # Project-specific auto-learned
| | +-- inherited/ # Project-specific imported
| +-- evolved/
| +-- skills/
| +-- commands/
| +-- agents/
+-- f6e5d4c3b2a1/ # Another project
+-- ...
```
## 与技能创建器的集成
## 作用域决策指南
当你使用 [技能创建器 GitHub 应用](https://skill-creator.app) 时,它现在会生成**两者**
| 模式类型 | 作用域 | 示例 |
|-------------|-------|---------|
| 语言/框架约定 | **项目** | "使用 React hooks", "遵循 Django REST 模式" |
| 文件结构偏好 | **项目** | "测试放在 `__tests__`/", "组件放在 src/components/" |
| 代码风格 | **项目** | "使用函数式风格", "首选数据类" |
| 错误处理策略 | **项目** | "对错误使用 Result 类型" |
| 安全实践 | **全局** | "验证用户输入", "清理 SQL" |
| 通用最佳实践 | **全局** | "先写测试", "始终处理错误" |
| 工具工作流偏好 | **全局** | "编辑前先 Grep", "写入前先读取" |
| Git 实践 | **全局** | "约定式提交", "小而专注的提交" |
* 传统的 SKILL.md 文件(用于向后兼容)
* 本能集合(用于 v2 学习系统)
## 本能提升 (项目 -> 全局)
来自仓库分析的本能带有 `source: "repo-analysis"` 标记,并包含源仓库 URL
当同一个本能在多个项目中以高置信度出现时,它就有资格被提升到全局作用域
**自动提升标准:**
* 相同的本能 ID 出现在 2+ 个项目中
* 平均置信度 >= 0.8
**如何提升:**
```bash
# Promote a specific instinct
python3 instinct-cli.py promote prefer-explicit-errors
# Auto-promote all qualifying instincts
python3 instinct-cli.py promote
# Preview without changes
python3 instinct-cli.py promote --dry-run
```
`/evolve` 命令也会建议可提升的候选本能。
## 置信度评分
@@ -267,7 +335,7 @@ touch ~/.claude/homunculus/observations.jsonl
## 为什么用钩子而非技能进行观察?
> v1 依赖技能进行观察。技能是概率性的——它们基于 Claude 的判断,大约有 50-80% 的概率触发。”
> "v1 依赖技能观察。技能是概率性的 -- 根据 Claude 的判断,它们触发的概率约为 50-80%。"
钩子**100% 触发**,是确定性的。这意味着:
@@ -277,18 +345,20 @@ touch ~/.claude/homunculus/observations.jsonl
## 向后兼容性
v2 v1 完全兼容:
v2.1 与 v2.0 和 v1 完全兼容:
* 现有的 `~/.claude/skills/learned/` 技能仍然有效
* 停止钩子仍然运行(但现在也输入到 v2
* 渐进式迁移路径:并行运行两者
* `~/.claude/homunculus/instincts/` 中现有的全局本能仍然作为全局本能工作
* 来自 v1 的现有 `~/.claude/skills/learned/` 技能仍然有效
* 停止钩子仍然运行 (但现在也会输入到 v2)
* 逐步迁移:并行运行两者
## 隐私
* 观察数据**保留在**你的本地机器上
* 只有**本能**(模式)可以被导出
* 观察结果**本地**保留在您的机器上
* 项目作用域的本能按项目隔离
* 只有**本能** (模式) 可以被导出 — 而不是原始观察数据
* 不会共享实际的代码或对话内容
* 控制导出的内容
* 控制导出和提升的内容
## 相关链接
@@ -298,4 +368,4 @@ v2 与 v1 完全兼容:
***
*基于本能的学习:一次一个观察,教会 Claude 的模式。*
*基于本能的学习:一次一个项目,教会 Claude 的模式。*

View File

@@ -1,8 +1,7 @@
---
name: observer
description: 背景代理,通过分析会话观察检测模式并创建本能。使用俳句以实现成本效益
description: 分析会话观察检测模式并创建本能的背景代理。使用Haiku以实现成本效益。v2.1版本增加了项目范围的本能
model: haiku
run_mode: background
---
# Observer Agent
@@ -11,20 +10,22 @@ run_mode: background
## 何时运行
*显著会话活动后20+ 工具调用
* 当用户运行 `/analyze-patterns`
* 按计划间隔(可配置,默认 5 分钟)
* 当被观察钩子触发时 (SIGUSR1)
*积累足够多的观察后(可配置,默认 20 条
* 在计划的时间间隔(可配置,默认 5 分钟)
* 当通过向观察者进程发送 SIGUSR1 信号手动触发时
## 输入
`~/.claude/homunculus/observations.jsonl` 读取观察结果
**项目作用域**的观察文件中读取观察记录
* 项目:`~/.claude/homunculus/projects/<project-hash>/observations.jsonl`
* 全局后备:`~/.claude/homunculus/observations.jsonl`
```jsonl
{"timestamp":"2025-01-22T10:30:00Z","event":"tool_start","session":"abc123","tool":"Edit","input":"..."}
{"timestamp":"2025-01-22T10:30:01Z","event":"tool_complete","session":"abc123","tool":"Edit","output":"..."}
{"timestamp":"2025-01-22T10:30:05Z","event":"tool_start","session":"abc123","tool":"Bash","input":"npm test"}
{"timestamp":"2025-01-22T10:30:10Z","event":"tool_complete","session":"abc123","tool":"Bash","output":"All tests pass"}
{"timestamp":"2025-01-22T10:30:00Z","event":"tool_start","session":"abc123","tool":"Edit","input":"...","project_id":"a1b2c3d4e5f6","project_name":"my-react-app"}
{"timestamp":"2025-01-22T10:30:01Z","event":"tool_complete","session":"abc123","tool":"Edit","output":"...","project_id":"a1b2c3d4e5f6","project_name":"my-react-app"}
{"timestamp":"2025-01-22T10:30:05Z","event":"tool_start","session":"abc123","tool":"Bash","input":"npm test","project_id":"a1b2c3d4e5f6","project_name":"my-react-app"}
{"timestamp":"2025-01-22T10:30:10Z","event":"tool_complete","session":"abc123","tool":"Bash","output":"All tests pass","project_id":"a1b2c3d4e5f6","project_name":"my-react-app"}
```
## 模式检测
@@ -73,28 +74,76 @@ run_mode: background
## 输出
`~/.claude/homunculus/instincts/personal/` 中创建/更新本能:
**项目作用域**的本能目录中创建/更新本能:
* 项目:`~/.claude/homunculus/projects/<project-hash>/instincts/personal/`
* 全局:`~/.claude/homunculus/instincts/personal/`(用于通用模式)
### 项目作用域本能(默认)
```yaml
---
id: prefer-grep-before-edit
trigger: "when searching for code to modify"
id: use-react-hooks-pattern
trigger: "when creating React components"
confidence: 0.65
domain: "workflow"
domain: "code-style"
source: "session-observation"
scope: project
project_id: "a1b2c3d4e5f6"
project_name: "my-react-app"
---
# Prefer Grep Before Edit
# Use React Hooks Pattern
## Action
Always use Grep to find the exact location before using Edit.
Always use functional components with hooks instead of class components.
## Evidence
- Observed 8 times in session abc123
- Pattern: Grep → Read → Edit sequence
- Pattern: All new components use useState/useEffect
- Last observed: 2025-01-22
```
### 全局本能(通用模式)
```yaml
---
id: always-validate-user-input
trigger: "when handling user input"
confidence: 0.75
domain: "security"
source: "session-observation"
scope: global
---
# Always Validate User Input
## Action
Validate and sanitize all user input before processing.
## Evidence
- Observed across 3 different projects
- Pattern: User consistently adds input validation
- Last observed: 2025-01-22
```
## 作用域决策指南
创建本能时,请根据以下经验法则确定其作用域:
| 模式类型 | 作用域 | 示例 |
|-------------|-------|---------|
| 语言/框架约定 | **项目** | "使用 React hooks"、"遵循 Django REST 模式" |
| 文件结构偏好 | **项目** | "测试在 `__tests__`/"、"组件在 src/components/" |
| 代码风格 | **项目** | "使用函数式风格"、"首选数据类" |
| 错误处理策略 | **项目**(通常) | "使用 Result 类型处理错误" |
| 安全实践 | **全局** | "验证用户输入"、"清理 SQL" |
| 通用最佳实践 | **全局** | "先写测试"、"始终处理错误" |
| 工具工作流偏好 | **全局** | "编辑前先 Grep"、"写之前先读" |
| Git 实践 | **全局** | "约定式提交"、"小而专注的提交" |
**如果不确定,默认选择 `scope: project`** — 先设为项目作用域,之后再提升,这比污染全局空间更安全。
## 置信度计算
基于观察频率的初始置信度:
@@ -110,35 +159,49 @@ Always use Grep to find the exact location before using Edit.
* 每次矛盾性观察 -0.1
* 每周无观察 -0.02(衰减)
## 本能提升(项目 → 全局)
当一个本能满足以下条件时,应从项目作用域提升到全局:
1. **相同模式**(通过 id 或类似触发器)存在于 **2 个以上不同的项目**中
2. 每个实例的置信度 **>= 0.8**
3. 其领域属于全局友好列表(安全、通用最佳实践、工作流)
提升操作由 `instinct-cli.py promote` 命令或 `/evolve` 分析处理。
## 重要准则
1. **保持保守**仅为清晰模式3+ 次观察)创建本能
1. **保持保守**只为明确的模式3 次以上观察)创建本能
2. **保持具体**:狭窄的触发器优于宽泛的触发器
3. **踪证据**:始终包含导致本能的观察结果
4. **尊重隐私**绝不包含实际代码片段,只包含模式
5. **合并相似项**:如果新本能与现有本能相似,则更新而非重复
3. **踪证据**:始终包含导致本能的观察记录
4. **尊重隐私**切勿包含实际代码片段,只包含模式
5. **合并相似项**:如果新本能与现有本能相似,则更新而非重复创建
6. **默认项目作用域**:除非模式明显是通用的,否则设为项目作用域
7. **包含项目上下文**:对于项目作用域的本能,始终设置 `project_id``project_name`
## 示例分析会话
给定观察结果:
```jsonl
{"event":"tool_start","tool":"Grep","input":"pattern: useState"}
{"event":"tool_complete","tool":"Grep","output":"Found in 3 files"}
{"event":"tool_start","tool":"Read","input":"src/hooks/useAuth.ts"}
{"event":"tool_complete","tool":"Read","output":"[file content]"}
{"event":"tool_start","tool":"Edit","input":"src/hooks/useAuth.ts..."}
{"event":"tool_start","tool":"Grep","input":"pattern: useState","project_id":"a1b2c3","project_name":"my-app"}
{"event":"tool_complete","tool":"Grep","output":"Found in 3 files","project_id":"a1b2c3","project_name":"my-app"}
{"event":"tool_start","tool":"Read","input":"src/hooks/useAuth.ts","project_id":"a1b2c3","project_name":"my-app"}
{"event":"tool_complete","tool":"Read","output":"[file content]","project_id":"a1b2c3","project_name":"my-app"}
{"event":"tool_start","tool":"Edit","input":"src/hooks/useAuth.ts...","project_id":"a1b2c3","project_name":"my-app"}
```
分析:
* 检测到工作流Grep → Read → Edit
* 频率:本次会话中到 5 次
* 检测到工作流Grep → Read → Edit
* 频率:本次会话中观察到 5 次
* **作用域决策**:这是一种通用工作流模式(非项目特定)→ **全局**
* 创建本能:
* 触发器:"when modifying code"
* 操作:"Search with Grep, confirm with Read, then Edit"
* 触发器:"当修改代码时"
* 操作:"用 Grep 搜索,用 Read 确认,然后 Edit"
* 置信度0.6
* 领域:"workflow"
* 作用域:"global"
## 与 Skill Creator 集成
@@ -146,5 +209,6 @@ Always use Grep to find the exact location before using Edit.
* `source: "repo-analysis"`
* `source_repo: "https://github.com/..."`
* `scope: "project"`(因为它们来自特定的仓库)
这些应被视为具有更高初始置信度0.7+)的团队/项目约定。