dsh-task-relay

DSH PLUGIN记忆与知识

仓库 LeslieWylie/dsh-task-relay · npm dsh-task-relay

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 提供跨会话任务接力板,支持任务推送、认领、完成及交接摘要,实现会话间协作。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 1
最近更新 2026-08-18 创建于 2026-08-14
README 6.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:LeslieWylie/dsh-task-relay#v0.1.1
兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24.0.0来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@>=4.0.1-rc.1 <5.0.0-0、@deepseek-ai/dsh-tools@>=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0需要同时安装的同级依赖
npm 包名dsh-task-relay可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-task-relay:DeepSeek Harness 的跨会话任务接力板插件

  • 跨会话任务队列
  • 任务认领与完成
  • 交接摘要记录
  • 持久化存储

适用场景

记忆存储通知

上游标签

agent-toolsdeepseek-harnessdshdsh-pluginmulti-agent

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方LeslieWylie仓库 dsh-task-relay · 默认分支 main
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-08-18最后推送 2026-08-18
本站收录2026-08-22首次进入本站目录的时间

README 全文

6.2 KB
作者原文,中文版优先;只做安全转义,不改内容

📋 dsh-task-relay

English

DSH 跨会话任务接力板插件 —— 基于持久队列的跨会话/子agent 任务接力 + 交接摘要。

为什么

DSH 的会话生命周期是独立的:会话 A 做完的工作,会话 B 默认不知道。dsh-task-relay 填补了这个空白——它提供一个跨会话共享任务队列,任何会话(包括子 agent)都可以:

  • 投递任务给未来的自己 / 其他会话 / 子 agent
  • 认领和完成开放任务
  • 记录会话交接摘要,供后续会话查看

工具一览

工具 能力 描述
task_push 推送任务 投递新任务到共享队列,指定标题/描述/优先级/标签
task_list 查询任务 按状态/优先级/标签筛选,返回降序列表
task_claim 认领任务 认领一个开放任务,标记为 claimed
task_done 完成任务 标记任务为已完成,记录结果
task_cancel 取消任务 open 则删除,claimed 则退回 open
handoff_write 写交接摘要 记录当前会话的工作进展和待办事项
handoff_read 读交接摘要 按会话 ID 或最近 N 条读取

安装

# 安装到 web profile
dsh plugin --profile web add github:LeslieWylie/dsh-task-relay

# 安装到 headless profile
dsh plugin --profile headless add github:LeslieWylie/dsh-task-relay

或者在 cordis.yml 中追加:

- id: task-relay
name: &#x27;dsh-task-relay&#x27;

使用示例

跨会话任务接力

会话 A:推送一条任务

task_push title=&quot;修复登录页 Bug&quot; priority=&quot;high&quot; tags=[&quot;bug&quot;,&quot;frontend&quot;]
→ { &quot;id&quot;: &quot;T1723647600000-1&quot;, &quot;title&quot;: &quot;修复登录页 Bug&quot;, &quot;status&quot;: &quot;open&quot;, ... }

会话 B:查看并认领

task_list status=&quot;open&quot; priority=&quot;high&quot;
→ 共 1 条任务,显示 1 条
task_claim id=&quot;T1723647600000-1&quot;
→ { &quot;id&quot;: &quot;T1723647600000-1&quot;, &quot;status&quot;: &quot;claimed&quot;, &quot;claimedBy&quot;: &quot;session-b&quot;, ... }

会话 B:完成后通知

task_done id=&quot;T1723647600000-1&quot; result=&quot;已修复,commit abc123&quot;
→ { &quot;id&quot;: &quot;T1723647600000-1&quot;, &quot;status&quot;: &quot;done&quot;, &quot;result&quot;: &quot;已修复,commit abc123&quot;, ... }

会话交接

会话结束时:

handoff_write summary=&quot;完成了功能 A 的开发,剩余功能 B 和 C 待做。功能 B 的前端组件已搭好框架,后端 API 需要从 session-x 的交接中获取接口文档。&quot;
→ { &quot;sessionId&quot;: &quot;session-a&quot;, &quot;summary&quot;: &quot;...&quot;, &quot;openTasks&quot;: 2, ... }

新会话启动时:

handoff_read
→ 共 3 条交接摘要,显示最近 5 条

数据存储

所有数据存储在 $HOME/.dsh/task-relay/queue.json,使用原子写入(temp file + rename)防止数据损坏。

改用别的目录,在 bundle 行加 config.root:

- id: task-relay
name: &#x27;dsh-task-relay&#x27;
config:
root: &#x27;~/.dsh/task-relay-staging&#x27;
配置项 默认值 说明
root $HOME/.dsh/task-relay 队列文件所在目录。不同 profile 指向不同目录即可各自独立。

架构

dsh-task-relay/
├── src/
│   ├── index.ts      # 插件入口:注册 7 个工具
│   ├── store.ts      # 持久化存储层(JSON 文件 + 原子写入)
│   ├── tools.ts      # 工具定义(defineTool)
│   ├── types.ts      # 类型定义
│   └── invariant.ts  # 输入验证
├── tests/
│   ├── store.spec.ts # 存储层单元测试(18 个)
│   └── tools.spec.ts # 工具注册与执行测试(8 个)
├── cordis.patch.yml  # DSH bundle patch
├── LICENSE           # MIT
├── README.md         # 中文文档
├── README.en.md      # English docs
└── package.json

开发

npm install
npm run typecheck   # tsc --noEmit
npm test            # vitest run (26 tests)
npm run test:boot   # 通过真实 cordis registry 执行已构建产物
npm run build       # tsc
npm run check       # typecheck + test + build

为什么 lib/ 提交进了仓库

因为不提交就没人装得上。

包的入口是 lib/index.js,由 tsc 生成。而 pnpm 出于安全考虑,默认拒绝为 git 依赖执行构建脚本,所以从 GitHub 安装会直接失败:

ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED  The git-hosted package &quot;[email protected]&quot;
needs to execute build scripts but is not in the &quot;onlyBuiltDependencies&quot; allowlist.

包甚至没能进入 node_modules。而 v0.0.1 期间 26 个单测始终全绿——因为它们 import 的是 src/*.ts,从不碰包对外承诺的那个入口。作者本机一直正常,只是因为 profile 用 link: 指向了一份本地已构建的目录。

提交构建产物换来了可安装性,代价是可能与源码脱节。tests/boot.test.mjs 和 CI 各自重新构建一次再比对,脱节就报错——这是为那个代价买的单。

为什么 peer 范围写得这么别扭

@deepseek-ai/dsh-tools 的 peer 范围是:

&gt;=0.0.1-rc.1 &lt;0.1.0 || &gt;=0.1.0-rc.1 &lt;0.2.0-0

看着啰嗦,但直觉写法是错的。semver 规定:预发布版本只有在某个比较符与它 major.minor.patch 完全相同、且该比较符自身也带预发布标签时,才算命中。

所以 v0.1.0 用的 &gt;=0.0.1-rc.1 &lt;0.2.0 匹配不上 0.1.0-rc.6——而这正是当前 harness 实际运行的版本(npm 上 latest 标签停在旧的 0.0.1-rc.1,当前线在 next 标签)。npm 于是转而去装 0.0.1-rc.1,在任何真实 profile 里都会 ERESOLVE 报错。

顺带一提,&gt;=0.0.0-0 &lt;0.2.0-0 这种"通配预发布"的写法同样无效——实测它一个 0.1.0 的预发布都匹配不到。只有显式 || 把两条预发布线分别列出来才行。

安全边界

  • 纯工具插件,不联网、不执行外部命令
  • 数据存储在用户主目录下的 ~/.dsh/task-relay/,目录权限 700
  • 输入验证:标题 200 字符、描述 4000 字符、摘要 2000 字符、标签 10 个
  • 认领/完成操作有会话归属校验

许可

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-task-relay 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:LeslieWylie/dsh-task-relay#v0.1.1` 即可。对应的 npm 包名是 `dsh-task-relay`。

dsh-task-relay 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-task-relay 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-task-relay 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1。版本较多,只列出前 8 个。

dsh-task-relay 需要什么运行环境?

Node.js ^22.19.0 || >=24.0.0;需要同时安装 @deepseek-ai/cordis@>=4.0.1-rc.1 <5.0.0-0、@deepseek-ai/dsh-tools@>=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0。环境不满足时安装会失败,建议先确认本机版本。

dsh-task-relay 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-task-relay 有哪些功能?

跨会话任务队列、任务认领与完成、交接摘要记录、持久化存储。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

LeslieWylie 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。