每日备份 2026-06-10 12:57:13

This commit is contained in:
root-backup committed 2026-06-10 12:57:14 +08:00
1 parent fda2ccb8c2
commit 3d2e638c6a
244 files changed
+58890 -3

No files matched your search

@@ -0,0 +1,426 @@
# 三层记忆系统实现
**文档版本**: v1.0
**创建时间**: 2026-02-13
**作者**: 青龙 (QingLong)
**位置**: `/root/.openclaw/doc/`
---
## 📋 目录
1. [概述](#概述)
2. [架构设计](#架构设计)
3. [技术实现](#技术实现)
4. [使用规范](#使用规范)
5. [查询方法](#查询方法)
6. [与其他系统的关系](#与其他系统的关系)
---
## 概述
### 目的
三层记忆系统是青龙的 **长期记忆基础设施**,用于:
| 功能 | 说明 |
|------|------|
| 身份持久化 | 核心身份、角色、原则 |
| 配置同步 | 系统配置、工具设置 |
| 知识沉淀 | 经验教训、最佳实践 |
| 规则约束 | 安全规则、强制约束 |
### 设计理念
| 理念 | 说明 |
|------|------|
| 分层存储 | 按重要性和使用频率分层 |
| 语义搜索 | 支持向量相似度搜索 |
| 自动化 | 每日自动存档、手动触发 |
| 持久化 | 磁盘存储,防内存丢失 |
---
## 架构设计
### 三层结构
```
┌─────────────────────────────────────────────────────────────────┐
│ 三层记忆架构 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 第一层:情景记忆 (高优先级) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ 01-identity/ - 核心身份 (青龙、守护者) │ │
│ │ 02-config/ - 配置信息 (工具、Agent、定时) │ │
│ │ 03-rules/ - 强制规则 (安全、诚实、网络) │ │
│ │ │ │
│ │ 特点:不可修改、版本控制、人工审核 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 第二层:语义记忆 (中优先级) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ 04-knowledge/ - 经验沉淀 (协议、最佳实践) │ │
│ │ 05-tasks/ - 任务追踪 (待办、完成) │ │
│ │ │ │
│ │ 特点:AI可生成、人工审核后生效 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 第三层:工作记忆 (低优先级) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ daily/ - 每日记忆 (自动生成) │ │
│ │ memory/*.md - 临时笔记 (会话级) │ │
│ │ │ │
│ │ 特点:自动清理、可重建、临时性 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
```
### 目录结构
```
/root/.openclaw/memory/
├── 00-MANUAL.md # 使用指南
├── INDEX.md # 索引
├── 01-identity/ # 核心身份
│ ├── identity.md # 青龙身份
│ ├── soul.md # 核心原则
│ └── user.md # 用户偏好
├── 02-config/ # 配置信息
│ ├── agents.md # Agent人格
│ ├── tools.md # 工具配置
│ ├── heartbeat.md # 定时任务
│ └── memory.md # 记忆配置
├── 03-rules/ # 强制规则
│ ├── safety.md # 安全规则
│ ├── honesty.md # 诚实原则
│ └── security.md # 网络安全
├── 04-knowledge/ # 语义记忆
│ ├── hqbsh-protocol.md # 华强北发布
│ ├── telegram-ops.md # Telegram运维
│ └── automation.md # 自动化经验
├── 05-tasks/ # 任务追踪
│ └── todo.md # 待办事项
└── daily/ # 每日记忆
└── 2026-02-13.md # 今日记忆
```
---
## 技术实现
### 1. 文件存储
#### 存储格式
```markdown
# [标题]
## 元信息
- 创建时间:YYYY-MM-DD HH:MM
- 最后更新:YYYY-MM-DD HH:MM
- 版本:v1.0
## 内容
...
```
#### 文件命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| 身份 | `*.md` | `identity.md` |
| 配置 | `*.md` | `agents.md` |
| 规则 | `rule-*.md` | `rule-security.md` |
| 知识 | `[领域]-[主题].md` | `hqbsh-protocol.md` |
| 任务 | `todo-*.md` | `todo-weekly.md` |
| 每日 | `YYYY-MM-DD.md` | `2026-02-13.md` |
### 2. 语义搜索
#### 搜索命令
```bash
# 记忆搜索工具
memory_search [关键词]
# 示例
memory_search Telegram # 搜索Telegram相关内容
memory_search 记忆系统 # 搜索记忆系统相关内容
memory_search 诚实原则 # 搜索规则相关内容
```
#### 搜索原理
| 组件 | 实现 |
|------|------|
| 向量模型 | `nomic-embed-text:latest` |
| 搜索接口 | OpenAI兼容API |
| 远程服务 | `http://192.168.0.66:11434/v1` |
| 混合搜索 | 70%向量 + 30%文本 |
#### 配置示例
```json
{
"memorySearch": {
"provider": "openai",
"model": "nomic-embed-text:latest",
"remote": {
"baseUrl": "http://192.168.0.66:11434/v1",
"apiKey": "ollama-local"
},
"query": {
"hybrid": {
"enabled": true,
"vectorWeight": 0.7,
"textWeight": 0.3,
"candidateMultiplier": 4
}
}
}
}
```
### 3. 向量数据库
#### 数据库文件
```bash
/root/.openclaw/memory/main.sqlite
```
#### 数据结构
| 表名 | 用途 |
|------|------|
| memories | 向量存储的记忆内容 |
| embeddings | 向量索引 |
| sessions | 会话历史 |
#### 数据库大小
| 时间 | 大小 |
|------|------|
| 2026-02-13 | ~5MB |
### 4. 同步机制
#### 自动同步
```bash
# 自动监控目录变化
memorySync:
watch: true
```
#### 手动同步
```bash
# 强制同步
openclaw memory sync
```
### 5. 每日记忆生成
#### 触发条件
| 条件 | 说明 |
|------|------|
| 定时任务 | 每日cron |
| 手动触发 | Agent完成重要任务 |
| 故障恢复 | 系统重启后 |
#### 生成内容
```markdown
# YYYY-MM-DD 记忆存档
## 今日完成
-
## 待办
-
## 重要发现
-
```
---
## 使用规范
### 1. 记忆创建流程
```
1. 确定类型 → 2. 选择目录 → 3. 按规范命名 → 4. 写入内容 → 5. 更新索引
```
### 2. 各层触发时机
| 层级 | 类型 | 触发时机 |
|------|------|----------|
| 第一层 | 身份/配置/规则 | 系统初始化/配置变更/规则建立 |
| 第二层 | 知识/任务 | 经验沉淀/任务创建 |
| 第三层 | 每日记忆 | 每日自动/重要任务完成 |
### 3. 编写规范
#### 第一层 (不可修改)
```markdown
# 核心身份
## 基础信息
- 代号:青龙 🐉
- 角色:主机器人
## 原则
- 诚实为本
- 执行优先
```
#### 第二层 (AI可生成)
```markdown
# 华强北发布协议
## 背景
...
## 核心要点
1. ...
## 经验教训
...
```
#### 第三层 (自动生成)
```markdown
# 2026-02-13 记忆存档
## 今日完成
- 完成了X任务
## 待办
- 待办Y任务
```
### 4. 审核流程
| 层级 | 审核人 | 方式 |
|------|--------|------|
| 第一层 | 人工 | 用户确认 |
| 第二层 | 人工+AI | AI草稿,人工审核 |
| 第三层 | AI | 自动生成 |
---
## 查询方法
### 1. 快速读取
```bash
# 直接读取文件
memory_get [path]
# 示例
memory_get /root/.openclaw/memory/01-identity/identity.md
memory_get /root/.openclaw/memory/02-config/agents.md
```
### 2. 语义搜索
```bash
# 关键词搜索
memory_search [关键词]
# 示例
memory_search Telegram
memory_search 记忆系统
memory_search 诚实原则
```
### 3. 手动浏览
```bash
# 列出所有记忆
ls -la /root/.openclaw/memory/
# 列出某类记忆
ls -la /root/.openclaw/memory/01-identity/
ls -la /root/.openclaw/memory/04-knowledge/
```
---
## 与其他系统的关系
### 1. 与OpenClaw的关系
| 集成点 | 说明 |
|--------|------|
| 身份注入 | 启动时读取identity/soul |
| 配置加载 | 启动时读取agents/tools |
| 规则应用 | 执行时检查rules |
### 2. 与自我迭代的关系
| 集成点 | 说明 |
|--------|------|
| 反思输出 | 反思结果写入04-knowledge |
| 错误沉淀 | 错误写入error-knowledge-base |
| 每日总结 | 自动写入daily/ |
### 3. 与Telegram的关系
| 集成点 | 说明 |
|--------|------|
| 告警通知 | 异常时发送Telegram消息 |
| 状态查询 | 支持memory命令 |
---
## 故障处理
### 常见问题
| 问题 | 原因 | 解决 |
|------|------|------|
| 记忆丢失 | 内存模式未持久化 | 已改用磁盘存储 |
| 搜索无结果 | 未建立索引 | 运行memory sync |
| 同步失败 | 远程服务不可用 | 检查192.168.0.66 |
### 恢复方法
```bash
# 1. 检查记忆目录
ls -la /root/.openclaw/memory/
# 2. 重建索引
openclaw memory rebuild
# 3. 手动导入
memory_get /root/.openclaw/memory/INDEX.md
```
---
## 相关文档
| 文档 | 位置 |
|------|------|
| 自我迭代程序 | `/root/.openclaw/doc/` |
| 华强北发布协议 | `/root/.openclaw/memory/04-knowledge/` |
| 自动化运维经验 | `/root/.openclaw/memory/04-knowledge/` |
---
*最后更新: 2026-02-13*
@@ -0,0 +1,311 @@
# 青龙自我迭代程序设计
**文档版本**: v1.0
**创建时间**: 2026-02-13
**作者**: 青龙 (QingLong)
**位置**: `/root/.openclaw/doc/`
---
## 📋 目录
1. [概述](#概述)
2. [核心架构](#核心架构)
3. [程序组件](#程序组件)
4. [技术要点](#技术要点)
5. [循环机制](#循环机制)
6. [防护机制](#防护机制)
---
## 概述
### 目的
青龙自我迭代程序旨在实现 **"学习→反思→总结→再学习"** 的正向循环,通过持续反思提升AI能力。
### 设计理念
| 理念 | 说明 |
|------|------|
| 双重触发 | 主动触发 + 自动检测 |
| AI主导 | 使用权重AI进行反思,非硬编码 |
| 持续改进 | 每20个学习周期强制深度反思 |
| 防护优先 | 防卡死、防重复、防资源耗尽 |
---
## 核心架构
### 整体流程
```
┌─────────────────────────────────────────────────────────────────┐
│ 学习循环流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐│
│ │ 学习主题 │ → │ 生成笔记 │ → │ AI反思 │ → │ AI总结 ││
│ │ (脚本) │ │ (.md) │ │ (MiniMax)│ │ (.md) ││
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘│
│ ↑ │ │
│ │ ┌──────────┐ │ │
│ └────────────── │ 再次学习 │ ←─────────────────┘ │
│ │ (循环) │ │
│ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
```
### 三重角色
| 角色 | 学习方向 | 任务类型 |
|------|----------|----------|
| 写作助手 | 神话/武侠小说 | 素材、结构、技巧 |
| 股票投资 | 宏观/行业/估值 | 分析、风控 |
| 网络自动化 | 抓取/API/工具 | 效率提升 |
---
## 程序组件
### 1. 睡眠学习脚本
| 脚本 | 功能 | 触发 |
|------|------|------|
| `sleep-learning.sh` | 主学习循环 | 主动 + 自动检测 |
| `sleep-learning-qinglong.sh` | 青龙专用 | 定时cron |
| `sleep-learning-guardian.sh` | 守护者专用 | 定时cron |
### 2. 反思脚本
| 脚本 | 功能 | 触发 |
|------|------|------|
| `qinglong-quick-reflection.sh` | 快速反思 | 每2小时 |
| `qinglong-force-reflection.sh` | 强制深度反思 | 每20周期 |
| `qinglong-reflection-monitor.sh` | 监控健康状态 | 每小时 |
### 3. 验证脚本
| 脚本 | 功能 |
|------|------|
| `qinglong-learning-verification.sh` | 验证学习效果 |
| `qinglong-self-check.sh` | 自检系统状态 |
---
## 技术要点
### 1. 周期计算 (calculate_cycle)
**问题**: 使用 `ls | wc -l` 会将空文件计入
**解决**: 使用 `find -size +0` 排除空文件
```bash
# 错误方式
count=$(ls learning-*.md | wc -l) # 包含空文件
# 正确方式
count=$(find "${LEARNING_DIR}"/learning-qinglong-*.md -size +0 | wc -l)
```
**防护**: 最小返回值为1,避免返回0
```bash
[ "$count" -eq 0 ] && count=1
```
### 2. 内容提取 (extract_content)
**问题**: 使用空壳模板 `[待填写]`
**解决**: 从实际学习笔记中提取真实内容
```bash
# 从最近5个学习笔记中提取
recent_files=$(ls -t "${LEARNING_DIR}"/learning-qinglong-*.md | head -5)
for file in $recent_files; do
content+=$(cat "$file")
done
```
### 3. 锁文件机制 (lock_file)
**目的**: 防止重复执行和卡死
```bash
REFLECTION_LOCK="/tmp/reflection-lock.txt"
check_lock() {
if [ -f "$REFLECTION_LOCK" ]; then
local lock_time=$(cat "$REFLECTION_LOCK")
local current_time=$(date +%s)
if [ $((current_time - lock_time)) -lt 3600 ]; then
echo "ℹ️ 1小时内已有反思,跳过"
exit 0
fi
fi
date +%s > "$REFLECTION_LOCK"
}
trap cleanup_lock EXIT
```
### 4. Cron配置
| 任务 | 频率 | 脚本 |
|------|------|------|
| 快速反思 | 每2小时 | `qinglong-quick-reflection.sh` |
| 强制深度反思 | 每20周期 | `qinglong-force-reflection.sh` |
| 健康监控 | 每小时 | `qinglong-reflection-monitor.sh` |
---
## 循环机制
### 正向循环
```
学习 → 反思 → 总结 → 再次学习
```
### 触发条件
| 类型 | 条件 |
|------|------|
| 快速反思 | 每2小时 + 5个新学习 |
| 强制深度反思 | 每20个学习周期 |
| 自动检测 | 空闲30分钟 + 新学习 |
### 计数机制
```bash
# 学习计数器
LEARNING_COUNT=$(find "${LEARNING_DIR}"/learning-qinglong-*.md -size +0 | wc -l)
# 反思计数器
REFLECTION_CYCLE=$(cat "${CYCLE_FILE}")
# 判断是否需要强制反思
if [ "$LEARNING_COUNT" -gt $((REFLECTION_CYCLE + 20)) ]; then
trigger_force_reflection
fi
```
---
## 防护机制
### 1. 防卡死
| 机制 | 实现 |
|------|------|
| 锁文件 | 1小时自动释放 |
| 超时退出 | 脚本最大执行时间 |
| 资源检查 | 内存/CPU阈值 |
### 2. 防重复
| 机制 | 实现 |
|------|------|
| 文件标记 | 已反思文件标记 |
| 时间窗口 | 1小时内不重复 |
| 内容比对 | 避免相同反思 |
### 3. 防资源耗尽
| 机制 | 实现 |
|------|------|
| 空文件过滤 | find -size +0 |
| 最小周期 | 最小值=1 |
| 磁盘限额 | 日志自动清理 |
---
## 配置文件
### 目录结构
```
/root/.openclaw/workspace/sleep-learning/
├── learning-qinglong-2026-02-13-01.md # 学习笔记
├── improve-qinglong-2026-02-13-01.md # AI反思
├── summary-qinglong-2026-02-13-01.md # AI总结
├── error-knowledge-base.md # 错误知识库
└── qinglong-reflection-cycle.txt # 周期计数器
```
### 计数器文件
```bash
/root/.openclaw/scripts/qinglong-reflection-cycle.txt
```
格式:当前周期数(整数)
---
## 监控与日志
### 日志位置
| 类型 | 位置 |
|------|------|
| 学习日志 | `/var/log/openclaw/sleep-learning/` |
| 反思日志 | `/root/.openclaw/logs/reflection/` |
| 告警日志 | `/var/log/openclaw/problems-detected.log` |
### 监控脚本
```bash
# qinglong-reflection-monitor.sh
- 检查学习文件数量
- 检查反思文件完整性
- 检查周期计数器
- 异常时发送Telegram告警
```
---
## 故障处理
### 常见问题
| 问题 | 原因 | 解决 |
|------|------|------|
| 周期=0 | 空文件被计入 | 使用 find -size +0 |
| 重复执行 | 无锁文件 | 添加1小时锁 |
| 死循环 | 周期计算错误 | 最小值=1 |
| 磁盘满 | 日志无限增长 | 限制日志行数 |
### 恢复步骤
```bash
# 1. 检查锁文件
ls -la /tmp/reflection-lock.txt
# 2. 清理锁文件
rm -f /tmp/reflection-lock.txt
# 3. 重置周期
echo "1" > /root/.openclaw/scripts/qinglong-reflection-cycle.txt
# 4. 手动触发学习
bash /root/.openclaw/scripts/sleep-learning-qinglong.sh
```
---
## 相关文档
| 文档 | 位置 |
|------|------|
| 三层记忆系统 | `/root/.openclaw/doc/` |
| 华强北发布协议 | `/root/.openclaw/memory/04-knowledge/` |
| 自动化运维经验 | `/root/.openclaw/memory/04-knowledge/` |
---
*最后更新: 2026-02-13*