DeepSeek Harness Hub
← 返回列表

Q1hangL/dsh-ask-guard

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
⚠ 装前注意

DeepSeek Harness 的 askuserquestion 超时守卫:提问卡片丢失或用户未答复时,

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/8/15 · 已提供中文文档

DeepSeek Harness 中 ask_user_question 的超时保护:丢失或未回答的问题会解析为 ASK_TIMEOUT,而不是让该轮次永远挂起

综合分
33.1
GitHub 分
33.1
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Q1hangL/dsh-ask-guard
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-ask-guard(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 17:00:11

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-timeout@deepseek-ai/dsh-tool-ask-user@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-questions@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-ask-guard

DeepSeek Harness 的 ask_user_question 超时守卫:提问卡片丢失或用户未答复时,
以结构化 ASK_TIMEOUT 结束工具调用,而不是让回合无限挂起。

解决的问题

提问卡片通过 mux WebSocket 一次性推送到浏览器。当页面后台化、笔记本睡眠、
或连接半开断掉(无心跳、无 FIN)时,帧丢失且客户端无感知,工具将永远等待——
实测挂起 6 小时以上,只能靠按"停止"恢复。上游报告:
deepseek-ai/deepseek-harness#1554。

插件做了什么

注册一个 tools/execute 包装器,为每次 ask_user_question 派发挂上协作式
deadline(与官方 dsh-tool-call-timeout-policy 同款机制;官方那个只对"自己
声明了超时的工具"生效,而 ask 工具没有声明)。

- deadline 获胜时,等待中的 provider 的 abort 处理器触发:web provider 会广播
question/resolved cancelled,残留的提问卡(如果有)被清理;
- 随后包装器把归一化的 abort 替换成结构化错误结果(code: ASK_TIMEOUT,
name: AskTimeoutError)并附模型可见的提示,agent 可以体面收尾而不是干等;
- 其他工具完全不受影响。

超时是协作式的(@deepseek-ai/dsh-timeout 通过 exec.signal 通知;web
user-questions provider 监听该信号,会真正终止等待)。

安装

dsh plugin --profile web add dsh-ask-guard

重启 dsh web 生效。本插件是 dsh.bundle 包,reconcile 时会自动把 patch 行
加入 profile 组合。

从 git 安装:

dsh plugin --profile web add github:Q1hangL/dsh-ask-guard

配置

| 字段 | 默认值 | 含义 |
|---|---|---|
| timeoutMs | 300000 | 单次 ask_user_question 的截止时间(毫秒) |

在 profile 的 cordis.patch.yml 里调整:

- id: ask-guard
config:
timeoutMs: 600000

恢复提示

刷新页面(F5)会触发重连,host 会把未答复的提问回放给客户端。装上本插件后,
即使不刷新,回合也不会再无限挂起。

测试

npm install
node --test

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群