前言¶
DeepSeek Harness Web(npx @deepseek-ai/dsh web)在处理长对话时,用户往往需要频繁滚动才能定位上下文或理解会话走向。dsh-conversation-outline 插件在 DSH-better-sidebar 侧边栏注册了一个「对话大纲」标签,将当前会话按轮次结构化展示,并为每一轮生成 LLM 标题,支持一键跳转。
插件简介¶
- 名称:
dsh-conversation-outline - 维护者:YesSanSan
- 定位:静态 DSH Web 插件
- 许可证:MIT
- 核心价值:提供会话结构概览与快速导航,减少滚动操作。
核心功能¶
-
按轮次结构化大纲
插件将当前会话按轮次分组,展示用户消息、助手回复、工具调用(连续调用自动合并为可折叠分组)、压缩检查点及错误行。 -
一键跳转
点击大纲中的任意条目,自动加载历史并滚动到聊天视图或轨迹视图的对应行。 -
LLM 一句话标题
利用 Host 的llm.stream接口生成标题(不创建 subagent),按内容指纹缓存,分支会话前缀相同即可复用。 -
标题生成完全并行
已结束轮次即时生成,即使 Agent 仍在处理后续轮次;仅当前进行中的轮次等待本轮结束。 -
可配置
标题模型、推理等级、并发数、单次超时、失败重试、禁用开关均在齿轮设置中持久化。 -
窄面板自动收缩
面板宽度 ≤360px 时,行内类型标签自动从文字收缩为图标(悬停显示文字),与轨迹视图行为一致。
安装与启用¶
直接安装到 web profile,无需手动 clone:
npx @deepseek-ai/dsh plugin --profile web add github:YesSanSan/dsh-conversation-outline#main
重启 DSH:
npx @deepseek-ai/dsh web
打开 better-sidebar 的 + 菜单,选择「对话大纲」。
配置项¶
配置持久化到 better-sidebar pluginSettings['conversation-outline']。
| 键 | 默认 | 范围 | 含义 |
|---|---|---|---|
model |
'' |
— | 标题模型;空 = 跟随主会话模型 |
reasoningEffort |
'' |
off / low / medium / high / max | 推理等级;空 = 跟随会话 |
maxConcurrency |
3 |
1–8 | 客户端并发生成标题的 worker 数 |
timeoutSeconds |
60 |
5–300 | 单次尝试超时;对整个尝试生效 |
maxRetries |
2 |
0–5 | 失败重试次数(退避 0.8s 起,封顶 5s) |
disabled |
false |
— | 完全禁用标题生成 |
权限与数据¶
- 会话日志:Host 通过
ctx.sessionQuery(readSession/listEvents)只读当前会话日志构建大纲,不回写。 - LLM 调用:标题生成只把当前轮可见文本(用户 + 助手块,去掉工具调用,截断)发送到配置的模型路由。
- 浏览器存储:标题缓存于
localStorage(dsh-conversation-outline-titles:v1)。 - 网络访问:除配置的模型 provider 外无其他网络访问。
注意事项¶
- 依赖版本:插件依赖
dsh-better-sidebarv0.12.0+(需要settings.render与pluginSettings支持)。npm 上的dsh-better-sidebar可能仍是 0.11.0,v0.12.0 功能需从源码构建后链接到 profile。 - 进程重启:安装或更新后需完整重启
npx @deepseek-ai/dsh web才能生效。 - 安全反馈:安全问题请通过 Issues 私密反馈,或先邮件联系作者,再公开披露。
生态位置¶
- GitHub:https://github.com/YesSanSan/dsh-conversation-outline
- 生态目录:https://www.skillhub.cn/plugins/YesSanSan/dsh-conversation-outline