DSH 生态采用插件化架构。在长对话场景下,模型容易遗忘早期上下文。dsh-session-summarizer 插件提供了一种原生解决方案,通过读取会话内容并生成中文摘要,辅助模型快速恢复上下文。
插件定位¶
本插件是 DSH 生态原生 Cordis 插件,由开发者 KhalilYamber 维护。它利用 DSH 官方运行时读取会话并生成摘要,不依赖任何外部服务。
核心能力如下:
* 读取指定、当前或最近会话并生成中文上下文摘要。
* 注册模型可见工具 session_summarize。
* 全程走 DSH 官方运行时 @deepseek-ai/dsh-session(读取会话)与 @deepseek-ai/dsh-llm(生成摘要)。
* 支持通过 lastTurns 参数限制摘要的用户消息轮数。
安装与启用¶
以 bundle patch 形式将插件装入 profile 的 node_modules,随 dsh plugin 命令完成安装。
dsh plugin --profile <profile名> add dsh-session-summarizer
安装后启动 profile,session_summarize 工具随插件注册。摘要模型、转录预算等行为可在配置文件中调整。
典型用法¶
在会话中让模型调用 session_summarize 工具。
参数说明¶
| 参数 | 必填 | 说明 |
|---|---|---|
sessionId |
否 | 要摘要的会话 id;缺省时优先当前会话,再回退最近活跃落盘会话 |
lastTurns |
否 | 只摘要最后 N 轮用户消息;缺省不限制(计数单位为「用户消息」,非 assistant 消息) |
调用示例¶
-
文本指令调用:在会话中输入以下内容,让模型调用工具。
> 请用 session_summarize 汇总当前会话最近 20 轮,帮我恢复上下文。 -
工具调用:模型在生成回复时直接调用
session_summarize工具并指定sessionId参数。
输出格式¶
工具执行成功会返回 JSON,字段说明如下:
| 字段 | 类型 | 说明 |
|---|---|---|
ok |
boolean | 是否成功 |
summary |
string | 摘要正文 |
sessionId |
string | 实际摘要的会话 id |
source |
string | 会话来源:explicit / current-agent / recent-active / none / error |
readPath |
string | 读取路径:live-sessions / persistence-inspect / none / error |
chars |
integer | 送入摘要模型的转录字符数(截断后) |
message |
string(可选) | 失败时的错误说明 |
限制与说明¶
转录策略¶
- 转录基于派生消息或落盘事件日志,只保留 user / assistant 文本,不含工具调用内部细节。
- 长会话转录采用「保留首尾、截断中段」策略,默认预算
transcriptChars: 12000字符,超长部分以提示行替代。 lastTurns按「用户消息数」计数,assistant 消息不占用轮数上限。
依赖环境¶
- 摘要生成依赖
ctx.llm.stream的deepseek-official路由与默认模型deepseek-v4-flash(可在配置中覆盖)。
总结¶
dsh-session-summarizer 为 DSH 用户提供了一套在长会话中恢复上下文的工具。安装后,模型即可通过 session_summarize 工具主动请求生成摘要。