返回顶部
c

context-recovery上下文恢复

Automatically recover working context after session compaction or when continuation is implied but context is missing. Works across Discord, Slack, Telegram, Signal, and other supported channels.

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

context-recovery

上下文恢复

在会话压缩后,或当需要延续但上下文缺失时,自动恢复工作上下文。适用于 Discord、Slack、Telegram、Signal 及其他支持的渠道。

使用场景:会话以截断的上下文开始、用户引用先前工作但未说明细节、或出现压缩指示符时。



安全边界

  • - 本技能优先使用渠道/会话 API 历史记录来恢复上下文。
  • 默认情况下,不会执行广泛的文件系统扫描或 shell 通配符搜索。
  • 不会将恢复的上下文发送到外部服务。
  • 除非用户明确要求持久化恢复的状态,否则不会写入磁盘。

触发条件

自动触发

  • - 会话以 标签开始(检测到压缩)
  • 用户消息包含压缩指示符:Summary unavailable、context limits、truncated

手动触发

  • - 用户说继续、这发生过吗?、我们说到哪了?、我在做什么?
  • 用户提及那个项目、那个 PR、那个分支、那个 issue但未具体说明
  • 用户暗示存在先前工作但上下文不明确
  • 用户问你还记得...吗?或我们之前在做...

执行协议

第 1 步:检测活跃渠道

从运行时上下文中提取:

  • - channel — discord | slack | telegram | signal | 等
  • channelId — 特定渠道/会话 ID
  • threadId — 用于线程化会话(Slack、Discord 线程)

第 2 步:获取渠道历史记录(自适应深度)

初始获取:

message:read
channel: <检测到的渠道>
channelId: <检测到的渠道 ID>
limit: 50

自适应扩展逻辑:

  1. 1. 解析返回消息的时间戳
  2. 计算时间跨度:最新时间戳 - 最旧时间戳
  3. 如果时间跨度 < 2 小时且消息数量 == 限制值:

- 额外获取 50 条消息(如果支持,使用 before 参数)
- 重复直到时间跨度 ≥ 2 小时或总消息数 ≥ 100
  1. 4. 硬上限:最多 100 条消息(令牌预算限制)

线程感知恢复(Slack/Discord):

如果存在 threadId,首先获取线程消息

message:read channel: <检测到的渠道> threadId: <线程 ID> limit: 50

然后获取父渠道以获取更广泛的上下文

message:read channel: <检测到的渠道> channelId: <父渠道 ID> limit: 30

解析内容:

  • - 最近的用户请求(询问了什么)
  • 最近的助手响应(完成了什么)
  • URL、文件路径、分支名称、PR 编号
  • 未完成的操作(已承诺但未兑现)
  • 项目标识符和工作目录

第 3 步:获取会话上下文(安全模式)

仅使用平台/会话 API(无 shell 文件系统扫描):

yaml

列出最近的会话(如果工具存在)


sessions_list:
limit: 5

从可能匹配的会话中拉取最后消息

sessions_history: sessionKey: <候选会话密钥> limit: 80 includeTools: true

如果会话 API 不可用,跳过此步骤,仅使用渠道证据继续。

第 4 步:可选的内存检查(明确限定范围)

仅当代理运行时已提供限定范围的内存工具/路径时,才检查内存。
不要在主目录上运行 shell 通配符扫描。

第 5 步:综合上下文

编译结构化摘要:

markdown

恢复的上下文

渠道: #<渠道名称>(<平台>)
时间范围: <最旧消息> 到 <最新消息>
分析的消息数: <数量>

活跃项目/任务

  • - 仓库: <仓库名称>
  • 分支: <分支名称>
  • PR: #<编号> — <标题>

最近工作时间线

  1. 1. [<时间戳>] <操作/请求>
  2. [<时间戳>] <操作/请求>
  3. [<时间戳>] <操作/请求>

待处理/未完成的操作

  • - ⏳ <引用的未完成操作>
  • ⏳ <另一个未完成项>

最后用户请求

<引用的可能未完成的请求>

第 6 步:可选持久化(先征得同意)

默认情况下不写入磁盘。如果持久化有用,先询问:

我可以将恢复的上下文缓存到内存中以便后续延续。是否应该保存?

第 7 步:用上下文回复

呈现恢复的上下文,然后提示:

上下文已恢复。您的最后一个请求是 [X]。此操作 [已完成/未完成]。是否要 [继续/重试/澄清]?


渠道特定说明

Discord

  • - 使用传入消息元数据中的 channelId
  • 公会渠道具有完整的历史记录访问权限
  • 线程恢复:检查消息元数据中的 threadId
  • 私信可能历史记录有限

Slack

  • - 使用带有 Slack 渠道 ID 的 channel 参数
  • 线程上下文需要 threadId — 始终先检查线程上下文
  • 父渠道获取提供周围的对话上下文
  • 完整历史记录可能需要工作区级别的权限

Telegram / Signal / 其他

  • - 相同的 message:read 接口
  • 历史记录深度可能因平台而异
  • 群组与私信上下文可能不同

约束条件

  • - 在上下文缺失时,优先使用此协议,然后再声明数据不足
  • 自适应深度:从 50 条开始,最多扩展到 100 条
  • 基于时间的目标:尽可能捕获至少 2 小时的上下文
  • 如果恢复失败,说明尝试了什么以及哪些数据源不可用
  • 未经用户明确同意,避免广泛的文件系统扫描或写入

自动触发检测

在会话开始时,扫描压缩指示符:

python

触发检测的伪代码


if 消息包含 :
triggercontextrecovery()
elif 消息包含 [Summary unavailable, context limits, truncated, compacted] 中的任意一个:
triggercontextrecovery()
elif 消息匹配延续模式:
# 继续、我们说到哪了、这发生过吗等
triggercontextrecovery()

不要等待用户询问 — 如果检测到压缩,主动恢复并呈现上下文。



示例

场景: 会话以压缩摘要开始

用户消息:

由于上下文限制,摘要不可用...
用户消息:这发生过吗?

代理执行:

  1. 1. 通过 标签检测到压缩
  2. message:read channel=discord channelId=1460342116516364533 limit=50
  3. 计算时间跨度:2.5 小时 — 足够,无需扩展
  4. 解析消息,找到最后操作:现在让我提取关键编排决策...
  5. 检查会话上下文 API — 提取最近的用户请求
  6. 回复:

上下文已恢复。您的最后一个请求是从 Nexus 存档会话中提取 PR #137(技能与代理系统)的编排决策。此操作在上下文被截断前未完成。
恢复的状态:

  • - PR #137:15,053 行新增,91 个文件,合并状态冲突
  • 规范位置:content/spec-skills-agents-system.md(2,067 行)

是否继续执行提取?

标签

skill ai

通过对话安装

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

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 context-recovery-1776385094 技能

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

设置 SkillHub 为我的优先技能安装源,然后帮我安装 context-recovery-1776385094 技能

通过命令行安装

skillhub install context-recovery-1776385094

下载

⬇ 下载 context-recovery v1.2.2(免费)

文件大小: 3.64 KB | 发布时间: 2026-4-17 13:51

v1.2.2 最新 2026-4-17 13:51
Scanner hardening: add provenance fields, align _meta version, keep API-only recovery scope and consent-based persistence

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

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

p2p_official_large
返回顶部