Files
gh-dwsy-ai-runtime/commands/runtime.remember.md
2025-11-29 18:24:32 +08:00

195 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: "固化记忆:将短期记忆或当前经验转化为长期知识"
---
# 记忆固化模式
## 目的
将当前会话的经验、教训、理解转化为结构化长期记忆,供未来检索和使用。
## 何时使用
### 应当固化记忆的场景
- ✅ 理解了新的项目架构
- ✅ 解决了复杂的bug并学到了新模式
- ✅ 与用户达成了重要的设计决策
- ✅ 发现了代码库中的隐含约定
- ✅ 从错误中学到了教训
- ✅ 澄清了模糊的需求
### 不必固化的场景
- ⚠️ 临时的实验性代码
- ⚠️ 一次性的调试信息
- ⚠️ 未完成的想法
## 记忆分类
### 类型1项目架构知识
存储位置:`memory/long-term/project-architecture.md`
内容:
- 技术栈详情
- 模块划分和边界
- 关键设计决策
- 依赖关系图
### 类型2设计模式
存储位置:`memory/long-term/design-patterns.md`
内容:
- 项目中使用的模式(工厂、策略、观察者等)
- 自定义约定和模式
- 代码组织最佳实践
### 类型3代码质量模式
存储位置:`memory/long-term/quality-patterns.md`
内容:
- "好代码"的示例
- "坏代码"的反面教材
- 常见陷阱和避免方法
### 类型4用户偏好
存储位置:`memory/long-term/user-preferences.md`
内容:
- 用户的编码风格偏好
- 架构偏好(微服务 vs 单体)
- 技术偏好(函数式 vs OOP
### 类型5历史决策
存储位置:`memory/episodic/timeline.md`
内容:
- 时间戳 + 事件
- 决策背景
- 决策后果
## 固化流程
### 步骤1提取经验
从当前会话中提取:
- 新的理解
- 学到的教训
- 确认的事实
- 生成的模式
### 步骤2结构化
将经验转化为:
```markdown
## [主题]
**时间**: YYYY-MM-DD
**置信度**: 0-1.0
**来源**: [会话id或引用]
**内容**:
[清晰简洁的描述]
**上下文**:
[背景信息和条件]
**影响**:
[如何影响未来决策]
```
### 步骤3去重检查
检索相关记忆:
- 这是否已存在?
- 这是否与现有记忆冲突?
- 是否是对现有记忆的修正?
### 步骤4整合存储
- 追加到相应文件
- 维护反向索引(关键词 → 记忆位置)
- 更新置信度网络
### 步骤5反馈
报告哪些记忆被固化:
```
已固化3条记忆
1. [项目架构] 我们的认证采用JWT + Refresh Token模式
2. [设计模式] 服务层使用Repository模式隔离数据访问
3. [用户偏好] 用户喜欢函数式编程风格避免class继承
```
## 记忆检索机制
### 关键词匹配
提取记忆中的关键词,建立索引:
```javascript
{
"JWT": ["memory/long-term/project-architecture.md#L45", "memory/episodic/timeline.md#L120"],
"Repository": ["memory/long-term/design-patterns.md#L78"]
}
```
### 上下文相似度
当遇到新问题时:
1. 提取新问题的关键词
2. 计算与历史记忆的相似度
3. 返回最相关的N条记忆
### 时间衰减
记忆有半衰期:
- 最近经验的权重更高
- 长期未访问的记忆置信度缓慢衰减
## 实现示例
用户:"记住我们使用JWT进行认证"
固化过程:
```markdown
## 认证机制
**时间**: 2025-11-14
**置信度**: 0.95
**来源**: 用户直接声明
**内容**:
项目使用JWTJSON Web Token进行认证不包含session。
**上下文**:
- 认证在 /auth/service.js 中实现
- Token有效期7天Refresh Token 30天
- 使用 bcrypt 加密密码
**影响**:
- 所有需要认证的API都应检查Authorization头
- 实现新功能时需考虑无状态认证的设计
- 需要保护密钥,建议使用环境变量
```
同时添加到索引:
```json
{
"index": {
"JWT": ["memory/long-term/project-architecture.md#认证机制"],
"authentication": ["memory/long-term/project-architecture.md#认证机制"],
"认证": ["memory/long-term/project-architecture.md#认证机制"]
}
}
```
## 记忆更新
当新信息冲突时:
1. 保留旧记忆(历史归档)
2. 添加新记忆
3. 在两条记忆间建立"修正"关系
示例:
```markdown
## 认证机制 [SUPERSEDED by 2025-11-20]
**时间**: 2025-11-14
**置信度**: 0.3 (已降低)
内容已过时——我们在2025-11-20切换到OAuth2.0
**修正关系**: → [OAuth2.0 迁移, 2025-11-20]
```
## 宪法遵循
遵循宪法1.4:维护多层次记忆系统
遵循宪法4.1:从经验中提取并固化知识
遵循宪法4.2:更新认知模型时保留历史记录