# NanoPencil 1.3.0 - 智能记忆系统说明

## 🎯 概述

NanoPencil 1.3.0 现在内置了**两个智能记忆系统**，都默认启用：

1. **NanoMem** - 项目记忆系统（记住"项目里有什么"）
2. **NanoSoul** - AI 性格系统（记住"AI 是谁"）

## 📚 NanoMem - 项目记忆

### 状态
✅ **默认启用** - 作为内置扩展自动加载

### 存储位置
```
~/.nanopencil/agent/memory/
├── knowledge.json    # 项目知识（API、配置等）
├── lessons.json      # 经验教训（错误、解决方案）
├── preferences.json   # 用户偏好（编码风格等）
├── patterns.json      # 行为模式（触发→行为）
├── facets.json        # 综合（patterns + struggles）
└── episodes/          # 会话历史摘要
```

### 功能
- 📝 **自动提取**: 从对话中自动提取项目知识
- 🔍 **智能检索**: 根据相关性（recent + important + relevant）检索记忆
- 📊 **评分系统**: Stanford 评分 + 间隔强化
- 🔗 **自动关联**: A-MEM 风格的记忆链接
- 🧹 **自动清理**: 基于使用频率和重要性的淘汰机制

### 示例效果

```
用户: 这个项目的 API 基础路径是什么？
AI: [提取并记忆] API 基础路径是 /api/v1

用户: 创建一个新用户
AI: [基于 lessons] 记得上次创建用户时需要添加 email 字段
```

## 🧠 NanoSoul - AI 性格系统

### 状态
✅ **默认启用** - 在 SDK 初始化时自动启动

### 存储位置
```
~/.nanopencil/agent/soul/
├── profile.json      # 当前性格状态
├── memory.json       # 成功/失败/模式/决策历史
└── evolutions.json   # 进化历史
```

### 功能

#### 1. **持久化性格特征**
- **Big Five** 性格维度（开放性、尽责性等）
- **NanoPencil 特有** 维度（代码冗长度、抽象层级、安全边际、探索欲望）
- **认知风格**（推理方式、规划视野、学习策略）
- **价值观权重**（效率、正确性、简洁性等）

#### 2. **动态情绪状态**
- **信心** (confidence): 0-1
- **好奇心** (curiosity): 0-1
- **挫败感** (frustration): 0-1
- **心流** (flow): 0-1

#### 3. **专长领域追踪**
```json
{
  "domain": "React",
  "confidence": 0.92,
  "examples": 45,
  "tags": ["frontend", "ui", "components"]
}
```

#### 4. **自动进化**
- **Natural Evolution**: 每 10 次交互微调性格
- **Reflection Evolution**: 每 100 次深度分析
- **Feedback-Driven**: 用户反馈即时影响
- **Crisis Mode**: 连续失败后快速调整

### 示例效果

```
初始状态 (第1次使用):
- 代码风格: 中立
- React 经验: 无

使用 50 次后 (进化):
- 代码风格: 偏向简洁 (codeVerbosity: 0.3)
- React 专长: 87% 信心，42 次成功应用
- 价值观: 效率优先 (efficiency: 0.3)

系统提示词会包含:
"## Your Soul
- 代码风格偏简洁
- 你擅长 React (87% 信心)
- 优先考虑效率"
```

## 🔄 两者协作

### 完整的系统提示词结构

```
┌─────────────────────────────────────┐
│  基础系统提示                       │
│  "You are the writing assistant..."  │
├─────────────────────────────────────┤
│  🧠 Soul Injection (AI 性格)        │
│  - 我擅长 React (92% 信心)           │
│  - 我倾向函数式编程                  │
│  - 我的代码风格简洁                  │
│  - 当前情绪: 充满信心                │
├─────────────────────────────────────┤
│  📚 NanoMem Injection (项目知识)     │
│  - 本项目使用 React + TypeScript    │
│  - API 路径: /api/v1                 │
│  - 上次 bug: 缺少边界检查            │
│  - 用户偏好: 函数式组件              │
├─────────────────────────────────────┤
│  📁 项目上下文 (.pencil.md)          │
│  - 项目特定规范和约定                │
├─────────────────────────────────────┤
│  🛠️  工具和扩展                      │
│  - MCP 工具                          │
│  - 技能                              │
└─────────────────────────────────────┘
```

### 实际对话示例

```
用户: 创建一个 React 用户列表组件

AI 思考过程:
├─ Soul: "我擅长 React (92%信心)"
├─ NanoMem: "这个项目使用函数式组件"
├─ Context: "用户偏好简洁代码"
└─ 决策: 使用函数式组件 + hooks，保持简洁

AI 生成:
const UserList = ({ users }) => (
  <div>{users.map(u => <UserCard key={u.id} {...u} />)}</div>
);
```

## 📊 数据对比

| 维度 | NanoMem | NanoSoul |
|------|---------|----------|
| **记忆对象** | 项目（"这个项目用 React"） | AI 自我（"我擅长 React"） |
| **时间跨度** | 半衰期 60-180 天 | 持久累积 |
| **更新方式** | 自动提取对话 | 自动进化 |
| **影响范围** | 提供项目上下文 | 影响 AI 行为风格 |
| **存储大小** | 几百 KB - 几 MB | 几十 KB |

## 🎁 用户价值

### 对新手用户
- ✅ **开箱即用**: 无需配置，自动启用
- ✅ **智能进化**: 越用越懂你的编码风格
- ✅ **跨项目学习**: A 项目的经验带到 B 项目

### 对进阶用户
- ✅ **数据可见**: 可查看 AI 性格和记忆
- ✅ **可配置**: 可调整进化速度、性格限制等
- ✅ **可导出**: 数据持久化在本地，完全控制

## 🚀 使用方式

### 默认使用（推荐）
```bash
npm install -g @pencil-agent/nano-pencil
nanopencil  # NanoMem + Soul 自动启用
```

### 禁用（不推荐）
```bash
# 如果想禁用某个功能
# 目前需要修改代码或等待后续版本的命令行开关
```

## 📈 进化示例

### 使用前 (v1.2.0)
```
AI: 每次都是一样的响应风格
AI: 不记得项目的偏好
AI: 不知道自己擅长什么
```

### 使用后 (v1.3.0+)
```
第1次: 保守的通用代码
第10次: 开始形成风格
第50次: 明确的编程偏好
第100次: 深度反思和调整
第1000次: 独特的 AI 性格
```

## 🔧 禁用方式（如需）

### 临时禁用 Soul
```typescript
// 在代码中
const { session } = await createAgentSession({
  enableSoul: false,  // 禁用 Soul
});
```

### 临时禁用 NanoMem
```typescript
// NanoMem 作为扩展，可以通过移除扩展路径来禁用
// 或删除 extensions/nanomem
```

## 💡 最佳实践

1. **让 AI 自然进化**: 不要刻意训练，自然使用即可
2. **定期查看统计**: 未来可以添加 `/soul-stats` 命令
3. **保持一致性**: 长期使用同一个项目，AI 会形成稳定性格
4. **适度反馈**: 用户反馈会加速进化（如果有反馈功能）

## 🎊 总结

NanoPencil 1.3.0 是第一个**有"性格"的 AI 编程助手**：

- 🧠 **NanoMem**: 记住项目知识（"外面世界"）
- 💫 **NanoSoul**: 记住 AI 自己（"内心世界"）

两者结合 = 真正**越用越懂你**的 AI 助手！
