dsh-suggested-task:每轮对话结束后的跟进任务建议

前言

在 DeepSeek Harness(DSH)里跑完一轮智能体对话,常见情况是:模型已经给出结论或改动了代码,但「接下来补测试、拆 PR、修边角」这类可执行步骤往往还要自己整理,再开新会话或手动切分支。Claude Desktop 等产品会在回合末尾给出 Suggested Tasks;DSH 社区插件 dsh-suggested-task(维护者 littepointR,分类:工作流)把类似能力接到 Harness 上,并在隔离的 Git worktree 里以子会话并行启动任务。

下面介绍它做什么、怎么装、怎么用,以及配置与适用边界。事实以 GitHub 仓库 README 与 package.json 为准;社区目录页:https://www.skillhub.cn/plugins/littepointR/dsh-suggested-task(与 DeepSeek / 幻方无官方从属关系,仅为社区收录)。

这是什么

dsh-suggested-task 是 DSH 的 resident 插件:在每轮对话完成后,建议 2–3 条可操作的跟进任务(标题、简述、执行用 prompt、目标 Git 分支 slug);你可以单条 Start,或在卡片头 Start all (N) 一次性并行启动。启动后会在 .agents/worktrees/<branch> 下创建独立 Git worktree,以子会话运行,并继承父会话在该回合事件边界处的上下文。

包名 @local/dsh-suggested-task,当前 README 侧发布标签示例为 v1.0.0,package.json 中版本为 1.0.1;许可证 MIT。

核心功能

回合末尾建议任务卡片

挂载在 conversation.chat.turnTail:每轮结束后展示建议任务列表。单条 Start 或 Start all 后,各行显示子会话状态(Running / Ready),并提供 Open sub-session → 进入对应子会话。

隔离 Git worktree

启动任务时会:在已完成回合的事件边界 fork 父会话(继承对话上下文)、在 .agents/worktrees/<branch> 创建专用 worktree 与分支、把子会话工作目录切到该 worktree,并自动下发任务 prompt。

子会话血缘与界面

  • 工作区侧栏:子会话排在父会话下方,缩进与树形连线;悬停可看到父会话与 worktree 分支信息(sidebar.session.row.leading / sidebar.session.row.hover)。
  • 会话头(conversation.session.header.actions):子会话显示可点击的 ↖ Parent: <Title> 与 ⎇ <branch>;父会话显示 ↳ N sub-sessions 下拉及运行中数量。

/tasks 斜杠命令

按需生成或启动建议任务:

  • /tasks 或 /tasks generate [turn]:生成或重新生成某回合的建议任务。
  • /tasks start <turn> <taskId>:在隔离 worktree 子会话中启动单条任务。
  • /tasks start-all [turn]:并行启动该回合所有尚未启动的任务。

环境与安装

要求:DSH >= 0.2.1-rc.2(见 package.json 的 engines.dsh)。

从 GitHub 安装(无需构建)

插件为纯 JavaScript,无 prepare 构建步骤;dsh plugin add 会通过 profile 内 pnpm 安装,并因包声明 dsh.bundle.patch 自动写入 dsh.profile.bundles。

dsh plugin --profile web add github:littepointR/dsh-suggested-task
dsh web

若关闭 HMR,需重启 profile 后插件才会加载。固定到 tagged release 时:

dsh plugin --profile web add github:littepointR/dsh-suggested-task#v1.0.0

Desktop 应用的 desktop profile 保留给 Electron,独立 CLI 不接受 --profile desktop。在 Desktop 中通过 Settings → Plugins → Add,粘贴仓库 URL https://github.com/littepointR/dsh-suggested-task 即可,无需重启应用。

本地 checkout(资料中的方式)

git clone https://github.com/littepointR/dsh-suggested-task.git
dsh plugin --profile <profile> add link:<absolute-path-to-checkout>

bundle patch 会插入 suggested-task 行,重启后仍作为 profile bundle 存在。

配置

字段均可选,可在 profile 的 cordis.patch.yml 里覆盖 suggested-task 行:

字段 默认值 含义
enabled true false 时关闭投影、回合监听与 /tasks
mode 'fork' 'fork' 复用完整对话前缀;'digest' 发送紧凑 JSON 摘要
maxTasks 3 每回合最多建议任务数(1..5)
maxTokens 1024 建议请求的输出 token 上限
temperature 0.3 采样温度
timeoutMs 15000 单次建议请求超时(毫秒)
maxForkChars 12000 fork 模式下对话窗口字符预算
maxInputChars 6000 digest 模式下摘录字符上限
fallback true fork 无结果时用 digest 重试
skipSubagents true 子 agent 会话不生成建议
skipTaskSessions true 由建议任务启动的子会话不再自动建议
worktreePrefix 'task/' 新建 worktree 分支前缀(如 task/add-unit-tests)
worktreeFallback true 当前会话不在 Git 仓库时,回退到当前目录启动
provider, model 未设置 显式模型路由;默认沿用该回合的路由

典型用法

  1. 安装并打开 Web profile(或 Desktop 中添加插件)后,正常完成一轮对话。
  2. 在回合末尾卡片查看 2–3 条建议;点 Start 或 Start all。
  3. 在侧栏或 Open sub-session → 进入子会话,在对应 worktree 分支上继续执行 prompt。
  4. 若卡片未出现或需重生成,在输入框使用 /tasks generate;手动启动单条可用 /tasks start <turn> <taskId>,批量用 /tasks start-all [turn]。

适用场景与注意

适合:希望在 DSH 工作流里把「对话结论」自动延伸为并行、可隔离的分支任务(补测试、小 refactor、文档等),且仓库已用 Git 管理、能接受 .agents/worktrees/ 下额外 worktree 的开发者。

注意:

  • 插件以当前 dsh 进程权限运行;安装前请自行审阅 源码 与 MIT 许可证。
  • 非 Git 工作区时行为受 worktreeFallback 影响,可能只在当前目录启动,隔离性减弱。
  • 子 agent 会话、已由建议任务派生的子会话默认不再自动建议(skipSubagents / skipTaskSessions),避免任务链无限膨胀。

结尾

dsh-suggested-task 把「回合结束 → 建议跟进 → worktree 子会话并行执行」接到 DSH 插件体系里,贴近 Claude Desktop Suggested Tasks 的使用习惯,又绑定 Harness 的会话 fork 与 Git worktree 能力。需要固定版本或 issue 时,见 GitHub:https://github.com/littepointR/dsh-suggested-task;社区目录:https://www.skillhub.cn/plugins/littepointR/dsh-suggested-task。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜