前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的架构:贴吧、B 站、QQ 桥、记忆、画布、Office 等能力各自独立,各有设置页、数据目录和记忆库。插件之间互不感知,问一句「这事归哪个插件管」「上次配置在哪改的」「以前记过没有」,往往要逐个翻卡片或翻目录。
better-plugin-combine-dsh-society(README 中称「办公厅 · Office Catalog for DSH」)在本机为已安装插件提供只读「前台」:汇总职能、工具、入口与数据位置,必要时跨记忆库检索,但不代执行任何部门能力。下面介绍其定位、能力与安装用法。
这是什么¶
维护者 shiliman,仓库 better-plugin-combine-dsh-society,社区目录分类为客户端。当前 package.json 版本为 0.1.0,许可证 MIT。
一句话定位:只读的部门目录——知道本机每个插件做什么、对外有哪些工具、设置页在哪、数据存在哪、记忆条数与最后活动时间;要动手时只告诉你该找谁,不替你跑任务。
它解决什么¶
插件 README 归纳为三件事:
- 目录——每个插件一张卡:一句话职能、工具名、入口、数据位置、记忆条数、最后活动时间;
- 检索——平时只留一行索引,需要时再展开;可跨 meow-memory 的多个库查过往;
- 转交——能答就答,要动手则交给原插件,不代跑。
设计动机是:模型上下文装不下几十张完整卡片,但装得下「一个工具,按需查」。
核心功能:两个只读工具¶
两个工具均只读:不写记忆库、不改插件配置、不执行各部门能力。
office_catalog¶
| 参数 | 说明 |
|---|---|
| 不传 | 返回索引:每个部门一行 包名 版本 | 一句话职能 | T工具数 M记忆数 @最后活动 |
name |
单个部门的详情卡(职能 / 工具列表 / 入口 / 数据目录 / 记忆 / 宿主要求 / 包目录 / 边界) |
q |
按关键词筛部门(名字、职能、说明、工具名) |
limit |
q 模式最多返回几张,默认 6 |
office_ask¶
| 参数 | 说明 |
|---|---|
query |
必填。关键词,空格分隔更准(如 贴吧 日报 签到),避免整段长句 |
limit |
返回几条记忆摘录,默认 8 |
libs |
只查某几个库,逗号分隔(id 由配置决定) |
返回命中部门、记忆摘录(库 / 表 / 记忆 id / 时间 / 分数),并提示全文需用 memory_read。外部记忆库默认只给约 240 字摘录。
数据从哪来(全部只读)¶
扫描结果缓存在 $DSH_HOME/storages/office-catalog/catalog.json,过期则重扫;一次扫描几十个插件约 1 秒。字段来源包括:
- 名字 / 版本 / 说明:
package.json与locale/*.json的meta.title/description; - 一句话职能:从
description提炼(去DSH 插件 ·前缀,取首句,截 42 字); - 工具名:静态扫宿主侧 JS(跳过
client*.js与注释); - 设置页入口:扫
client*.js中的settings.section注册; - 数据目录:
dsh.dataDir优先,再在$DSH_HOME/storages等路径探测; - 最后活动:数据目录内最新文件 mtime;
- 记忆条数:只读打开 meow-memory SQLite,按
project分组计数。
三条原则:不建第二份真相(缓存非权威)、只读、懒更新(无后台轮询,查询时比对缓存时间)。
安装与启用¶
依赖 Node.js ≥ 22.5(使用内置 node:sqlite),无需 npm install,无第三方包。DSH 引擎要求 dsh >= 0.2.0-rc.2。
- 将仓库放到任意目录,例如
~/dsh-plugins/better-plugin-combine-dsh-society; - 在 DSH 中安装本地 bundle:
plugin_manager action: install_bundle target: <上面目录的绝对路径>
- 看到
application: "applied"即生效。宿主侧index.js改动需重启 DSH 客户端;scan.mjs/query.mjs为子进程脚本,改后者不必重启。 - 可让助手「列出办公厅目录」或「查一下刷贴吧的插件归谁管」做验证。
卸载:
plugin_manager action: remove_bundle target: better-plugin-combine-dsh-society
$DSH_HOME/storages/office-catalog/(缓存、日志、libs.json)可一并删除,下次重扫会重建。
配置¶
写在 cordis.patch.yml 的 config 里(或安装时传入):
| 键 | 默认 | 说明 |
|---|---|---|
dshHome |
$DSH_HOME 或 ~/.dsh |
DSH 家目录 |
profile |
desktop |
读哪个 profile 的 node_modules |
nodePath |
自动探测 | 跑扫描脚本的 node |
timeoutMs |
30000 |
单次扫描/检索超时 |
memoryLibs |
自动探测 | 记忆库列表 [["main","路径"], ...] |
记忆库指定优先级:memoryLibs 配置 → $DSH_HOME/storages/office-catalog/libs.json → 自动探测若干 .dsh-meow/memory.db 路径;一个都探不到则卡片如实写「无记忆库」,不报错。
典型用法¶
- 不传参调用
office_catalog:得到全机插件一行索引,快速回答「有哪些插件、各管什么」。 office_catalog带q:按关键词筛部门,例如找与「记忆」「贴吧」相关的包。office_catalog带name:打开单个插件详情卡,查工具列表与数据目录路径。office_ask带query:跨配置好的记忆库做关键词检索,再按返回指针到对应库读全文。
README 还提供 examples/tiny_host.py:不装 DSH 也可读同一份 catalog.json 的最小示例。
适用场景与注意¶
适合:本机 DSH 插件较多、需要统一查职能与入口、或跨 meow-memory 库回忆「以前记过什么」的智能体开发者。
边界(README 已知):
- 静态扫描只能看到字面量工具名;运行时拼接或被混淆的工具会标「未静态识别」。
- 只支持 meow-memory 库结构;其他记忆插件需改
query.mjs表名与列名。 - 英文插件职能可能直接出英文,无翻译层。
- 插件以当前 DSH 进程权限运行;安装前应自行审阅 源码 与 MIT 许可证。
DSH 社区插件目录为独立站点 SkillHub 条目,与 DeepSeek / 幻方无官方从属关系。
结尾¶
better-plugin-combine-dsh-society 用「办公厅」思路给 DSH 装一个只读前台:目录、检索、转交,不复制各部门内容,也不代执行。装多插件后,优先用 office_catalog 与 office_ask 按需查,再交给对应插件动手。
- 目录页:https://www.skillhub.cn/plugins/shiliman/better-plugin-combine-dsh-society
- GitHub:https://github.com/shiliman/better-plugin-combine-dsh-society