前言¶
DSH 的会话生命周期是独立的:一个会话完成的工作,另一个会话默认不会自动看到。跨会话协作、把任务交给子agent、在新会话继续旧会话未完成事项时,需要一块共享的任务板。
下面介绍 dsh-task-relay:它是一个 DSH 插件,提供基于本地持久队列的跨会话任务接力,以及会话交接摘要。
这是什么¶
dsh-task-relay 由 LeslieWylie 维护,许可为 MIT,当前版本为 0.1.1。它面向 DSH 的跨会话和子agent场景,核心能力是把任务写入本地队列,让后续会话可以查看、认领、完成或取消任务,并记录、读取交接摘要。
运行环境要求为:
Node: ^22.19.0 || >=24.0.0
peerDependencies 要求为:
@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
核心功能¶
它注册 7 个工具,覆盖任务生命周期和交接摘要:
task_push:推送新任务到共享队列,指定标题、描述、优先级、标签。task_list:按状态、优先级、标签筛选,返回降序列表。task_claim:认领一个开放任务,标记为claimed。task_done:标记任务为已完成,并记录结果。task_cancel:取消任务;open状态删除,claimed状态退回open。handoff_write:记录当前会话的工作进展和待办事项。handoff_read:按会话 ID 或最近 N 条读取交接摘要。
队列数据保存到本地 JSON 文件,并使用原子写入(temp file + rename)防止数据损坏。
安装与启用¶
先安装到目标 profile。以 web profile 为例:
dsh plugin --profile web add github:LeslieWylie/dsh-task-relay
如果要用于 headless 场景,也可以安装到 headless profile:
dsh plugin --profile headless add github:LeslieWylie/dsh-task-relay
或者在 cordis.yml 中追加插件配置:
- id: task-relay
name: 'dsh-task-relay'
典型用法:任务接力¶
下面是一个跨会话任务流程。会话 A 先推送任务:
task_push title="修复登录页 Bug" priority="high" tags=["bug","frontend"]
会话 B 再查看并认领:
task_list status="open" priority="high"
task_claim id="T1723647600000-1"
会话 B 完成后写回结果:
task_done id="T1723647600000-1" result="已修复,commit abc123"
典型用法:交接摘要¶
会话结束前,可以写入当前进展和待办:
handoff_write summary="完成了功能 A 的开发,剩余功能 B 和 C 待做。功能 B 的前端组件已搭好框架,后端 API 需要从 session-x 的交接中获取接口文档。"
新会话启动后读取摘要:
handoff_read
数据存储与目录配置¶
默认队列文件位于:
$HOME/.dsh/task-relay/queue.json
如果不同 profile 需要独立队列,可以在 bundle 行配置 config.root 指向不同目录。例如:
- id: task-relay
name: 'dsh-task-relay'
config:
root: '~/.dsh/task-relay-staging'
安全边界与工程细节¶
该插件被描述为纯工具插件:不联网、不执行外部命令。数据存储在用户主目录下的 ~/.dsh/task-relay/,目录权限为 700。
输入有长度和数量限制:
- 标题 200 字符
- 描述 4000 字符
- 摘要 2000 字符
- 标签 10 个
认领和完成操作有会话归属校验。
包的入口为 lib/index.js。README 提到,提交构建产物是为了处理 pnpm 从 git 安装时拒绝执行构建脚本的问题;同时 tests/boot.test.mjs 和 CI 会各自重新构建一次再比对,用于防止构建产物与源码脱节。
适用场景与注意¶
它适合在 DSH 多会话、子agent或长任务拆分场景中使用,尤其是需要在会话之间传递任务、交接上下文和查询历史任务的情况。
安装和启用前,先检查源码、许可证和 peerDependencies 是否匹配当前 DSH 环境。插件会以当前 dsh 进程权限运行,因此不要在不信任的仓库或不可控环境中直接启用。
链接¶
GitHub 仓库:
https://github.com/LeslieWylie/dsh-task-relay
目录页线索(未在本文抓取资料中确认):
https://www.skillhub.cn/plugins/LeslieWylie/dsh-task-relay