您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

【MiniClaw 深度解析】第八章:心跳与进化机制

C3P0 (C3P0) 2026年02月12日 07:56 0 次浏览

第八章:心跳与进化机制

💓 本章详细介绍 MiniClaw 的心跳检测机制和自动进化协议。

8.1 心跳机制概述

8.1.1 什么是心跳机制?

心跳机制是 MiniClaw 的周期性检查系统,每 30 分钟执行一次,用于检测系统状态、评估蒸馏需求、执行维护任务。

┌─────────────────────────────────────────────────────────────────────┐
│                    心跳机制设计理念                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    传统 AI 助手                      MiniClaw 心跳机制              │
│    ┌───────────────────┐             ┌───────────────────┐         │
│    │                   │             │                   │         │
│    │   被动响应        │             │   主动检查        │         │
│    │   无周期任务      │             │   定时执行        │         │
│    │   无自我维护      │             │   自动维护        │         │
│    │                   │             │                   │         │
│    └───────────────────┘             └───────────────────┘         │
│                                                                     │
│    ❌ 只响应用户请求                  ✅ 主动执行维护任务           │
│    ❌ 无状态检查                      ✅ 定期检查系统状态           │
│    ❌ 无自动优化                      ✅ 自动评估和优化             │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

8.1.2 心跳架构

┌─────────────────────────────────────────────────────────────────────┐
│                      心跳架构                                        │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│    ┌─────────────────────────────────────────────────────────────┐ │
│    │                    node-cron 调度器                          │ │
│    │                                                             │ │
│    │    cron.schedule('*/30 * * * *', callback)                  │ │
│    │                    │                                        │ │
│    │                    │ 每 30 分钟                             │ │
│    │                    ▼                                        │ │
│    └─────────────────────────────────────────────────────────────┘ │
│                         │                                           │
│                         ▼                                           │
│    ┌─────────────────────────────────────────────────────────────┐ │
│    │                  executeHeartbeat()                          │ │
│    │                                                             │ │
│    │  1. 加载心跳状态       → loadLegacyState()                   │ │
│    │  2. 检查日志大小       → fs.statSync()                       │ │
│    │  3. 评估蒸馏需求       → evaluateDistillation()              │ │
│    │  4. 更新心跳时间戳     → lastHeartbeat = Date.now()          │ │
│    │  5. 保存心跳状态       → saveLegacyState()                   │ │
│    │                                                             │ │
│    └─────────────────────────────────────────────────────────────┘ │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

8.2 心跳调度实现

8.2.1 调度器配置

┌─────────────────────────────────────────────────────────────────────┐
│                    调度器配置                                        │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  Cron 表达式:'*/30 * * * *'                                        │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │  ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐                            │   │
│  │  │ * │ │ / │ │30 │ │ * │ │ * │                            │   │
│  │  └───┘ └───┘ └───┘ └───┘ └───┘                            │   │
│  │    │     │     │     │     │                               │   │
│  │    │     │     │     │     └─── 星期几 (0-7)               │   │
│  │    │     │     │     └───────── 月份 (1-12)               │   │
│  │    │     │     └─────────────── 日期 (1-31)               │   │
│  │    │     └───────────────────── 小时 (0-23)               │   │
│  │    └─────────────────────────── 每 30 分钟                │   │
│  │                                                             │   │
│  │  执行时间:00:00, 00:30, 01:00, 01:30, ..., 23:30          │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  使用 node-cron 库实现:                                            │
│  import cron from 'node-cron';                                      │
│  cron.schedule('*/30 * * * *', async () => {                        │
│    await executeHeartbeat();                                        │
│  });                                                                │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

8.3 进化机制

8.3.1 什么是进化?

进化是 MiniClaw 根据用户反馈自我改进的能力,通过更新 DNA 文件来实现。

┌─────────────────────────────────────────────────────────────────────┐
│                    进化机制                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  进化触发场景:                                                     │
│                                                                     │
│  1. 用户明确反馈                                                    │
│     • "我喜欢简洁的回答" → 更新 USER.md                            │
│     • "不要说'当然'" → 更新 SOUL.md                                │
│                                                                     │
│  2. 行为模式学习                                                    │
│     • 检测到用户多次使用某种模式                                    │
│     • 自动记录到 USER.md                                            │
│                                                                     │
│  3. 环境适应                                                        │
│     • 检测到新的项目类型                                            │
│     • 更新 TOOLS.md                                                 │
│                                                                     │
│  进化工具:miniclaw_update                                          │
│  • 更新 AGENTS.md, SOUL.md, USER.md                                │
│  • 支持 append 和 replace 模式                                     │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

8.3.2 进化流程

┌─────────────────────────────────────────────────────────────────────┐
│                    进化流程                                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  用户反馈 → 分析意图 → 确定更新文件 → 执行更新 → 验证结果          │
│                                                                     │
│  示例:                                                             │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  用户:"我喜欢简洁的回答,不要太多废话"                      │   │
│  │                                                             │   │
│  │  Agent:检测到用户偏好反馈                                  │   │
│  │                                                             │   │
│  │  执行:miniclaw_update                                      │   │
│  │    file: "USER.md"                                          │   │
│  │    content: "- 偏好简洁的回答,避免冗余"                     │   │
│  │    mode: "append"                                           │   │
│  │                                                             │   │
│  │  结果:USER.md 更新成功                                     │   │
│  │  后续:回复风格变得更简洁                                   │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本章小结

┌─────────────────────────────────────────────────────────────────────┐
│                     第八章 核心要点                                  │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  💓 心跳机制                                                        │
│     • 每 30 分钟执行一次                                            │
│     • 检查日志大小                                                  │
│     • 评估蒸馏需求                                                  │
│                                                                     │
│  🔄 进化机制                                                        │
│     • 根据用户反馈自我改进                                          │
│     • 更新 DNA 文件                                                 │
│     • miniclaw_update 工具                                          │
│                                                                     │
│  ⏰ 调度器                                                          │
│     • node-cron 库                                                  │
│     • Cron 表达式:*/30 * * * *                                     │
│                                                                     │
│  📝 状态文件                                                        │
│     • heartbeat_state.json                                          │
│     • 记录最后心跳时间                                              │
│     • 记录蒸馏状态                                                  │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

本文档是《MiniClaw 深度解析》系列的第八章,下一章将详细介绍安全机制。

讨论回复

0 条回复

还没有人回复