📦 这个插件住在 dsh-plugins 单体仓库里 —— 提 issue 和 pull request 请去那边。
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/hy-sde/dsh-graph.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-graph @ 0.19.8
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:37:09
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求packages/graph-host/src/assembler.ts:290
onCompact: sessionId => input.compaction.request(sessionId),
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 智能体图持久化监督
- 控制面与操作执行
- 流层投影与唤醒
DeepSeek Harness 的智能体图(持久化监督器):控制面、操作执行器、流层、投影、唤醒、宿主装配和监督工具——即 dsh-graph-* / dsh-tool-graph 系列包。
README
由 DeepSeek 最新模型翻译生成[!NOTE]
📦 这个插件住在 dsh-plugins 单体仓库里 —— 提 issue 和 pull request 请去那边。
npm:@hy-sde-org/dsh-graph-control · @hy-sde-org/dsh-graph-executor · @hy-sde-org/dsh-graph-host · @hy-sde-org/dsh-graph-projection · @hy-sde-org/dsh-graph-stream · @hy-sde-org/dsh-graph-wakes · @hy-sde-org/dsh-tool-graph
dsh-graph —— 给 DeepSeek Harness 用的持久化智能体图调度
这是 Maka Agent Graph 家族(控制存储、流核心、执行器、监督工具、唤醒、投影、宿主)的独立移植版,跑在 DeepSeek Harness 上 —— 提供持久化依赖调度,带 exactly-once 认领和 supervisor yield/wake。
展开完整文档(README 剩余 1 节)
[!NOTE]
📦 这个插件住在 dsh-plugins 单体仓库里 —— 提 issue 和 pull request 请去那边。
npm:@hy-sde-org/dsh-graph-control · @hy-sde-org/dsh-graph-executor · @hy-sde-org/dsh-graph-host · @hy-sde-org/dsh-graph-projection · @hy-sde-org/dsh-graph-stream · @hy-sde-org/dsh-graph-wakes · @hy-sde-org/dsh-tool-graph
dsh-graph —— 给 DeepSeek Harness 用的持久化智能体图调度
这是 Maka Agent Graph 家族(控制存储、流核心、执行器、监督工具、唤醒、投影、宿主)的独立移植版,跑在 DeepSeek Harness 上 —— 提供持久化依赖调度,带 exactly-once 认领和 supervisor yield/wake。图根会话负责规划一份持久化的工作排期(view_agent_graph / update_agent_graph),然后用 yield_agent_graph 结束自己的回合,而不是轮询;operator 子节点作为子代理运行,待在 git-worktree 租约里,受 exactly-once 认领约束;宿主则在下一个空闲边界,根据持久化的 wake 行唤醒 supervisor。
| 身份 | 值 |
| 包 | 7 个已发布的 npm 包(见 Packages);仓库根目录是私有工作区(dsh-graph 0.1.7-rc.2),没有总括性的 npm 包 |
| 插件行 id | graph-host(宿主组合)· tool-graph(图根会话的智能体预设)· graph-projection(挨着会话投影注册表) |
| 工具 | view_agent_graph · update_agent_graph · yield_agent_graph |
| 提示词段落 | orchestration:graph |
| 服务 id | agentGraphController · graphHostServices |
| 投影单元 | graph(由 graph/change 会话事件喂数据) |
| 存储单元 | agent_graph KvUnit(@deepseek-ai/dsh-storage) |
基于 Apache Maka(Apache-2.0) —— Agent Graph 的控制存储、流核心、执行器适配层、监督工具、唤醒投递、投影和宿主插件都移植自 Maka(No. 1),重新挂到 DeepSeek Harness 的原语上;这些模块也源自 DeepSeek Harness 代码库(MIT)。来源说明汇总在 THIRD-PARTY-NOTICES.md。
Packages
| 包 | 职责 |
| @hy-sde-org/dsh-graph-control | 持久化决策存储:只追加的排期日志、exactly-once 意图认领、operator 供给、supervisor 唤醒 |
| @hy-sde-org/dsh-graph-stream | 推导层:记录、追踪、就绪状态、输入交接,以及 AgentGraphCoordinator 驱动循环 |
| @hy-sde-org/dsh-graph-executor | 算子执行器适配层:确定性的 worktree 租约、持久绑定、串行化的子运行与终态记录 |
| @hy-sde-org/dsh-tool-graph | 面向模型的监督者工具,以及 orchestration:graph 提示词片段 |
| @hy-sde-org/dsh-graph-wakes | 基于持久唤醒行的空闲门控监督者唤醒投递 |
| @hy-sde-org/dsh-graph-projection | graph 会话投影单元,折叠宿主发布的整值 graph/change |
| @hy-sde-org/dsh-graph-host | 宿主平面装配:打开存储、在真实 harness 接缝上构建执行器、发布控制器 |
为什么
智能体只靠对话协调长时间的扇出工作,一旦重启、压缩上下文或遇到繁忙轮次,计划就丢了。这一组插件让调度变得持久:每个决策都是一行只追加的调度记录,带确定性的 sha256 id(graph_update_…、graph_claim_…、graph_operator_…、graph_wake_…);精确一次的认领在观察到的调度修订上写入预分配的轮次/运行身份,因此重试会复用同一个激活身份,而不是把服务商调用两次。每次认领/供给状态转换都以观察到的调度修订为条件,所以过期的驱动无法重新派发。存储才是权威;记录、路由、就绪意图和工作状态都保持推导得出、可重新计算。监督者按波次汇报结果并让出,宿主在持久检查点重新驱动图并唤醒根会话——无需轮询。
前置条件
- Node.js 22.19 或更新版本,且 PATH 上有 npm 和 pnpm(仓库 engines:>=22.19.0);
- 一套 DeepSeek Harness 安装,提供本组的 peer 范围——@deepseek-ai/* 接缝包为 ^0.2.0-rc.2(storage、session、session-projection、session-persistence、agent、subagent、compaction、llm、tools、system-prompt),@deepseek-ai/cordis 为 ~4.0.4——包括标准的 dsh 命令行;
- 已发布的 @hy-sde-org/dsh-git worktree 引擎(graph-host 的 peer);
- 图控制单元的存储后端(默认 sqlite)——一个 agent_graph KvUnit,每个进程只打开一次。
继续之前先安装命令行和 pnpm:
npm install --global @deepseek-ai/dsh pnpm
dsh --version
快速开始
路线 A —— 已发布的 npm 包(推荐)
dsh plugin --profile web add @hy-sde-org/dsh-graph-host
dsh plugin --profile web add @hy-sde-org/dsh-tool-graph
dsh plugin --profile web add @hy-sde-org/dsh-graph-projection
四个库包(dsh-graph-control、dsh-graph-stream、dsh-graph-executor、dsh-graph-wakes)不带插件行;它们是宿主行的 peer 依赖。所有 peer 依赖都是已发布的包——这里不需要任何未发布的 fork 包。
路线 B —— 从源码安装(验证这份 checkout,或改插件)
git clone git@github.com:hy-sde/dsh-plugins.git
cd dsh-plugins/dsh-graph
pnpm install
for pkg in graph-host tool-graph graph-projection; do
(cd packages/$pkg && PACKAGE_TARBALL="$(pnpm pack | tail -n 1)" && dsh plugin --profile web add "$PWD/$PACKAGE_TARBALL")
done
每次 pnpm pack 都会跑一遍包自带的 prepack 构建,产出的 tarball 里包含 dist/。直接依赖 github:<this-repo> 拿不到构建产物,不是受支持的安装方式——请始终安装构建好的 tarball(或已发布的包)。
接上这些行
这个分组不带 bundle 补丁:要挂载,就把包行加进配置档组合(见 harness 插件文档)。graph-host 行位于宿主组合——它注入宿主服务,也发布新服务,所以它的一切都不能按会话区分。tool-graph 和 graph-projection 行位于图根会话的智能体预设:
host composition (loaded before any session)
- id: graph-host
name: '@hy-sde-org/dsh-graph-host'
config:
rootSessionId: <ROOT_SESSION_ID> # the graph root session id
subagentProvider: spawn # one-shot in-process subagent provider
backend: sqlite # backend owning the graph control unit
maxNewActivations: 4 # new operator activations per drive (default 4)
agent preset composition for the graph root session
- id: tool-graph
name: '@hy-sde-org/dsh-tool-graph'
- name: '@deepseek-ai/dsh-session'
- name: '@deepseek-ai/dsh-session-projection'
- name: '@hy-sde-org/dsh-graph-projection' # registers only when the registry is present
把 <ROOT_SESSION_ID> 换成部署的图根会话 id——只有那个会话能驱动 supervisor 工具,graph/change 事件也归它所有。预设行绝不能发布服务;这里预设行只做两件事:注册工具,以及提供投影单元。
验证组合后的配置
dsh web --dump-config
组合出的树里必须能看到:宿主组合中有一个 graph-host 行加载 @hy-sde-org/dsh-graph-host,图根会话的预设中有一个 tool-graph 行加载 @hy-sde-org/dsh-tool-graph,并且 @hy-sde-org/dsh-graph-projection 紧挨着会话投影注册表。
运行
dsh web
在 graph 根会话中,让智能体规划工作:update_agent_graph 每次调用提交一条持久决策(通过 targetKind 添加工作、停止目标,或用已提交的结果 id 收尾;idempotencyKey 让重试安全),yield_agent_graph 结束 supervisor 轮次,同时 graph 驱动 operator 子节点。宿主会在下一个持久检查点唤醒会话;view_agent_graph 展示有界调度——工作状态、截断的记录摘要、就绪意图、显式的 omitted 计数。
卸载
本组不附带 bundle 行——graph-host 行(宿主组合)以及 dsh-tool-graph / dsh-graph-projection 行(智能体预设)都是手动添加的,所以 dsh plugin remove 不会动它们。先移除这些行,然后:
dsh plugin --profile web remove @hy-sde-org/dsh-graph-host
dsh plugin --profile web remove @hy-sde-org/dsh-tool-graph
dsh plugin --profile web remove @hy-sde-org/dsh-graph-projection
bundle 做什么
本组不附带 bundle 补丁——三个可挂载包声明了 Cordis 插件行,由你自行放置:
1. graph-host(宿主平面行) 注入 agents、sessions、subagents、git、compaction;打开 graph 控制单元;在 git worktree 引擎和子代理运行时之上构建 operator 执行器(用 OncePerClaimGraphExecutor 精确一次守卫包裹);发布 agentGraphController 服务,supervisor 工具用 ctx.get 解析它,同时发布整个 graphHostServices 装配句柄;每次调度提交、协调和唤醒投递之后,向根会话日志追加 graph/change 事件;在根会话的空闲边界驱动唤醒投递。根智能体发布(agent/created)时挂载,若已处于活动状态则立即挂载,并随其 fiber 撤回服务。
2. tool-graph(智能体平面行) 在 graph 根会话中注册三个 supervisor 工具和 orchestration:graph 提示词段落。即使控制器缺席,工具也会挂载——智能体预设绝不会破坏会话创建——在宿主提供控制器之前,每次调用都会以 [agent-graph-unavailable] 大声失败。
3. graph-projection 注册 graph 会话投影单元:对宿主的整值 graph/change 发布做纯折叠(在首次发布之前提供 null)。Web 聊天通过 useProjection('graph') 将其渲染为 graph 栏和 chip。没有投影注册表时,该单元不注册任何内容,其他装配也只是不提供 graph 键。
四个库不贡献任何工具、提示词或插件行——控制存储、协调器、执行器适配器和唤醒运行时由宿主装配消费。
忠实移植 Maka,并适配 harness
根据 THIRD-PARTY-NOTICES.md,控制存储、流核心、执行器适配器、监督工具、唤醒投递、投影和宿主插件都移植自 Apache Maka(No. 1),并重新托管在 DSH 原语之上,另有部分派生自 DeepSeek Harness 代码库。
忠实于 Maka 的部分:
- 唯一一条硬规则:持久化声明——连同预分配的 turn/run 身份——必须在运行时被要求执行之前写入,且每次声明/供给状态转换都以它观察到的调度修订为条件,因此重试会复用同一个激活身份。
- 确定性的 sha256 id 截断为 32 个十六进制字符,让重放在构造上就是幂等的;身份排序采用 UTF-16 代码单元顺序,跨进程稳定。
- 手写的驱动循环(供给 → 监督 → 选择 → 渲染 → 执行)、监督者唤醒状态机(pending → running → delivered/superseded/retryable_failed/exhausted),以及 Maka 的载荷上限(32 个 addWork 项、64 个输入 id、64 个选中结果、60 000 个指令字符、20 个停止目标、64 个完成结果 id、4 000 个原因字符)。
- Worktree 有意在终态运行后保留——执行器从不释放租约;池释放只在图拆除时接线。
- 一处有记录的刻意偏离:记录是带来源信息的精简复制形态,而非 Maka 的 18 面完整记录。
为适配 harness 所做的改动(以及原因):
- 控制存储。 Maka 的存储层变成 @deepseek-ai/dsh-storage 上的一个 agent_graph KvUnit——五张权威表,加上执行器适配器新增的 operator_bindings 表——串行在一条写链上,派生唯一性索引在打开时重建,因此撕裂写入会自愈而不是损坏。
- Worktree 租约。 租约身份是派生的(graph_operator_lease_<sha256(graphId, workId, provisionFingerprint)[32]>),并通过 operator_bindings 绑定行持久化——这是真实池在重启后查询的持久提示,因为租约幂等性否则只存在于进程本地。
- 执行接缝。 子级通过 harness 子代理运行时(subagents.start,随附服务商 spawn)运行,而不是 Maka 的会话管理器;协调器从不直接调用服务商。
- 唤醒投递。 Maka 的监督者唤醒被重新表达为宿主运行时,以 harness 的 agent/status === 'idle' 观察接缝为门控(与 Schedule 包使用的同一模式),因此回合运行期间绝不会投递唤醒。
- 工具面。 DSH 没有 direct_only/nesting 工具标志,因此仅限根级的强制放在工具体内(call.sessionId 必须等于控制器的 rootSessionId),Maka 的运行列表映射到智能体循环的回合边界(graph_run_<n> / graph_turn_<n>)——已记录为与 Maka 不完全一致。
- 记录只存在于进程内。 持久权威是一组控制行(schedule、claims、provisions、wakes);终态操作记录在内存中折叠,宿主重启就会丢失,直到宿主接线补上带归属的持久事件——此时会话投影回退到 schedule/claim 状态。
配置
唯一可配置的行是 graph-host;tool-graph 不接受任何选项。通过行的 config: 覆盖字段——快速开始 下的接线示例就是完整接线。
| 选项 | 默认值 | 用途 |
| rootSessionId | 必填 | 图根会话 id;只有这个会话可以驱动 supervisor 工具,并且它拥有 graph/change 事件 |
| subagentProvider | 必填 | 转发给 subagents.start 的服务商名称;随包提供的进程内服务商是 spawn |
| backend | sqlite | 承载图控制单元的存储后端名称 |
| worktreeRepoRoot / worktreeBaseBranch / worktreeMaxSlots | — | worktree 池几何参数 |
| maxNewActivations | 4 | 每次 reconcile 驱动允许的新操作激活数上限 |
唤醒重试行为固定在代码里,不走配置:retryable_failed 唤醒按 now + 30 s × attemptNumber 重新武装,并在 DEFAULT_MAX_DELIVERY_ATTEMPTS = 3 时持久耗尽。
兼容性
| 组件 | 支持的契约 |
| Node.js | 22.19 或更新 |
| DeepSeek Harness | ^0.2.0-rc.2 peer 范围(dsh-storage、dsh-session、dsh-session-projection、dsh-session-persistence、dsh-agent、dsh-subagent、dsh-compaction、dsh-llm、dsh-tools、dsh-system-prompt);@deepseek-ai/cordis ~4.0.4 |
| 同级包 | @hy-sde-org/dsh-git —— worktree 引擎(graph-host peer) |
| 存储 | 一个 agent_graph KvUnit;单写者契约——每个进程只能打开该单元一次 |
| 接缝 | subagents、git worktree 引擎(acquire/list)、compaction 维护、会话事件(graph/change)、agent/status === 'idle' 观测;投影注册表可选(没有它就不提供 graph 键) |
设计范围:一个 DSH 会话拥有一个图——每个根多图暂缓——并且 agentGraphController 服务名在每个宿主 fiber 中是单例,所以有多个图根的部署需要在独立 realm 中为每个根配置宿主行。DeepSeek Harness 是开发者预览版;上游接缝契约变更需要发布新包并做契约评审。
开发
pnpm install
pnpm check # strict typecheck across all packages
pnpm test # vitest suites per package
pnpm build # tsc -> dist for every package
pnpm pack:all # pack every package (runs each prepack build)
每个包也有自己的 clean/build/check/test/prepack。测试套件跑在真实的 SQLite 存储之上:graph-stream 检验投影、校验、交接和端到端驱动场景;graph-executor 把假的 pool/runner 与真实存储配对;graph-wakes 使用假的空闲观察器;graph-host 伪造 subagents/worktrees/compaction 这几处接缝;graph-control 直接测试存储契约。每个子包的 README(链接见 Packages)都深入介绍了自己的接口面。
许可证与署名
本仓库采用 MIT 许可证(© 2026 hy-sde,见 LICENSE)。各模块源自 DeepSeek Harness 代码库(MIT,© 2026 DeepSeek)以及 Apache Maka(Apache-2.0,© the Apache Software Foundation —— “Apache Maka Incubating”);根据 THIRD-PARTY-NOTICES.md,Apache License 2.0 文本适用于源自 Maka 的模块,仓库其余部分为 MIT。各子 README 中引用的 Maka 参考:agent-graph 流调度草案(第 7 章)、git-worktree-child-executor.ts、session-manager.ts、agent-graph-supervisor-wake.ts 和 stream-graph-supervisor-tools.ts。
这些包是各自独立的可安装组件;harness 仍归其自身项目所有。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hy-sde/dsh-graph
📦 这个插件住在 dsh-plugins 单体仓库里 —— 提 issue 和 pull request 请去那边。
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9