Community生产力与协作github.com

ce-pickup:本地会话续传提取器

使用本地模型从过去的 Hermes 会话中提取 ce-handoff/v1 文档,零前沿代币成本。

ce-pickup:本地会话续传提取器 是什么?

该技能允许用户通过本地运行的 Ollama 模型从过去已结束的 Hermes 会话中提取结构化手稿(ce-handoff/v1),而无需消耗任何订阅配额或前沿模型代币。它通过 SQLite 直接读取本地状态数据库,并调用 Ollama API 进行提取,输出标准兼容的 Markdown 文件,可直接通过 `/ce-handoff resume <path>` 恢复会话。支持的平台包括所有可以运行 Hermes 和 Ollama 的环境(macOS、Linux 等),特别适合需要续传冷会话、避免上下文窗口过大或节省成本的场景。默认使用 Ornith-1.5-35B-A3B 本地模型,并包含一个上下文警戒守护进程用于监控活跃会话的上下文大小。

兼容平台~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/wesleymatosdev/skills/tree/main/workflow/ce-pickup

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

ce-pickup

使用本地模型从过去的 Hermes 会话中提取 ce-handoff/v1 文档。零前沿代币成本。输出为标准 ce-handoff/v1 Markdown,因此 /ce-handoff resume <path> 可立即使用。

在冷会话上运行会消耗订阅配额才能赶上的情况下,使用此技能代替运行 /ce-handoff。

何时使用

  • 用户想要恢复未完成的会话,而不花前沿代币重新阅读它
  • 需要从一个或多个过去的会话中获取手稿,但上下文窗口已满载
  • 用户要求对旧会话进行“拾取”或“追赶”
  • 在大型冷会话上运行 /ce-handoff 成本过高

快速开始

bash ~/.hermes/scripts/ce-pickup.sh SESSION_ID[,SESSION_ID,...]

默认输出到 /tmp/compound-engineering-$(id -u)/ce-pickup/。

然后从任何输出文件恢复:

/ce-handoff resume /tmp/compound-engineering-<uid>/ce-pickup/<slug>.md

参数

  • 参数 1(必需):逗号分隔的会话 ID(来自 session_search 或 Hermes 浏览)
  • 参数 2(可选):Ollama 模型名称 — 默认为 hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q5_K_M
  • 参数 3(可选):输出目录覆盖

环境变量覆盖(用于测试和备用主机):CE_PICKUP_DB(默认 ~/.hermes/state.db)、CE_PICKUP_OLLAMA_URL(默认 http://localhost:11434/api/chat)、CE_PICKUP_MAX_CHARS(默认 24000)。

模型路由

默认:Ornith-1.5-35B-A3B-GGUF:Q5_K_M — 已验证良好的提取质量,本地运行。

如果 Ornith 未加载,任何可用的本地 Ollama 模型都可以工作。不要使用前沿模型(那将违背目的)。

检查可用模型:ollama list

工作原理

  1. 通过 sqlite3 读取 ~/.hermes/state.db — 无 Python,无 TCC 提示
  2. 按时间戳顺序提取 user + assistant 消息
  3. 将对话记录截断为 24000 个字符(约 6000 个 token)— 足够进行有意义的提取
  4. 通过 curl 调用 Ollama /api/chat,使用结构化提取提示
  5. 将 ce-handoff/v1 前置元数据和模型主体写入输出目录
  6. 文件名为会话标题的小写形式;冲突时添加数字后缀

输出格式

每个输出文件都是有效的 ce-handoff/v1,包含:

  • 前置元数据 artifact_contract: "ce-handoff/v1"
  • session_id、cwd、branch、repository(如果可用)
  • 提取内容涵盖:目标、已完成工作、当前状态、决策/约束、阻塞项、失败方法、参考资料、后续步骤

上下文警戒守护进程(配套)

scripts/context-ceiling-watchdog.sh 是一个确定性的无代理监视器,用于实时会话上下文。它估算每个实时会话的当前上下文(active=1 消息内容 ÷ 4 字符/token — 切勿使用 sessions.input_tokens,这是包括上下文重读的累计计费量)并强制执行:

  • >= 50k 提醒 — 单行提示,每小时重复一次
  • >= 70k 警报 — 检查点警告,每 30 分钟重复一次
  • >= 80k 提取 — 本地运行 ce-pickup 并报告 ce-handoff/v1 路径;提取后,仅当会话再上升约 10k 时才会重新警报(临界)

除非触发阈值,否则它保持静默(空标准输出),因此可以直接插入带有变更检测的无代理 cron 作业。状态保存在 ~/.cache/context-ceiling-watchdog/ 中(纯 TSV — 无 LLM 内存,无递归连续性)。它从不写入 Hermes 配置或运行时状态;state.db 以 sqlite3 -readonly 模式打开。

无需真实模型即可测试:运行 bash scripts/mock-ollama.sh 21143 &,然后运行 bash scripts/test-watchdog.sh(固定数据库 + 缩放阈值,20 次检查)。

陷阱

来自 Python 的 TCC 对话框(macOS Sequoia+):作为具有广泛授权的应用程序的子进程运行 Python 可能会触发 iCloud Drive 或 Documents 的 TCC 提示 — 即使只读取 ~/.hermes/state.db。此 Shell 脚本仅使用 sqlite3 + curl + jq + awk,不会触发 TCC。除非用户明确接受 TCC 提示,否则切勿使用此工作流的基于 Python 的实现。

对话记录截断:24000 个字符覆盖大多数会话。非常长的会话(200 多条消息,包含大型工具输出)会被尾部截断。如果手稿感觉不够充实,可拆分为更窄范围的查询。

思考模型 + num_predict:Ollama 的 num_predict 限制生成的总 token 数(包括 message.thinking)。思考模型(Ornith 就是其中之一)可能会在思考通道中消耗整个预算,并返回空或尾部截断的 message.content — 脚本只读取该字段。症状:"来自 Ollama 的空响应" 或手稿在句子中间停止,看起来像模型质量问题,但实际上是有效负载错误。脚本发送 think:false(带有一个无标志重试回退,适用于拒绝该标志的模型)。来自 Wesley 的范围说明:该标志仅对此机械提取任务正确 — Ornith 的思考在 agentic 工程使用中是一种资产,而一次提取运行并不能说明 agentic 能力。不要将糟糕的提取泛化为对模型的评价。

Ollama 必须正在运行:在调用前使用 ollama list 检查。

输出位于 /tmp:操作系统可能在重启时回收。如果要在重启后恢复,请复制到稳定路径。

脚本

规范实现位于此技能的 scripts/ce-pickup.sh — 通过其技能路径调用。主机端副本历史上位于 ~/.hermes/scripts/ce-pickup.sh(记录为符号链接);在存在该副本但不是符号链接的机器上,它已过时 — 请信任技能目录。

另请参阅:ce-handoff 技能,了解手稿文档创建后的恢复工作流程。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能