JohnXu22786/session-titler
JohnXu22786★ 0TypeScript最后同步: 2026-08-16
Two-phase session captioning for the DeepSeek Harness: instant keyword captions while busy, budget-model refinement when idle
README 摘要
dsh-session-caption 为 DeepSeek Harness(dsh)提供 两阶段会话题词 (自动命名):会话进行中先用关键词即时生成标题,空闲后再调用最经济的模型精修。全程后台运行,不打断主流程,不为标题多花一分冤枉钱。 解决的问题 Harness 的新会话默认只有时间戳编号,长会话列表中难以分辨。已有方案要么只做「等空闲再生成」(用户等待期间没有标题),要么每轮都调用模型(成本高)。本插件把两个思路拆成互补的两段: - 阶段一 · 即时题词 :用户消息一落地,立即从最新消息提取关键词,标题几乎零延迟出现, 不调用任何模型 ; - 阶段二 · 空闲精修 :会话安静下来后,用一次辅助调用把标题从「关键词串」升级为通顺的短语,并顺带产出 一句话会话摘要 (同一请求内完成,不额外计费); - 成本护栏 :精修默认只使用注册模型中最便宜的一档( flash / haiku / mini 等),可显式指定模型,也可完全关闭阶段二。 功能特性 - 两阶段流水线 :即时关键词题词 → 空闲预算模型精修,标题随会话演进; - 成本控制 :预算路由按名称模式从已注册模型目录中挑选最便宜模型并缓存,模型拓扑变化自动失效; - 原创关键词算法 :噪声剥离(代码块/URL/Markdown)→ 脚本检测(拉丁/CJK)→ 停用词与虚词过滤 → 词序保持/字符预算截断,中英日韩均可用; - 多语言 :标题语言跟随消息语言,拉丁标题按词数、CJK 标题按字符数控制长度; - 标题去重 :同一标题不重复写入;跨会话重名时自动追加编号后缀( Fix Login Bug (2) ); - 摘要联动 :精修时顺带生成一行会话摘要,以 session/caption-note 事件写入会话日志,供列表 UI、导出工具等消费; - 尊重人工标题 :用户手动改名后自动生成完全停止,绝不覆盖(包括精修调用进行中的改名,也不会被回写); - 零配置可用 :默认值即可运行,全部行为可调。 安装 本插件是一个标准 dsh bundle (配置层 + 插件代码),通过 dsh plugin 安装到 profile: 安装时 pnpm 会把包链入 profile 的 node modules , dsh 识别 package.json 中的 dsh.bundle 声明,将 cordis.patch.yml 层加入 dsh.profile.bundles 。重启后生效: 加载原理(给 harness 开发者) 1. Bundle 清单 : package.json 中 dsh.bundle.patch 指向 cordis.patch.yml ——这是 bundle 唯一必需的元数据; 2. 配置层 : cordis.patch.yml 先按行 id 停用内置的单阶段标题提供方(会话标题服务同一时…
在 GitHub 查看完整 README →