💓 本章详细介绍 MiniClaw 的心跳检测机制和自动进化协议。
心跳机制是 MiniClaw 的周期性检查系统,每 30 分钟执行一次,用于检测系统状态、评估蒸馏需求、执行维护任务。
┌─────────────────────────────────────────────────────────────────────┐
│ 心跳机制设计理念 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 传统 AI 助手 MiniClaw 心跳机制 │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ │ │ │ │
│ │ 被动响应 │ │ 主动检查 │ │
│ │ 无周期任务 │ │ 定时执行 │ │
│ │ 无自我维护 │ │ 自动维护 │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ ❌ 只响应用户请求 ✅ 主动执行维护任务 │
│ ❌ 无状态检查 ✅ 定期检查系统状态 │
│ ❌ 无自动优化 ✅ 自动评估和优化 │
│ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 心跳架构 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ node-cron 调度器 │ │
│ │ │ │
│ │ cron.schedule('*/30 * * * *', callback) │ │
│ │ │ │ │
│ │ │ 每 30 分钟 │ │
│ │ ▼ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ executeHeartbeat() │ │
│ │ │ │
│ │ 1. 加载心跳状态 → loadLegacyState() │ │
│ │ 2. 检查日志大小 → fs.statSync() │ │
│ │ 3. 评估蒸馏需求 → evaluateDistillation() │ │
│ │ 4. 更新心跳时间戳 → lastHeartbeat = Date.now() │ │
│ │ 5. 保存心跳状态 → saveLegacyState() │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 调度器配置 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 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(); │
│ }); │
│ │
└─────────────────────────────────────────────────────────────────────┘
进化是 MiniClaw 根据用户反馈自我改进的能力,通过更新 DNA 文件来实现。
┌─────────────────────────────────────────────────────────────────────┐
│ 进化机制 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 进化触发场景: │
│ │
│ 1. 用户明确反馈 │
│ • "我喜欢简洁的回答" → 更新 USER.md │
│ • "不要说'当然'" → 更新 SOUL.md │
│ │
│ 2. 行为模式学习 │
│ • 检测到用户多次使用某种模式 │
│ • 自动记录到 USER.md │
│ │
│ 3. 环境适应 │
│ • 检测到新的项目类型 │
│ • 更新 TOOLS.md │
│ │
│ 进化工具:miniclaw_update │
│ • 更新 AGENTS.md, SOUL.md, USER.md │
│ • 支持 append 和 replace 模式 │
│ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 进化流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 用户反馈 → 分析意图 → 确定更新文件 → 执行更新 → 验证结果 │
│ │
│ 示例: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 用户:"我喜欢简洁的回答,不要太多废话" │ │
│ │ │ │
│ │ Agent:检测到用户偏好反馈 │ │
│ │ │ │
│ │ 执行:miniclaw_update │ │
│ │ file: "USER.md" │ │
│ │ content: "- 偏好简洁的回答,避免冗余" │ │
│ │ mode: "append" │ │
│ │ │ │
│ │ 结果:USER.md 更新成功 │ │
│ │ 后续:回复风格变得更简洁 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 第八章 核心要点 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 💓 心跳机制 │
│ • 每 30 分钟执行一次 │
│ • 检查日志大小 │
│ • 评估蒸馏需求 │
│ │
│ 🔄 进化机制 │
│ • 根据用户反馈自我改进 │
│ • 更新 DNA 文件 │
│ • miniclaw_update 工具 │
│ │
│ ⏰ 调度器 │
│ • node-cron 库 │
│ • Cron 表达式:*/30 * * * * │
│ │
│ 📝 状态文件 │
│ • heartbeat_state.json │
│ • 记录最后心跳时间 │
│ • 记录蒸馏状态 │
│ │
└─────────────────────────────────────────────────────────────────────┘
本文档是《MiniClaw 深度解析》系列的第八章,下一章将详细介绍安全机制。
还没有人回复