# DSH Research Kit [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![CI](https://github.com/fsrmqi/dsh-research-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/fsrmqi/dsh-research-kit/actions/workflows/ci.yml) [![DSH Plugin](https://img.shields.io/badge/DSH-Plugin-blue.svg)](https://github.com/topics/dsh-plugin) [![Node: >=22.6](https://img.shields.io/badge/node-%3E%3D22.6-green.svg)](https://nodejs.org) [![Listed on dsh-plugin.org](https://dsh-plugin.org/badges/listed.svg)](https://dsh-plugin.org/plugins/fsrmqi/dsh-promptkit) [简体中文](README.md) · [English](README.en.md) > 面向 DeepSeek Harness 的科研工作流目录与启动器:65 条人工审核的工作流、8 个技能指导模块、55 个科学数据源。 把反复执行的科研任务(审稿、写引言、做综述、设计分析计划)变成**参数化、可编辑、发送前可见**的提示词。插件只负责把任务组装好并交还当前会话,执行仍由你自己的 DSH Agent 完成。 --- ## 前置:什么是 DSH 本项目是 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(命令行缩写 `dsh`)的插件。DSH 是 DeepSeek 开源的本地 Agent 工作系统,核心设计理念是「一切皆插件」(Everything is a Plugin)——模型、工具、界面、存储都由可替换的插件组成。 **没有 DSH,本插件无法运行。** 它不自带模型、不启动独立服务,只是在 DSH 的会话界面里增加科研入口。 | 需要什么 | 去哪拿 | | --- | --- | | DSH 本体 | [deepseek-ai/deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) · [官方站点](https://deepseek.com/harness) | | 插件生态 | [GitHub topic: dsh-plugin](https://github.com/topics/dsh-plugin) | | Node.js | `>= 22.6` | > DSH 目前处于 **Developer Preview**,官方明示会快速迭代、可能出现破坏性变更。本插件依赖的 `conversation.view` 槽位与 `inputActions` 契约随 DSH 版本演进——升级 DSH 后请按[手工验收清单](docs/MANUAL-QA.md)复验。 ## 它解决什么问题 通用聊天输入适合临时提问,但不适合反复执行有明确步骤、材料要求与质量边界的科研任务。审稿、写引言、做综述、设计分析计划这类任务需要四件事: 1. **明确**的输入材料与输出范围; 2. **可复查**的执行步骤,而不是一句笼统指令; 3. **发送前**让研究者看见、编辑并确认任务说明; 4. 对「不编造文献 / 数据 / 结论」的**硬约束**。 Research Kit 把这四点做成可复用的资产。 ## 它怎么工作 ```text 科研能力目录(128 项) → 选择工作流 → 填写参数、用 @文件 引用材料 → 预览并编辑最终 Prompt → 写入输入框 或 发送到当前会话 → 由当前 DSH 会话的 Agent 与其已配置工具执行 ``` ![dsh-research-kit 全局架构:插件只做 Prompt 组装,执行全部交回 DSH 宿主](docs/assets/architecture.svg) 关键设计取舍: - **不调模型、不存密钥**。执行完全交给当前会话; - **不重造文件上传**。材料引用走 DSH 原生 `@文件`; - **不假装已检索**。数据源条目如实标注接入前提,未接通时明确回退到 Agent/MCP。 ## 能力一览 **🧪 65 条人工审核的科研工作流** 覆盖论文与手稿、文献研究、基因组学、临床研究、数据分析、研究设计六类。每条都是参数化、可编辑的 Prompt 模板,内置防编造边界(不得虚构引用、数据、页码、作者意图)与「需人工核验」定位。 **🧩 8 个可组合的技能指导模块** 科学写作、统计审查、引用核验、证据综合、可重复性检查、评审伦理与保密、数据完整性守护、不确定性表达。每个带一段纪律性指导片段与人工检查清单,启动工作流时勾选即可并入提示词。 **🔬 55 个科学数据源,其中 11 个支持插件直查** 文献、临床、遗传、组学、蛋白/化学,以及天文空间、生物多样性、气候环境、地理空间。公开 API 可直查并返回带链接与稳定标识符的候选记录;限流、需授权或需专业参数的来源会明确回退到 DSH Agent/MCP。 **✍️ 发送前完整可见、可编辑** 参数替换实时生成 Prompt 预览;手动编辑后参数变更不会静默改写正文,并提供「恢复自动生成」。必填参数缺失时不发送。 **🧭 一个视图,四个分区** 只有一个 `conversation.view` 标签,内部按科研闭环分区,顶部导航常驻并显示每个分区的定位与职责边界: | 分区 | 层 | 作用 | | --- | --- | --- | | 资源与工作流 | 发现 | 目录检索、参数化组装、公开数据源直查 | | 方法工坊 | 构造 | 方法卡 + 变量填充 → 可编辑 Prompt;可从当前对话提取草稿 | | 研究资产库 | 沉淀 | 灵感资产增删改、版本对比、验证状态跟进;**证据库**子模块逐条保存公开来源的元数据与笔记,按项目隔离去重 | | 研究证据图谱 | 证据 | 把本会话的资源、工作流、查询来源、资产与已保存证据连成可追溯关系 | ![科研闭环的四个分区:发现 → 构造 → 沉淀 → 证据](docs/assets/research-loop.svg)
更多能力(点击展开) - **科研模式领域预设** — 一键选择领域:**基因遗传**(附加 6 项技能,纪律段含 ACMG/AMP 解读规则、组学过滤留痕、关联≠因果、跨物种外推限制)、**临床队列**(仅去标识化数据、强制"研究草案——非临床用途"标注、偏倚逐项讨论)、**通用科研**。预设只是"指导组合",不会自动执行任何工具。 - **输入框快捷入口** — 工具行的「资源 / 工作流程」按钮打开弹层选择器,无需离开当前聊天;选择工作流后经预览弹窗写入草稿,**从不自动发送**。 - **草稿增强器** — 输入框右侧一键增强:轻量档(零 Token 结构化整理)与语义档(复用当前会话模型、流式上屏、五维诊断、可取消),强度三档;增强后可撤销、可对比原稿。 - **收藏与使用历史** — 列表条目一键星标;成功写入/发送/复制自动记入历史(本地仅存 ID、名称、首行摘要与时间,最多 20 条)。 - **研究证据库** — 公开数据源查询结果可逐条「保存到证据库」,条目带稳定标识符(DOI / PMID / NCT / arXiv)与来源链接,默认「未核验」;按项目隔离去重,可导出 / 导入 JSON 与彻底删除。**只保存来源元数据与你写下的笔记,不保存全文与检索词,也不自动入库。** - **研究证据图谱** — 把本会话的资源、工作流、查询来源、灵感资产与**已保存证据**连成可追溯关系;证据节点只带来源库 / 稳定标识符 / 核验状态,**不展示笔记或检索词**;箭头表示关系方向,逆向关系按两端实际位置取锚点而非固定「左进右出」。 - **多种 Prompt 出口** — 写入输入框、发送到会话之外,还有「复制 Prompt」兜底:宿主动作缺失时也能把提示词带去任意会话。 - **启动前必填校验** — 预览弹窗内字段级错误提示(红框 + 说明);缺失必填项不会写入草稿。 - **资源选择可管理** — 弹层底部实时显示已选资源 chip,可单个移除或清空。 - **手动编辑保护** — 手动编辑后变更参数/技能会提示不会自动合并;筛选后详情始终属于当前结果集。 - **宿主动作降级** — `setDraft`/`submit` 缺失时按钮禁用、灰化并说明原因,视图不崩溃。 - **深色主题与窄屏** — 跟随系统与 DSH 主题切换;880px 以下单列布局;原生 `aria-*` 与焦点环。
## 安装 要求 Node `>= 22.6`,以及提供 `conversation.view` / `conversation.input.left` / `conversation.input.overlay` 槽位的 DSH Web profile。 **本地目录(当前推荐,尚未发布到 npm)** ```bash git clone https://github.com/fsrmqi/dsh-research-kit.git dsh plugin --profile web add ./dsh-research-kit ``` **GitHub(钉 commit,可复现安装)** ```bash dsh plugin --profile web add github:fsrmqi/dsh-research-kit# ``` **tarball(离线 / 审计)** ```bash npm pack && dsh plugin --profile web add ./dsh-research-kit-0.1.0.tgz ``` > 构建产物 `ui/client.js` 已提交到仓库——克隆后即可安装,无需本地构建。 安装后刷新浏览器,在会话中打开「科研工作台」,或使用输入框旁的「资源 / 工作流程」入口。卸载或关闭视图不会残留重复注册。 **常见坑**:`dsh plugin` 会调用 PATH 上的 `pnpm`,其 store 布局主版本必须与目标 profile 记录一致,否则会以 `ERR_PNPM_UNEXPECTED_STORE` 失败。对照方式见[手工验收清单 §1](docs/MANUAL-QA.md)。 ## 使用 有两条入口,通往同一套目录资产。 **方式一:科研工作台统一视图** 1. 在会话中打开「科研工作台」,默认落在「资源与工作流」,搜索或按类型筛选 128 项资源; 2. 选择工作流,查看目的、所需材料与使用限制; 3. 填写参数;需要材料的工作流请先在 DSH 输入框用 `@文件` 引用文件; 4. 按需勾选「附加技能指导」,预览实时更新; 5. 点「写入输入框」保留再次编辑的机会,或「发送到当前会话」直接执行。 **方式二:输入框快捷入口** 1. 在输入框工具行点击「工作流程」或「资源」,在输入卡片上方的弹层中操作; 2. 「工作流程」面板:按场景筛选并选择流程,在预览弹窗中填写参数、检查 Prompt,点「使用工作流程」写入草稿; 3. 「资源」面板:在全部/数据库/技能之间勾选,勾选的技能作为附加指导、数据库作为研究提示并入之后启动的工作流; 4. 写入后用 DSH 原生回形针或 `@文件` 补充材料,再自行发送——快捷入口**只写草稿,从不自动发送**。 真实发送由 DSH 完成;本插件不创建模型路由、不保存密钥、不读取文件内容。 ## 目录内容 | 分类 | 工作流(65 条) | | --- | --- | | 论文与手稿(13) | 审阅论文、撰写引言/方法/结果/讨论、撰写摘要、润色手稿、撰写审稿回复、期刊格式化、引文核验与修正、投稿信、稿件翻译、补充材料 | | 文献研究(12) | 文献综述与研究空白、文献检索、论文结构化导读、论文对比分析、系统综述方案设计、研究版图扫描、引文模式分析、公开数据集检索、研究趋势追踪、预印本快报、方法学对比、研究数据源选择 | | 基因组学(22) | bulk RNA-seq 差异表达、单细胞全流程、变异检测、GWAS、变异注释与 ACMG 解读、基因集富集、调控网络、比较基因组、宏基因组、系统发育、表达图谱、甲基化、ATAC-seq、ChIP-seq、基因组注释、RNA velocity、空间转录组、细胞类型注释、轨迹拟时序、多组学整合、免疫画像、标志物发现 | | 临床研究(5) | 患者队列分析、病例对照分析、纵向数据分析、电子病历数据分析、风险预测模型(均标注"研究草案——非临床用途") | | 数据分析(11) | 设计统计分析计划、探索性数据分析、数据清洗方案、结果复现核查、统计审查、图表一致性核查、统计分析执行、Meta 分析、生存分析、回归建模、方差分析 | | 研究设计(2) | 样本量与统计功效估算、研究计划撰写 | 另有 8 项技能与 55 个数据源条目。完整定义见 [`catalog/`](catalog/),数据契约见[架构文档 §4](docs/ARCHITECTURE.md)。 ## 隐私与安全 | 访问 | 用途 | 说明 | | --- | --- | --- | | 当前会话输入框 | 仅在点击「写入/发送」时写入或提交最终 Prompt | 不拦截 Enter,不自动发送,不改动其他会话历史 | | `@文件` 引用 | 只提示你使用 DSH 原生提及 | 不读取、不上传、不解析文件内容 | | 浏览器本地 | 收藏、使用历史、方法卡与灵感资产(`localStorage`) | 不存参数值、完整 Prompt、文件内容;清除浏览器数据即清空 | | 浏览器 IndexedDB | 证据库条目:来源元数据与你主动写下的笔记 | **仅在你逐条确认保存后**写入;不保存全文、检索词与原始响应;按项目隔离,可导出 / 导入 / 彻底删除。证据图谱只展示其中的来源库 / 标识符 / 核验状态,不展示笔记 | | 当前页面内存 | 本会话证据索引(已启动工作流、直查来源摘要) | 仅供工作台各分区实时形成证据图谱;刷新或关闭页面即清空,不保存检索词、原始文件或完整结果 | | 网络 | 公开数据源直查(仅在你主动触发时) | 出网经 DSH 受控 web 服务;插件不持有任何 API Key | **零遥测。** 不上传使用统计,不采集数据。所有工作流产出一律标注为**需人工核验的草案**,不替代研究者、审稿人或伦理审批。 安全边界与漏洞上报方式见 [SECURITY.md](SECURITY.md)。 ### 数据库查询 数据源详情页可直接查询首批公开来源:PubMed、Crossref、OpenAlex、Semantic Scholar、Europe PMC、ClinicalTrials.gov、openFDA、UniProt、PubChem、GBIF、iNaturalist——这 11 个来源在目录里标记为 `available-in-plugin`,详情页状态显示「插件可直接查询」。候选结果显示来源链接与稳定标识符,可写入输入框,或显式点击「让 Agent 核验并继续查询」——该按钮会调用当前 DSH 会话的 Agent,由它使用自己已拥有的 Web / MCP / 文件工具完成多步检索。 其余 44 个数据源标记为 `requires-mcp` 或 `reference-only`,会清楚提示所需的 MCP、订阅、API Key 或数据使用协议,并提供同一受控 Agent 回退。目录标注与查询实现由 `npm run check` 双向校验(有适配器就必须标出来,标了就必须有适配器),因此界面上的能力状态不会与实现漂移。**插件不会伪造任何检索结果。** ## 兼容性与状态 当前版本 `0.1.0`(尚未发布到 npm)。开发状态与下一步计划见 [ROADMAP.md](ROADMAP.md)。 已通过的验证:目录契约校验(128 项、128 唯一 ID)、122 项回归测试、真实 DSH Web profile 上的两轮启动烟测(快线 F1–F4、发布门槛 R1、观测项 O1–O3 全部通过),以及证据库写入 Prompt(W1–W3:勾选后按钮可用、未选择时不注入、写入不自动发送且条数一致)与证据图谱接入已保存证据(G1–G4:证据节点只带来源库 / 稳定标识符 / 核验状态,与同库资源连成关系,箭头按实际方向选锚点)的现场验收。 > 真实 profile 验收无法被单元测试替代——`test/dsh-slots.test.js` 虽然执行真实构建产物,但 slots 服务是模拟的。因此升级 DSH 后必须重跑[手工验收清单](docs/MANUAL-QA.md)。 ## 开发 ```bash npm run build # 生成 ui/client.js(提交产物,勿手改) npm run check # 目录契约校验 + 语法检查 npm test # 纯逻辑与契约回归测试(122 项) ``` 改动 `catalog/`、`src/` 或 `dsh/` 后统一执行 `npm run build && npm run check && npm test`;CI 会校验构建产物与源码同步(构建后有 diff 即失败)。 ## 文档 | 文档 | 内容 | | --- | --- | | [docs/README.md](docs/README.md) | **文档索引与推荐阅读顺序** | | [架构与数据契约](docs/ARCHITECTURE.md) | 模块职责、数据流、DSH 宿主边界、目录 schema | | [开发指南](docs/DEVELOPMENT.md) | 本地启动、实现顺序、测试策略、交付检查单 | | [手工验收清单](docs/MANUAL-QA.md) | 为什么不能用单测替代、逐项验收步骤、失败定位树 | | [方法工坊嵌入设计](docs/METHOD-WORKSHOP.md) | vendored 工件治理、命名空间纪律、构建器集成规则 | | [范围与边界](docs/PRODUCT.md) | 要解决的问题、产品边界、质量与安全原则 | ## 参与贡献 欢迎 Issue 与 PR——见 [CONTRIBUTING.md](CONTRIBUTING.md)。新增工作流只需在 `catalog/workflows.json` 中按现有条目结构添加 JSON 对象并运行 `npm run check && npm test`;契约校验器会强制检查占位符一致性与防编造边界。 ## 许可证 [MIT](LICENSE)。 随仓库分发的 vendored 工件的第三方归属与许可证声明见 [NOTICE](NOTICE)。