dsh-plugin-question-attachments:在 ask_user_question 回答中附带图片与文件

前言

在 DeepSeek Harness(DSH)里,智能体通过 ask_user_question 工具弹出问答卡片,占据 Composer 区域,等待用户勾选或填写文字后提交。卡片自带的回答载荷只有文本字段(selected 与可选的 custom),没有给截图、日志、配置文件留位置。

DSH 里附件走的是「提示凭证」:ctx.fileUpload 保存文件,在用户消息被接纳时一并消费。工具回答通道不带附件,卡片展示期间用户也无法把截图塞进回答里。对需要「边选答案边贴图」的人机协同场景,这是实打实的缺口。

下面介绍社区插件 dsh-plugin-question-attachments(维护者 rxdage,SkillHub 分类:工作流)。它在不改动协议、不 patch 宿主的前提下,在待处理的问答卡片上增加附件入口,把上传结果以 steering prompt 排队交给智能体。

这是什么

该插件是带 Web 客户端半部的标准 DSH bundle 包。当前状态为 alpha / 最小可用版本,作者在 README 中写明已在 DSH 0.2.2-rc.1(Desktop,Windows)上验证。

定位一句话:在 Session 存在 pending interaction(问答卡片占用 Composer)时,允许用户点击、粘贴或拖放文件,经 fileUpload 上传后,通过 session.prompt(..., 'steer') 把凭证与文本一起交给代理;卡片关闭后 UI 自动收起。

核心功能

与宿主机制的衔接

待处理问答期间 Session 仍处于 running。附件 steering 会被 Inbox 接受并排队;宿主仅在当前工具等待结束后才接纳队列中的 steer,因此模型会在同一步边界上同时看到文字回答与附件,无需改 DSH 协议。

实现上插件只使用文档中的客户端服务:slots、sessions、uiSession、fileUpload、session.prompt,未依赖私有 API。按 README 说明,小版本升级通常可继续使用;客户端 bundle 格式在 1.0 之前,大版本升级宜对照仓库 CHANGELOG。

界面与交互

  1. 问答卡片答案行最右侧出现小型附件按钮(README 中以回形针图标标示)。
  2. 点击按钮、使用 Ctrl+V 粘贴,或将文件拖放到按钮上。
  3. 调用 ctx.fileUpload.uploadImage() / upload() 上传,得到 receipt。
  4. 以 steering 形式发送:session.prompt([{ type: 'file', receiptId }, { type: 'text', text }], 'steer')。
  5. 已发送文件在答案行上方以卡片展示(缩略图、名称、类型;最多展示最近三个,其余以 +N 表示)。上传进度与失败信息在控件附近就地反馈。

与正常 Composer 的区分

粘贴拦截仅发生在 pending 问答卡片内。平常 Composer 中插件不介入,仍由 DSH 自身处理粘贴:非图片文件变成 @path chip,图片进入草稿,按发送键才真正发出。

安装与启用

安装前建议自行查看 GitHub 源码与 MIT 许可证;插件随当前 DSH 桌面进程的权限运行,与官方应用商店无从属关系。社区目录见 SkillHub 插件页。

图形界面(README 推荐)

侧栏 → Plugins → Add plugin,粘贴仓库地址后 Install → Enable now → 重启 DeepSeek Harness。对话框亦接受 github:rxdage/dsh-plugin-question-attachments、tarball URL 或本地绝对路径。

https://github.com/rxdage/dsh-plugin-question-attachments

命令行

在 desktop profile 下执行:

dsh plugin --profile desktop add github:rxdage/dsh-plugin-question-attachments

完成后按 DSH 惯例重启宿主。卸载可通过 Plugins → 对应包 → Uninstall,或按 README「Manual」一节移除 junction 与 package.json 中的 link 配置。

典型用法

  1. 向智能体发起会触发 ask_user_question 的任务。
  2. 问答卡片出现后,在答案行右侧使用附件按钮:点击选文件、粘贴截图,或拖放文件到按钮上。
  3. 等待 chip 报告上传完成(失败时按提示重试)。
  4. 正常勾选或填写文字并提交答案;当前工具等待结束后,代理下一步会同时收到你的文字选择与已排队的附件 steering。

README 未提供额外示例仓库或固定 prompt 模板;能否弹出卡片取决于你所用智能体与工具配置是否启用 ask_user_question。

适用场景与限制

适合谁:经常在问答卡片环节需要补充截图、报错图、小型日志或配置片段的 DSH 桌面用户;希望在不 fork DSH、不改协议的情况下扩展人机协同输入方式的工作流使用者。

当前限制(均来自 README):

  • 仅在有 pending 问答/审批卡片时可见;卡片隐藏后 pendingInteraction 清除,附件控件消失。
  • 阻塞工具调用期间的 steering 按设计排队,不会即时送达。
  • 每个文件对应一条消息;尚无拖拽排序或预览。
  • 示例中仅显式接好 desktop profile;任何同时具备 fileUpload 与 sessions 客户端服务的 profile 在原理上可用,但需自行验证。

兼容性与版本:package.json 标明插件版本 0.1.5;验证宿主为 DSH 0.2.2-rc.1。升级 DSH 后若 UI 异常,先查插件 CHANGELOG 与 issue。

结尾

dsh-plugin-question-attachments 补上的是问答卡片阶段的文件输入:上传走既有 fileUpload,交付走既有 steer 队列,装拆不改宿主核心。若你的工作流里 ask_user_question 出现频率高,又常需要「选一项再贴一张图」,可以把它当作可选客户端增强试用。

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

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

Xiaoye