Files
mao1/skill/SKILL.md

146 lines
6.0 KiB
Markdown
Raw Normal View History

---
name: nerd-brain-memory-system
description: 搭建和维护 nerd-Brain (呆脑子) 本地 AI 记忆系统 - 基于 Obsidian + Python + 张三(Qwen 3.6) 的轻量级长效记忆方案
version: 2.0
---
# nerd-Brain 记忆系统搭建指南
## 系统架构
```
┌─────────────┐ ┌──────────────┐ ┌───────────────────────┐
│ anchor_ │────▶│ Obsidian │────▶│ 张三 (Qwen 3.6-35B) │
│ writer.py │ │ Vault (MD) │ │ A100:8083/v1 │
└─────────────┘ └──────────────┘ └───────────────────────┘
│ │ │
▼ ▼ │
┌─────────────┐ ┌──────────────┐ │
│ anchor_ │ │ anchor_ │ │
│ search.py │ │ decay.py │ │
│ (多维检索) │ │ (遗忘+返场) │ │
└─────────────┘ └──────────────┘ │
┌─────┴────────┐
│ 百炼 (备用) │
│ coding.dash │
│ scope.aliyun │
│ .com/v1 │
└──────────────┘
```
**核心原则**
- 拒绝 Docker/向量数据库/外部服务
- 纯 Python 脚本 + Obsidian Markdown + YAML Frontmatter
- **张三 (Qwen 3.6-35B-A3B)** 作为主模型,百炼作为备用
## 核心脚本
### 1. anchor_writer.py - 记忆写入
- 调用 LLM 生成摘要、情感坐标 (valence/arousal)、关键词
- 输出标准 Markdown 文件到 Obsidian Vault
- **Provider 优先级**:优先使用 `zhangsan`,降级到 `bailian`
- **Prompt 规范**
- 标签限制EXACTLY 2 tags格式 `#Category/ProjectName`
- 引用规范:提到 GitHub 或外部素材时,必须附带链接
- 摘要限制max 50 words
### 2. anchor_search.py - 多维检索
- 关键词 + 情感 + 时间 + 重要性加权搜索
- 支持无 Frontmatter 的纯 Markdown 文件
- 返回按相关性排序的结果
### 3. anchor_decay.py - 遗忘与返场
- 改进版艾宾浩斯遗忘曲线
- 参数:`DECAY_LAMBDA=0.05`, `THRESHOLD=0.3`, `RESURRECTION_CHANCE=0.1`
- **两阶段逻辑**
1. **活跃文件扫描**得分低于阈值时10% 概率触发"防归档"复活(状态改为 `resurrected`
2. **归档文件扫描**:扫描 `Archive/` 目录10% 概率将文件拉回**原路径**(归档时记录 `original_path`
### 4. anchor_vault_sync.py - 索引生成
- 扫描 Vault 目录,生成 `anchor_vault_index.json`
- 供检索引擎快速查询
## 配置说明
### Hermes config.yaml Provider 配置
```yaml
custom_providers:
- name: zhangsan
base_url: http://101.36.73.102:8083/v1
api_key: sk-omnicoder-local-2026
api_mode: chat_completions
model: Qwen3.6-35B-A3B
- name: bailian
base_url: https://coding.dashscope.aliyuncs.com/v1
api_key: sk-sp-...
api_mode: chat_completions
model: qwen3.5-plus
```
### 脚本常量配置
- `VAULT_DIR`: Obsidian 笔记库路径 (`/Users/fyah/Documents/如梦初醒/memory/test/Anchor-Memory`)
- `ARCHIVE_DIR`: 归档目录路径 (`VAULT_DIR/Archive`)
- `RESURRECTION_CHANCE`: 返场概率(默认 0.1
- `DECAY_LAMBDA`: 遗忘速率(默认 0.05
- `THRESHOLD`: 归档阈值(默认 0.3
## Obsidian 笔记规范
1. **标签**:严格限制 2 个,格式 `#Category/ProjectName`
- 示例:`#memory/nerd-brain`, `#llm/local-deploy`, `#project/nerd-brain`, `#tool/git-workflow`
- 类别llm, memory, project, tool, idea
2. **引用**:外部资源/GitHub 项目必须附带链接
- 格式:`Ombre-Brain(https://github.com/P0luz/Ombre-Brain)`
3. **结构**:按项目文件夹组织,每周汇总
- 禁止"一分钟一篇"的碎片笔记
- 仅记录:进度、关键事项、报错、核心想法
## Git 工作流
- **仓库地址**`http://101.36.73.102:3112/fyah/mao1.git`
- **推送策略**:每次改动完成后**立即** `git push`,不积攒
- **权限账号**`fyah`(已配置 remote URL
- **执行流程**
1. 完成代码/笔记修改
2. 本地验证通过
3. `git add -A && git commit -m "feat: <简短描述>"`
4. `git push -u origin main`
- **故障处理**:推送失败超过 2 次,停止并通知用户
## 常见问题
### Git 推送权限问题
- 症状:`pre-receive hook declined`
- 解决:确认仓库写入权限,使用 `git remote set-url origin http://user:pass@repo.git`
### API 连接失败
- 症状429 限流或超时
- 解决:检查 API Key 有效性,确认张三端点 `http://101.36.73.102:8083/v1`
### JSON 解析错误
- 症状:脚本报错 `JSONDecodeError`
- 解决Prompt 中强调 `Output ONLY a valid JSON object. No markdown, no explanation.`
### 复活后文件位置错误
- 症状:复活文件全堆在根目录
- 解决:归档时必须记录 `metadata["original_path"]`,复活时使用该路径恢复
## 备份与回滚
- 原始脚本备份:`~/.hermes/anchor_memory_backup/`
- 回滚命令:`cp ~/.hermes/anchor_memory_backup/*.py ~/.hermes/`
## 依赖
```bash
pip install requests pyyaml
```
## 状态跟踪
- ✅ 记忆写入(含情感标签)
- ✅ 多维检索引擎
- ✅ 遗忘曲线 + 自动归档
- ✅ 归档后随机返场10% 概率,两阶段扫描)
- ✅ 张三 (Qwen 3.6-35B-A3B) 本地模型接入
- ✅ Git 工作流自动化
- ✅ Obsidian 笔记规范(双标签 + 引用链接)