跳转至

持续学习 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            |
+---------------------------------------------+

项目检测

系统会自动检测当前项目:

  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. 启用观察钩子

请添加到 ~/.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