dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
benzhoupo/dsh-effort-config
dsh plugin: configure reasoning-effort levels (wire spellings), route default level and Anthropic token budgets for third-party models from the settings page; selection reuses the native model-picker Effort panel.
PROJECT TOPICS
PROJECT README
DeepSeek Harness(dsh)插件:在设置页为第三方模型配置「思考努力度」档位,写入 llm-pi-ai 命名空间;档位调节复用原生模型框的 Effort 面板(composer 模型座 / /model 命令),选择器无需重做——模型声明档位后自动出现。


settings.section),只展示已配置的提供商,新添加的在前settings.action 按钮):候选列表已配置的在前、手写路由优先;点击未配置的内置目录路由即启用(写入空 profile,模型与协议由 pi-ai 内置目录提供)off / minimal / low / medium / high / xhigh / max + wire 拼写(默认建议档位名)off = 「无思考能力」(reasoningEfforts: false)reasoning)、Anthropic token 预算(thinkingBudgets,仅协议为 anthropic-messages 时显示)settings.yaml 的 llm-pi-ai 命名空间,重启后仍在llm/adapters-updated 与 settings/document-updated 事件)| 层 | 说明 |
|---|---|
Host 半(index.js) |
空实现(纯 UI 插件)。零运行时 import,不会引发 ERR_MODULE_NOT_FOUND 导致 dsh 启动崩溃 |
浏览器半(client.js) |
手写 window.__ModuleLoader__.load bundle(纯 JS,无需 tsdown 工具链),仅 require("react") |
全部数据走现有 wire remote,不依赖自定义 Host Remote(无需 typert 代码生成工具链):
connection.api.settings.describe / replace —— 读写 llm-pi-ai 用户层(乐观并发:expectedRevision + 冲突重放重试)connection.api.llm.providers / models —— 可配置提供商目录(displayName / declared / active)与宿主模型目录(catalog 路由的模型枚举)remote.$on('llm/adapters-updated' | 'settings/document-updated') —— 自动刷新档位语义遵循 dsh-llm-pi-ai 的 reasoningEfforts 契约(键固定 7 档;值为 provider 端 wire 拼写;off 可留空 null = 不发送参数)。写入经 settings 层的 schema + validate 兜底(如 "offers no level beyond off" 在写入处拒绝),非法值绝不落盘。
settings.yaml 中 providers 键序倒序(新添加的在前)本包运行在浏览器 realm,无动态 Host 的 node:vm 原型校验问题(settings 层的 isPlainObject 按宿主 Object.prototype 校验,沙箱新建对象会被拒),因此写入逻辑更简单:深拷贝用户层 → 应用操作 → settings.replace。
# 用 dsh 命令(推荐):转发给 web profile 下的 pnpm
dsh plugin --profile web add /home/benzhoupo/ds-plugins/dsh-effort-config
# 或直接手动:
# cd ~/.dsh/profiles/web && pnpm add file:/home/benzhoupo/ds-plugins/dsh-effort-config
然后重启 dsh web(补丁行与浏览器 bundle 需要重新组合)。卸载:
dsh plugin --profile web remove dsh-effort-config
anthropic-messages)显示「Anthropic token 预算」llm-pi-ai:
providers:
bearlab:
displayName: BearLab
apiKeyEnv: BEARLAB_API_KEY
api: openai-responses
baseURL: https://bearlab.ai/v1
models:
- id: gpt-5.6-sol
name: GPT 5.6 Sol
contextWindow: 256000
reasoningEfforts: # 手写路由:写在 models[] 条目上
xhigh: xhigh # wire 值 = provider 端拼写(openai-responses → reasoning.effort)
off: null # off 留空 = 不发送参数
reasoning: xhigh # 路由默认档位
anthropic: # 内置目录路由:走 modelOverrides
modelOverrides:
claude-sonnet-4-5:
reasoningEfforts:
high: high
thinkingBudgets: # 仅 anthropic 协议有意义(budget_tokens)
minimal: 1024
low: 2048
medium: 4096
high: 8192
| 协议 | 发送位置 | 档位值建议 |
|---|---|---|
openai-completions |
reasoning_effort |
档位名(如 high)或网关自有拼写 |
openai-responses |
reasoning.effort |
档位名 |
anthropic-messages |
自适应思考 effort(或预算型 budget_tokens) |
low / medium / high / xhigh / max;预算用路由级 thinkingBudgets |
dsh plugin --profile web why dsh-effort-config)@deepseek-ai/dsh-llm-pi-ai 未加载或已被移除UNSUPPORTED_REASONING_EFFORT 失败(pi-ai 原生行为),请为该模型声明档位或清除默认档位CC BY 4.0(Creative Commons Attribution 4.0 International),署名:benzhoupo。可自由分享与演绎,使用时请按要求署名。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。