SuperAPI AI 工具集

context-manager

办公与效率

查看项目

更新于 10-15 07:54

技能介绍

用途

Context Manager 是一个用于 OpenClaw 会话的 AI 上下文管理技能。它的核心目标是处理长会话带来的上下文膨胀问题,通过智能摘要压缩会话内容,让会话保持快速和聚焦。

主要能力

  • 会话列表与状态查看:list 命令列出所有会话及其 token 使用情况;status [KEY] 显示特定会话的详细状态,包括会话键、会话 ID、类型、模型、阈值、token 数和占用百分比。
  • AI 摘要生成:summarize [KEY] 为只读安全操作,向智能体发送提示词,让其总结自身上下文,摘要保存到 memory/compressed/ 目录。
  • 完整压缩流程:summarize [KEY] --replace 执行破坏性操作,包括生成摘要、备份、重置会话和注入压缩上下文。
  • 阈值与配置管理:支持 set-threshold N(50-99%,默认 80)、set-depth LEVEL(brief/balanced/comprehensive)、set-quiet-hours HH 等配置命令。
  • 阈值检查:check [KEY] 和 check-all 用于检查会话是否超过压缩阈值。

工作原理

  1. AI 摘要:向智能体发送提示词,要求其总结自身上下文。
  2. 备份:将原始 JSONL 会话文件保存到 memory/compressed/。
  3. 重置:删除 JSONL 文件(官方重置方法)。
  4. 注入:将 AI 生成的摘要作为新会话的第一条消息发送。
  5. 结果:会话键不变,生成新的会话 ID,上下文被压缩。

关键点在于智能体对自身上下文有完整可见性,因此能生成尽可能好的摘要。

使用方式

基本命令示例:

# 列出所有会话及使用统计
~/openclaw/skills/context-manager/compress.sh list

# 查看特定会话状态
~/openclaw/skills/context-manager/compress.sh status agent:main:main

# 生成 AI 摘要(只读、安全)
~/openclaw/skills/context-manager/compress.sh summarize agent:main:main

# 压缩会话:生成摘要、重置、注入(破坏性)
~/openclaw/skills/context-manager/compress.sh summarize agent:main:main --replace

会话命令包括:list、status [KEY]、summarize [KEY]、summarize [KEY] --replace、compress [KEY](旧版基于 grep 的提取,不推荐)、check [KEY]、check-all。配置命令包括:set-threshold N、set-depth LEVEL、set-quiet-hours HH、help。

适用场景

  • 上下文使用率接近 70-80% 以上时。
  • 长时间会话积累了大量对话历史时。
  • 会话开始变慢或失去连贯性之前。
  • 主动维护快速、聚焦的会话。

输出文件

压缩时在 memory/compressed/ 中生成以下文件:

  • {timestamp}.ai-summary.md:AI 生成的会话摘要。
  • {timestamp}.session-backup.jsonl:原始会话的完整备份(如需可恢复)。
  • {timestamp}.transcript.md:原始转录提取(旧版)。
  • {timestamp}.summary.md:基于 grep 的摘要(旧版)。

限制与要求

  • 需要 openclaw 且网关必须运行。
  • 需要 jq 进行 JSON 解析(brew install jq)。
  • 需要网关访问权限,脚本使用 openclaw agent 和 openclaw sessions。
  • --replace 为破坏性操作,会删除并重置会话。
  • /reset 斜杠命令只在聊天界面有效,通过 openclaw agent --session-id 发送会被当作普通消息处理。
  • 若摘要提取失败,脚本使用 2>/dev/null 避免 Node 弃用警告破坏 JSON。
  • 恢复备份可使用:cp memory/compressed/{timestamp}.session-backup.jsonl ~/.openclaw/agents/main/sessions/{sessionId}.jsonl。
  • 排查日志可使用:openclaw logs --limit 50 --json | grep -i "error\|fail"。

最佳实践

  • 先备份:脚本会自动备份,但测试前也可手动备份。
  • 先在非关键会话上测试:例如先在 Slack 频道或 cron 会话上尝试,再用于主会话。
  • 检查摘要:先运行不带 --replace 的 summarize 验证摘要质量。
  • 监控 token 数:使用 status 验证压缩是否生效。