dsh-aidd
v0.1.0
Published
Claude Science-style research workbench for DeepSeek Harness, tailored for AI-driven drug discovery: ReAct research-loop engine (research_* tools), versioned artifacts with provenance (artifact_* tools), and 17 AIDD skills covering virtual screening / doc
Maintainers
Readme
dsh-aidd
面向 DeepSeek Harness 的 Claude Science 式 AIDD 科研工作台 —— 面向 AI 驱动药物发现 / 化学信息学 / 计算生物学项目。
一句话介绍:dsh-aidd —— 面向 DSH 的 Claude Science 式 AIDD 工作台:ReAct 研究循环引擎(research_* 工具)、带溯源的版本化工件(artifact_* 工具),以及覆盖虚拟筛选 / 分子生成 / 性质与 ADMET 预测 / 蛋白靶点 / DTI 建模 / 模型复现的 17 个技能。
- ReAct 研究循环引擎 ——
research_init/research_state/research_hypothesis/research_experiment/research_findings/research_phase/research_review/research_report,状态持久化在research-manifest.json(提问 → 假设 → 实验 → 观察 → 分析 → 结论 → 下一问题)。对 AIDD 的语义:靶点假设 → 筛选/生成/建模实验 → 评估结论 → 迭代。 - 版本化工件与溯源 ——
artifact_save/artifact_list/artifact_show/artifact_diff/artifact_verify/artifact_deprecate/artifact_reproduce:hit 列表、打分表、数据划分文件、模型 checkpoint、指标表存为artifacts/<name>/v<N>/,附每文件 SHA-256、artifact.json溯源(命令/输入/环境/envFile)与追加式provenance.md。 - 17 个技能 —— 通用 8 个(research-loop、science-project-setup、artifact-provenance、scientific-reviewer、literature-connector、parallel-delegation、manuscript-writing、conda-environments)+ AIDD 9 个(aidd-toolkit、chem-data-management、ml-experiment-tracking、model-reproduction、virtual-screening、molecular-generation、property-prediction、protein-target、dti-modeling)。
AIDD 数据纪律(写进 preset 人格的红线):随机种子固定并记录;scaffold / cold-start 划分文件必须 artifact 归档;同源靶点与同骨架不得跨训练/测试集;复现不到基线不得宣称改进;打分好 ≠ 好分子。
两个引擎插件零第三方依赖(只用 Node 内置模块,共享 engines/core.mjs),注册标准 cordis 工具。
既可作 profile bundle 安装(dsh plugin add),也可作 agent preset(「AIDD 模式」)安装。
本仓库 fork 自 biociao/dsh-science v0.1.1(引擎与工程化骨架来自上游,领域层全面重写为 AIDD)。
安装
方式 A —— profile bundle(社区标准)
dsh plugin --profile web add dsh-aidd # npm 发布后
# 或直接从 GitHub:
dsh plugin --profile web add "github:panda_aidd/dsh-aidd"重启 profile(或刷新 Web GUI)。bundle 会把两个引擎插入 profile 层栈,
该 profile 上所有 agent 都能用 research_* / artifact_* 工具。
方式 B —— agent preset(完整「AIDD 模式」,按 agent 隔离)
git clone https://github.com/panda_aidd/dsh-aidd ~/.dsh/.agent-presets/aidd
# 或本地安装:
bash scripts/install.sh # 复制安装(或:bash scripts/install.sh link)在 DSH Web 新建会话并选择 AIDD 模式 preset —— preset 自带 AIDD 科研人格 + 引擎,按 agent 作用域隔离。
技能
17 个技能由项目根 .dsh/skills/ 自动发现(把本仓库 skills/ 放进你的项目即可),
或全机安装:
bash scripts/install-skills.sh # -> ~/.dsh/skills(遵循 $DSH_HOME)快速开始(首个会话)
research_init—— 创建research-manifest.json与项目骨架(experiments/ literature/ artifacts/ analyses/ figures/ manuscript/ reviews/ data/ envs/)。- 每次会话先
research_state;循环状态跨会话持续。 - 跑循环(以虚拟筛选为例):
research_hypothesis(H1"子库中存在打分优于阈值的命中")→research_experiment(E01 对接筛选,创建experiments/E01/{design.md,log.md,code/,results/})→ 跑 docking →research_findings(富集/多样性观察,结论更新假设状态)→ hit 列表与打分表artifact_save。 - 建模/复现走 ml-experiment-tracking 与 model-reproduction 技能;关键论断用 scientific-reviewer 评审后
research_review归档。
仓库结构
dsh-aidd/
├── package.json # dsh.bundle.patch -> ./cordis.patch.yml(含 exports)
├── cordis.patch.yml # bundle patch:按子路径导出插入两个引擎
├── engines/ # 引擎源(bundle 形态)
│ ├── core.mjs # 共享核心:锁/原子写/错误码/流式哈希/结构化工具/审计
│ ├── research-loop.mjs
│ └── artifact-registry.mjs
├── preset/ # agent-preset 形态(engines 镜像,用 sync-engines.sh 同步)
│ ├── agent.cordis.yml # AIDD 科研人格 + 引擎(相对路径挂载)
│ ├── preset.yml # 「AIDD 模式」
│ └── engines/ # 镜像 —— 保持同步:bash scripts/sync-engines.sh
├── skills/ # 17 个 SKILL.md 技能(通用 8 + AIDD 9)
├── scripts/
│ ├── install.sh # 安装 preset -> ~/.dsh/.agent-presets/aidd
│ ├── install-skills.sh # 安装技能 -> ~/.dsh/skills
│ ├── sync-engines.sh # 镜像 engines/ -> preset/engines/
│ ├── init-project.sh # 项目骨架(无需 AIDD 模式会话)
│ ├── smoke-test.mjs # 62 项检查(临时工作区,node >= 18)
│ └── stability-test.mjs# 25 项并发/原子性/压力检查(锁/丢失更新/soak/迁移)
└── test/verify-bundle.sh # 隔离端到端 bundle 安装 + boot 检查验证
node scripts/smoke-test.mjs # 引擎逻辑 + 端到端循环 + 错误码 + 迁移
node scripts/stability-test.mjs # 并发 / 原子性 / 锁 / 压力稳定性检查
bash test/verify-bundle.sh # pnpm pack -> 隔离 profile -> 安装 -> boot 检查三项均为发布检查清单内容,可在 CI 安全运行(两个测试脚本只写临时工作区;bundle 测试用隔离的 $DSH_HOME)。
FAQ
bundle 里为什么用子路径导出而不是相对路径?
dsh plugin add 把包装进 profile,其 cordis.patch.yml 的行加入 profile 组合。
profile 加载器把行的 name 按 profile 目录解析(不是包目录),所以
./engines/x.mjs 会 ERR_MODULE_NOT_FOUND;改用 dsh-aidd/engines/x.mjs
(子路径导出,走 package.json 的 exports)则从 profile 的 node_modules
解析、可用——上游 dsh-science 已在 dsh 0.1.0-rc.6 上实验验证。agent-preset 挂载则按 preset
目录解析相对名,因此 preset/agent.cordis.yml 可以用 ./engines/*.mjs。
bundle 还是 preset,怎么选?
- bundle:一条命令装完,profile 上所有 agent 都能用工具。
- preset:完整「AIDD 模式」体验(科研人格、数据纪律红线、按 agent 隔离)。
cordis.patch.yml里的 persona 行默认注释——profile 级人格会影响该 profile 所有 agent, 需要全 profile 应用时再取消注释发布。
技能从哪来?
项目根 .dsh/skills/ 自动发现;scripts/install-skills.sh 全机安装到
~/.dsh/skills(遵循 $DSH_HOME)。
开发
分支模型与发布流程(main=发布 / dev=集成 / feat*=新功能,tag 触发 npm 发布 + GitHub Release): 见 docs/branching.md。
bash scripts/sync-engines.sh # 修改 engines/*.mjs 后运行——保持 preset/engines 同步
node scripts/smoke-test.mjs # 逻辑 + 静态包校验
node scripts/stability-test.mjs # 并发 / 原子性 / 锁稳定性检查
bash test/verify-bundle.sh # 端到端 bundle 安装 + boot社区
许可
MIT —— 见 LICENSE(含上游版权声明)。
