context-restoreSkill that restores conversation context when users want to "continue where we left off". Reads compressed context files, extracts key information (recent operations, projects, tasks), and provides structured output to help users quickly resume their work.
Install via ClawdBot CLI:
clawdbot install alexunitario-sketch/context-restore# 基础使用 - 恢复上下文
/context-restore
# 指定恢复级别
/context-restore --level detailed
/context-restore -l minimal
# 命令行工具
python scripts/restore_context.py --level normal
# 获取结构化摘要(供其他技能使用)
python scripts/restore_context.py --summary
# 用户确认流程
python scripts/restore_context.py --confirm
# Telegram 消息分块发送
python scripts/restore_context.py --telegram
# ========== Phase 3: 自动触发集成 ==========
# 自动检测并恢复上下文(检测到变化时自动恢复)
python scripts/restore_context.py --auto
# 自动模式,静默输出(适合 cron)
python scripts/restore_context.py --auto --quiet
# 仅检查变化(返回退出码 0/1)
python scripts/restore_context.py --check-only
# 安装 cron 自动监控任务
python scripts/restore_context.py --install-cron
让用户在 /new(开启新会话)后快速恢复工作状态:
| 场景 | 用户需求 | 恢复内容 |
|------|---------|---------|
| 跨天继续工作 | 昨天做到哪了? | 项目进度、待办任务 |
| 任务切换后回来 | 之前在做什么? | 当前任务状态、关键文件 |
| 中断后继续 | 接着刚才的聊 | 对话历史节点 |
| 周期性回顾 | 这周做了哪些事? | 时间线摘要、成果列表 |
核心词: 恢复上下文、继续之前的工作
扩展词: 恢复、接着、继续、之前聊到哪了、继续之前的工作、
继续之前的任务、接着做、回到之前的工作、恢复工作状态
核心词: restore context、continue previous work
扩展词: continue、resume、what was I doing、where did we leave off、
get back to work、resume session
/context-restore [选项]
/restore [选项]
恢复上下文 [级别]
restore context [level]
| 参数 | 效果 |
|------|------|
| minimal / min / 简短 | 极简模式(核心状态一句话) |
| normal / default / 正常 | 标准模式(默认,项目+任务) |
| detailed / full / 详细 | 完整模式(完整上下文+时间线) |
1. 检测意图 → 关键词/命令识别
2. 加载上下文 → 读取 compressed_context/latest_compressed.json
3. 解析内容 → JSON 或纯文本格式
4. 提取信息 → 项目、任务、操作、时间线
5. 格式化输出 → 根据级别生成报告
6. 发送确认 → 用户确认后继续工作
输出内容:
示例输出:
✅ 上下文已恢复
状态:Hermes Plan 进行中(数据管道完成,待测试)
输出内容:
示例输出:
✅ 上下文已恢复
当前活跃项目:
1. 🏛️ Hermes Plan - 数据分析助手(进度:80%)
2. 🌐 Akasha Plan - 自主新闻系统(进度:45%)
待办任务:
- [高] 编写数据管道测试用例
- [中] 设计 Akasha UI 组件
- [低] 更新 README 文档
最近操作(今天):
- 完成数据清洗模块
- 添加 3 个新 cron 任务
- 修改配置文件
输出内容:
示例输出:
✅ 上下文已恢复(完整模式)
═══════════════════════════════════════
📊 会话概览
═══════════════════════════════════════
当前会话:#2026-02-06-main
活跃 Isolated Sessions:3个
最后活动:2小时前
═══════════════════════════════════════
🎯 核心项目状态
═══════════════════════════════════════
1. Hermes Plan(进行中)- 进度:80%
2. Akasha Plan(待恢复)- 进度:45%
[...完整时间线和历史记录]
from restore_context import (
restore_context,
get_context_summary,
extract_timeline,
compare_contexts,
filter_context
)
# 基础恢复
report = restore_context(filepath, level="normal")
# 获取结构化摘要(供其他技能使用)
summary = get_context_summary(filepath)
# 返回格式:
# {
# "success": True,
# "metadata": {...},
# "operations": [...],
# "projects": [...],
# "tasks": [...],
# "timeline": {...},
# "memory_highlights": [...]
# }
# 提取时间线
timeline = extract_timeline(content, period="weekly", days=30)
# 返回格式:
# {
# "period": "weekly",
# "total_days": 30,
# "total_operations": 15,
# "timeline": [
# {
# "period_label": "Week 6 (Feb 2-8)",
# "date_range": "2026-02-02 to 2026-02-08",
# "operations": [...],
# "projects": [...],
# "highlights": [...]
# }
# ]
# }
# 对比两个版本
diff = compare_contexts(old_file, new_file)
# 返回格式:
# {
# "success": True,
# "added_projects": [...],
# "removed_projects": [...],
# "modified_projects": [...],
# "operations_added": [...],
# "operations_removed": [...],
# "time_diff_hours": 24.0,
# ...
# }
# 过滤内容
filtered = filter_context(content, "Hermes Plan")
python restore_context.py [选项]
基础选项:
--file, -f 上下文文件路径(默认:绝对路径 compressed_context/latest_compressed.json)
--level, -l 恢复级别(minimal/normal/detailed,默认:normal)
--output, -o 输出文件路径
--summary, -s 输出结构化摘要(JSON 格式)
--confirm 添加用户确认流程(询问用户是否继续)
--telegram Telegram 消息分块发送(自动分割长消息)
--since 仅包含指定日期后的操作(YYYY-MM-DD 格式)
--help, -h 显示帮助信息
Phase 2 - 时间线与过滤选项:
--timeline 启用时间线视图
--period 时间线聚合周期(daily/weekly/monthly,默认:daily)
--filter 过滤关键词,只显示匹配内容
--diff 对比两个版本(需要两个文件路径)
Phase 3 - 自动触发选项:
--auto 自动模式:检测到变化时自动恢复,无需用户确认
--quiet 静默模式:仅显示必要消息(与 --auto 配合使用)
--check-only 仅检查变化,不恢复(返回退出码 0/1)
--install-cron 生成并安装 cron 自动监控任务
--cron-interval Cron 间隔分钟数(默认:5,与 --install-cron 配合)
# 使用默认配置
python restore_context.py
# 详细模式输出到文件
python restore_context.py --level detailed --output report.txt
# 最小模式
python restore_context.py -l minimal
# 自定义文件路径
python restore_context.py -f /path/to/context.json
# 结构化 JSON 输出
python restore_context.py --summary
# 用户确认流程
python restore_context.py --confirm
# Telegram 消息分块发送
python restore_context.py --telegram
# ========== Phase 2: 时间线与过滤 ==========
# 按天显示时间线(默认)
python restore_context.py --timeline --period daily
# 按周显示时间线
python restore_context.py --timeline --period weekly
# 按月显示时间线
python restore_context.py --timeline --period monthly
# 过滤特定内容
python restore_context.py --filter "Hermes"
# 只显示项目相关信息
python restore_context.py --filter "project"
# ========== Phase 2: 上下文对比 ==========
# 对比两个版本
python restore_context.py --diff old.json new.json
# 对比并输出详细报告
python restore_context.py --diff old.json new.json --level detailed
# ========== Phase 3: 自动触发示例 ==========
# 自动检测并恢复(检测到变化时自动恢复)
python restore_context.py --auto
# 自动模式,静默输出(适合 cron)
python restore_context.py --auto --quiet
# 检查变化(外部监控使用)
python restore_context.py --check-only
echo $? # 0=无变化, 1=有变化
# 安装 cron 任务
python restore_context.py --install-cron
# 安装 cron 任务(每10分钟)
python restore_context.py --install-cron --cron-interval 10
# 完整自动恢复(详细级别)
python restore_context.py --auto --level detailed
✅ **上下文已恢复** [级别标识]
[主要内容块]
---
💡 **操作建议**
• 建议操作 1
• 建议操作 2
✅ **上下文已恢复**
📊 **压缩信息:**
- 原始消息: {original_count}
- 压缩后: {compressed_count}
- 压缩率: {compression_ratio}%
🔄 **最近操作:**
- 操作1
- 操作2
🚀 **项目:**
- **项目名称** - 描述
当消息超过 4000 字符时,自动分块发送:
# Telegram 模式下,输出会自动分割
python restore_context.py --telegram
# [1/3]
# 第一块内容...
# [2/3]
# 第二块内容...
# [3/3]
# 第三块内容...
| 平台 | 格式调整 |
|------|---------|
| Telegram | 使用 emoji 前缀,自动分块发送(--telegram) |
| Discord | 使用 embed 格式 |
| WhatsApp | 无 markdown,简化格式 |
| CLI | 纯文本,树形结构 |
| 场景 | 处理方式 | 用户消息 |
|------|---------|---------|
| 文件不存在 | 创建空上下文,记录警告 | "未找到历史上下文,将从新会话开始" |
| 文件损坏 | 尝试降级读取 | "上下文文件异常,已重置为初始状态" |
| 解析失败 | 返回 minimal 版本 | "部分上下文无法恢复,已获取核心信息" |
| 权限错误 | 记录日志,静默失败 | "无法访问上下文文件,请检查权限" |
Context-Restore 依赖:
├── context-save (保存上下文)
├── memory_get (读取 MEMORY.md)
└── memory_search (搜索历史)
Context-Restore 提供给:
├── summarize (项目摘要)
├── task-manager (待办列表)
└── weekly-review (时间线回顾)
**context-save**:会话结束时自动保存上下文
**context-restore**:会话开始时恢复上下文
配合流程:
1. 用户结束会话 → context-save 自动保存
2. 用户 new session → context-restore 自动/手动触发
3. 用户确认 → 继续工作
from restore_context import get_context_summary
def my_skill():
summary = get_context_summary()
if summary['success']:
# 使用项目信息
for project in summary['projects']:
process_project(project)
# 使用任务信息
for task in summary['tasks']:
schedule_task(task)
# 使用最近操作
for operation in summary['operations']:
log_operation(operation)
1. 用户进入新会话
2. 说 "继续之前的工作"
3. 查看恢复报告
4. 选择继续的任务
5. 开始工作
| 使用场景 | 推荐级别 |
|---------|---------|
| 快速确认当前状态 | Minimal |
| 日常继续工作 | Normal(默认) |
| 深度回顾/汇报 | Detailed |
# 恢复上下文 + 获取详细信息
/context-restore --level normal
-> 然后调用 memory_get 获取 MEMORY.md 详情
# 恢复上下文 + 搜索特定话题
/context-restore --level normal
-> 然后调用 memory_search "某个关键词"
# SKILL_CONFIG.md
context-restore:
default_level: "normal"
auto_trigger: true
output:
show_timeline: true
max_projects: 5
max_recent_actions: 10
include_file_list: true
limits:
minimal_token: 50
normal_token: 200
detailed_token: 500
./compressed_context/latest_compressed.json
./memory/MEMORY.md # 长期记忆
./memory/YYYY-MM-DD.md # 每日记录
./projects/*/status.json # 项目状态文件
{
"version": "1.0",
"lastUpdated": "2026-02-06T23:42:00Z",
"sessions": {
"main": {"id": "main-2026-02-06", "active": true},
"isolated": [...]
},
"projects": {...},
"recentActions": [...],
"timeline": [...]
}
--timeline 时间线视图按不同周期聚合历史操作,提供更清晰的进度回顾:
# 按天显示(默认)
python restore_context.py --timeline --period daily
# 按周显示
python restore_context.py --timeline --period weekly
# 按月显示
python restore_context.py --timeline --period monthly
# 限制时间范围(最近30天)
python restore_context.py --timeline --period weekly --days 30
输出示例(weekly):
📅 Week 6 (Feb 2-8)
├── ✅ 完成数据管道测试
├── ✅ 部署新功能到生产环境
└── 🚀 项目: Hermes Plan, Akasha Plan
📅 Week 5 (Jan 26 - Feb 1)
├── ✅ 启动 Akasha UI 改进
└── 🚀 项目: Hermes Plan
--filter 内容过滤只显示匹配特定条件的内容:
# 只显示与 Hermes 相关的内容
python restore_context.py --filter "Hermes"
# 只显示项目相关信息
python restore_context.py --filter "project"
# 组合使用
python restore_context.py --filter "Hermes" --level detailed
过滤逻辑:
--diff 上下文对比比较两个版本的上下文差异:
# 基本对比
python restore_context.py --diff old.json new.json
# 详细对比
python restore_context.py --diff old.json new.json --level detailed
# 输出到文件
python restore_context.py --diff old.json new.json --output diff_report.txt
对比报告包含:
# 时间线提取
extract_timeline(content: str, period: str = "daily", days: int = 30) -> dict
# 内容过滤
filter_context(content: str, filter_pattern: str) -> str
# 上下文对比
compare_contexts(old: str, new: str) -> dict
# 格式化对比报告
format_diff_report(diff: dict, old_file: str, new_file: str) -> str
# 查看本周进度
python restore_context.py --timeline --period weekly
# 只关注 Hermes 项目
python restore_context.py --filter "Hermes" --timeline --period weekly
#!/bin/bash
# 生成每日对比报告
python restore_context.py --diff context_yesterday.json context_today.json \
--output daily_diff_$(date +\%Y\%m\%d).txt
使用哈希算法检测上下文是否发生变化:
from restore_context import hash_content, detect_context_changes, load_cached_hash, save_cached_hash
# 检测变化
current_hash = hash_content(current_content)
previous_hash = load_cached_hash()
if detect_context_changes(current_content, previous_content):
print("Context changed!")
# 保存哈希缓存
save_cached_hash(current_hash, context_file)
--auto 自动触发模式自动检测上下文变化并在检测到变化时自动恢复:
# 自动检测并恢复
python restore_context.py --auto
# 自动但静默模式(适合 cron)
python restore_context.py --auto --quiet
# 指定恢复级别
python restore_context.py --auto --level detailed
--check-only 检查模式仅检查变化而不恢复,适合外部监控系统:
# 检查变化(返回退出码)
python restore_context.py --check-only
# 退出码 0: 无变化
# 退出码 1: 检测到变化
--install-cron Cron 集成安装自动上下文监控任务:
# 安装 cron 任务(默认每5分钟检查)
python restore_context.py --install-cron
# 自定义检查间隔
python restore_context.py --install-cron --cron-interval 10
输出示例:
✅ Cron script created: /home/athur/.openclaw/workspace/skills/context-restore/scripts/auto_context_monitor.sh
ℹ️ To install, run:
echo "*/5 * * * * /home/athur/.openclaw/workspace/skills/context-restore/scripts/auto_context_monitor.sh >> /var/log/context_monitor.log 2>&1" >> ~/.crontab
crontab ~/.crontab
# 设置 cron 任务,每5分钟自动检查并恢复
*/5 * * * * python3 /home/athur/.openclaw/workspace/skills/context-restore/scripts/restore_context.py --auto --quiet >> /var/log/context_restore.log 2>&1
#!/bin/bash
# 外部监控系统脚本
if python3 restore_context.py --check-only; then
echo "No changes detected"
else
echo "Context changed - triggering restore"
python3 restore_context.py --auto
fi
在用户新会话开始时自动触发恢复:
# 在会话初始化时调用
from restore_context import check_and_restore_context
result = check_and_restore_context(
context_file='./compressed_context/latest_compressed.json',
auto_mode=True,
quiet=False,
level='normal'
)
if result['changed'] and result['restored']:
print(result['report'])
# 变化检测函数
hash_content(content: str) -> str
detect_context_changes(current: str, previous: str) -> bool
load_cached_hash(cache_file: str) -> Optional[str]
save_cached_hash(content_hash: str, context_file: str, cache_file: str) -> bool
# 自动恢复函数
check_and_restore_context(
context_file: str,
auto_mode: bool = False,
quiet: bool = False,
level: str = 'normal'
) -> dict
# 通知函数
send_context_change_notification(context_file: str, auto_mode: bool) -> bool
# Cron 集成函数
generate_cron_script() -> str
install_cron_job(script_path: str = None, interval_minutes: int = 5) -> bool
当检测到上下文变化时,可以触发外部通知:
# 通知脚本示例 (notify_context_change.py)
import sys
if __name__ == '__main__':
# 解析参数
context_file = sys.argv[2] # --file 参数
auto_mode = '--auto' in sys.argv
# 发送通知(可集成 Telegram、邮件等)
send_telegram_message(f"Context changed: {context_file}")
send_email_notification(f"Context changed on {auto_mode}")
skills/context-restore/
├── SKILL.md # 技能定义(本文档)
├── README.md # 项目说明
├── references/
│ └── design.md # 设计决策文档
├── scripts/
│ ├── __init__.py
│ ├── restore_context.py # 核心实现(完整代码)
│ │ └── 函数:
│ │ ├── load_compressed_context() # 加载上下文文件
│ │ ├── parse_metadata() # 解析元数据
│ │ ├── extract_recent_operations() # 提取最近操作
│ │ ├── extract_key_projects() # 提取项目信息
│ │ ├── extract_ongoing_tasks() # 提取任务信息
│ │ ├── extract_memory_highlights() # 提取MEMORY引用
│ │ ├── extract_timeline() # Phase 2: 提取时间线
│ │ ├── filter_context() # Phase 2: 过滤内容
│ │ ├── get_context_summary() # 获取结构化摘要
│ │ ├── compare_contexts() # Phase 2: 对比上下文
│ │ ├── format_diff_report() # Phase 2: 格式化对比报告
│ │ ├── restore_context() # 主入口函数
│ │ ├── hash_content() # Phase 3: 内容哈希
│ │ ├── detect_context_changes() # Phase 3: 变化检测
│ │ ├── load_cached_hash() # Phase 3: 加载缓存哈希
│ │ ├── save_cached_hash() # Phase 3: 保存缓存哈希
│ │ ├── check_and_restore_context() # Phase 3: 自动恢复
│ │ ├── send_context_change_notification() # Phase 3: 通知
│ │ ├── generate_cron_script() # Phase 3: 生成cron脚本
│ │ └── install_cron_job() # Phase 3: 安装cron任务
│ └── robustness_improvements.py # 健壮性改进模块
│
├── docs/
│ ├── USAGE.md # 使用指南(完整示例)
│ ├── API.md # API 参考文档
│ └── auto_context_monitor.sh # Phase 3: 自动监控脚本
└── tests/
├── __init__.py
├── test_restore_basic.py # 基础功能测试
├── test_error_handling.py # 错误处理测试
└── test_integration.py # 集成测试
AI Usage Analysis
Analysis is being generated… refresh in a few seconds.
Advanced filesystem operations - listing, searching, batch processing, and directory analysis for Clawdbot
Perform advanced filesystem tasks including listing, recursive searching by name or content, batch copying/moving/deleting files, and analyzing directory siz...
Essential SSH commands for secure remote access, key management, tunneling, and file transfers.
Extract text from PDF files for LLM processing
The directory for AI agent services. Discover tools, platforms, and infrastructure built for agents.
Advanced filesystem operations - listing, searching, batch processing, and directory analysis for Clawdbot