dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
把聊天框里连发的几条短消息缓冲合并成一轮再唤醒模型:停手若干秒后才回复一次;长消息和附件不延迟。
给 DSH 的「连发消息」加一层缓冲:用户在聊天框里一句接一句地发,中间不产生 N 次唤醒/回复; 停手若干秒后,这几条合并成一轮送进模型,只回一次。
英文说明见 README.en.md。 / English: see README.en.md.
followup()(@deepseek-ai/dsh-agent-loop)。steer()(插话)和 agent.followup 的插件来源(如 dsh-proactive、dsh-tick)不受影响。| 变量 | 默认 | 含义 |
|---|---|---|
DSH_SEND_DEBOUNCE | 开 | off / 0 / false / no 一键关闭 |
DSH_SEND_DEBOUNCE_MS | 5000 | 静默时长(毫秒);0 等于关闭延迟;非法值退回默认 |
DSH_SEND_DEBOUNCE_MAX_CHARS | 120 | 「短话」上限;0 = 一律延迟;非法值退回默认 |
从 npm(公开包):
dsh plugin --profile web add dsh-send-debounce
从本地目录(自用/开发):
dsh plugin --profile web add file:/path/to/dsh-send-debounce
装完把 dsh-send-debounce 加进该 profile 的 dsh.profile.bundles(cordis.patch.yml 就是这一层),
然后重启并确认网页还在:
dsh --profile web --dump-config | grep -n dsh-send-debounce
sudo systemctl restart dsh
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:3080/
这个插件的原则是只做缓冲,别的什么都不碰:
message.source.kind === "user")。插件来源的消息
(dsh-proactive、dsh-tick 等)原样放行,否则会卡住它们的 whenIdle()。steer()(插话),也不主动修改会话历史;只把自己入队的那几条消息在到点后
合并成一条,交给原生 followup()。try/catch 兜住,
逐条补发或直接放行,不让聊天框卡住。DSH_SEND_DEBOUNCE* 配置项。
源码全部在 index.mjs,可自行核对。按 profile 备份还原:
cp ~/.dsh/profiles/web/package.json.bak-<日期> ~/.dsh/profiles/web/package.json
sudo systemctl restart dsh
或只把 dsh.profile.bundles 里的 dsh-send-debounce 删掉再重启即可完全卸载
(卸载会清掉定时器并恢复原生 followup())。
不需要 dsh 环境,直接用 Node 跑:
npm test # 等价于 node test.mjs
覆盖:连发合并、长消息直发、插件来源直通、图片直发、间隔超时各成一轮、卸载恢复、 关闭开关、配置解析与非法值兜底、重复安装/卸载、agent 销毁清定时器、纯函数。
MIT,见 LICENSE。