在 DSH(DeepSeek Harness)环境中,会话数量往往随着跨工作区和 SSH 路由的使用而激增。手动整理这些聊天记录、统计工作时长并生成总结报告非常耗时。dsh-worklog 插件提供了一种自动化的解决方案:它全量汇总所有会话,按天登记工作时长与内容摘要,并支持生成多种格式的报告。
核心功能¶
dsh-worklog 主要解决会话记录的整理与汇报问题,具备以下能力:
- 全量汇总:使用
ctx.sessionQuery读取本机与 SSH 路由上所有会话,包括已结束的会话。 - 对话节点级摘要:将对话细分为“用户发消息 → 模型完成”的节点,逐节点生成摘要,并按本地日期归属。
- 主动 / 手动摘要:开启“主动模式”可即时补摘要;在工作台提供“生成摘要(节点切片)”按钮,支持按需强制重算。
- 独立 LLM 配置:支持 DSH 内置、OpenAI 兼容、Anthropic 三种接口。可配置 baseUrl、apiKey、model、上下文以及自定义摘要 prompt。
- 报表生成:在日历视图选择日期区间,勾选条目(支持全选/全不选),即可生成 Markdown 格式的日报/周报/月报/半年总结。
- 模型工具:提供
worklog_status / day / range / report / rescan工具,可在任意会话中使用。
安装与启用¶
前置条件:DSH(deepseek-harness)环境,Node.js 版本 ≥ 22。
使用官方仓库地址安装:
dsh plugin --profile web add github:aijunjiang/dsh-worklog
安装完成后需要重启 dsh web 以完成宿主插件、扫描、摘要工具以及「工作台」client 模块的自动注册。bundle.gui.patch.yml 已内置相关配置,无需手动修改 profile。
pnpm dsh web
卸载命令如下:
dsh plugin --profile web remove dsh-worklog
使用方法¶
- 查看工作台:在任意会话的头部视图切换中点击「工作台」页签,可以看到月历视图,显示每天会话量与时长。
- 查看某天详情:点击日历上的一个日期查看当天条目。默认收起,点击「展开 N 个节点」可查看该日节点级摘要。点击两个日期可选中区间。
- 生成报告:选好日期区间后,点击「全选/全不选」或逐条勾选条目,选择报告类型(日报/周报/月报/半年),点击「生成报告」。
- 补摘要:选中日期后,点击「生成摘要(节点切片)」可按需重算。
- 配置摘要模型:进入「设置 → 插件 → 插件配置」,找到「工作日志」配置项,设置摘要模型、Prompt 以及主动模式。
配置与数据¶
摘要设置¶
在「设置 → 插件 → 工作日志」中可配置以下项:
| 项 | 默认 | 说明 |
|---|---|---|
| 模型接口格式 | dsh |
dsh(内置默认模型)/ openai(OpenAI 兼容)/ anthropic |
| Base URL | — | 外部接口地址(openai/anthropic 时) |
| API Key | — | 留空则回退环境变量/凭据库 GJSL_API_KEY |
| Model Name | — | 外部模型名 |
| 上下文窗口 | 0 | 输入上下文窗口 tokens |
| 摘要 Prompt | 内置 | 可自定义 |
| 主动模式 | 开 | 每个有新活动的日期即时补摘要 |
行级配置¶
若需覆盖默认值(如时区偏移、扫描间隔、静默阈值、输出上限、摘要并发等),可在 profile 的 cordis.patch.yml 中按 id 覆盖:
- id: worklog
config:
timezoneOffsetMinutes: 480 # 时区偏移(分钟),默认 480(UTC+8)
scanIntervalMs: 300000 # 语料扫描间隔(毫秒)
autoSummarize: true # 会话结束后自动 LLM 摘要
数据与缓存¶
- 数据目录:默认位于
$DSH_HOME/dsh-worklog/items.json。 - 缓存机制:每个会话存储
nodes[],节点摘要携带内容指纹。指纹不变则复用,会话有新活动时只补新增节点,不重复消耗 token。
注意事项¶
- 该插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
- 插件依赖 Node.js ≥ 22。
- 插件核心文件位于
src/目录,包括宿主插件入口、摘要队列、节点切片、LLM 调用及报表组装等模块。