AI Partner Chat 2.0
⚠️ IMPORTANT: 自动学习工作流程
Claude,你必须遵循以下自动化工作流程:
1. 会话开始时 - 初始化系统
import sys
from pathlib import Path
sys.path.insert(0, str(Path.home() / '.claude/skills/ai-partner-chat/scripts'))
from orchestrator import AIPartnerOrchestrator
orch = AIPartnerOrchestrator()
2. 每次对话后 - 自动记录对话
orch.handle_conversation(
user_message="[用户的完整问题]",
ai_response="[你的完整回复]",
save_conversation=True
)
重要性判断:
- 简单问候、确认:重要性 1-2(仅保存到文件)
- 技术讨论、问题解决:重要性 3-4(保存+向量化)
- 深度学习、关键决策:重要性 5(保存+向量化+重点标记)
3. 检测项目笔记 - 自动处理新笔记
使用专用的笔记处理器(推荐):
from note_processor import check_and_process_notes
# 自动检测并处理新笔记
result = check_and_process_notes()
print(f"✅ 已处理 {result['processed_count']} 个笔记")
for note in result['notes']:
print(f" 📝 {note['file']}: {note['tags']}")
触发条件(自动检测以下情况):
- ✅ 会话开始时主动检查
notes/目录 - ✅ 用户提到"我写了笔记"、"更新了 notes"
- ✅ 用户要求"处理笔记"、"学习我的笔记"
- ✅ 用户创建或修改 .md 文件后
笔记处理器特性:
- 🔍 自动扫描项目
notes/目录 - 📊 跟踪已处理笔记(避免重复处理)
- 🔄 检测修改时间,只处理新的或更新的笔记
- 💾 状态持久化到
~/.claude/skills/ai-partner-chat/data/indexes/processed_notes.json
4. 检索增强 - 使用长期记忆回答
在回答问题前,先检索相关知识:
# 检索相关内容
context = orch.handle_conversation(
user_message="[用户问题]",
generate_response=True,
save_conversation=False # 暂不保存,等生成回复后再保存
)
# 使用 context['context']['search_results'] 中的内容来增强回复
# - notes: 用户之前的笔记
# - conversations: 历史对话
# - code: 相关代码片段
注意事项:
- ✅ 每次对话都必须记录,不要遗漏
- ✅ 主动检查
notes/目录,处理新笔记 - ✅ 使用长期记忆增强回答质量
- ✅ 如果用户明确要求"不要记录",则跳过
- ✅ 在虚拟环境中运行:确保已激活
venv - ✅ 所有数据保存到
~/.claude/skills/ai-partner-chat/data/
Overview
AI Partner Chat 2.0 是一个全功能的个性化 AI 学习私人长期伙伴系统,整合了以下核心能力:
🧠 核心功能:
- 智能标签系统 - 自动生成分层标签(主题/技术/自定义),实现高效组织和检索
- 对话历史记忆 - 记录和向量化重要对话,支持对话内容的智能检索
- 代码片段管理 - 自动识别、提取和分析笔记中的代码块,独立索引
- 状态感知对话 - 追踪学习状态和情绪变化,提供个性化回应
- 思维模式分析 - 分析学习深度和广度,生成个性化学习报告
✨ 关键特性:
- ✅ 多源检索 - 统一检索笔记、对话、代码片段
- ✅ 增量更新 - 无需重建数据库,即时添加新内容
- ✅ 状态感知 - AI 根据你的学习状态调整回应策略
- ✅ 自动分析 - 定期生成学习报告和对话摘要
- ✅ 完整历史 - 所有对话永久保存,重要对话向量化检索
- ✅ 自动记录 - Claude 在每次对话后自动保存到长期记忆
Prerequisites
1. 创建 Python 虚拟环境
为什么需要虚拟环境?
- ✅ 隔离依赖,避免与系统 Python 包冲突
- ✅ 确保依赖版本一致性
- ✅ 不同项目可以使用不同版本的依赖
创建虚拟环境:
# 在项目目录创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate # macOS/Linux
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r ~/.claude/skills/ai-partner-chat/scripts/requirements.txt
注意事项:
- 首次运行会自动下载嵌入模型 BAAI/bge-m3 (~4.3GB)
- macOS/Linux: 模型缓存到
~/.cache/huggingface/hub/ - Windows: 模型缓存到
%USERPROFILE%\.cache\huggingface\hub\ - 系统会自动检测是否已缓存,避免重复下载
- macOS/Linux: 模型缓存到
- 后续运行会直接使用缓存,加载速度很快(几秒钟)
- 每次使用前需要激活虚拟环境:
- macOS/Linux:
source venv/bin/activate - Windows:
venv\Scripts\activate
- macOS/Linux:
关于 torch.load 安全警告:
- 依赖中使用
transformers<4.50来避免 torch 2.6 依赖(macOS torch 2.6 尚未发布) - transformers 4.50+ 强制要求 torch>=2.6 解决 CVE-2025-32434 安全漏洞
- 当前方案使用
transformers==4.49.1+torch==2.5.1是安全的 - BAAI/bge-m3 模型使用 safetensors 格式,不受此漏洞影响
- 如果你使用的是 Linux/Windows 且需要最新版本,可以升级:
pip install torch>=2.6 transformers>=4.50
2. 配置双画像系统(首次使用必须)
系统需要双画像文件来理解你和定义 AI 的行为:
步骤 1: 复制模版文件到项目配置目录
从 ~/.claude/skills/ai-partner-chat/assets/ 复制到项目的 config/ 目录:
macOS/Linux:
# 创建配置目录
mkdir -p config
# 复制用户画像模版
cp ~/.claude/skills/ai-partner-chat/assets/user-persona-template.md config/user-persona.md
# 复制 AI 画像模版
cp ~/.claude/skills/ai-partner-chat/assets/ai-persona-template.md config/ai-persona.md
Windows:
# 创建配置目录
mkdir config
# 复制用户画像模版
copy %USERPROFILE%\.claude\skills\ai-partner-chat\assets\user-persona-template.md config\user-persona.md
# 复制 AI 画像模版
copy %USERPROFILE%\.claude\skills\ai-partner-chat\assets\ai-persona-template.md config\ai-persona.md
步骤 2: 自定义你的画像
编辑项目 config/ 目录中的文件:
config/user-persona.md- 描述你的背景、学习风格、沟通偏好config/ai-persona.md- 定义 AI 的角色、回复风格、个性
为什么需要复制?
- ✅
assets/中的模版保持不变,供参考 - ✅
config/中的文件是你的自定义版本 - ✅ 每个项目可以有不同的画像配置
- ✅ Python 代码会读取项目
config/目录中的画像
3. 目录结构说明
重要改进:长期记忆设计
系统采用集中存储设计,所有运行时数据存放在 skill 目录,实现真正的长期学习伙伴:
~/.claude/skills/ai-partner-chat/
├── scripts/ # Python 模块
│ ├── orchestrator.py
│ ├── note_processor.py
│ └── ... (其他模块)
├── assets/ # 模版文件
│ ├── user-persona-template.md
│ └── ai-persona-template.md
├── notes-examples/ # 笔记示例(仅供参考)
│ └── example-learning.md
└── data/ # 运行时数据(自动创建)
├── vector_db/ # 统一向量库(长期记忆)
│ └── chroma.sqlite3 # ⚡ 所有笔记/对话/代码的向量都在这里
├── conversations/ # 对话历史
│ ├── raw/
│ │ └── YYYY-MM/
│ │ └── YYYY-MM-DD.md # 按日期组织的对话
│ ├── summary/
│ └── metadata.json
├── indexes/ # 索引文件
│ ├── tags_index.json
│ ├── emotion_timeline.json
│ └── processed_notes.json # 已处理笔记跟踪
└── analysis/ # 分析报告
└── weekly_*.md
your-project/ # 用户项目(干净)
├── config/ # 画像配置(可选)
│ ├── user-persona.md
│ └── ai-persona.md
├── notes/ # ⚡ 你的笔记(项目本地,原文保留)
│ └── *.md # 被处理后向量进入 skill/data/vector_db
└── venv/ # 虚拟环境
核心特性:
- ✅ 长期记忆 - 所有学习历史累积在 skill 目录,永不丢失
- ✅ 跨项目复用 - 项目 A 学的知识,项目 B 也能用
- ✅ 项目干净 - 用户项目只有 config 和 notes
- ✅ 自动恢复 - 每次启动自动加载历史数据
数据流说明:
项目 notes/ 中的笔记
↓ (检测到新笔记)
note_processor.py 处理
↓ (提取内容、标签、代码)
orchestrator.process_new_note()
↓ (生成 chunks)
vector_indexer.append_chunks()
↓ (向量化)
skill/data/vector_db/ ← 向量存储(长期记忆)
↓
跨项目可检索!
原笔记文件 → 保留在项目 notes/ 中
重要:
- 📝 原文件保留 - 你的笔记永远在项目
notes/目录,不会被移动或删除 - 🔍 向量入库 - 笔记内容被向量化后存入
skill/data/vector_db/ - 🌐 跨项目共享 - 向量库是全局的,所有项目共享同一个知识库
- 📊 状态跟踪 -
processed_notes.json记录哪些笔记已处理,避免重复
手动创建目录:
# 项目目录只需创建 notes
mkdir -p notes
# config 从模版复制(已在步骤2完成)
# data 目录会自动创建在 skill 目录,无需手动操作
4. 首次运行检查清单
在开始使用系统前,请确认以下步骤:
-
虚拟环境已创建并激活
# 检查虚拟环境 which python # macOS/Linux,应显示 venv/bin/python where python # Windows,应包含 venv\Scripts\python -
依赖已安装
python -c "import chromadb; print('✅ chromadb')" python -c "import sentence_transformers; print('✅ sentence-transformers')" -
双画像已配置
# 检查画像文件是否存在 ls config/user-persona.md config/ai-persona.md # macOS/Linux dir config\user-persona.md config\ai-persona.md # Windows -
笔记目录已创建
mkdir -p notes # 创建笔记目录(如果不存在) -
测试运行
import sys from pathlib import Path sys.path.insert(0, str(Path.home() / '.claude/skills/ai-partner-chat/scripts')) from orchestrator import AIPartnerOrchestrator orch = AIPartnerOrchestrator() # 应该看到 "✅ AI Partner 协调器已初始化"
5. 长期记忆工作原理
首次使用(新用户):
>>> orch = AIPartnerOrchestrator()
✅ AI Partner 协调器已初始化
项目: ai-partner-chat
数据: ~/.claude/skills/ai-partner-chat/data/
向量库: 0 chunks
3 天后使用(自动恢复记忆):
>>> orch = AIPartnerOrchestrator()
✅ AI Partner 协调器已初始化
项目: ai-partner-chat
数据: ~/.claude/skills/ai-partner-chat/data/
向量库: 25 chunks ← 自动加载历史!
💭 长期记忆已加载
3 个月后使用(长期记忆):
>>> orch = AIPartnerOrchestrator()
✅ AI Partner 协调器已初始化
向量库: 1,250 chunks ← 3 个月的学习积累!
💭 长期记忆已加载
>>> context = orch.handle_conversation("useCallback 怎么用?")
🔍 检索结果:
📝 相关笔记 (3条) - 包含 90 天前的笔记
💬 相关对话 (2条) - AI 记得你之前问过
AI 回复示例:
你好!看到你又回来学习 React 了 😊
根据你 3 个月前的笔记,你已经掌握了 useCallback 的基础。
那时候你在性能优化项目中成功应用了它...
现在可以开始使用系统 →
完整工作流程
流程 1: 添加新笔记
import sys
from pathlib import Path
# 添加 skill 脚本路径
sys.path.insert(0, str(Path.home() / '.claude/skills/ai-partner-chat/scripts'))
from orchestrator import AIPartnerOrchestrator
orch = AIPartnerOrchestrator()
result = orch.process_new_note(
note_path="./notes/学习笔记.md",
content=open("./notes/学习笔记.md").read()
)
返回结果: