返回顶部
s

seamless-restart无缝重启

>-

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
233
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

seamless-restart

无缝重启

零停机网关重启协议,支持自动上下文恢复。防止代理在网关重启后丢失上下文并陷入沉默的常见问题。

为何存在此协议

网关重启(配置变更、更新、手动重启)会导致上下文丢失,因为新的API会话启动时没有对话历史记录。没有此协议,代理醒来时不会记得自己正在做什么,也无法主动通知用户。

协议内容

每次网关重启必须按顺序执行以下三个步骤:

步骤1:保存状态到NOW.md

重启前,在工作区根目录更新NOW.md:

markdown

NOW.md - 当前状态快照

最后更新

  • - 时间:[当前时间戳]
  • 会话:[用户所在的频道/聊天]
  • 状态:[正在发生的事情]

活跃任务

  • - [列出任何进行中的任务]

近期上下文

  • - [下一个会话需要知道的关键上下文点]

重启后操作

  • - [重启后要执行的具体操作,例如通知用户、继续任务]

保持简洁。此文件在每个会话启动时都会被读取,因此避免内容臃肿。

步骤2:通知 + 安排恢复定时任务

向用户发送重启前通知,然后安排一个一次性定时任务,在重启后约1分钟触发以执行恢复:

发送通知:

message(action=send, channel=<当前频道>, target=<当前频道ID>,
message=⚡ 正在重启网关——约1分钟后恢复...)

安排恢复定时任务:

cron(action=add, job={
name: restart-recovery,
schedule: {kind: at, at: <从现在起1分钟后,ISO-8601 UTC格式>},
payload: {
kind: systemEvent,
text: 重启恢复:你刚刚重启了。立即读取NOW.md。
然后通知用户你已恢复,并总结你之前正在做什么。
将通知发送到重启前用户所在的同一频道。
},
sessionTarget: main,
enabled: true
})

定时任务触发后会自动删除(一次性任务)。

步骤3:执行重启

现在重启网关:

gateway(action=restart, note=<人类可读的原因>)

或者进行配置变更:

gateway(action=config.patch, raw=<配置>, note=<原因>)

两者都会触发SIGUSR1重启。

重启后(自动)

当恢复定时任务在重启后触发时:

  1. 1. 读取NOW.md 以恢复上下文
  2. 发送恢复通知 给用户,确认重启完成
  3. 恢复NOW.md中列出的任何活跃任务
  4. 清除NOW.md中的重启后操作部分(设置为无)

按频道适配通知

根据用户聊天的位置调整通知目标:

频道通知方式
Discordmessage(action=send, channel=discord, target=<频道ID>, guildId=<服务器ID>)
Telegram
message(action=send, channel=telegram, target=<聊天ID>) |
| 其他 | 使用重启前会话中的频道和目标 |

始终在NOW.md中包含频道目标,以便恢复定时任务知道发送到哪里。

边界情况

短时间内多次重启:
如果在恢复定时任务触发前需要再次重启,取消旧的定时任务并创建新的。一次只能存在一个恢复定时任务。

子代理任务期间重启:
在NOW.md中记录任何正在运行的子代理。重启后,进行中的子代理将被终止。应告知用户哪些任务被中断。

意外重启(崩溃):
此协议仅涵盖有意重启。对于崩溃恢复,心跳机制是后备方案——如果代理错过心跳,应在下次激活时检查NOW.md。

与AGENTS.md集成

将此内容添加到用户规则或操作部分:

markdown

  • - 网关重启协议:任何网关重启都必须使用无缝重启技能。三个步骤:(1) 更新NOW.md,(2) 通知 + 设置恢复定时任务,(3) 重启。未完成步骤1和2前不得重启。

示例:完整重启流程

  1. 1. 代理因配置变更需要重启
  1. 2. 代理更新NOW.md:
状态:正在应用新的Gemini API密钥。会话:Discord #杂项。 重启后:在Discord #杂项中通知Zihao配置已应用。
  1. 3. 代理发送:⚡ 正在应用配置变更——重启中,约1分钟后恢复...
  1. 4. 代理创建T+60秒的一次性定时任务:
systemEvent → 重启恢复:读取NOW.md,通知用户,继续任务。
  1. 5. 代理调用:gateway(action=config.patch, raw={...}, note=新API密钥)
  1. 6. 网关重启。约60秒后,定时任务触发。
  1. 7. 代理读取NOW.md,发送:✅ 已恢复在线。配置变更成功应用。
  1. 8. 代理清除NOW.md中的重启后操作。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 seamless-restart-1776125005 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 seamless-restart-1776125005 技能

通过命令行安装

skillhub install seamless-restart-1776125005

下载

⬇ 下载 seamless-restart v1.0.0(免费)

文件大小: 2.92 KB | 发布时间: 2026-4-15 14:16

v1.0.0 最新 2026-4-15 14:16
Initial release. Zero-downtime gateway restart protocol with NOW.md state persistence, one-shot recovery cron, and automatic post-restart notification.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部