DeepSeek Harness Hub
← 返回列表

123caiji/dsh-memory-toolkit

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

DeepSeek Harness 记忆与 Token 优化插件工具包:跨会话知识图谱记忆 + 五层省 Token 编排。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/18 · 已提供中文文档

DeepSeek Harness 的记忆与令牌优化插件工具包:跨会话知识图谱记忆 + 五层令牌节省编排。

综合分
28.3
GitHub 分
28.3
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 123caiji/dsh-memory-toolkit
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-memory-toolkit

DeepSeek Harness 记忆与 Token 优化插件工具包:跨会话知识图谱记忆 + 五层省 Token 编排。

面向 DeepSeek Harness 的记忆与 Token 优化插件工具包。两个可组合使用或独立使用的插件:

| 插件 | 包名 | 用途 |
|---|---|---|
| graph-memory | @123caiji/dsh-graph-memory | 跨会话知识图谱记忆:类型化节点、因果关系、PageRank、社区、双路径召回(向量 + FTS5) |
| lean-context | @123caiji/dsh-lean-context | 省 Token 编排:五个正交分层能力(纪律、收敛、路由、审计、重建) |

实测数据

以下数据来自实际运行(2026-08-18,Node v24.15.0,Windows 11):

代码规模

| 指标 | graph-memory | lean-context | 合计 |
|---|---|---|---|
| TypeScript 源码行数 | 5,813 | 448 | 6,261 |
| 测试文件数 | 11 | — | 11 |
| 测试用例数 | 107 | — | 107 |

测试结果

Test Files  1 failed | 10 passed (11)
Tests  1 failed | 106 passed (107)
Duration  8.52s

- 106/107 测试通过(99.1% 通过率)
- 唯一失败:migration.test.ts 的临时目录清理(Windows EPERM 权限问题,非代码缺陷)

graph-memory Benchmark

插入 15 个渗透测试知识节点后的实际运行数据:

数据库大小: 4 KB
节点总数: 15 (TASK: 8, SKILL: 6, EVENT: 1)
关系总数: 14 (USED_SKILL: 3, SOLVED_BY: 3, REQUIRES: 3, PATCHES: 3, CONFLICTS_WITH: 2)
向量索引: 15 条 (128 维)

FTS5 搜索 "nmap 扫描" → 返回 3 条:
- [TASK] nmap-端口扫描: 对 192.168.1.0/24 执行 nmap -sS -sV 全端口扫描
- [TASK] wpscan-wordpress-扫描: 对 WordPress 站点执行 wpscan
- [TASK] nikto-web-扫描: 执行 nikto 对 Web 服务进行漏洞扫描

向量搜索 → 返回 5 条:
- [TASK] nmap-端口扫描
- [TASK] hydra-smb-暴力破解
- [SKILL] nuclei-漏洞扫描模板
- [TASK] sqlmap-注入检测
- [SKILL] burp-suite-代理抓包

lean-context Token 节约实测

纪律层注入成本(一次性):

Discipline prompt: 2,914 bytes ≈ 911 tokens

对 DSH 仓库的 context_audit 实测(指令链 token 成本):

./AGENTS.md                                    15,997 bytes ≈  4,999 tokens
./docs/AGENTS.md                               10,635 bytes ≈  3,323 tokens
./.agents/skills/dsh-find-simplifications/      14,680 bytes ≈  4,588 tokens
./.agents/skills/dsh-prose-standard/            9,139 bytes ≈  2,856 tokens
./.agents/skills/dsh-translate-docs/           10,316 bytes ≈  3,224 tokens
./.agents/skills/record-browser-gif/           12,195 bytes ≈  3,811 tokens
./.agents/skills/dsh-code-review/                8,278 bytes ≈  2,587 tokens
...(共 14 个文件)
TOTAL: 123,784 bytes ≈ 38,684 tokens

ZeroToken 模式下的输出节约(实测对比):

| 场景 | 冗长输出 | 精简输出 | 节约 | 降幅 |
|---|---|---|---|---|
| A: "帮我看看这个函数做什么" | 213 tokens | 27 tokens | 186 tokens | 88% |
| B: 代码修复任务 | 214 tokens | 65 tokens | 149 tokens | 70% |

综合估算(100 轮会话):

平均每轮节约:  168 tokens
纪律层成本:    911 tokens(一次性注入)
100 轮净节约:  15,889 tokens
ROI:          17x(投入 1 倍 token 换回 17 倍节约)
纪律层占比:    2.4%(相对于 38,684 tokens 指令链)

结论:纪律层仅占指令链 2.4% 的 token 成本,但通过 ZeroToken 模式可在每个会话中节约 70%-88% 的输出 token,100 轮会话 ROI 达 17 倍。

目录

- 快速安装
- 插件一:graph-memory(跨会话记忆)
- 插件二:lean-context(省 Token 编排)
- 配置参考
- 开发指南
- 验证与排查
- 许可证与致谢

快速安装

方式 A:从 GitHub 安装(推荐)

安装整个工具包
dsh plugin add github:123caiji/dsh-memory-toolkit

或只安装单个插件
dsh plugin add github:123caiji/dsh-memory-toolkit --subdir packages/graph-memory
dsh plugin add github:123caiji/dsh-memory-toolkit --subdir packages/lean-context

方式 B:从本地路径安装(开发模式)

git clone https://github.com/123caiji/dsh-memory-toolkit.git
cd dsh-memory-toolkit
pnpm install

从本地路径加载到 DSH
dsh plugin add ./packages/graph-memory
dsh plugin add ./packages/lean-context

方式 C:网页端安装

1. 启动 DSH Web:dsh web
2. 访问 http://127.0.0.1:3080
3. 进入 设置 → 插件 → 添加
4. 填入 github:123caiji/dsh-memory-toolkit
5. 选择要加载的子包

验证安装

dsh plugin list    # 确认 graph-memory 和 lean-context 处于 active 状态
dsh doctor         # 诊断插件加载错误

插件一:graph-memory(跨会话记忆)

是什么

为 DeepSeek Harness 提供跨会话的长期记忆能力。基于 SQLite 知识图谱,将任务(TASK)、技能(SKILL)、事件(EVENT)存储为节点,通过五种因果关系连接,使用 PageRank 和社区检测进行相关性排序。

核心特性:
- 三类节点:TASK(任务)/ SKILL(技能)/ EVENT(事件)
- 五种因果关系:USED_SKILL / SOLVED_BY / REQUIRES / PATCHES / CONFLICTS_WITH
- 双路召回:向量检索(可选)→ 社区扩展 → PageRank 排序;未配置向量时回退 SQLite FTS5 全文检索
- 自动注入:相关记忆在 Prompt Assembly 阶段自动注入上下文

使用方法

自动模式(无需操作):插件加载后,相关记忆会自动注入到新会话的系统提示中。

工具调用:

| 工具 | 说明 | 示例 |
|---|---|---|
| gm_status | 查看数据库状态、节点数、关系数 | gm_status() |
| gm_search | 检索相关记忆 | gm_search(query="nmap 扫描", limit=5) |
| gm_record | 记录新节点 | gm_record(type="TASK", title="端口扫描", content="对 192.168.1.0/24 执行 nmap") |
| gm_stats | 查看图谱统计 | gm_stats() |

向量检索配置(可选)

不配置时自动回退 FTS5 全文检索。配置后启用语义向量召回,召回精度更高:

设置环境变量(DeepSeek Embedding API 示例)
setx GRAPH_MEMORY_EMBEDDING_API_KEY "your-api-key"
setx GRAPH_MEMORY_EMBEDDING_BASE_URL "https://api.deepseek.com/v1"
setx GRAPH_MEMORY_EMBEDDING_MODEL "text-embedding-v1"
setx GRAPH_MEMORY_EMBEDDING_DIMENSIONS "1024"

重启 DSH 后生效。验证:调用 gm_status,vectorEnabled 应为 true。

数据库位置

默认:~/.dsh/graph-memory/graph-memory.db

覆盖:在 profile 的 cordis.patch.yml 中修改 dbPath:

- insert:
- id: graph-memory
name: '@123caiji/dsh-graph-memory'
config:
dbPath: /your/custom/path/graph-memory.db

完整文档见 packages/graph-memory/README_CN.md。

插件二:lean-context(省 Token 编排)

是什么

五层正交的 Token 优化能力,每层独立开关。内置纪律层和审计层,开箱即用;收敛、路由、重建层委托上游社区插件。

五层架构

| 层 | 作用机制 | 实现来源 | 默认 | 风险 |
|---|---|---|---|---|
| discipline(纪律) | systemPrompt 注入六模式决策表 | 内置 | 开 | 低 |
| convergence(收敛) | MCP 工具 schema 压缩 | 委托 dsh-mcp-lens | 关 | 低 |
| routing(路由) | 简单问题 flash 直答 | 委托 dsh-model-router | 关 | 中 |
| audit(审计) | 只读上下文成本审计 | 内置(context_audit 工具) | 开 | 低 |
| rebuild(重建) | Agent Loop 切片重建 | 委托 dsh-slice-agent-loop | 关 | 高 |

使用方法

纪律层(自动):
- 插件加载后自动注入六模式决策表到系统提示
- 对 Agent 说"省 token"强化 ZeroToken 模式
- 说"详细解释"退出省 token 模式

审计层:
调用 context_audit 工具审计上下文 token 成本
context_audit(cwd=".")
输出:AGENTS.md / CLAUDE.md / .agents/skills//SKILL.md 的 token 成本 + 重复检测。

收敛 / 路由 / 重建层:
安装上游插件后在配置中开启:

dsh plugin add github:labmimors/dsh-mcp-lens          # 收敛层
dsh plugin add github:tianji-qingtian/dsh-model-router # 路由层
dsh plugin add github:TT-Wang/dsh-slice-agent-loop     # 重建层(高风险,单独验证)

完整文档见 packages/lean-context/README.md。

配置参考

两个插件的配置都在各自的 cordis.patch.yml 中。可在 profile 层覆盖:

~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: graph-memory
name: '@123caiji/dsh-graph-memory'
config:
recallMaxNodes: 10        # 召回最大节点数(默认 6)
recallMaxDepth: 3         # 召回深度(默认 2)
maintenanceInterval: 12   # 维护周期(小时,默认 6)

- id: lean-context
name: '@123caiji/dsh-lean-context'
config:
discipline:
enabled: true
audit:
enabled: true
cacheSeconds: 120
convergence:
enabled: true             # 需先安装 dsh-mcp-lens
routing:
enabled: false
rebuild:
enabled: false            # 高风险,默认关

开发指南

环境要求

- Node.js >= 20(推荐 22.19+ 或 24+)
- pnpm >= 9
- DSH 源码仓库(用于本地集成测试)

本地开发

git clone https://github.com/123caiji/dsh-memory-toolkit.git
cd dsh-memory-toolkit
pnpm install

构建
pnpm run build

测试
pnpm run test

单个包
pnpm --filter @123caiji/dsh-graph-memory run build
pnpm --filter @123caiji/dsh-lean-context run test

目录结构

dsh-memory-toolkit/
├── package.json                 # workspace 根
├── pnpm-workspace.yaml
├── LICENSE                      # MIT
├── README.md                     # 本文件
├── .gitignore
└── packages/
├── graph-memory/             # 跨会话知识图谱记忆 (5,813 行 TS)
│   ├── package.json
│   ├── cordis.patch.yml      # DSH 插件注册
│   ├── dsh.ts                # DSH 工具注册入口 (428 行)
│   ├── index.ts              # 导出入口 (872 行)
│   ├── src/
│   │   ├── engine/           # LLM/Embedding 引擎
│   │   ├── extractor/        # 节点提取器
│   │   ├── format/           # 格式化与组装
│   │   ├── graph/            # 图算法(PageRank/社区/去重/维护)
│   │   ├── recaller/         # 召回逻辑
│   │   ├── store/            # SQLite 存储层 (643+ 行)
│   │   └── types.ts          # 类型定义
│   ├── test/                 # Vitest 测试 (107 用例)
│   ├── docs/                 # 文档与图片
│   ├── README.md             # 英文文档
│   ├── README_CN.md           # 中文文档
│   └── LICENSE               # MIT(双版权:adoresever + 123caiji)
└── lean-context/             # 省 Token 编排 (448 行 TS)
├── package.json
├── cordis.patch.yml
├── src/
│   ├── index.ts          # 统一入口 (126 行)
│   ├── discipline.ts      # 纪律层:六模式决策表 (65 行)
│   └── audit.ts          # 审计层:context_audit 工具 (257 行)
├── README.md             # 完整文档
└── LICENSE               # MIT

验证与排查

安装验证
dsh plugin list
graph-memory    active
lean-context    active

graph-memory 验证

在 DSH 会话中调用
gm_status()
期望输出:dbPath, nodeCount, relationCount, vectorEnabled

lean-context 验证

纪律层:新会话的系统提示应包含 "Lean Context — Six-Mode Discipline"
审计层:context_audit 工具应可用
context_audit(cwd=".")

常见问题

| 问题 | 原因 | 解决 |
|---|---|---|
| Cannot find module '@photostructure/sqlite' | native binding 未编译 | pnpm install 时确认 allowBuilds 包含该包 |
| gm_status 返回 vectorEnabled: false | 未配置 embedding 环境变量 | 设置 GRAPH_MEMORY_EMBEDDING_ 后重启 DSH |
| 纪律层未生效 | systemPrompt section 未注入 | 检查 cordis.patch.yml 的 discipline.enabled: true |
| 委托层报 not wired yet | 上游插件未安装 | 按上文安装 dsh-mcp-lens / dsh-model-router / dsh-slice-agent-loop |

排查命令

dsh doctor                # 诊断插件加载错误
dsh plugin list           # 列出全部插件
dsh plugin reload         # 重载插件
dsh plugin remove   # 卸载

许可证与致谢

许可证

MIT。详见 LICENSE。

致谢

- graph-memory 衍生自 adoresever/graph-memory(MIT),感谢原作者的知识图谱记忆设计
- lean-context 的纪律层参考了 phoenixlucky/zerotoken-skill 的 ZeroToken 六模式决策表
- 感谢 DeepSeek 团队的 DeepSeek Harness 提供的插件化 Agent 框架

上游插件(可选依赖)

| 插件 | 用途 | 仓库 |
|---|---|---|
| dsh-mcp-lens | MCP 工具 schema 收敛 | labmimors/dsh-mcp-lens |
| dsh-model-router | 模型路由 | tianji-qingtian/dsh-model-router |
| dsh-slice-agent-loop | Agent Loop 切片重建 | TT-Wang/dsh-slice-agent-loop |

贡献

欢迎提交 Issue 和 PR:

- Issue:https://github.com/123caiji/dsh-memory-toolkit/issues
- PR:https://github.com/123caiji/dsh-memory-toolkit/pulls

提交前请确保 pnpm run build 和 pnpm run test 通过。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群