Bundle
dsh-request-manager
请求管理插件(bundle):按全局配置管理 Agent→LLM 请求——「请求额外间隔」(每个请求发送前固定多等 N 毫秒,0=不介入)、重试次数覆盖(留空=沿用 provider 默认)、拦截「请求失败」(终态失败后挂起等待人工决议:重试原地重发同一请求 / 放弃按原生路径终结)。入口为会话头部 utilities 槽位的「请求管理」按钮;设置跨会话全局生效,按值决定是否介入;界面跟随 dsh 语言中英切换。
- Source
- tree-func
- License
- MIT
- Updated
- Updated 6 days ago
Readme
# dsh-request-manager 中文 | [English](./README_en.md) 管理 DeepSeek Harness 的 LLM API 请求策略,修改默认的请求行为策略。 插件在会话区顶部加入了「请求管理」按钮,点击打开「请求管理面板」。所有设置全局生效、跨会话共享,无需独立开关——每个功能由其配置值决定是否介入。  ## 功能 ### 请求额外间隔 在每个 API 请求之间插入额外的延时(毫秒)。各会话的首个请求不等待,自动与手动重试同样生效;`0` = 不介入。 ### 重试次数 修改默认 API 请求失败后的自动重试次数(DSH 当前版本默认 5 次),留空 = 不覆盖。某些类型的 API 请求失败 DSH 默认不会重试(例如 `SSE stream ended without [DONE]`、`NETWORK ERROR` 等),本选项不影响这类失败的重试策略。 ### 拦截「请求失败」 API 请求失败后,请求管理面板自动展开,显示拦截的失败请求处理方式卡片:  - **🔁 重试**:原地重发同一请求(仍受额外间隔约束);若再次失败会再次显示,可反复重试。 - **🚩 放弃**:按 DSH 原生路径终结该轮。 本选项对 DSH 默认不会重试的失败也统一生效。超时时长(秒)与超时动作可配置:超过设定时长后按所选动作自动重试或自动放弃,`0` = 不启用超时;点击停止或销毁会话会立即放行。选择「自动重试」时,持续失败的请求会按超时周期反复重发。 ## 安装方法 ```sh dsh plugin --profile web add github:tree-func/dsh-request-manager ``` 安装后重启 DSH 进程生效。 ## 卸载方法 ```sh dsh plugin --profile web remove dsh-request-manager ``` ## 架构 单包 bundle 插件,host 与 client 两半: ``` dsh-request-manager/ ├── package.json # dsh.bundle.patch + dsh.client.platform: web 声明 ├── cordis.patch.yml # 在 profile root 层插入本 bundle ├── index.js # host 半边 └── client.js # 浏览器半边 ``` - **host(index.js)**:以 bundle 形式挂在 web profile 根层,在 root 层监听所有会话的 `agent/request`(插入额外间隔)与 `agent/request-error`(重试次数覆盖、拦截挂起)事件;并注册 `/reqmgr-api` 常驻路由,供浏览器读写全局配置、提交拦截决议。 - **client(client.js)**:经官方 ModuleLoader 加载,向 `conversation.session.header.utilities` 槽位注册「请求管理」按钮与下拉面板;每秒轮询拦截挂起状态,样式全部使用 `--dsw-*` 语义令牌以适配浅色/深色主题;配置经浏览器 localStorage 持久化,页面加载时自动恢复到宿主。 ## 已知局限 - **会话之间相互隔离**:失败拦截的提示(按钮警示圆点、自动展开的面板)只出现在发生失败的那个会话里;停留在其他会话时不会收到任何提示。若长时间不切回,该挂起会按超时设置被自动重试或放弃。 ## 本地化 界面文案经官方 locale 服务注册词典(命名空间 `requestManager`),跟随 DSH 语言设置在中英文间自动切换。 ## 构建方法 本插件为纯 JavaScript,源码即产物,无需构建步骤: ```sh npm test # 语法校验(node --check index.js && node --check client.js) ``` 开发期迭代:修改 `client.js` 后刷新浏览器页面即可;修改 `index.js` 需重启 DSH 进程。 ## 许可证 [MIT](./LICENSE) --- 本插件使用 AI 辅助制作。
Install
dsh plugin --profile web add github:tree-func/dsh-request-manager
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-request-manager from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.