在 DeepSeek Harness (DSH) 开发中,LLM 经常会返回一系列需要用户确认的方案、任务或选项。传统的做法是将这些列表复制粘贴到输入框中,这种方式不仅繁琐,而且在流式输出过程中极易产生误操作。
dsh-todo-enhancer 是一个 Host/Client 双半区插件,旨在解决这一问题。它通过标记识别,将 LLM 输出中需要用户决策的内容,直接渲染为输入框上方的可编辑复选框表格,支持勾选、编辑和发送,将决策流程标准化。
插件概况¶
- 名称:dsh-todo-enhancer
- 维护者:EmptyCollin
- 许可证:MIT
- 核心价值:让「需要用户决策的内容」以带复选框的表格形式呈现,支持勾选确认、行内编辑与直接发送。
核心功能¶
插件通过严格的标记识别和交互式界面,提供以下能力:
- 标记驱动识别:只解析
<!-- dsh-todo:start -->和<!-- dsh-todo:end -->标记块。普通编号列表或项目符号不会触发增强,杜绝误报。每个标记块对应一个独立面板。 - 复选框表格:支持行内直接编辑文本、添加行、删除行、全选及全不选。
- 整体编辑:列表标题可实时修改,并在发送时追加「整体补充说明」。
- 三种操作模式:
- 直接发送:填入输入框并立即提交。
- 填入对话框:仅填入草稿,不立即提交。
- 关闭:放弃当前修改,关闭面板。
- 时序保证:仅在对话全部输出完成后(
session.running === false)才渲染,流式输出中不可见。 - 来源纯净:自动排除思维链(reasoning)与工具调用块,仅处理决策清单。
安装与启用¶
支持从 GitHub 直接安装或使用本地路径安装。
- 安装命令:
dsh plugin --profile web add github:EmptyCollin/dsh-todo-enhancer
-
启用步骤:
安装后必须重启 dsh 服务并刷新浏览器页面,才能加载 Host 和 Client 半区代码。 -
配置说明:
- Profile:安装命令中的
web可替换为其他配置文件名(如cli,desktop)。 - 离线安装:如果无法访问 github.com,可以使用本地路径:
- Profile:安装命令中的
dsh plugin --profile web add D:\dsh-plugin\dsh-todo-enhancer
* **依赖项**:插件依赖 `@deepseek-ai/cordis` (^4.0.1) 和 `react` (^18.2.0)。
典型用法¶
- 向 LLM 发送会产出需要决策内容的消息,例如「列出 3 个可选方案,让我选一个」。
- LLM 返回包含标记包裹的清单后,输入框上方会出现面板。
- 勾选、编辑或全选后,选择「直接发送」、「填入对话框」或「关闭」,面板随即关闭。
工作原理与注意事项¶
- 双半区架构:
- Host 半区:向系统提示词注入标记规则(order 120),要求 LLM 用成对标记包裹需要决策的内容。
- Client 半区:注册
conversation.input.dock,将 LLM 返回的标记块渲染为表格 UI。
- 纯前端实现:无持久化存储,样式随插件卸载自动回收。
- 适用场景:适用于任何需要从 LLM 获取列表并需要用户筛选、确认的对话场景。