🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

提问超时守卫 Q1hangL/dsh-ask-guard

DeepSeek Harness
Q1hangL81 天前有提交已提供中文文档扫描:未发现敏感能力

提问无人应答时自动超时结束,避免回合无限挂起

33.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Q1hangL/dsh-ask-guard
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/27) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

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

展开查看检查明细 ↓

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 10:24:56

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 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
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 无人应答自动超时
  • 避免回合无限挂起

DeepSeek Harness 里 ask_user_question 的超时保护:问题丢失或无人应答时按 ASK_TIMEOUT 处理,不会让这一轮一直卡住

README

由 DeepSeek 最新模型翻译生成
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 工具没有声明)。
展开完整文档(README 剩余 1 节)
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
预览分享卡片长什么样 ↓Q1hangL/dsh-ask-guard
分享 · DeepSeek Harness Hub
Q1hangL/dsh-ask-guard

提问无人应答时自动超时结束,避免回合无限挂起

这是你的仓库?认领条目

回到顶部