前言¶
在 DeepSeek Harness(DSH)里通过 WorkBuddy 或 CodeBuddy 账号池走模型时,请求有时会直接返回 HTTP 400,文案类似「请求被拦截」并带上 Illegal API invocation from an unapproved channel,上游错误码常见为 11128 或 11140。表面像在指责「渠道未获批」,但按维护者 balongTTY 在仓库 README 中的逐项排除,换账号、换域名、换客户端身份、补请求头、调 max_tokens 等往往并不能消除该错误;更贴近实测的结论是对 system prompt 做关键词内容风控——提示词里出现特定词组就会被拒。
下面介绍社区插件 dsh-workbuddy-fix(GitHub:balongTTY/dsh-workbuddy-fix,npm 包名 @balong/dsh-workbuddy-fix)。它在请求发出前对触发词做无损处理(零宽空格打断子串匹配),通过 DSH 设置页开关控制,不修改第三方反代插件的文件。插件归类为 admin-security,仓库 MIT 许可,当前资料中的版本为 1.3.2。
这是什么¶
dsh-workbuddy-fix 是 DSH 的设置页插件:在 globalThis.fetch 层拦截发往 WorkBuddy / CodeBuddy 相关域名的请求,对 system prompt(及面板配置的关键词)做可选的中和,从而绕过上述 11128 类拦截,同时尽量保持模型看到的语义不变。
维护者:balongTTY(GitHub)。
目录页:SkillHub · balongTTY/dsh-workbuddy-fix。
它修什么、不修什么¶
能覆盖的错误¶
| 现象 | 说明 |
|---|---|
Illegal API invocation from an unapproved channel |
上游按关键词风控 system prompt |
HTTP 400,code 11128 / code 11140 |
与上同属一类 |
first message is not system prompt |
可通过面板「补首条 system」处理 |
典型客户端报错前缀包括 buddy:(CodeBuddy / copilot.tencent.com)与 workbuddy:(WorkBuddy 国际版);README 写明覆盖 WB_HOSTS 内 5 个域名。
本插件不负责的情况¶
| 现象 | 处理方向(来自 README 速查表) |
|---|---|
code 11133 integer_below_min_value |
调大 max_tokens |
code 6004 usage exceeds frequency limit |
换账号或等待冷却 |
推理模型 EMPTY_RESPONSE、有思考无正文 |
建议 max_tokens ≥ 4096 |
model returned a completed response with no content |
与本品无关 |
核心机制与特性¶
拦截思路:在触发词中间插入不可见字符 零宽空格(U+200B),使上游子串匹配失效,模型侧语义保持不变。示例(摘自 README):
// 改前
"You are an AI agent powered by DeepSeek Harness."
// 改后
"You are an AI agent powered by DeepSeek\u200B Harness."
README 记载的实测(DSH 请求形态:316 tools + effort=max + max_tokens=128000):原文 0/5 失败,中和后 5/5 成功。
设计要点(资料原文归纳)
| 要点 | 说明 |
|---|---|
| 无损 | 不裁剪、不改写上下文,只插不可见字符 |
| 不碰第三方文件 | 挂在 globalThis.fetch,与反代插件版本/实现解耦 |
| 可逆 | 关闭总开关后请求与原始请求字节级一致 |
| 路径安全 | 匹配带负向断言,避免把 D:\...\DeepSeek Harness\... 类真实路径打散 |
| 实时生效 | 改开关无需重启 DSH |
若运行时上下文含真实路径,在路径段内插入零宽字符会导致工具调用传错路径;因此匹配器使用形如 /(?<![\\/])(DeepSeek)[ \u00A0]+(Harness)(?![\\/])/gi 的路径保护逻辑(README 示例)。
设置页:wb400 修复¶
安装并重启 DSH 后,入口为 设置 → wb400修复。
面板主要元素(v1.3.2 截图见仓库 docs/screenshot-panel-v132.png):
状态
- 版本徽标(如
v1.3.2) - 「主通道运行中」表示 fetch 钩子在链上工作;README 说明 wrapper 不必处于最外层,「已处理 N 处关键词」 才是是否在干的判据
开关(默认值以 README 为准)
| 开关 | 默认 | 作用 |
|---|---|---|
| 总开关 | 开 | 关闭则完全不改写请求 |
| 中和身份关键词 | 开 | 零宽空格替换 |
| 补首条 system | 开 | 首条非 system 时注入保底 system |
| 隐藏品牌词 | 关 | 更激进,连 DeepSeek 也打散 |
| 彻底换词 | 关 | 将关键词整体替换为其他词(默认 CodeBuddy) |
| 人格注入 | 关 | 追加 CodeBuddy 风格工程行为约束 |
另支持在面板维护自定义关键词(上游更换风控词时可在此追加,无需升级插件)、检查更新(读 GitHub Releases)、改写效果预览与处理计数。
安装与启用¶
版本要求:资料要求安装 v1.3.2 或更新;v1.3.0 / v1.3.1 存在稳定性问题(README 写明可能导致宿主崩溃),v1.0.x 无 fetch 通道、对多数用户无效。
方式一:从 GitHub 安装(推荐)¶
在 DSH 对话中说明安装 github:balongTTY/dsh-workbuddy-fix,或在本机执行(将 <DSH目录> 换成实际路径):
<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add github:balongTTY/dsh-workbuddy-fix
安装后重启一次 DSH。GitHub 直连不稳时可能失败,可改用 Release 包。
方式二:Release 附件(网络不佳)¶
- 打开 最新 Release
- 下载
balong-dsh-workbuddy-fix-1.3.2.tgz(约 42 KB) - 执行:
<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop add .\balong-dsh-workbuddy-fix-1.3.2.tgz
仅下载 .tgz 插件包;Release 中的 wb400-intro.mp4 为演示视频,不是安装包。
卸载¶
<DSH目录>\resources\runtime\cli\bin\dsh.cmd plugin --profile desktop remove @balong/dsh-workbuddy-fix
README 说明卸载不会删除 ~/.dsh/workbuddy-meter/lexicon.json 中的关键词配置,重装后开关状态可保留。
怎么确认装对了¶
重启后打开 设置 → wb400修复,同时满足:
- 标题旁有 v1.3.2(或更新的 1.3.x)版本徽标
- 状态为 主通道运行中
- 正常对话几轮后,「已处理」计数 大于 0
若只有「主通道运行中」但计数始终为 0,可能是尚未发起对话,或所用反代未走 globalThis.fetch(README 建议看介入次数、或运行仓库内 node diagnose.mjs 辅助判断)。
典型用法与自证¶
无需额外 API:默认开关开启后,照常通过 DSH 使用 WorkBuddy / CodeBuddy 即可;需要时到设置页关闭总开关或单项功能。
README 提供的 60 秒自证:同一 token 下仅改 system prompt 一词——
| system prompt | 结果 |
|---|---|
You are an AI agent powered by DeepSeek Harness. |
400 / 11128 |
You are an AI agent. |
200 |
若符合该规律,即与关键词风控一致。README 还提到:关键词触发常与请求体大小有关(约大于 1KB 时更稳定),短 prompt 含词也可能被放过,易造成「偶发」错觉。
适用场景与注意¶
适合谁:在 DSH 中走 WorkBuddy / CodeBuddy,反复遇到 11128 / unapproved channel 类 400,且已排除 max_tokens 过小、限流等 README 列出的无关错误。
兼容性:钩子针对 fetch;若反代插件用 undici 或 node:http 直连而不经过 globalThis.fetch,本插件可能无法介入。使用 dsh-connect-workbuddy 时,若在 system 丢失时只补 "You are a helpful assistant." 且无触发词,可能本来就不会 400,面板计数为 0 属 README 描述的正常情况。
安全与信任:插件以当前 DSH 进程权限运行,会改写出站请求体中的 prompt。安装前请自行查阅 仓库源码 与 MIT 许可证;社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
稳定性:README 如实记录历史版本曾导致宿主崩溃及修复版本;若装完后 DSH 无法启动,可先执行上文卸载命令恢复,再到 GitHub Issues 反馈版本、安装方式与 %APPDATA%\@deepseek-ai\dsh-desktop\logs\ 下崩溃日志。
与 dsh-workbuddy-meter:README 设有专门章节说明二者关系;本品侧重 400 修复与 prompt 中和,计量类能力见对应仓库文档。
测试与许可¶
仓库声明 15 个测试文件通过(见 README badges);本地可运行 npm test(package.json 中串联多条 node test/*.mjs)。
许可:MIT。
dsh-workbuddy-fix 把 WorkBuddy / CodeBuddy 上易被误判为「渠道问题」的 11128 拦截,落实到可开关、可逆的 prompt 关键词中和,并集中在 DSH 设置页运维。进一步了解:
- 目录页:https://www.skillhub.cn/plugins/balongTTY/dsh-workbuddy-fix
- 源码与文档:https://github.com/balongTTY/dsh-workbuddy-fix