主打「周礼模式」agent 预设:会话分三段依六官法度而行——开工「设官分职」、事中「依典援据」、收尾「岁终之会」依六计考成。另附 zhouli 工具,七种检索动作,检索内置 49,384 字《周礼》语料,每条结果带稳定坐标(篇序.职官序),含职官员额索引与 Kanripo 两本互校勘记。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-zhouli
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:SCP-CN-1059/dsh-zhouli
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README

圖:編鐘在左,編磬在右,王居其中。《周礼·春官宗伯》3.30 磬師「掌教擊磬,擊編鍾」,3.31 鍾師「掌金奏」。此為示意圖,非文物影像。
《周礼》六篇,凡四万九千三百八十四字。此篇使之可为 agent 所检索、所引证。
设官二,分职各有所掌:
一曰 「周礼模式」 —— 凡会话之始终,皆依六官法度而行;
二曰 zhouli —— 掌《周礼》全文之检索、职官之考据、两本之比勘。
凡 zhouli 所出,条条系以坐标 篇序.职官序,如 1.1 即〈大宰〉,引证作《周礼·天官冢宰》1.1。
所以然者:所引须可覆按于原文,不得凭记忆而诵经。 此非饰辞,是设此官之本意。
DSH / Cordis 之 dsh-plugin。
周礼模式(预设)
preset-zhouli 为一行声明,书于本包 cordis.patch.yml,随包入 profile 之 layer stack。
无须拷贝目录——自 0.2 起,亦无目录可拷。
常驻 persona(order 0,遮蔽部署人设)立三段之法:
一曰 开篇·设官分职 —— 《周礼·天官冢宰》云「惟王建國,辨方正位,體國經野,設官分職,以為民極」。 接手任何任务,先以一两行辨方正位、设官分职,而后动手。
二曰 事中·依典援据 —— 先定六典之属;凡遇判断关口,依八法自查 (官屬·官職·官聯·官常·官成·官法·官刑·官計);做工依《考工記》「審曲面埶,以飭五材,以辨民器」。
三曰 收尾·岁终之会 —— 每条会话以「会」收束:所职、所据、六计自陈 (廉善·廉能·廉敬·廉正·廉法·廉辨)、未竟、周礼背书(注明坐标)。
其硬约束:六计有做不到者照实写明;未验证者不得称为已验;引文必须真实存在。
自带 zhouli 技能 —— 载坐标系统、工具用法、引证格式,及一份已逐条核实之引文库。此技能
以 customSkillDirs 锚定于包内 skills/,与预设同行,装包即在。
置之。预设与工具同出一包:下节装毕、重启该 profile,新建会话时「周礼模式」自现于预设之列。
旧版迁移:0.2 以前之预设为目录式(
~\.dsh\.agent-presets\zhouli\),今已无人读取。 曾装旧版者,径删此目录即可;不删亦无害。
置官(安装)
# 自 npm 取之
dsh plugin --profile web add dsh-zhouli
或径自 GitHub 取之:
dsh plugin --profile web add github:SCP-CN-1059/dsh-zhouli
dsh plugin 转发于 pnpm,故本机须有 pnpm 在 PATH。装毕重启该 profile,zhouli 即入工具之列。
本包于 package.json 中自陈 dsh.bundle.patch,故 dsh plugin add 之后自动入该 profile 之
layer stack,无须手改 composition;zhouli 工具与「周礼模式」预设,皆由这一行声明带来。
若二者未现:查该 profile 之 dsh.profile.bundles 是否已含 dsh-zhouli。harness 只在
「本次新增之依赖」上做 reconcile,已装之包再 add 一次不会补录。此时于插件管理器中启用此项
(plugin_manager {action:"set_bundle", target:"dsh-zhouli", enabled:true})即可,其效同于手改
composition。
不愿为一 profile 置之,亦可于自设预设中自立一行:
- id: tool-zhouli
name: dsh-zhouli
config:
dataDir: '' # 可省,默认用包内自带 data/
maxResults: 20 # 可省,单次返回之上限
职掌(用法)
工具一入口,以 action 辨事:
zhouli(action, query?, coordinate?, chapter?, limit?)
| 事 | 所掌 | 所须 |
|---|---|---|
search |
掌全文检索,繁体优先,简体兜底 | query 必与;chapter、limit 可省 |
para |
掌按坐标取一段原文,繁体简体并列 | coordinate 必与,形如 1.1 |
zhiguan |
掌考某官职之员额与职掌 | query 为职官名;省之则列其全 |
list |
掌列某篇(或全部)之职官名 | chapter、limit 可省 |
chapter |
掌列某篇之段落原文 | chapter 必与;limit 可省 |
jiaokan |
掌查底本与郑玄注本之异文,供引用时据实说明 | coordinate(查某段)或 query(查某句)或 chapter(列某篇);皆省则报各篇之数 |
stats |
掌报语料之数与底本所出 | 无 |
chapter 受繁体篇名、简体篇名、或序号 1–6,三者同功。
凡三事,可为常式:
zhouli(action:"para", coordinate:"1.1")
→ 《周礼·天官冢宰》1.1 §2
繁体:大宰之職,掌建邦之六典,以佐王治邦國:……
简体:大宰之职,掌建邦之六典,以佐王治邦国:……
zhouli(action:"zhiguan", query:"大宰")
→ 职官:大宰(简体 大宰) 所属:天官冢宰
【天官冢宰 1.1】
员额:卿一人
职掌:大宰之職,掌建邦之六典……
zhouli(action:"search", query:"六計", chapter:"天官冢宰")
→ 命中 1 处(限 天官冢宰)……
坐标
凡段皆有坐标 篇序.职官序。
篇序 1–6,依次为天官冢宰、地官司徒、春官宗伯、夏官司馬、秋官司寇、冬官考工記。
职官序 .0 为该篇叙官,列全官之员额编制;.1 及以下,各官之职掌条文。
例:1.0 天官叙官,1.1〈大宰〉,1.2〈小宰〉,3.21〈大司樂〉,6.1〈輪人〉。
引证之式:《周礼·天官冢宰》1.1。
六官(语料库)
| 篇 | 6 |
| 汉字 | 49,384(不计标点) |
| 段 | 383 |
| 职官 | 377(去重 374) |
| 互校 | Kanripo 两本之间 567 条异文 |
data/ 下四篇 JSON —— zhouli.json 主数据、zhiguan.json 职官索引、jiaokan.json 校勘记、
stats.json 统计 —— 为插件所读;data/text/ 下为同一语料之人可读文本。
法度(授权)
二分,各有所属。
- 代码(插件、预设、脚本)—— MIT,见
LICENSE。 - 语料(
data/)—— 底本出自 Kanripo 漢籍リポジトリ (京都大学人文科学研究所)KR1d0001《周禮》正文与KR1d0002《周禮》鄭玄注, 为 CC BY-SA 4.0。转发或改写者,须存其署名,并以相同方式共享。 《周礼》本文属公有领域;此许可所覆者,是其现代数字化之成果。
本仓库不收殆知阁古代文献之二本(其上游仓库未声明任何许可证),亦不收由其派生之校勘结果。
scripts/fetch_corpus.py --with-daizhige 可为本地自用取之;取与不取、随之而来的授权问题,
由取者自决。
其详在 NOTICE。
考工(开发)
以下诸事,皆于本仓库检出目录中行之,不在已装之包内。
(npm 以 files 定发布之内容:lib/ data/ skills/ scripts/ 检索.ps1 随包而去,test/ 唯在仓库。)
# 取原始素材(Kanripo,凡 21 件)
python scripts\fetch_corpus.py
# 构建 data/ 之语料(--kanripo-only 只用 CC BY-SA 之 Kanripo 两本)
python scripts\build_corpus.py --kanripo-only
# 冒烟测试:三十五事,含回查引文库与 persona 所引是否真在语料之中
npm test
npm test 须 @deepseek-ai/{cordis,dsh-tools,schemastery} 可解析(本地软链或 npm install 皆可)。
测试会取 skills/zhouli/SKILL.md 之引文库与 cordis.patch.yml 之 persona 引文,
逐条回查语料 —— 故引文库与语料,不得各自漂移。
打包与依赖上的两处讲究
一、files 不可写整目录。 .gitignore 只约束 git,对 npm 毫无作用;写 "data"
会把 data/raw/ 里未获授权的上游文本一并打进 tarball。故 files 收紧到
data/*.json 与 data/text,并以 scripts/check-pack.mjs 逐条核对 dry-run 清单,
挂在 prepublishOnly 上 —— 不通过则发不出去。
二、@deepseek-ai/dsh-tools 的 peer 范围须以 || 枚举各版本元组。
semver 只在范围中存在「major.minor.patch 元组相同、且自身带预发布标签」的比较符时
才放行预发布版本。拿当时已发布的 20 个版本实测:
| 写法 | 未覆盖 |
|---|---|
^0.1.2-rc.1 |
19/20 |
>=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0(某规范所举范例) |
11/20 |
>=0.0.1-rc.1 <0.2.0 |
16/20 |
| 本包采用:逐元组枚举 | 4/20(仅四个远古 0.0.1-rc.*) |
代价是这项维护不会自己结束。 semver 无法表达「任意 0.x 含其预发布版」,
所以 harness 每发一个新的预发布元组,就得为它添一个 || 分支 —— 否则用户
npm install 时会撞上 ERESOLVE。
这不是假设。0.1.1 发布后半个月,dsh-tools 从 21 个版本涨到 30 个,
新增 0.1.6-*、0.1.7-*、0.2.0-rc.* 三个元组,本包的范围一个都没覆盖到;
而同期 DSH Desktop 更新,harness 实际用的正升到了 0.1.7-rc.2。
0.1.2 即为补上这三个元组而发。
scripts/check-peers.js 把这件事变成可执行的检查:
node scripts\check-peers.js # 退出码非 0 即表示有版本落在范围外
它按「不低于声明下限者须全部覆盖」判定 —— 低于下限的旧版本被排除是语义正确的, 不算遗漏,否则会把有意的取舍误报成缺陷。harness 每次发新版后重跑它。
命令行检索(与插件共用同一份 data/):
.\检索.ps1 检索 六典
.\检索.ps1 职官 大宰
.\检索.ps1 段落 1.1
.\检索.ps1 叙官 天官冢宰
.\检索.ps1 校勘 -篇 天官冢宰
检索.ps1须以「带 BOM 之 UTF-8」存之。 Windows PowerShell 5.1 于无 BOM 时,按系统 ANSI 代码页解.ps1,其中文命令名立成乱码,脚本不可解析。若改毕而报语法错,先验其 BOM:$p = '.\检索.ps1' $t = Get-Content $p -Raw -Encoding UTF8 [IO.File]::WriteAllText($p, $t, (New-Object Text.UTF8Encoding($true)))
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 35940
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 6483
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
T-Auto/dsh-ops★ 4787
为 Windows 的 DSH 提供 bash、PowerShell 7 及 Rust 高性能工具,减少 token 消耗。
sixtysevenlf/dsh-blender-plugin★ 1461
让 DSH agent 通过直连 TCP 通道驱动本地 Blender,提供 15 个工具:视口帧、自定义视角渲染、Python 执行、无头与作业卸载、事务回滚,以及 34 个 family / 228 个 op 的规划层。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1152
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
anysearch-team/anysearch-dsh★ 669
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。