前言¶
在 DeepSeek Harness(DSH)里做数学相关智能体时,题目往往散落在对话或零散文件里:换数字就算「新题」、知识点和技巧没有索引,组卷时也很难按难度或方法约束选题。手工用表格或纯 Markdown 管题可以,但变式是否真增加了推理障碍、是否只是换皮,通常要靠人脑记,很难系统化。
下面介绍社区插件 dsh-problem-bank(维护者 ziyans2022,分类为工作流)。它把题目以 markdown + frontmatter 落盘,用知识点子图、题型骨架和技巧库做结构化存储,并围绕变式质量门、六维难度与多解法,辅助「同技巧、异题面」的出题与近重复检查。DSH 生态是「一切皆插件」;SkillHub 等目录页是社区站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-problem-bank 是面向数学题库建设与变式生成的 DSH 插件。当前 package 版本为 0.6.2(MIT 许可证),依赖 Node ≥18,peer 依赖 @deepseek-ai/cordis ~4.0.5。
插件不替代人工验题:机器检查不等于数学正确性或原创性的最终证明。它的定位是辅助题目组织、变式设计与质量检查。
核心功能¶
题目入库与多解法¶
- 整理题面、解答、知识点、难度与审核状态;题目文件含
## 题面、## 解析等结构。 - 一题可存多条解法(代数 / 几何 / 解析 / 组合等),每条解法独立审核;主解法仍在
## 解析,额外解法用## 解法 SOL-xxx — 标题。content.solution始终等于主解法正文,只读旧字段的调用方不必改。
知识图谱与技巧¶
- 知识点关系分 学习层(prerequisite / part-of / application / contrast)与 数学层(equivalent / implies / generalizes 等);数学关系需带
evidenceStatus,kg_validate_graph可查环、重复边等。 - 解题技巧标注后可按技巧抽题(如
sample_by_technique),探索方法迁移。首次初始化会在kg/techniques.json为空时灌入 30 条技巧种子;一旦自行添加过技巧,种子不会再次覆盖。
变式质量门与创新审核¶
变式不能仅以「题面不同、答案正确」入库。插件要求声明变式类型与目标,并核对保留的核心难点、新增障碍、一般性是否被降低。类型包括 isomorphic、structural、harder、extension;simplified(降难)默认被 allowSimplified: false 拒绝。
典型流程包括:record_variation_intent 声明意图与难度剖面 → 独立求解核验 → audit_variation 提交 preserved / added / weakened → 通过后再 submit_for_review;commit_problem 会拦截未过门禁的题目。配置项 requireVariationGate 默认为 true。
六维难度与组卷¶
难度从单一星级扩展为六维剖面(各 1–5 分,且必须写 rationale):
| 维度 | 含义 |
|---|---|
conceptual |
概念铺垫 |
technical |
计算/构造执行难度 |
proofDepth |
证明嵌套与引理 |
prerequisiteLoad |
前置知识负担 |
ingenuity |
关键洞察难度 |
generality |
单个例子 / 有限情形 / 一般情形 |
模型初评(assessedBy: model)一律为 pending,需 review_difficulty_profile 才能变为 reviewed。组卷槽位可按维设上下界(如 generality ≥ 4),不满足即拒绝。
试卷与其它能力¶
- 近重复检查:
nearDuplicateThreshold默认 0.75(子图相似度)。 - 试卷分析与组卷:分析风格、规划结构并按约束组织试卷。
- 从 v5 题库升级:
migrate_bank(dryRun=true/false),备份到<bankRoot>/migration/<时间>/,可用rollbackMigration回滚。
插件 README 称安装成功后工具列表可见 sample_by_technique、migrate_bank 等共 42 个工具。
安装与启用¶
DSH 插件通过插件管理器安装(npm 包名、git 仓库地址或本地目录),不要手改 profile 里的 cordis.patch.yml。本插件尚未发布到 npm,可用 git 或本地目录。
git 仓库(须填 40 位 commit,短哈希会被拒绝):
git+https://github.com/ziyans2022/dsh-problem-bank.git#d95c4c290277dcc7a084955d0d8f5a0f5360df42
本地目录(须同时含 package.json 与 cordis.patch.yml):
C:\tools\dsh-problem-bank
Windows 路径含空格时整段给出,不要加引号或转义。
装完建议确认三条:插件列表出现「题库插件」(来自 locale/zh.json 的 meta.title);工具列表含上述一类工具;日志有 [problem-bank] init ok. bankRoot=…, techniquesSeeded=30, schemaVersion=6。插件市场不支持原地升级,换版本需先移除再安装;数据在 bankRoot,不随卸载消失。从 0.5.x 升到 0.6.0 后,对旧库应先 migrate_bank({ dryRun: true }) 再看 migrate_bank({ dryRun: false })。
数据目录与配置¶
bankRoot 默认 ./problem-bank-data,相对路径按 DSH 进程工作目录解析,不是插件目录。正式使用建议绝对路径,例如:
bankRoot: 'D:/problem-bank-data'
目录结构示意:
problem-bank-data/
├── 2026/
│ └── ZH-0001.md
├── kg/
│ ├── nodes.json
│ ├── relations.json
│ └── techniques.json
├── papers/
├── migration/
└── .problem-bank-id-seq
常用配置(节选):
| 键 | 默认 | 说明 |
|---|---|---|
bankRoot |
./problem-bank-data |
题库根目录 |
idPrefix |
ZH |
题号前缀 |
autoGitCommit |
false |
入库时在 bankRoot 内自动 git commit |
requireHumanReview |
true |
须 pending_review 后才能 approve |
requireVariationGate |
true |
变式须过 audit |
allowSimplified |
false |
是否允许降难变式 |
nearDuplicateThreshold |
0.75 |
近重复阈值 |
典型用法:变式质量门在考什么¶
README 用递推多项式原题说明:仅把 \(2^{n-1}\) 换成 \(3^{n-1}\) 并只问 \(g_3\) 的根,一般性从 general-n 掉到 finite-case,门禁会判不通过。合格的 harder 变式应保留求根完整性,并新增例如零点互异、与 \(g_{n-1}\) 零点交错等论证;对应 record_variation_intent 与 audit_variation 中类型、保留、新增、削弱与一般性字段需写全。该示例按插件数据组织思路编写,不代表已通过真实运行时的创新性审核。
入库相关工具链在质量门六步中有明确顺序:先声明意图与设计数学结构,再独立求解,再审计,最后提交审核与 commit。
适用场景与注意¶
适合需要长期积累数学题、按知识点/技巧/难度约束组卷、并对变式做结构化门禁的 DSH 用户或教研场景。题目纯文本可 git 管理;开启 autoGitCommit 时插件会在 bankRoot 内执行 git 操作。
务必注意:
- 插件直接写文件系统到
bankRoot,不经过 DSH 工作区沙箱;bankRoot指哪里就写哪里。 - 插件自身不发起网络请求;推送远端需手动完成。
- 安装前请自行查看 GitHub 仓库 源码与 MIT 许可证;插件以当前 DSH 进程权限运行。
结尾¶
dsh-problem-bank 把数学题库从「一堆 Markdown」推进到「知识点图谱 + 技巧索引 + 变式质量门 + 六维组卷约束」的工作流,适合在 DSH 里系统化建设题源并控制换皮式变式。
- 社区目录页:https://www.skillhub.cn/plugins/ziyans2022/dsh-problem-bank
- GitHub:https://github.com/ziyans2022/dsh-problem-bank