前言¶
在 DeepSeek Harness (DSH) 开发中,直接在输入框粘贴大段文本容易污染上下文。插件 dsh-paste-dock 拦截这一操作,将超过阈值的文本自动保存为 pastes/*.txt 文件,并在输入框上方通过 dock 卡片管理,草稿区仅保留最小化引用。
它是什么¶
dsh-paste-dock 是由 drscrewdriver 维护的 DSH 插件。它通过文件系统代替输入框直接承载长文本,解决长文本上下文污染问题,并提供统一的卡片管理视图。
核心功能¶
大段粘贴转附件¶
插件会拦截输入框的粘贴事件。当粘贴文本超过默认阈值(500 字符)时,文本会被写入当前会话工作区的 pastes/<时间戳>.txt(默认上限 1 MiB,UTF-8 逐字节保真)。
若保存失败,原文会自动插回输入框并提示。同时,插件注册 save_paste 工具作为兜底机制,确保即使输入框钩子未拦截,也能通过工具手动保存。
草稿内只留可辨识的最小徽标¶
在草稿区,长文本被替换为 dsh 原生原子引用 chip。
* 显示形式:默认显示为 📄开头几个字…(多粘贴依次为 📄2、📄3 等)。
* 交互:点击徽标可路由到右侧栏预览(配合 dsh-better-sidebar 可编辑)。Backspace 或 Delete 键一次即可删除整个引用,无中间态。
* 发送:发送路径零改动,chip 序列化为裸 @"pastes/x.txt",不增加请求 token。
输入框上方 dock¶
完整信息展示在 conversation.input.dock 槽位(order 0,居中卡片)。
* 内容:包含文件名、开头预览、字符数、路径及操作按钮。
* 操作:
* 打开全文:调用宿主 openWorkspacePath(仅 loopback 部署可用)。
* 从草稿移除:删除 dock 卡片,草稿中的 mention 也会同步删除。
* 状态同步:dock 是草稿引用的投影,双向同步。
降级处理¶
如果插件 facade 缺失(如老版本 DSH 线)或输入框正忙,插件会自动降级为文本引用 @"pastes/x.txt" (N 字符)。发送后仍能渲染成可点击卡片,dock 也能识别。
安装与配置¶
安装¶
使用以下命令在本地目录安装:
dsh plugin --profile web add ./dsh-paste-dock
安装后重启 DSH,控制台可见 [dsh-paste-dock] 日志。
配置¶
配置文件为 cordis.patch.yml(部署默认),修改后重启 DSH 即可生效。
| 字段 | 默认值 | 说明 |
|---|---|---|
minChars |
500 | 大段粘贴阈值(UTF-16 代码单元)。可在 Settings → General 中覆盖。 |
maxBytes |
1048576 | 单次粘贴字节上限,宿主强制硬顶 64 MiB。 |
chipBadge |
true | 草稿 chip 显示为最小徽标(📄…)。设为 false 恢复完整 label。 |
dock |
true | 输入框上方是否注入 dock 卡片槽位。 |
典型用法¶
- 安装:执行上述安装命令。
- 粘贴:在输入框粘贴超过 500 字符的文本,自动生成附件。
- 管理:点击输入框上方的 dock 卡片查看全文或删除引用。
- 发送:发送的消息中,chip 会被序列化为
@"pastes/x.txt",模型直接读取文件内容。
适用场景与注意¶
适用场景¶
- 需要频繁处理代码片段、长文档或结构化数据的智能体开发。
- 希望保持输入框整洁,通过文件系统管理上下文的场景。
注意事项¶
- 版本限制:仅支持 DSH peer 范围
0.1.0-rc.2至0.2.0-rc.2。 - 会话切换:切会话后,chip 可能退化为文本引用
@"…" (N 字符),但仍可发送和渲染。 - 编辑限制:配合
dsh-better-sidebar编辑保存时可能遇到 400 错误(路径问题),从文件树打开同一文件可解决。 - 普通文件:插件不接管普通文件/图片粘贴,由 DSH 原生附件管线覆盖。
- 权限与安全:插件以当前 DSH 进程权限运行,安装前请检查源码与许可证。
结语¶
dsh-paste-dock 通过文件化管理和 UI 投影,有效解决了 DSH 中大段文本的输入与管理问题。更多细节可查看 GitHub 仓库。