dsh-task-assist:在发送键旁按任务扫描技能并注入 Agent

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,会话里往往已经装了不少技能(skills)和 MCP 工具,但输入框旁没有统一入口:要靠记忆去翻目录、手动把方法论写进对话,或指望 Agent 自己猜该用哪套流程。任务一换,重复劳动就多。

下面介绍社区插件 dsh-task-assist(维护者 TheFold060629,分类:工作流)。它在对话框输入卡发送键左侧放一个常驻「辅助」按钮:用当前草稿当任务描述,扫描本会话可用的技能与 MCP,弹出可勾选的候选清单,确认后把选中项作为 steering 注入当前会话,由正在运行的 Agent 在下一步加载并按其方法论执行。也可开启「自动分析」,在每条消息发出后静默匹配并注入,无需再点按钮。

这是什么

dsh-task-assist 是 DSH 的任务辅助启动器插件:UI 挂在官方槽位 conversation.input.right(发送/停止键左侧的工具栏右侧);宿主侧提供 api/task-assist/scan、inject、auto、diag 等路由,对技能元信息与 MCP 工具名做关键词打分,客户端负责面板与发送后观测。

核心功能

发送键旁常驻按钮

插件在 conversation.input.right 注册客户端组件,与官方对话 UI 同栏,不替换发送键本身。

自动扫描与候选面板

  1. 用户输入任务描述(或使用输入框当前草稿)。
  2. 点击「辅助」后,客户端读取 useInput() 的 draft,向 api/task-assist/scan 发起扫描(任务文本与会话 id 一并带上)。
  3. 宿主在技能根目录(如 ~/.agents/skills、~/.dsh/skills、项目下的 .dsh/.agents/skills)枚举已装技能,并列出已连接 MCP 的工具;按任务关键词打分排序。
  4. 面板展示技能(可勾选)与 MCP 工具(陈列);顶部搜索栏可按名称或描述过滤,并提供对当前筛选结果的「全选/全不选」。
  5. 命中关键词的技能在面板中可默认勾选(与「自动分析」开关联动,见下)。

面板使用 position: fixed 相对视口定位,避免被 composer 层叠上下文挡住关闭与确认按钮;点面板外、Esc 或再次点「辅助」可关闭。

一键注入执行

用户在面板确认后,客户端将勾选结果 POST 到 api/task-assist/inject;宿主组装提示级指令,经 ctx.agents.get(sessionId).steer(message) 进入当前会话(消息 source 为 plugin:dsh-task-assist)。注入的是 steering 输入,不是直接代跑技能;是否加载、执行由 Agent 结合上下文判断。

自动分析适配技能

面板内可勾选「根据文本内容自动分析适配技能」:

  • 打开面板时,默认勾中所有命中项。
  • 开启后,每条消息发出时客户端观测 InputState(草稿清空且 draftRev 前进),调用 api/task-assist/auto;宿主再跑一遍 scan,对 score >= 1 的命中项同样走 steer 注入。过程不打断发送;无命中时静默成功。
  • 开关持久化在 localStorage(键 dsh-task-assist:auto-analyze);开启时按钮右上角有小圆点提示。

自动路径不劫持发送键,仅观测内核已发布的状态,避免违反 composer 契约导致客户端 boot 失败。

扫描边界

  • 扫描为只读:只读技能 name/description 与 MCP 工具名,不执行技能、不调用业务工具。
  • 面板 scan 结果展示全部技能(便于搜索与手动补选);自动路径才用 score >= 1 过滤。

安装与启用

环境要求:dsh >= 0.2.0-rc.2(见包内 dsh.engines.dsh);客户端依赖 @deepseek-ai/dsh-client-ui-conversation 声明的 conversation.input.right 槽。

把插件加入目标 profile 的 dsh.profile.bundles,然后完全退出并重启桌面端(仅刷新页面不够,host 半体只在进程启动时加载):

dsh plugin --profile <profile-name> add dsh-task-assist

本地开发可用源码软链(正式环境建议用包名):

dsh plugin --profile <name> add link:<本目录>

注意:不要在 profile 的 cordis.patch.yml 里再手写 - insert: [dsh-task-assist]。包内 dsh.bundle.patch 已 insert 该条目,重复会导致 duplicate entry id,桌面端无法启动。

改完 host 端逻辑后务必结束所有 DeepSeek Harness 进程再开,否则可能出现「按钮在、接口 404」的新客户端与旧 host 混跑状态。

典型用法

手动选技能再开干

  1. 在输入框写好本轮任务(例如「给这个仓库写 PR 描述」)。
  2. 点发送键左侧「辅助」,看扫描出的技能与 MCP 列表;用搜索栏缩小范围,勾选需要的技能。
  3. 点「启动辅助」,等待 Agent 下一步拾取 steering 并按所选技能推进。

常发同类任务时开自动分析

  1. 在辅助面板勾选「根据文本内容自动分析适配技能」。
  2. 之后正常输入并发送;若任务文本与某技能名或描述有关键词重叠(score ≥ 1),插件会在该条消息发出后自动注入,无需再点「辅助」。

排障时,客户端可通过 POST api/task-assist/diag 写入宿主侧 ~/.dsh/rescue/task-assist-client.log(README 中有 diagOnce 去重说明)。

适用场景与注意

适合谁:已在 DSH 里安装多份技能或 MCP、希望按「当前任务一句话」快速挂方法论的工作流用户;不想每次手动复制 SKILL 正文进对话的 Agent 开发者。

权限与安全:插件以当前 DSH 进程权限运行;scan 虽只读元数据,inject 会改变会话 steering。安装前请阅读 仓库源码 与 MIT 许可证,确认符合你的环境策略。

生态说明:DSH 主张「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件在 GitHub 上星标数为 1(以目录页/仓库为准),属早期社区工作流扩展,升级 DSH 时需留意 engines 与 peer 依赖。

结尾

dsh-task-assist 把「按任务找技能 → 勾选 → 注入 Agent」收拢到发送键旁一条链路,并可选发送后自动匹配,减少手工拼 prompt 的成本。若要安装或看实现细节,可打开 SkillHub 目录页 与 GitHub 仓库 README。

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

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

小夜