前言¶
在 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 |
未设置 | 显式模型路由;默认沿用该回合的路由 |
典型用法¶
- 安装并打开 Web profile(或 Desktop 中添加插件)后,正常完成一轮对话。
- 在回合末尾卡片查看 2–3 条建议;点 Start 或 Start all。
- 在侧栏或 Open sub-session → 进入子会话,在对应 worktree 分支上继续执行 prompt。
- 若卡片未出现或需重生成,在输入框使用
/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。