dsh-aidd
其他 活跃维护

dsh-aidd

PandaAIDD/dsh-aidd

提供ReAct研究循环机制,支持带溯源信息的可版本化产物管理,内置17个技能模块,覆盖虚拟筛选、分子生成等AI药物发现核心研发环节,开箱即用可快速搭建标准化研究流程。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
89 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:PandaAIDD/dsh-aidd
git clone https://github.com/PandaAIDD/dsh-aidd.git
git clone git@github.com:PandaAIDD/dsh-aidd.git
README.md main

dsh-aidd

npm version
license
node
dsh-plugin topic

A Claude Science–style research workbench for DeepSeek Harness, tailored for AI-driven drug discovery — cheminformatics / computational biology / molecular design projects.

One-liner: dsh-aidd — a Claude Science-style AIDD workbench for DSH: a ReAct research-loop engine (research* tools), versioned artifacts with provenance (artifact* tools), and 17 skills covering virtual screening / molecular generation / property & ADMET prediction / protein targets / DTI modeling / model reproduction.

  • ReAct research-loop engineresearch_init / research_state / research_hypothesis / research_experiment / research_findings / research_phase / research_review / research_report, with state persisted in research-manifest.json (question → hypothesis → experiment → observation → analysis → conclusion → next question). AIDD semantics: target hypotheses → screening/generation/modeling experiments → evaluated conclusions → iterate.
  • Versioned artifacts with provenanceartifact_save / artifact_list / artifact_show / artifact_diff / artifact_verify / artifact_deprecate / artifact_reproduce: hit lists, score tables, data-split files, model checkpoints and metric tables are stored as artifacts/<name>/v<N>/ with per-file SHA-256, artifact.json provenance (command/inputs/environment/envFile) and an append-only provenance.md.
  • 17 skills — 8 generic (research-loop, science-project-setup, artifact-provenance, scientific-reviewer, literature-connector, parallel-delegation, manuscript-writing, conda-environments) + 9 AIDD-specific (aidd-toolkit, chem-data-management, ml-experiment-tracking, model-reproduction, virtual-screening, molecular-generation, property-prediction, protein-target, dti-modeling).

AIDD data discipline (red lines baked into the preset persona): fix and record random seeds; scaffold / cold-start split files must be archived as artifacts; homologous targets and shared scaffolds must not straddle train/test; no claimed improvement until the baseline is reproduced; a good score ≠ a good molecule.

Both engine plugins are zero-dependency (node built-ins only, sharing engines/core.mjs) and register standard cordis tools. Install either as a profile bundle (dsh plugin add) or as an agent preset (the full AIDD 模式).

Forked from biociao/dsh-science v0.1.1 — engines and engineering scaffolding come from upstream; the domain layer is rewritten for AIDD.

Install

Option A — profile bundle (community standard)

dsh plugin --profile web add dsh-aidd            # once published to npm
# or straight from GitHub:
dsh plugin --profile web add "github:panda_aidd/dsh-aidd"

Restart the profile (or refresh the Web GUI). The bundle inserts the two engines into the profile's layer stack — every agent on that profile gains the research_* / artifact_* tools.

Option B — agent preset (full AIDD 模式, per-agent scoping)

git clone https://github.com/panda_aidd/dsh-aidd ~/.dsh/.agent-presets/aidd
# or from a local checkout:
bash scripts/install.sh          # copy install (or: bash scripts/install.sh link)

Create a session in the DSH Web and pick the AIDD 模式 preset — it carries the AIDD research persona + engines, scoped to that agent only.

Skills

The 17 skills are auto-discovered from a project's .dsh/skills/ (drop this repo's skills/ into your project), or installed machine-wide:

bash scripts/install-skills.sh          # -> ~/.dsh/skills (honors $DSH_HOME)

Quick start (first session)

  1. research_init — creates research-manifest.json and the project skeleton (experiments/ literature/ artifacts/ analyses/ figures/ manuscript/ reviews/ data/ envs/).
  2. Call research_state at the start of every session; loop state persists across sessions.
  3. Run the loop (virtual-screening example): research_hypothesis (H1 "the sub-library contains hits scoring above threshold") → research_experiment (E01 docking screen, creating experiments/E01/{design.md,log.md,code/,results/}) → run the docking → research_findings (enrichment/diversity observations; conclusion updates the hypothesis) → artifact_save the hit list and score tables.
  4. Modeling and reproduction follow the ml-experiment-tracking and model-reproduction skills; key claims are reviewed per scientific-reviewer and archived with research_review.

Repository layout

dsh-aidd/
├── package.json          # dsh.bundle.patch -> ./cordis.patch.yml (with exports)
├── cordis.patch.yml      # bundle patch: inserts both engines via subpath exports
├── engines/              # engine sources (bundle form)
│   ├── core.mjs          #   shared core: locks/atomic writes/error codes/streaming hash/audit
│   ├── research-loop.mjs
│   └── artifact-registry.mjs
├── preset/               # agent-preset form (engines mirror, synced via sync-engines.sh)
│   ├── agent.cordis.yml  #   AIDD persona + engines (relative-path mount)
│   ├── preset.yml        #   "AIDD 模式"
│   └── engines/          #   mirror — keep in sync: bash scripts/sync-engines.sh
├── skills/               # 17 SKILL.md skills (8 generic + 9 AIDD)
├── scripts/
│   ├── install.sh        # install preset -> ~/.dsh/.agent-presets/aidd
│   ├── install-skills.sh # install skills -> ~/.dsh/skills
│   ├── sync-engines.sh   # mirror engines/ -> preset/engines/
│   ├── init-project.sh   # project skeleton (no AIDD session needed)
│   ├── smoke-test.mjs    # 62 checks (temp workspace, node >= 18)
│   └── stability-test.mjs# 25 concurrency/atomicity/stress checks (locks/lost-update/soak/migration)
└── test/verify-bundle.sh # isolated end-to-end bundle install + boot check

Verification

node scripts/smoke-test.mjs     # engine logic + e2e loop + error codes + migration
node scripts/stability-test.mjs # concurrency / atomicity / lock / stress checks
bash test/verify-bundle.sh      # pnpm pack -> isolated profile -> install -> boot check

All three are release-checklist items and CI-safe (the two test scripts only write to temp workspaces; the bundle test uses an isolated $DSH_HOME).

FAQ

Why subpath exports instead of relative paths in the bundle?
dsh plugin add installs the package into the profile, and its cordis.patch.yml rows join the profile composition. The profile loader resolves row names against the profile directory (not the package directory), so ./engines/x.mjs fails with ERR_MODULE_NOT_FOUND; dsh-aidd/engines/x.mjs (a subpath export resolved through package.json exports) resolves from the profile's node_modules — verified experimentally on dsh 0.1.0-rc.6 (upstream dsh-science's finding). The agent-preset mount resolves relative names against the preset directory, which is why preset/agent.cordis.yml can use ./engines/*.mjs.

Bundle or preset?

  • Bundle: one command, every agent on the profile gets the tools.
  • Preset: the full AIDD 模式 experience (research persona, data-discipline red lines, per-agent scoping). The persona row in cordis.patch.yml is commented out by default — a profile-level persona would affect all agents on the profile.

Where do skills come from?
Auto-discovered from the project root's .dsh/skills/; scripts/install-skills.sh installs machine-wide to ~/.dsh/skills (honors $DSH_HOME).

Development

Branch model and release flow (main=releases / dev=integration / feat*=features, tags trigger npm publish + GitHub Release): see docs/branching.md.

bash scripts/sync-engines.sh    # after editing engines/*.mjs — keeps preset/engines in sync
node scripts/smoke-test.mjs     # logic + static package checks
node scripts/stability-test.mjs # concurrency / atomicity / lock stability
bash test/verify-bundle.sh      # end-to-end bundle install + boot

Community

License

MIT — see LICENSE (includes the upstream copyright notice).