dsh-raccoon-connect
Adds DSH 0.2.x kernel support to the SenseTime XiaoHuanXiong desktop-app models, reusing that app's stored sign-in so no API key is needed.
Install
dsh plugin --profile web add dsh-raccoon-connect
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
DSH 小浣熊 Connect





仓库:GitHub · zhlcba/dsh-raccoon-connect
| 国内镜像:Gitee · dhzl/dsh-raccoon-connect(GitHub 访问不稳时用这个,内容同步)
把商汤小浣熊桌面 App 里的模型(GLM-5.3、GLM-5.3-Flash、Kimi-K3、SenseNova-6.8-Flash-Lite、DeepSeek-V4.1-Flash 等)
接进 DeepSeek Harness,在 DSH 的对话窗口里直接选、直接用——不用填任何 API Key。
插件复用桌面端自己的登录态,账号切换自动跟随,模型名后面还带着上游的计费倍率与促销标签。
### 这是带 DSH 0.2.x 支持的 fork
上游 liudapeng0311/dsh-raccoon-work 只声明支持 0.1.5-rc.1,
在 DSH 0.2.x 内核上会被兼容性校验直接拒绝、装不上。本 fork 把内核适配补到 0.2.x,
并在 Windows + Desktop profile + 0.2.1-rc.2 上实测可用(模型分组出现、可正常对话)。
除内核适配外没有改任何东西——上游协议、令牌语义、倍率算法、识图判定、探测逻辑一律保持原样;
176 个上游测试全部通过。逐条改动见 [CHANGELOG.md](./CHANGELOG.md)。
上游协议与实现思路另参考 corrinehu/dsh-workbuddy-connect(MIT),
但上游协议、令牌语义、倍率算法与探测判定全部按小浣熊网关的实测行为重写,见 docs/upstream-protocol.md。
快速开始
前置:本机已安装并登录 商汤小浣熊桌面端。插件不启动它、也不代替它登录。
# 1) 安装插件(Desktop profile;Web 端把 desktop 换成 web) dsh plugin --profile desktop add dsh-raccoon-connect # 或直接从 GitHub 装: # dsh plugin --profile desktop add github:zhlcba/dsh-raccoon-connect # 2) 完全退出 DSH(含托盘)再重新打开 # 3) 模型选择器里选「商汤小浣熊」分组的模型,开聊
装完不需要再登录一次——插件直接读桌面端写给本地 agent 的凭据文件。
常见问题
桌面端要一直开着吗?
不用。插件读的是凭据文件(~/.box-agent/config/auth.json),不是运行中的进程。只要桌面端曾经登录过、
凭据仍在有效期内,关掉 App 照样能用。只有三种情况需要打开 App:首次登录、凭据失效/被吊销、切换账号。
支持哪些 DSH 版本?
本 fork 支持 0.2.1-rc.1 – 0.2.x(实测 0.2.1-rc.2)。上游 0.1.x 线请用上游仓库。
装错世代会被 DSH 的兼容性校验拒绝——这是保护,不是故障。
和 dsh-connect-sensenova-token-plan 有什么区别?
两者是互不依赖的两条通道:那条走商汤控制台的账号密码登录与网页微信扫码;本插件走桌面端凭据。
所以上游网页扫码页有任何变动都不影响本插件。
会消耗我自己的积分吗?
会——用的是你小浣熊账号自己的额度。插件只做本机转发,不代理、不上传你的数据,凭据也不出本机。
请遵守商汤小浣熊的服务条款,详见文末[免责声明](#免责声明)。
装完看不到模型分组?
按顺序查:① 桌面端是否登录过(~/.box-agent/config/auth.json 是否存在);② DSH 是否完全重启过;
③ 跑 dsh plugin --profile desktop exec dsh-raccoon-connect doctor 看诊断。
功能
- 开箱即用:安装并启用插件后,直接在 DSH 里选模型对话,不需要填任何 key。插件复用商汤小浣熊桌面端的登录状态(它自己给本地 agent 写的那个凭据文件),账号切换自动跟随。
- 倍率与促销:模型名后面直接带上游目录里的计费倍率和促销标签,例如
GLM-5-3-Flash · x0.10 · 限时折扣、SenseNova-6.8-Flash-Lite · x0.00 · 限免一个月。
倍率只是显示,不影响实际请求;促销按时间窗口实时重算,过期后自动回到原价,原价也拿不到时显示「价格未知」而不是继续挂着折扣价。
- 图片输入:能不能发图按逐个模型的实测结果判定,而不是照抄目录标签。上游目录里唯一的能力信号就是
vision标签,而 2026-09-18 实测发现它在 5 个可见模型里错了 2 个、且两个方向都错:DeepSeek-V4.1-Flash与GLM-5-3-Flash没有标签却真的能读图,GLM-5-3打了标签但网关会把图片直接丢掉(模型回一句「我看不到这张图片」,比拒绝更难发现)。当前按实测声明支持识图的是 SenseNova-6.8-Flash-Lite、Kimi-K3、GLM-5-3-Flash、DeepSeek-V4.1-Flash;GLM-5-3 声明为纯文本,DSH 不会往里塞图片。上游新上的模型如果标签又标错了,用插件配置里的visionModelIds/textOnlyModelIds手工纠正即可,不必等发版;重跑实测见下方「真机复核」。
- 思考内容:上游把思考放在非标准的
delta.reasoning_content字段里,插件原样透传,DSH 侧照常显示 reasoning 流。
- 信息查看与刷新:设置 → 插件 → 「商汤小浣熊」卡片显示账号、身份(个人/企业)、令牌有效期、剩余积分、当前模型列表来源(实时 / 已保存 / 内置兜底)与最近一次失败原因,也可以手动刷新模型列表。
- 推理等级探测:卡片与输入框上都有「检测」入口,但默认不做任何猜测(见下文为什么它通常给出「不可校验」)。
安装与版本对应
前置:已安装并登录商汤小浣熊桌面端。插件不启动它、也不代替它登录。
# ① npm(推荐) dsh plugin --profile desktop add dsh-raccoon-connect # ② GitHub 源码(lib/ 已入库,装完即可用) dsh plugin --profile desktop add github:zhlcba/dsh-raccoon-connect # ③ 本地目录(开发用) dsh plugin --profile desktop add link:/path/to/dsh-raccoon-connect
装完完全退出 DSH(含托盘)再启动,然后在模型选择器里找「商汤小浣熊」分组。
版本对应:插件必须与 DSH 核心的世代匹配,混用会导致 DSH 启动失败。
插件版本 · 要求的 DSH 核心 · Node · 实测
0.2.x(本 fork) · 0.2.1-rc.1 – 0.2.9 各预发布线的显式并集※ · ^22.19.0 \ · \ · >=24.0.0 · Windows + Desktop,0.2.1-rc.2 ✅
0.1.x(上游) · 0.1.5-rc.1 · 同上 · 上游只在 Web profile 验证过
※ 别把范围写成 >=0.2.1-rc.1 <0.3。按 node-semver 规则,带预发布标签的版本只有在
范围里存在「与自己 major.minor.patch 相同、且自身也带预发布标签」的比较符时才可能被接受;
那样写实际匹配不到 0.2.2 及以后的预发布内核。package.json 里因此逐个列出:
>=0.2.1-rc.1 <0.2.2-0 || >=0.2.2-rc.1 <0.2.3-0 || … || >=0.2.9-rc.1 <0.3。
升级到新内核世代时,把这些分支一起前移(详见 CHANGELOG 的 0.2.1 一节)。
本 fork 的实测范围:Windows、Desktop profile、DSH 0.2.1-rc.2——插件能注册($DSH_HOME/.raccoon-host-heartbeat.json)、
模型分组出现在选择器、选中模型可正常收发。设置卡片走的是运行时桥接(新内核的 slot 联合类型不含它),
卡片能否渲染未逐一验证;卡片缺席不影响模型服务。dsh.client.platform 仍声明为 web。
配置
插件卡片没有这些字段的编辑控件,改的是 profile 的补丁层 ~/.dsh/profiles/web/cordis.patch.yml(追加一段针对 llm-raccoon 的 config,改完重启 DSH):
- id: llm-raccoon
config:
# authFile: 'C:/Users/you/.box-agent/config/auth.json' # 默认读 ~/.box-agent/config/auth.json(别留空串,会覆盖成无效路径)
# probeConsent: true # 长期授权「检测推理等级」;默认关,每次检测都花少量积分
visionModelIds: [] # 强制按「能识图」提供的模型 id
textOnlyModelIds: [] # 强制按「纯文本」提供的模型 id,优先级高于上一行
visionModelIds / textOnlyModelIds 是给上游标签标错时兜底用的(见「功能」里的图片输入一节):新模型能发图却被标成纯文本,把 id 加进前者即可,不必等插件发版;反向同理。
令牌是怎么复用的,以及一个必须说清的副作用
商汤小浣熊把登录态放在 ~/.box-agent/config/auth.json(BOX_AGENT_CONFIG_DIR 可改位置),
访问令牌 3 小时过期,刷新令牌 30 天。它的刷新接口是单次使用语义:换一次令牌,新旧令牌一起轮转。
因此插件的凭据策略与只读复用不同:
- 令牌还在有效期内:直接读用,不做任何刷新,也不发网络请求。
- 令牌接近过期:插件刷新一次,并把轮转后的新令牌写回 App 自己的
auth.json。
这是必须的——如果不写回,App 下次拿旧刷新令牌去换就会撞到 refresh_conflict,你会被退出登录。
写回沿用 App 的格式与原子写方式(临时文件 + rename),并保留它原有的其他字段。
每个进程第一次写回前,会在 $DSH_HOME 下留一份被替换文件的备份,作为出问题时的回滚材料。
- 撞到
refresh_conflict:先重读 App 文件(很可能 App 自己刚刷新过),拿到有效令牌就继续;
拿不到才报错,并提示「打开一次商汤小浣熊重新登录」。
- 退出登录:
logout只删插件自留的副本和备份,不动 App 自己的登录文件。
没有任何登录态时,模型分组直接消失(而不是挂一串必然报错的模型)。
为什么「检测推理等级」多半会告诉你「不可校验」
小浣熊网关对 reasoning_effort 只做部分校验。实测(sn-glm-5-3-flash,最小请求):
送进去的值 · 网关反应
`o
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::6,最后更新 2026-10-30