在独立面板里起草、打磨并追问澄清提示词
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/msciu/dsh-prompt-enricher.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:1847
const response = body === void 0 ? await fetch(`${ROUTE_BASE}${path}`, { method: "GET" }) : await fetch(`${ROUTE_BASE}${path}`, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的提示词工作台:草稿、全量日志发送历史,以及基于追问的提示词引导。
README
由 DeepSeek 最新模型翻译生成dsh-prompt-enricher
一个 DeepSeek Harness 插件,把写提示词拆成独立、需要认真对待的一步:先写清楚,再发出去。
把「写提示词」从输入框里独立出来:先写清楚,再发出去。
DeepSeek Harness(DSH)的输入框适合快速发一句话,不适合推敲一段长提示词。这个插件在输入框上方加了一块提示词工作台:草稿、历史、Markdown 编辑、技能补全,还有一条「先追问、再定稿」的澄清流程。
功能
- 两个入口,同一块面板:会话里切到顶部的「提示词」tab;新开的空白会话没有 tab 条,由输入框工具行里的「提示词」按钮就地打开(与权限、模型控件同一行)。
- 已发送历史:直接读会话自己的完整日志,按 seq 合并成只增不减的列表。不是「最近一页消息」——长会话也不会缺条目。
- 草稿:可编辑、可发送、可删除;按会话持久化在浏览器 localStorage,重启 DSH 后还在。
- Markdown 编辑器:回车只换行,不发送;输入 / 调出技能补全(与 shell 同一份技能目录)。
- 澄清提升(elicitation):把当前草稿交给一个子会话,按 grill-me 的方式逐条追问,每个问题带推荐答案;你逐条裁决后,产出一份消解了歧义的完整提示词,回填为草稿(不会自动发送)。
- 中英双语:跟随 DSH 的 locale。
展开完整文档(README 剩余 1 节)
dsh-prompt-enricher
一个 DeepSeek Harness 插件,把写提示词拆成独立、需要认真对待的一步:先写清楚,再发出去。
把「写提示词」从输入框里独立出来:先写清楚,再发出去。
DeepSeek Harness(DSH)的输入框适合快速发一句话,不适合推敲一段长提示词。这个插件在输入框上方加了一块提示词工作台:草稿、历史、Markdown 编辑、技能补全,还有一条「先追问、再定稿」的澄清流程。
功能
- 两个入口,同一块面板:会话里切到顶部的「提示词」tab;新开的空白会话没有 tab 条,由输入框工具行里的「提示词」按钮就地打开(与权限、模型控件同一行)。
- 已发送历史:直接读会话自己的完整日志,按 seq 合并成只增不减的列表。不是「最近一页消息」——长会话也不会缺条目。
- 草稿:可编辑、可发送、可删除;按会话持久化在浏览器 localStorage,重启 DSH 后还在。
- Markdown 编辑器:回车只换行,不发送;输入 / 调出技能补全(与 shell 同一份技能目录)。
- 澄清提升(elicitation):把当前草稿交给一个子会话,按 grill-me 的方式逐条追问,每个问题带推荐答案;你逐条裁决后,产出一份消解了歧义的完整提示词,回填为草稿(不会自动发送)。
- 中英双语:跟随 DSH 的 locale。
安装
前置
- DSH 桌面版(host 0.2.x;0.1.x 也兼容,见兼容性)。
步骤
1. 把仓库放到一个长期保留的目录:
git clone https://github.com/msciu/dsh-prompt-enricher.git D:\tools\dsh-prompt-enricher
2. 在 DSH profile 的 package.json 里加依赖与 bundle。Windows 下 profile 目录一般是 C:\Users\<you>\.dsh\profiles\desktop,macOS / Linux 是 ~/.dsh/profiles/desktop:
{
"dependencies": {
"dsh-prompt-enricher": "file:D:/tools/dsh-prompt-enricher"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-prompt-enricher"
]
}
}
}
dsh.profile.bundles 里原有的两行不要删,只追加插件那一行。
3. 在 profile 目录里安装:
cd C:\Users\<you>\.dsh\profiles\desktop
pnpm install
4. 重启 DSH。
lib/ 已随仓库提供,安装时不需要构建。
装进去的必须是链接,不能是拷贝
pnpm install 对 file: 依赖可能拷一份目录而不是建链接。拷贝一旦发生,之后每次改代码 + 重建都只更新源目录,桌面版读的还是那份旧拷贝——表现为「界面完全没变」。
$link = 'C:\Users\<you>\.dsh\profiles\desktop\node_modules\dsh-prompt-enricher'
(Get-Item $link -Force).LinkType # 期望 Junction / SymbolicLink Get-ChildItem "$link\lib" | Select Name,Length,LastWriteTime
如果类型是空、且时间戳和源目录不一致,就删掉重建:
Remove-Item $link -Recurse -Force
New-Item -ItemType Junction -Path $link -Target D:\tools\dsh-prompt-enricher
卸载
从 profile 的 bundles 与 dependencies 各删一行,pnpm install,重启 DSH。草稿不会自动清除:浏览器 localStorage 的 dsh.prompt-enricher 键下还留着它们。
构建(可选)
仓库里的 lib/ 是构建产物;改完 src/ 后:
pnpm install
pnpm build
产出两个独立产物:
- lib/index.js — host 半,ESM。@deepseek-ai/* 保持为 import,由安装环境提供。
- lib/client.js — 浏览器半。闭包工厂形式的 CJS,包在 window.__ModuleLoader__.load({ id, factory }) 里,外部依赖只走 shell 的模块表。
构建工具是 tsdown(devDependency)。配置用普通对象而不是 defineConfig,这样把包链进 DSH monorepo 构建时,也不会因为配置自身的 import 解析不到 monorepo 的 node_modules。
工作原理
已发送历史:为什么必须读宿主
浏览器里的 eventSource 只是会话控制器的一页:PAGE_MESSAGES = 50 条消息,不是事件日志。会话一长,页外的提示词根本没进过浏览器;而且重开会话 / 换 binding 时整页会被 replace,派生列表跟着收缩。
实测一份 9065 条事件的真实会话:日志里有 65 条用户提示词,而「最后 50 条消息」里只有 2 条。这就是只看窗口时列表「数据不全」的原因。
所以历史由宿主提供:
GET /_dsh/prompt-enricher/sent?sessionId=<id>
- 活会话直接读 Session.events——完整的 append-only 日志,包含 write-behind 尚未落盘的尾部;
- 非活会话回退到 sessionPersistence.inspect。
宿主与客户端共用同一条折叠规则(src/sent-fold.ts):只认 surfaceOp === 'append'、data.source.kind === 'user'、有数字 seq、文本非空(只含图片的提示词保留,显示为 [N 张图片的提示词])。runtime-context、skill-catalog、compact checkpoint 等以 user/message 形式出现的注入内容因此不会被误算成你写的提示词。
客户端 SentFeed(src/client/sent.ts)把这批数据按 seq 合并进本地索引:
- 只增不减:窗口被替换、请求失败、binding 消失,都不会让列表变短;
- 首屏先用 localStorage 里最近 300 条兜底,全量响应到达后补齐;
- 只有 user/message 的增量才触发通知——流式输出的每个 chunk 不再重算列表、不再让 React 重渲染。
澄清会话
浏览器不能创建子会话(subagents 的启动方法只在宿主侧),也不能读子会话的 transcript(子会话不在会话列表里)。所以 host 半负责:建子会话、把它的消息折叠成结构化轮次、通过插件自己的 HTTP 路由提供给你。子会话的指令正文内嵌在 src/grill-protocol.ts,不依赖本地是否装了 grill-me 技能。
兼容性
DSH 0.2.1 改了 subagent 生命周期方法名。host 半做运行时特性检测,同时兼容两代:
| 动作 | 0.1.x | 0.2.x |
| 建子会话 | startContinuable | startActivation(优先) |
| 释放 | drainContinuableChildren | drainChildren(优先) |
两版都没有时,start 路由返回说明性的不兼容错误,而不是抛栈。
测试
pnpm install
pnpm test
- tools/sent-feed.test.ts:过滤规则、迟到的 binding、只增不减、窗口替换、全量历史并入、seq 去重、绑定消失、请求失败、脏数据清洗、图片提示词——10 组断言。
- tools/sent-route.test.mjs:直接加载 lib/index.js,用 fake ctx 跑 /sent 的活会话日志、持久化回退、503、400。
排查工具
tools/ 下的浏览器探针通过 argv 接收带 token 的实例 URL,不写死任何环境路径。默认使用 puppeteer-core 和系统 Chrome 的默认安装位置;不同环境用两个环境变量覆盖:
$env:PUPPETEER_CORE = 'C:\path\to\node_modules\puppeteer-core'
$env:CHROME_PATH = 'C:\Program Files\Google\Chrome\Application\chrome.exe'
node tools\client-smoke.cjs "http://127.0.0.1:<port>/?token=<token>"
| 脚本 | 用途 |
| client-smoke.cjs | 无头浏览器确认 client bundle 真的 materialize,收集 console / 失败请求 |
| blank-entry-probe.cjs | 空白会话入口 → 看板 → 返回的往返 |
| header-probe.cjs | 探测 view tab 条是否存在 |
| answer-visibility-probe.cjs | 澄清卡片「回答」按钮在各分辨率下是否可见(前/后 CSS 对比) |
| chip-layout.cjs / composer-probe.cjs / clarify-probe.cjs / session-probe.cjs / toolrow-probe.cjs / verify-3.cjs | 各座位、布局与交互的定点探测 |
| asar-extract.cjs | 从 app.asar 取宿主真实实现(只有编译后 JS) |
| sent-feed.test.ts | 已发送列表的过滤 / 合并 / 稳定性回归 |
| sent-route.test.mjs | /sent 路由的宿主回归 |
| sent-log-check.ts | 统计并折叠一份真实 session.v4.jsonl.zstd,用于核对「数据不全」 |
已知限制
- 已发送列表一次返回该会话的全部提示词,面板渲染也还没有虚拟化;数万条以上的超长会话需要时再加。
- engines.dsh 目前只是声明,宿主是否用它拦截安装未验证。
- 0.1.x 宿主只做过静态兼容,本机没有可运行的 0.1 实例。
更新日志
见 CHANGELOG.md。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
msciu/dsh-prompt-enricher
在独立面板里起草、打磨并追问澄清提示词
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目