全部插件

DSH / BUNDLE / BUNDLES

dsh-plugin-durable-subagent

v0.1.0Tim-ReJet / dsh-plugin-durable-subagentdda3c842b4

可安装组合包组合包与其他模块社区 · Topic 自动分析

概览

dsh-plugin-durable-subagent

Durable subagent execution for DeepSeek Harness: registers a durable subagent provider and a model-facing tool that drive pi-durable-subagents, so a crashed delegation converges on its first outcome instead of running twice.

README / ZH

插件文档

目录摘要

Durable subagent execution for DeepSeek Harness: registers a durable subagent provider and a model-facing tool that drive pi-durable-subagents, so a crashed delegation converges on its first outcome instead of running twice.

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **A linked plugin resolves its imports from its own repository.** `dsh plugin add <path>` records a `link:`, and Node follows the symlink to the plugin's real path, so `@deepseek-ai/*` is resolved from the plugin directory and never from the profile. The local install must therefore carry a complete closure: `npm install` resolves this package's harness peers, while `npm install --legacy-peer-deps` leaves `@deepseek-ai/dsh-tools` without the nine packages it declares as peers, and the profile then fails to boot with `failed to import loader entry durable-subagent (dsh-plugin-durable-subagent): Cannot find package '@deepseek-ai/dsh-scope'`. A published install from npm does not have this problem. - **`cwd` is part of the submission digest.** A retry from a different working directory is a `request-conflict` rather than the first outcome. The default is stable for the life of the harness process; a per-session `cwd` is not yet wired. - **The provider cannot be replay-stable.** `ResolvedSubagentStartRequest` carries no call identity, so only the tool path gets one execution per call. Making the provider path exact needs a durable run identity on the request; that is a harness change. - **`dispose()` stops a run but does not await quiescence.** The orchestrator is a separate process and owns its own teardown, so the run handle cannot observe the child's exit. - **No continuable children and no Agent Teams membership.** `prepareContinuable` is deliberately not implemented: `spawn_teammate` and cold resume need a durable child session this provider does not create. - **No tool filtering, persona, or delegation depth.** The provider reports `outputSchema` only; a request needing another capability is rejected loudly by the subagent service rather than silently ignored. - **`outputSchema` validation is delegated.** `pi-durable-subagents` validates a `report` against the schema it was handed before sealing, so a sealed `data` payload is schema-valid; the plugin does not re-validate it. - **The orchestrator is not supervised.** The plugin neither starts nor restarts `pi-durable-subagents`; it relies on the orchestrator's own lazy start, lock, and idle exit. Running it under `ctx.subprocess` would make harness disposal kill it. - **A failure is per call.** A workflow reports `status: "done"` even when every call inside it failed, and `output`/`error` live on the calls. `summarize()` reads them there; the read-only `status` view alone would call a failed delegation completed.