让 AI 记住一切:OpenClaw 自我进化实录

> 从 70% Token 自动压缩到"每日三省吾身",打造一个真正会学习的 AI 助手

---

## 背景

用 OpenClaw 一段时间后,发现两个痛点:

1. **会话太长,Token 爆满** — 聊着聊着就忘了前面的内容

2. **每次重启都是白纸** — 知识没有沉淀,重复问同样的问题

能不能让 AI 自己管理记忆,像人一样"三省吾身"?

折腾了一天,终于搞定了。

---

## 一、Token 自动压缩:70% 就动手

### 问题

OpenClaw 默认的 auto-compaction 是在 context window 接近满载时才触发。但这时候已经太晚了——对话质量下降,响应变慢。

### 解决方案

在 `~/.openclaw/openclaw.json` 中配置:

```json5

compaction: {

  mode: "safeguard",

  reserveTokensFloor: 38400,  // 30% 剩余时强制压缩

  memoryFlush: {

    enabled: true,

    softThresholdTokens: 89600,  // 70% 时先存储记忆

    prompt: "Summarize the conversation history..."

  }

}

```

### 触发顺序

| 阶段 | Token 使用率 | 行为 |

|------|-------------|------|

| 1 | 70% (89600 tokens) | memoryFlush 静默存储重要信息 |

| 2 | 70% 剩余 (38400 tokens) | auto-compaction 强制压缩 |

配合 Heartbeat 每 30 分钟检查,超过 70% 会主动提醒:

```json5

heartbeat: {

  every: "30m",

  prompt: "Read HEARTBEAT.md if it exists..."

}

```

---

## 二、双层记忆体系:快 + 深

### 架构设计

```

┌─────────────────────────────────────────────────┐

│                   用户查询                        │

└─────────────────────┬───────────────────────────┘

                      ▼

┌─────────────────────────────────────────────────┐

│     QMD(短期记忆)                              │

│     • 本地 BM25 关键词搜索                       │

│     • 毫秒级响应                                │

│     • 工作区文件索引                            │

└─────────────────────┬───────────────────────────┘

                      │ 无结果/需语义理解

                      ▼

┌─────────────────────────────────────────────────┐

│     Mem0(长期记忆)                             │

│     • 云端语义向量搜索                           │

│     • 跨会话知识沉淀                            │

│     • 重要决策、经验教训                        │

└─────────────────────────────────────────────────┘

```

### QMD 安装

```bash

# 安装 Bun(如果没装)

powershell -c "irm bun.sh/install.ps1|iex"

# 安装 QMD

bun install -g qmd

# 加入 PATH

# Windows: 添加 C:\Users\{用户}\.bun\bin 到环境变量

```

### 使用方式

```bash

# 更新索引

qmd update "C:\Users\fly\.openclaw\workspace-magic"

# BM25 搜索(无需语义向量)

qmd search "关键词" -c "C:\Users\fly\.openclaw\workspace-magic"

# 查看已索引文件

qmd ls "C:\Users\fly\.openclaw\workspace-magic"

```

### 记忆分类

| 类型 | QMD(短期) | Mem0(长期) |

|------|-----------|-------------|

| 工作区文档 | ✅ 自动索引 | ❌ |

| 临时信息 | ✅ | ❌ |

| 技术知识 | ❌ | ✅ |

| 用户偏好 | ❌ | ✅ |

| 重要决策 | ❌ | ✅ |

| 经验教训 | ✅ 可选 | ✅ |

---

## 三、每日三省吾身:AI 也会反思

### 设计思路

既然 AI 每次会话都是"新"的,那就让它定时"醒过来"检查一下自己。

仿照古人的"三省吾身":

- **晨省**:检查今日计划

- **午省**:进度回顾

- **晚省**:今日总结,存入长期记忆

### 实现

创建 `scripts/self-reflection.py`:

```python

# 三省时间窗口

MORNING_START, MORNING_END = time(6, 0), time(10, 0)   # 晨省

NOON_START, NOON_END = time(12, 0), time(15, 0)       # 午省

EVENING_START, EVENING_END = time(20, 0), time(23, 0) # 晚省

# 检查当前时段,决定是否触发反思

def get_current_period(now):

    current_time = now.time()

    if MORNING_START <= current_time <= MORNING_END:

        return "morning"

    # ...

```

在 `HEARTBEAT.md` 中配置检查流程:

```markdown

## Check Procedure

### Step 1: Check Token Usage

- If usage >= 70%: 提醒用户 /compact

### Step 2: Self-Reflection Check

运行 self-reflection.py,按时段执行反思

### Step 3: Run Task Checker

执行定时任务(QMD更新、每日总结、每周维护)

```

### 工作流程

```

Heartbeat (每30分钟)

    │

    ├── 检查 Token 使用率 >= 70%? → 提醒压缩

    │

    ├── 检查时段

    │   ├── 06:00-10:00 → 晨省(今日计划)

    │   ├── 12:00-15:00 → 午省(进度回顾)

    │   └── 20:00-23:00 → 晚省(总结 + Mem0)

    │

    └── 执行定时任务

        ├── QMD 索引更新(>20h)

        ├── 每日总结(>20h)

        └── 每周维护(~6天)

```

---

## 四、文件结构

```

workspace-magic/

├── AGENTS.md              # 工作区规则

├── SOUL.md                # AI 人格定义

├── USER.md                # 用户信息

├── MEMORY.md              # 长期记忆核心(手动维护)

├── HEARTBEAT.md           # Heartbeat 任务定义

├── scripts/

│   ├── check-tasks.py     # 定时任务检查

│   └── self-reflection.py # 三省系统

└── memory/

    ├── 2026-02-25.md      # 每日日志

    ├── reflection-state.json  # 三省状态

    └── cron-state.json    # 任务状态

```

---

## 五、效果

### 配置生效确认

```bash

$ openclaw config get agents.defaults.compaction

{

  "mode": "safeguard",

  "reserveTokensFloor": 38400,

  "memoryFlush": {

    "enabled": true,

    "softThresholdTokens": 89600

  }

}

$ openclaw config get agents.defaults.heartbeat

{

  "every": "30m",

  "prompt": "Read HEARTBEAT.md if it exists..."

}

```

### 记忆系统状态

| 系统 | 状态 | 数量 |

|------|------|------|

| QMD | ✅ 正常 | 17 个文件索引 |

| Mem0 | ✅ 正常 | 26 条记忆 |

### 三省系统

当前时段会自动检查,在对应时间窗口触发反思任务。

---

## 六、下一步

- [ ] 观察晚省自动总结效果

- [ ] 优化 Mem0 存储质量(自动提取关键信息)

- [ ] 探索更智能的记忆召回策略

---

## 总结

这套系统的核心思想:

1. **Token 管理**:主动出击,70% 就压缩,不要等爆了再救

2. **双层记忆**:快的负责日常,深的负责沉淀

3. **自我进化**:定时反思,让 AI 越用越聪明

OpenClaw 的配置灵活度很高,配合 Heartbeat 和自定义脚本,可以做出很多有趣的东西。

---

*2026-02-25 by Fly @ flys161*

Read more

[从零搭建 Web 漏洞靶场:VAuditDemo 在 CentOS 上的部署实战]

//VAuditDemo是一个专门用于Web漏洞攻防演练的综合性靶场// 环境准备: * 操作系统:CentOS 7/8 * Web 环境:XAMPP(已安装并配置好) * 靶场源码:VAuditDemo (1)官网下载安装包https://github.com/1stPeak/VAuditDemo (点击绿色按钮) (2)使用xftp将安装包上传到CentOS的“/opt/lampp/htdocs”目录下(直接从拖动文件夹到右边) 下载后会得到一个 VAuditDemo-master.zip 文件,里面包含两个核心目录: * VAuditDemo_Release —— 发布版(用于正式部署) * VAuditDemo_Debug —— 调试版(带详细错误提示,适合学习) (3)解压缩,并修改文件夹名称为“vaudit” cd  /opt/lampp/htdocs unzip VAuditDemo-master.

PCTF2025(web后半部分)

PCTF2025(web后半部分)

神秘商店 打开题目只有一个登录框 登录admin 利用全角来注册登录 后端代码有转换,全角能够绕过后端对admin的检测,然后把全角admin识别成正常的admin,造成覆盖注册,修改admin密码 注册admin,其中n为全角 利用整数溢出4294967246到50,购买flag 可以直接脚本登录 import requests def exploit(): url = "http://challenge2.pctf.top:32735" session = requests.Session() print("[+] 注册管理员账户...") users = { "username": "admin", "password": "123456" } response = session.post(f&

0. 总纲|Java Web 自研框架 18 年Java架构决策复盘

0. 总纲|Java Web 自研框架 18 年Java架构决策复盘

深耕政务信息化 20 年,自研 Java Web 框架支撑省级新农保、全国首例跨省医保结算等核心民生系统,稳定运行 18 年。 本系列不讲空泛理论,只复盘真实生产环境下的架构决策、踩坑经历、落地方案,不求优雅,但求能跑、能扛、能维护。 在长期维护政务系统的过程中,我逐渐形成一套轻量、稳定、无侵入、可长期演进的架构思路。 这套框架没有依赖流行全家桶,而是围绕业务痛点一点点打磨,最终支撑了海量高并发、高可靠的民生业务。 本系列将从以下 10 个核心决策展开: 1. 放弃 Spring,手写轻量 IOC 容器 2. 注解路由 + 参数路由,实现新老代码平滑迁移 3. 统一入参解析,前后端彻底解耦 4. CGLIB + 责任链实现轻量 AOP,搞定事务、日志、

SpringBoot+Vue 针对老年人景区订票系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

SpringBoot+Vue 针对老年人景区订票系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着老龄化社会的加速发展,老年人旅游需求日益增长,但传统景区订票系统往往操作复杂,对老年用户不够友好。针对这一问题,设计并实现了一款专为老年人优化的景区订票系统平台。该系统通过简化操作流程、提供大字体显示、语音引导等功能,降低老年人使用门槛,提升用户体验。同时,系统整合景区资源,实现门票在线预订、订单管理、个人信息维护等功能,为老年人提供便捷的旅游服务。关键词:老龄化社会、景区订票系统、用户体验、在线预订、旅游服务。 本系统基于SpringBoot和Vue技术栈开发,采用前后端分离架构,后端使用SpringBoot提供RESTful API接口,前端通过Vue.js实现动态交互。数据库采用MySQL,结合Redis缓存提升系统性能。系统功能涵盖用户注册登录、景区信息展示、门票预订、订单支付、个人中心等模块,并针对老年人需求优化了界面设计和交互逻辑。系统接口文档完整,便于后续扩展和维护。关键词:SpringBoot、Vue.js、MySQL、Redis、RESTful API、老年人优化。 数据表设计