@qingshanjiluo/dsh-context-manager
September 12, 2026 · View on GitHub
DeepSeek Harness 插件:对会话 transcript 做确定性的统计、检索、压缩与待办提取,全程不调用任何模型、不联网、不起进程。模型把当前上下文以 JSON 消息数组回传给工具,工具用纯逻辑分析并给出结构化结果——是"上下文管理 / 压缩 / 查找"的离线基元。
工具
| 工具 | 作用 |
|---|---|
ctx_stats | 统计消息数、按角色计数、近似 token(字符/4)与 UTF-8 字节数 |
ctx_search | 关键词检索(子串加权 + 词元计数),返回按分值排序、片段裁剪的命中 |
ctx_compact | 无模型压缩:保留首 keepFirst、尾 keepLast 条原文,中段字符串消息按 maxContentChars 截断(不删除任何消息),返回节省字符数 |
ctx_recentTasks | 用确定性标记(TODO/FIXME、任务:、task:、复选框、祈使句 user 行)抽取最近的任务条目 |
所有 messages 入参须是形如 [{ role, content }] 的 JSON 数组;非法入参一律以返回值中的 error 字段优雅报错,绝不抛异常。四个工具均声明 isConcurrencySafe() => true。
配置
| 字段 | 默认 | 说明 |
|---|---|---|
k | 5 | ctx_search 默认返回上限 |
keepFirst | 2 | ctx_compact 保留开头条数 |
keepLast | 4 | ctx_compact 保留结尾条数 |
maxContentChars | 240 | ctx_compact 中段截断字符数 |
keepRecent | 8 | ctx_recentTasks 默认返回上限 |
每个工具的调用参数(keepFirst/keepLast/maxContentChars/k/n)都可覆盖以上部署默认值。
安装
npx -y @deepseek-ai/dsh plugin --profile web add @qingshanjiluo/dsh-context-manager
启用后需重启 DSH 使 bundle 层生效。
开发与验证
npm install
npm run typecheck # tsc --noEmit
npm run build # 产出 lib/index.js 与 lib/index.d.ts
npm test # vitest
node scripts/load-smoke.mjs # 加载构建产物并注册校验