前言¶
给 AI 智能体派活时,人往往只能写出「做个周报工具,汇总 GitLab 提交发飞书」这种零散描述。智能体真正需要的是目标、背景、交付物、约束、验收标准、输出格式,以及把缺失信息显式列出来。自己做这件事要反复补问、重写,成本高且容易漏项。下面介绍的插件把这一步放进了 DeepSeek Harness(DSH)的输入框:读取草稿,复述意图,补出交付物与约束,列出待确认问题,最后生成一份可直接执行的 Prompt 并写回输入框,用户自己决定是否发送。
插件由 coreyleung-art 维护,仓库为 coreyleung-art/dsh-requirement-copilot,社区目录归类为「工作流」。显示名「帮我说 / Say It For Me」,技术包名、bundle id、命令与工具标识仍为 requirement-copilot 系列,以兼容已有安装与调用。截至 2026-11-05,仓库 tag 为 v1.8.0,GitHub 星标 0,许可为 MIT。
它是什么¶
一个 DSH Profile Bundle,分为 Host 半(生成核心、命令、Agent 工具、skill)与 Client 半(Web GUI 面板、输入框旁的 ✨ 按钮)。运行配置为空(config: {}),插件本身没有 npm 依赖,不需要构建步骤;Client 只从宿主模块表 require('react')。
它做四件事:
- 收集:把输入框里的草稿、聊天记录、口头需求当作素材;
- 分析补全:复述真实意图,提取交付物、约束、假设,列出需要用户补充的 gaps;
- 翻译成任务:用固定模板生成一份可执行的 Prompt,并给出另一种语言版本;
- 写回输入框:一键插入或替换,不自动发送。
它不是聊天机器人,不替用户发送消息;不做需求库或版本库管理;不内置本地模型,不绕过 DSH 的模型与凭据配置;不修改 Composer 之外的宿主 UI 结构。
核心功能¶
- 发送旁触发按钮:输入框有内容时点一下等于一键整理;没有待确认问题时直接写回,有 gaps 时打开「开工前确认」门。输入框为空时点它会打开浮层面板。
- 浮层面板:粘贴或读取草稿,选择用途、详略、语言、目标环境,生成后按「解析 / Prompt / 译文」三个页签查看。面板标题栏可拖动,双击恢复默认位置。
- 三种插入方式:插入到光标处(可撤销)、替换整个草稿(草稿非空时需二次确认)、复制当前页签内容。
- 恢复原草稿:一键整理覆盖输入框后,可恢复整理前的原文。
- 严格输出契约:模型只输出结构化字段,最终 Markdown 由 Host 的固定模板装配,格式稳定。
- 一次自修复:结构化校验不通过时,把错误回填给模型重试一次;仍失败则报错,不写回输入框。
- 失败不覆盖:截断、非法 JSON、模型或通道失败都不会覆盖用户输入;浮层给出本地模板兜底,需手动插入。
- 一个操作、两个调用方:
/refine-prompt命令(面板调用)与refine_requirementAgent 工具共享同一套生成核心与校验。 - 澄清确认门:一次只出一题,可点选模型给的候选答案或补充说明;回答作为
clarifications重新生成,不覆盖原始描述。 - 质量自检:Host 用固定规则打 0–100 的结构分,检查结构、需求条目、验收标准、约束、gaps、中英对齐、目标环境,不调用模型。
- 场景预设:通用 / 编码 / 写作 / 调研 / 数据 / 自动化,一键套用推荐的用途与详略,并把场景提示写进模型消息。
- 历史版本:每个会话在浏览器本地保留最多 10 个生成结果,可载入、清空,也可逐行 diff 对比。
- 继续优化:在结果上补充下一句要求,最多 5 轮;Host 把上一版 Prompt 作为增量修改输入,不从头重写。
- 生成在后台运行:
1.8.0起生成任务跑在 Host 后台,关面板、切会话、刷新页面后可用 jobId 恢复查询;每会话同时最多 1 个任务,全局最多 2 个。
选项¶
| 选项 | 取值 | 说明 |
|---|---|---|
用途 mode |
agent / spec |
agent 给智能体执行的任务指令;spec 是结构化需求规格,两者使用不同的固定小节标题。 |
详略 detail |
concise / standard / detailed |
控制各数组条数与 Prompt 长度,concise 输出上限更低。 |
语言 language |
auto / zh / en |
auto 按输入文本的中英文比例判断;主语言确定后,另一种语言自动作为译文。 |
目标 target |
generic / claude-code / codex / cursor |
generic 为通用 Markdown;后三者在标题后加一行固定的目标环境提示,不改变内容字段。 |
场景 scenario |
general / coding / writing / research / data / automation |
只影响内容侧重,不改变输出结构。 |
安装与启用¶
公开发布包为 dsh-requirement-copilot,已发布到 npm(最新公开版本 1.6.1,1.8.0 已构建待发布)。安装命令如下:
dsh plugin add dsh-requirement-copilot
也可以在 Plugin Manager 里用 install_bundle,target 传 dsh-requirement-copilot。从本地目录安装时,先把仓库放到一个固定路径,例如 D:\dsh-plugins\requirement-copilot,再在 Plugin Manager 里选择「从本地目录安装」,target 传目录的绝对路径。
环境要求:DSH Desktop(Web GUI)profile,且组合中已挂载 commands Remote 与 llm 服务;插件自身没有 npm 依赖,无需构建;运行测试需要 Node ≥ 20。README 记录的开发与验证环境是 Windows + DSH 0.2.1-rc.5 desktop profile + Node 24。
安装后按下面几项验证:
node --test
node evals/run-eval.mjs
设置 → 插件里能看到「帮我说 / Say It For Me」;会话输入框工具行出现 ✨ 按钮;输入框为空时点 ✨ 打开浮层;/ 命令目录里有 refine-prompt;仓库内 node --test 的 27 个用例全部通过,node evals/run-eval.mjs 校验 20 条质量评测集。卸载方式是在 Plugin Manager 中禁用或移除 bundle dsh-requirement-copilot。
典型用法¶
最直接的路径:在输入框写一段口语化需求,保留原话不要先总结,点 ✨。没有待确认问题时,Prompt 会写回输入框,浮层自动收起;有 gaps 时不会写回,而是打开「开工前确认」,一次回答一题,点选候选答案或补充说明,最后一题的按钮变为「用回答重新生成」,也可以「跳过,直接使用当前结果」。之后检查写回的内容,自行编辑并发送,插件不会自动发送。如果整理过程中输入框被清空,插件会中止本次生成并清理面板状态;生成完成后若输入框内容又被改过,插件不会覆盖,而是提示「输入框内容已变化」。
浮层面板适合手动整理:输入框为空时点 ✨ 打开,可以手动输入/粘贴需求,或点「读取输入框」把当前草稿填入,切换用途 / 详略 / 语言后点「生成 Prompt」。结果区三个页签分别是解析(需求复述、意图、交付物、约束、假设、待补充问题)、Prompt(最终固定格式)、译文(另一种语言版本)。插入时若输入框已经是同一段内容,插件判定「已存在」并跳过,避免重复追加。
需要把整理能力交给模型时,使用 Agent 工具 refine_requirement。必填参数只有 rough(原始需求描述),其余为 context、previousPrompt、revisionNote、clarifications、mode、scenario、target、detail、language。例如让模型把一句话需求整理成编程任务:
/refine-prompt {"rough":"给设置页加深色模式开关","mode":"agent","scenario":"coding","target":"generic","detail":"standard","language":"auto"}
/refine-prompt 是面板专用的人机命令,输入不写入命令日志,返回 {ok:true, data} 或 {ok:false, code, error}。需要从上一轮结果继续时,把上一版 Prompt 与一句续写要求(例如「验收标准再严格一点,补上失败处理」)一起给模型,Host 会做增量修改而不是重写,最多 5 轮。
工作原理¶
数据流分两路进入同一个生成核心:输入框有文字时走 ✨ 按钮,输入框为空时走浮层面板。Client 半负责组装请求 JSON 与面板交互,Host 半负责调用模型、校验结构化输出、装配最终 Markdown、执行质量自检,并在出现 gaps 时返回给 Client 弹确认门。校验只允许一次自修复重试,失败则报错且不写回输入框。
模型侧还有一层 requirement-refine runtime skill(通过 ctx.skills.register(...) 注册,不依赖文件系统 skill provider),modelInvocable: true、userInvocable: false,指导模型何时调用 refine_requirement、参数怎么填、gaps 与失败如何处理;用户侧入口仍只有 ✨ 面板与 /refine-prompt。
适用场景与注意¶
适合在 DSH 里做需求整理的开发者:把口头需求、聊天记录、半成品草稿转成可执行任务指令或需求规格,尤其是需要中英双语输出、需要显式列出待确认假设的场合。它只在当前 DSH 进程权限下运行,能力边界就是「整理并写回 Prompt」,不改需求库,也不替人发消息。
几点需要注意:
- 安装前先检查源码与许可证(MIT),源码与分发包为同一个名称,但仓库远端是 Gitee 私有仓库
coreyleung/requirement-copilot,npm 包是其主要分发途径; - 它依赖宿主的
commandsRemote 与llm服务,模型、凭据与费用仍按 DSH 已有配置走,插件不内置模型; - 质量自检只做结构检查,不调用模型,也不代表人工评审,详细评分标准见仓库
evals/rubric.md; - 历史版本存在浏览器
localStorage(key 前缀rcp-history:),只在本机保留最多 10 条,不同步、不上传;后台任务结果在 Host 内存缓存 30 分钟,DSH 进程重启后任务丢失,但完成结果已写入会话历史,可从历史载入。
小结¶
它解决的问题很集中:把「给个大概想法」和「模型能稳定执行的任务定义」之间的缺口补上,并在写回前用确认门把未确认的假设拦下来。命令、工具、skill 三个入口共享同一套生成核心与校验,面板在输入框旁完成整理与校验,不自动发送。
目录页:https://www.skillhub.cn/plugins/coreyleung-art/dsh-requirement-copilot
仓库:https://github.com/coreyleung-art/dsh-requirement-copilot