前言¶
在 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。
界面与交互¶
- 问答卡片答案行最右侧出现小型附件按钮(README 中以回形针图标标示)。
- 点击按钮、使用
Ctrl+V粘贴,或将文件拖放到按钮上。 - 调用
ctx.fileUpload.uploadImage()/upload()上传,得到 receipt。 - 以 steering 形式发送:
session.prompt([{ type: 'file', receiptId }, { type: 'text', text }], 'steer')。 - 已发送文件在答案行上方以卡片展示(缩略图、名称、类型;最多展示最近三个,其余以
+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 配置。
典型用法¶
- 向智能体发起会触发
ask_user_question的任务。 - 问答卡片出现后,在答案行右侧使用附件按钮:点击选文件、粘贴截图,或拖放文件到按钮上。
- 等待 chip 报告上传完成(失败时按提示重试)。
- 正常勾选或填写文字并提交答案;当前工具等待结束后,代理下一步会同时收到你的文字选择与已排队的附件 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 出现频率高,又常需要「选一项再贴一张图」,可以把它当作可选客户端增强试用。