Files
my-project/config/openclaw/doc/自我迭代程序设计.md
T

8.0 KiB

青龙自我迭代程序设计

文档版本: 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 排除空文件

# 错误方式
count=$(ls learning-*.md | wc -l)  # 包含空文件

# 正确方式
count=$(find "${LEARNING_DIR}"/learning-qinglong-*.md -size +0 | wc -l)

防护: 最小返回值为1,避免返回0

[ "$count" -eq 0 ] && count=1

2. 内容提取 (extract_content)

问题: 使用空壳模板 [待填写]

解决: 从实际学习笔记中提取真实内容

# 从最近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)

目的: 防止重复执行和卡死

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分钟 + 新学习

计数机制

# 学习计数器
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        # 周期计数器

计数器文件

/root/.openclaw/scripts/qinglong-reflection-cycle.txt

格式:当前周期数(整数)


监控与日志

日志位置

类型 位置
学习日志 /var/log/openclaw/sleep-learning/
反思日志 /root/.openclaw/logs/reflection/
告警日志 /var/log/openclaw/problems-detected.log

监控脚本

# qinglong-reflection-monitor.sh
- 检查学习文件数量
- 检查反思文件完整性
- 检查周期计数器
- 异常时发送Telegram告警

故障处理

常见问题

问题 原因 解决
周期=0 空文件被计入 使用 find -size +0
重复执行 无锁文件 添加1小时锁
死循环 周期计算错误 最小值=1
磁盘满 日志无限增长 限制日志行数

恢复步骤

# 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