Skip to content

Repository files navigation

dsh-graph

把工作组织成目标看板的 DeepSeek Harness(DSH)插件 —— 基于图的目标管理(Graph-based Goal Management)。

dsh-graph —— Agent 工作的目标化管理

npm version npm downloads node engine awesome-dsh-plugin listed license MIT DSH host range

当前版本 v0.17.0 —— npm 包名 dsh-graph,一个包同时提供面向 Agent 的 49 个 graph_* 工具(含 /api/dsh-graph* REST 端点)与内嵌 DSH Web 的二维泳道看板。

最新亮点(v0.17.0)

  • 支持 DSH 0.2.0 系宿主:宿主兼容范围放宽为 >=0.1.5-rc.2 <0.2.1-0,并在隔离实例上实测 0.2.0-rc.1 / 0.2.0-rc.2。
  • 目标完成摘要:目标弹窗新增只读「完成摘要」页签,子代理每次执行的输出自动落盘(零额外 token),也支持一键更新为 LLM 详情级摘要。
  • 窄档搜索按版本/分区分组:窄档(<480px)搜索命中在聚合泳道内按版本/分区加组头与计数,仍保持单列纵向、零横向溢出。
  • 隔离实例与看板数据互不污染:修正「仓库内子目录被误判为 linked worktree」,隔离实例、门禁与测试不再写真实看板数据;并修复 pnpm 12 下无法从零新建隔离实例。
  • 文档面机器守卫:工具表六面一致性、工具计数、记忆上限取值与 CHANGELOG 版本节结构由测试钉住(改坏即红)。

变更史见 CHANGELOG.md;逐版本门禁结论见 docs/release-checklist-v0.17.0.md,平台门禁运行手册见 docs/platform-gate.md。

平台状态

平台 本版状态
Linux / WSL2 ✅ 已实测通过
原生 Windows ✅ 已实测通过(原生 win32/x64,宿主 @deepseek-ai/dsh@0.2.0-rc.2;本版包 T1–T5 通过 10 / 失败 0 / 告警 0,见 v0.17.0 清单 §3.1)
macOS ⚠️ 未验证(最近真机结论见 v0.16.0 清单)

三平台共用同一安装包。已知限制:macOS 上经显式传入且含符号链接的工作区路径(如位于 /tmp、/var 之下)会被拒绝并报 graph root symlink is not allowed;由 process.cwd() 推导的路径不受影响。

安装

dsh plugin --profile <name> add dsh-graph

需要 Node ≥ 22。依赖说明、宿主兼容范围(engines.dsh 声明与实测宿主)、侧边栏用法、数据目录等完整内容,见 dsh-graph-host/README.md(即 npm 包内 README)。

核心概念

  • 基于图的目标管理:目标是自足实体 —— 自然语言任务 + 动态生成的取证计划与质量判据;任务类型不预先模板化,结构化的是生命周期与求值语义。
  • 四阶段生命周期:描述 → 收集 → 执行 → 确认,由引擎强制的状态机:draft → planning → collecting → ready → in_progress → review → delivered(任意阶段可进入 blocked)。
  • 判据先于执行:进入执行前先登记质量判据,评审按逐条判据核验产出物。
  • 上下文卡片:目标 Runner 的种子上下文,生命周期 empty → collecting → filled → reviewed;形态分文本 / 文件 / 图片 / 数据。
  • 排期:Backlog(暂存池)↔ Version(批量质量管理)↔ 独立目标(standalone);看板泳道顺序是展示态,可拖拽调整。
  • 换会话交接:graph_handoff 生成交接文档(board 投影 + 长期记忆 + 环境事实),graph_claim_supervisor 由新会话幂等接管。

提供的工具

49 个 graph_* 工具,按功能分组(逐个说明见 dsh-graph-host/README.md 或 graph_help):

分组 工具
目标生命周期 graph_create_goal · graph_rename_goal · graph_set_description · graph_set_goal_type · graph_set_goal_tags · graph_amend_goal · graph_transition · graph_postpone_goal · graph_archive_goal · graph_unarchive_goal · graph_delete_goal · graph_clean_worktree · graph_list_worktrees
质量判据 graph_set_criteria
上下文卡片 graph_add_card · graph_fill_card · graph_review_card · graph_bind_collect_card · graph_delete_card · graph_convert_card_to_shared · graph_convert_card_to_owned · graph_attach_shared_card · graph_detach_shared_card · graph_list_shared_cards
附件 graph_store_attachment · graph_delete_attachment
排期 graph_move_goal
执行派发 graph_start_attempt · graph_set_directive · graph_record_attempt_handoff · graph_unbind_goal_child · graph_abandon_attempt
记忆 graph_memory_add · graph_memory_recall · graph_memory_remove · graph_memory_replace
配置管理 graph_get_settings · graph_update_settings
校验 / 对账 graph_validate · graph_rebuild
状态汇报 graph_report_status · graph_report_supervisor_status
评审裁决 graph_resolve_accept
历史讨论 graph_add_comment
完成摘要 graph_write_results · graph_refresh_results
换会话 graph_handoff · graph_claim_supervisor
帮助 graph_help

看板(浏览器客户端)

浏览器二维泳道看板:横向为生命周期阶段列(描述 / 收集 / 执行 / 确认 / 交付 / 阻塞),每个版本一条泳道,另有 Backlog 与独立目标区;支持拖拽排期、判据 / 上下文卡片抽屉、实时状态显示、阻塞折叠等。以下为虚构演示数据(nebula-notes)截图:

看板总览 目标详情弹窗 侧边栏看板(窄档:阶段列纵向堆叠、工具条折叠为 ⋯ 工具)

侧边栏与数据目录

侧边栏入口、窄档(<480px)分档行为与「怎么把看板放进窄档」的实测说明,以及数据目录 <workspace>/.dsh-graph(纯文本 + 只追加 events.jsonl,git 友好、可 graph_rebuild 对账)的完整说明,均见 dsh-graph-host/README.md。

仓库结构(monorepo)

  • core/ —— 核心层源码(唯一事实源),经 scripts/sync-core.sh 编译成 dist/core/*.js 进发布包;核心层不依赖 DSH。
  • dsh-graph-host/ —— 单包发布物源码:index.js(工具 + REST 端点)、lib/client/*.js(看板源模块,构建产物为 dist/lib/client.js)、cordis.patch.yml、supervisor-guide.{zh,en}.md、README.md、LICENSE。
  • schema/、docs/、scripts/ —— 数据 / 设计文档 / 构建脚本;一切构建产物落在 dist/(gitignored)。

开发

bash scripts/build.sh                 # 同步 core + 客户端产物 + 复制发布资产到 dist/
node --test core/tests/*.test.ts      # 全量测试
./node_modules/.bin/tsc --noEmit -p tsconfig.json
# 隔离测试实例(不碰主 GUI):DSH_HOME 与 workspace 均在 ./tmp/dsh-test/ 下
bash scripts/dsh-test-web.sh <DSH版本> [--port PORT]

构建与实验一律在隔离 worktree(.worktrees/<goal>-att-<NN>)内进行;约定见 AGENTS.md,隔离实例参数与开发回路见 docs/dev-instance-guide.md。README 截图用 scripts/dsh-graph-mock-seed.mjs 生成虚构演示数据后复现。

License

MIT(Copyright © 2026 miuzel)—— 见 dsh-graph-host/LICENSE。

About

把工作组织成目标看板的 DeepSeek Harness (dsh) 插件:目标 / 判据 / 上下文卡片 / 执行 attempt 的二维泳道看板,数据以文件+事件流落在 .dsh-graph · Goal-kanban plugin for DeepSeek Harness

Topics

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages