持续学习 v2.1 - 基于本能的架构¶
这是一个高级学习系统,通过原子化的“本能(instinct)”——带有置信度分数的小型习得行为——将 Claude Code 会话转换为可复用知识。
v2.1 新增了项目范围本能——React 模式保留在 React 项目中,Python 规则保留在 Python 项目中,通用模式(例如“始终验证输入”)则全局共享。
激活时机¶
- 在 Claude Code 会话中设置自动学习时
- 配置通过钩子提取基于本能的行为时
- 调整习得行为的置信度阈值时
- 审查、导出或导入本能库时
- 将本能演化为完整的技能、命令或代理时
- 管理项目范围与全局本能时
- 将本能从项目范围提升为全局范围时
v2.1 的新功能¶
| 功能 | v2.0 | v2.1 |
|---|---|---|
| 存储 | 全局 (~/.claude/homunculus/) | 项目范围 (projects/ |
| 范围 | 所有本能可在任何地方应用 | 项目范围 + 全局 |
| 检测 | 无 | git remote URL / 仓库路径 |
| 提升 | 不适用 | 在 2 个及以上项目中确认时,项目 -> 全局 |
| 命令 | 4 个 (status/evolve/export/import) | 6 个 (+promote/projects) |
| 项目间 | 污染风险 | 默认隔离 |
v2 的新功能(与 v1 相比)¶
| 功能 | v1 | v2 |
|---|---|---|
| 观察 | Stop 钩子(会话结束) | PreToolUse/PostToolUse(100% 可靠性) |
| 分析 | 主上下文 | 后台代理(Haiku) |
| 细粒度 | 完整技能 | 原子化“本能” |
| 置信度 | 无 | 0.3-0.9 权重 |
| 演化 | 直接到技能 | 本能 -> 聚类 -> 技能/命令/代理 |
| 共享 | 无 | 本能导出/导入 |
本能模型¶
本能是小型习得行为:
---
id: prefer-functional-style
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
## Action
Use functional patterns over classes when appropriate.
## Evidence
- Observed 5 instances of functional pattern preference
- User corrected class-based approach to functional on 2025-01-15
属性:
- 原子化 -- 一个触发器,一个动作
- 置信度权重 -- 0.3 = 暂定,0.9 = 几乎确定
- 域标签 -- code-style、testing、git、debugging、workflow 等
- 基于证据 -- 追踪哪些观察生成了它
- 范围感知 -- project(默认)或 global
工作方式¶
세션 활동 (git 저장소 내)
|
| 훅이 프롬프트 + 도구 사용을 캡처 (100% 신뢰성)
| + 프로젝트 컨텍스트 감지 (git remote / 저장소 경로)
v
+---------------------------------------------+
| projects/<project-hash>/observations.jsonl |
| (프롬프트, 도구 호출, 결과, 프로젝트) |
+---------------------------------------------+
|
| 관찰자 에이전트가 읽기 (백그라운드, Haiku)
v
+---------------------------------------------+
| 패턴 감지 |
| * 사용자 수정 -> 본능 |
| * 에러 해결 -> 본능 |
| * 반복 워크플로우 -> 본능 |
| * 범위 결정: 프로젝트 또는 전역? |
+---------------------------------------------+
|
| 생성/업데이트
v
+---------------------------------------------+
| projects/<project-hash>/instincts/personal/ |
| * prefer-functional.yaml (0.7) [project] |
| * use-react-hooks.yaml (0.9) [project] |
+---------------------------------------------+
| instincts/personal/ (전역) |
| * always-validate-input.yaml (0.85) [global]|
| * grep-before-edit.yaml (0.6) [global] |
+---------------------------------------------+
|
| /evolve 클러스터링 + /promote
v
+---------------------------------------------+
| projects/<hash>/evolved/ (프로젝트 범위) |
| evolved/ (전역) |
| * commands/new-feature.md |
| * skills/testing-workflow.md |
| * agents/refactor-specialist.md |
+---------------------------------------------+
项目检测¶
系统会自动检测当前项目:
CLAUDE_PROJECT_DIR环境变量(最高优先级)git remote get-url origin-- 经过哈希处理以生成可移植的项目 ID(不同机器上的同一仓库具有相同 ID)git rev-parse --show-toplevel-- 使用仓库路径的回退方案(按机器区分)- 全局回退 -- 如果未检测到项目,本能将移动到全局范围
每个项目会获得一个 12 位哈希 ID(例如:a1b2c3d4e5f6)。~/.claude/homunculus/projects.json 中的注册表文件将 ID 映射为人类可读的名称。
快速开始¶
1. 启用观察钩子¶
请添加到 ~/.claude/settings.json。
如果以插件安装(推荐):
请勿在 ~/.claude/settings.json 中添加钩子块。Claude Code v2.1+ 会自动加载插件的 hooks/hooks.json,并且 observe.sh 已经在那里注册。
如果之前已将 observe.sh 复制到 ~/.claude/settings.json,请删除重复的 PreToolUse / PostToolUse 块。重复注册会导致双重执行和 ${CLAUDE_PLUGIN_ROOT} 解析错误。该变量仅在插件拥有的 hooks/hooks.json 条目中展开。
如果手动安装到 ~/.claude/skills,请将以下内容添加到 ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}],
"PostToolUse": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
}]
}]
}
}
2. 初始化目录结构¶
系统会在首次使用时自动创建目录,但也可以手动创建:
# 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. 使用本能命令¶
/instinct-status # 학습된 본능 표시 (프로젝트 + 전역)
/evolve # 관련 본능을 스킬/명령어로 클러스터링
/instinct-export # 본능을 파일로 내보내기
/instinct-import # 다른 사람의 본능 가져오기
/promote # 프로젝트 본능을 전역 범위로 승격
/projects # 모든 알려진 프로젝트와 본능 개수 목록
命令¶
| 命令 | 说明 |
|---|---|
/instinct-status |
显示所有本能(项目范围 + 全局)及其置信度 |
/evolve |
将相关本能聚类为技能/命令,并建议提升 |
/instinct-export |
导出本能(可按范围/域过滤) |
/instinct-import <file> |
导入本能并控制范围 |
/promote [id] |
将项目本能提升为全局范围 |
/projects |
列出所有已知项目及其本能数量 |
配置¶
要控制后台观察者,请编辑 config.json:
{
"version": "2.1",
"observer": {
"enabled": false,
"run_interval_minutes": 5,
"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 # 프로필, 기술 수준
+-- projects.json # 레지스트리: 프로젝트 해시 -> 이름/경로/리모트
+-- observations.jsonl # 전역 관찰 결과 (폴백)
+-- instincts/
| +-- personal/ # 전역 자동 학습된 본능
| +-- inherited/ # 전역 가져온 본능
+-- evolved/
| +-- agents/ # 전역 생성된 에이전트
| +-- skills/ # 전역 생성된 스킬
| +-- commands/ # 전역 생성된 명령어
+-- projects/
+-- a1b2c3d4e5f6/ # 프로젝트 해시 (git remote URL에서)
| +-- observations.jsonl
| +-- observations.archive/
| +-- instincts/
| | +-- personal/ # 프로젝트별 자동 학습
| | +-- inherited/ # 프로젝트별 가져온 것
| +-- evolved/
| +-- skills/
| +-- commands/
| +-- agents/
+-- f6e5d4c3b2a1/ # 다른 프로젝트
+-- ...
范围确定指南¶
| 模式类型 | 范围 | 示例 |
|---|---|---|
| 语言/框架规则 | project | “使用 React hooks”,“遵循 Django REST 模式” |
| 文件结构偏好 | project | “在 __tests__/ 中测试”,“在 src/components/ 中放置组件” |
| 代码风格 | project | “使用函数式风格”,“偏好 dataclasses” |
| 错误处理策略 | project | “对错误使用 Result 类型” |
| 安全实践 | global | “验证用户输入”,“SQL 净化” |
| 通用最佳实践 | global | “先编写测试”,“始终处理错误” |
| 工具工作流偏好 | global | “编辑前 Grep”,“写入前 Read” |
| Git 实践 | global | “Conventional commits”,“小而专注的提交” |
本能提升(项目 -> 全局)¶
当同一本能以高置信度出现在多个项目中时,它将成为提升为全局范围的对象。
自动提升标准: - 在 2 个或更多项目中具有相同的本能 ID - 平均置信度 >= 0.8
提升方法:
# 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 命令也会建议提升候选项。
置信度分数¶
置信度会随时间演化:
| 分数 | 含义 | 行为 |
|---|---|---|
| 0.3 | 临时 | 被建议但不强制 |
| 0.5 | 一般 | 相关时应用 |
| 0.7 | 强 | 应用自动批准 |
| 0.9 | 几乎确定 | 核心行为 |
置信度增加的情况: - 模式被反复观察到 - 用户未修改建议的行为 - 来自其他来源的类似本能表示同意
置信度减少的情况: - 用户明确修改了行为 - 模式长时间未被观察到 - 出现矛盾的证据
为什么在观察中使用钩子而不是技能?¶
“v1 依赖技能进行观察。技能是概率性的——根据 Claude 的判断,以约 50-80% 的概率执行。”
钩子以 100% 的概率 确定性地执行。这意味着: - 所有工具调用都被观察 - 模式不会遗漏 - 学习是全面的
向后兼容性¶
v2.1 与 v2.0 和 v1 完全兼容:
- ~/.claude/homunculus/instincts/ 中的现有全局本能继续作为全局本能工作
- v1 中现有的 ~/.claude/skills/learned/ 技能继续工作
- Stop 钩子仍然执行(但现在也为 v2 提供数据)
- 渐进式迁移:两者可并行运行
隐私¶
- 观察结果在用户机器上保持 本地
- 项目范围的本能按项目隔离
- 只能导出 本能(模式)——不是原始观察结果
- 不共享实际代码或对话内容
- 用户控制导出和提升对象
相关资料¶
- Skill Creator - 从仓库历史生成本能
- Homunculus - 为 v2 基于本能的架构提供灵感的社区项目(原子观察、置信度分数、本能演化流水线)
- The Longform Guide - 持续学习部分
基于本能的学习:教 Claude 你的模式,一次一个项目。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC