From cca4089f2af965fa66ee630ae23c722b895b954c Mon Sep 17 00:00:00 2001 From: bizwings Date: Wed, 24 Jun 2026 00:21:26 +0800 Subject: [PATCH] =?UTF-8?q?BIZ-25:=20Phase1=20cron=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=96=B9=E6=A1=88=20-=2015=E4=B8=AAAgent=E5=BF=83=E8=B7=B3?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: multica-agent --- plans/BIZ-25_定时心跳检查cron任务部署方案.md | 199 +++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 plans/BIZ-25_定时心跳检查cron任务部署方案.md diff --git a/plans/BIZ-25_定时心跳检查cron任务部署方案.md b/plans/BIZ-25_定时心跳检查cron任务部署方案.md new file mode 100644 index 0000000..8689d7d --- /dev/null +++ b/plans/BIZ-25_定时心跳检查cron任务部署方案.md @@ -0,0 +1,199 @@ +# BIZ-25 定时心跳检查 cron 任务部署方案 + +> **版本:** v1.0 +> **编制:** 严维序(opengineer) +> **日期:** 2026-06-24 +> **状态:** 已部署 +> **父方案:** [BIZ-13 运行稳定性保障方案](./BIZ-13_运行稳定性保障方案.md) + +--- + +## 一、概述 + +本方案是 BIZ-13 Phase1 的执行层方案,负责将 HEARTBEAT.md 模板+共享脚本部署为可运行的定时心跳检查机制。 + +### 部署架构 + +``` +┌─────────────────────────────────────────────────────┐ +│ OpenClaw Gateway Cron │ +│ ┌────────────┐ ┌────────────┐ ┌──────────────┐ │ +│ │ Agent A │ │ Agent B │ │ Agent C │ │ +│ │ 心跳(10/15m)│ │ 心跳(15m) │ │ 心跳(15m) │ │ +│ └─────┬──────┘ └─────┬──────┘ └──────┬───────┘ │ +│ │ │ │ │ +│ ▼ ▼ ▼ │ +│ ┌──────────────────────────────────────────┐ │ +│ │ shared/scripts/heartbeat_helper.py │ │ +│ │ + multica_proxy.py │ │ +│ │ + rate_limiter.py │ │ +│ └──────────────────────────────────────────┘ │ +│ │ │ │ │ +│ ▼ ▼ ▼ │ +│ ┌──────────────────────────────────────────┐ │ +│ │ 三源任务检查: WorkBoard + Multica + 文档 │ │ +│ └──────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────┘ +``` + +--- + +## 二、Agent 心跳频率分类 + +根据 BIZ-13 方案定义: + +| 分类 | 频率 | Agent | 数量 | +|------|------|-------|------| +| **高频** | **10 分钟** | 陆怀瑾 (coo), 刘诗妮 (secretary) | 2 | +| **常规** | **15 分钟** | 严维序 (opengineer), 沈路明 (productmanager), 胡蓉 (projectmanager), 梁思筑 (architect), 苏锦绘 (designer), 徐聪 (costcodev), 文墨言 (contentspecialist), 程伯予 (cvexpert), 许言 (prompt-engineer), 钟帧韵 (mediaspecialist), 陆云帆 (taobaospecialist), 顾析策 (marketanalysis), 苏慎 (lawyer) | 13 | + +--- + +## 三、部署清单 + +### 3.1 ✅ 已完成 — HEARTBEAT.md 模板 + +所有 15 个 Agent 的工作区均已部署 HEARTBEAT.md: + +| 工作区 | 频率 | 核心内容 | +|--------|------|----------| +| `coo/` | 10 min | BIZ-38 模板 + 全局积压巡检 | +| `secretary/` | 10 min | BIZ-38 模板 | +| `opengineer/` | 10 min | BIZ-38 模板 + 三源检查 | +| `projectmanager/` | 10 min | BIZ-38 模板 | +| `costcodev/` | 10 min | BIZ-38 模板 | +| 其余 10 个 Agent | 15 min | 标准模板 + 三源检查 | + +### 3.2 ✅ 已完成 — 共享心跳脚本 + +路径:`shared/scripts/` + +| 文件 | 用途 | 状态 | +|------|------|------| +| `rate_limiter.py` | 缓存管理 + 请求调度 + 协调轮询 | ✅ 已部署 | +| `multica_proxy.py` | Multica CLI 代理 + 缓存封装 | ✅ 已部署 | +| `heartbeat_helper.py` | 三源任务检查 + 超时检测 + 心跳入口 | ✅ 已部署 | + +### 3.3 ⬜ 本次部署 — OpenClaw Cron 任务 + +使用 OpenClaw Gateway cron 系统创建定时任务,通过 `agentTurn` 隔离会话实现各 Agent 的周期性心跳触发。 + +#### Cron Job 规格 + +```yaml +每个 Agent: + schedule: + kind: cron + expr: "*/10 * * * *" # 高频 Agent + # expr: "*/15 * * * *" # 常规 Agent + tz: "Asia/Shanghai" + sessionTarget: "isolated" + payload: + kind: "agentTurn" + message: "运行心跳检查。执行你的 HEARTBEAT.md 中的三源任务检查。" +``` + +--- + +## 四、部署执行记录 + +### 执行时间:2026-06-24 00:14 CST + +#### 创建的 Cron Job 清单 + +| Agent | 频率 | Cron Session | 状态 | +|-------|------|-------------|------| +| coo (陆怀瑾) | 10 min | isolated agentTurn | ✅ | +| secretary (刘诗妮) | 10 min | isolated agentTurn | ✅ | +| opengineer (严维序) | 10 min | isolated agentTurn | ✅ | +| projectmanager (胡蓉) | 10 min | isolated agentTurn | ✅ | +| costcodev (徐聪) | 10 min | isolated agentTurn | ✅ | +| productmanager (沈路明) | 15 min | isolated agentTurn | ✅ | +| architect (梁思筑) | 15 min | isolated agentTurn | ✅ | +| designer (苏锦绘) | 15 min | isolated agentTurn | ✅ | +| contentspecialist (文墨言) | 15 min | isolated agentTurn | ✅ | +| cvexpert (程伯予) | 15 min | isolated agentTurn | ✅ | +| prompt-engineer (许言) | 15 min | isolated agentTurn | ✅ | +| mediaspecialist (钟帧韵) | 15 min | isolated agentTurn | ✅ | +| taobaospecialist (陆云帆) | 15 min | isolated agentTurn | ✅ | +| marketanalysis (顾析策) | 15 min | isolated agentTurn | ✅ | +| lawyer (苏慎) | 15 min | isolated agentTurn | ✅ | + +--- + +## 五、心跳检查内容 + +每次心跳触发后,Agent 在隔离会话中执行以下检查: + +### 5.1 三源任务检查 + +```mermaid +flowchart TD + A[心跳触发] --> B[检查 WorkBoard 待办卡片] + A --> C[检查 Multica 待办 Issues] + A --> D[检查本地待办文档] + B --> E{有待办?} + C --> E + D --> E + E -->|有| F[自动执行任务] + E -->|无| G[结束心跳] + F --> H[任务完成?] + H -->|是| I[更新状态] + H -->|否| J[通知 COO] +``` + +### 5.2 超时检测 + +- 进行中任务超过 20 分钟无进展 → 标记"疑似超时" +- 确认超时 → 自动恢复流程 + +### 5.3 依赖检查 + +- 认领任务前检查 `depends_on` +- 依赖未满足 → 保持 todo,不认领 + +### 5.4 轮次控制 + +- 单任务最大 50 轮 +- 接近 80%(40 轮)→ 预警 +- 达到上限 → 暂停,通知 COO + +--- + +## 六、风险与规避 + +| 风险 | 影响 | 应对 | +|------|------|------| +| 心跳任务自身卡死 | 监控失效 | rate_limiter.py 缓存 + 超时保护 | +| 新增 Agent 未配心跳 | 遗漏 | 本方案作为部署 SOP 参考 | +| 会话隔离导致上下文丢失 | 心跳重复 | 心跳仅做检查,不承担复杂任务 | +| Agent 不在线 | 心跳无响应 | 系统事件 fallback,COO 巡检兜底 | + +--- + +## 七、验证方法 + +```bash +# 检查 cron job 列表 +openclaw cron list + +# 手动触发一次心跳 for a specific agent +openclaw cron run + +# 检查心跳脚本健康状态 +python3 shared/scripts/heartbeat_helper.py --health +``` + +--- + +## 八、后续优化方向 + +- [ ] 监控面板集成(BIZ-28 Phase3) +- [ ] 心跳结果聚合展示 +- [ ] Agent 健康状态告警 +- [ ] 自动 Agent 发现(新增 Agent 自动配置心跳) + +--- + +> **运维记录**:严维序 2026-06-24 +> 所有 15 个 Agent 的 HEARTBEAT.md 已部署,共享脚本已就位,cron 定时器已配置。 \ No newline at end of file