bobostudio
dsh-session-lens
DeepSeek Harness plugin: one-click session analytics + privacy-safe single-file HTML export · DSH 会话洞察与脱敏分享插件
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-session-lens · 会话透镜
DeepSeek Harness 会话洞察与一键分享插件:给任意会话生成"深度体检报告",并可导出为自包含单文件 HTML 回放页——双击离线打开、微信/QQ 直接发送、零外部依赖。
与官方 Trajectory 视图互补:Trajectory 展示原始事件流,Lens 做聚合分析(token 分解、turn 时间线、工具统计)+ 对外分享。
功能
📊 洞察视图(会话内新 Tab)
- Token 用量五段分解:输入 / 输出 / 缓存读 / 缓存写 / 思维链(含压缩摘要调用单列)
- 按 Turn 分解:每轮时长、token、工具调用数、错误数
- 工具统计:调用次数、错误率、耗时
- 活动统计:上下文压缩、审批、子 Agent、LLM 重试
- 会话进行中每 5 秒自动刷新(实时模式)
📤 一键导出 HTML
- 单文件、零 JavaScript、零外部请求:统计图表为内联 SVG,折叠区为原生
<details> - 完整会话回放:用户消息、助手回复、思维链(折叠)、工具调用与结果、审批/压缩/子 Agent 标记
- 中英双语界面(导出语言可选)
🔒 隐私优先(结构性保证)
- 永不包含系统提示词:导出只渲染白名单"故事事件",
request/header、内部 LLM 请求等事件从结构上无法进入导出文件 - 工具参数/结果默认截断(防文件内容泄漏),可选完整保留
- 本地路径自动脱敏为
~:会话工作目录 + 用户主目录(含正/反斜杠、盘符大小写、JSON 转义形态全变体)。注:工作目录之外的绝对路径(如同级仓库目录)默认保留原样以保持回放可读性 - 图片附件永不离开本机
- 内容安全策略
default-src 'none':导出文件无任何脚本执行能力
安装
dsh plugin --profile web add github:bobostudio/dsh-session-lens
重启 DSH Web 后,打开任意会话,点击顶部的「洞察」Tab(与 Chat / Trajectory 并列)。
使用
- 打开一个会话 → 点击「洞察」Tab 查看实时分析
- 点击「导出 HTML」下载单文件报告
- 导出选项(自动记忆):
- 完整工具结果:默认关闭(截断至 2000 字符)
- 路径脱敏:默认开启
- 中/English:导出文件界面语言
示例导出:docs/example.html · English
兼容性
面向 @deepseek-ai/dsh >= 0.1.0-rc.6 的 web profile。DSH 处于开发者预览阶段,插件依赖的内部接口(sessions / sessionPersistence / conversation.view slot)可能随版本变动;所有可选服务均做了降级处理,升级后如遇问题请提 Issue。
开发
npm install
npm run build # esbuild → lib/(Node half + client half)
npm test # 33 个单元/集成测试(node:test,无需构建)
npm run check # tsc --noEmit
开发态挂载(不改 profile):
dsh web --patch <本仓库路径>/cordis.patch.yml
结构:
src/
├── index.ts # Node half:/api/session-lens/{analytics,export} 路由(仅回环、GET-only)
├── analytics.ts # 纯函数:SessionEvent[] → 聚合统计
├── redact.ts # 纯函数:隐私脱敏(白名单/截断/路径掩码)
├── export-html.ts # 纯函数:→ 单文件 HTML
└── client/ # 浏览器 half:conversation.view「洞察」Tab