dsh-ads 的 README 给它的定位是「把 DeepSeek Harness 变成 2005 年门户网站。连 inference 都逃不过广告。」它也写明「广告是假的,插件是真的」。这篇不装、不测,只拆实现。
先摆硬数字:仓库 Nagi-ovo/dsh-ads 目前 637★,本站综合分 67.2,npm 包 @nagi-ovo/dsh-ads @ 0.1.2,README 声明兼容 DSH 0.1.1-rc.2 到 0.2.0-rc.2,最近一次提交在 1 天前。
先认清它的家族:一个客户端 UI 插件
详情页的能力徽章把它标为 ui,分类 token 是 ads。它依赖 11 个 Cordis / DSH 模块:@deepseek-ai/cordis、@deepseek-ai/dsh-client-locale、dsh-client-store、dsh-client-ui-chat、dsh-client-ui-conversation、dsh-client-ui-primitives、dsh-client-ui-renderer、dsh-client-ui-session、dsh-client-ui-settings、dsh-client-ui-slots、@deepseek-ai/schemastery。
这份清单说明了它的性质:dsh-client-ui-slots 管插槽注册,dsh-client-ui-settings 管设置页入口,dsh-client-locale 管本地化,dsh-client-store 管状态。它不在服务端改推理逻辑,而是在客户端把 UI 插槽一个个占掉——这是后面所有行为的前提。
插槽注入式 UI:四个位置怎么被占
README 写明:它在侧栏、对话、推理中途和右下角塞入一整套虚构广告。四个位置对应四类插槽,注入时机不同。
侧栏与对话
这两处是长驻区域,广告更像常驻位。因为走插槽注入而非改渲染器源码,排版与宿主 UI 一致,看上去不像外挂,倒像 DSH 原生的东西。
推理中途
最容易误解的位置。流式回答进行到一半,界面会插入一条「V4 Pro 正式版抽奖」广告,带财神鲸、每轮一抽的转盘和四道解锁进度条。它在回答流当中,不是浮在表层。
右下角
弹窗位。中文模式在这里轮播素材,README 提到两张贪玩蓝鲸海报每 20 秒自动切换,配合页游、财神、「这次一定」这套视觉语言。
「看起来暂停 inference」是怎么做的
README 原文:它看起来会暂停 inference,实际上模型一直在后台工作,只是后续回答和工具调用要等广告结束才显示。
翻成机制:模型侧没被中断,token 照常生成,工具调用照常发生;被拦下的是客户端展示层。回答已在后台就绪,UI 只是等广告放完再放它出来。观感是「卡住」,实际是「排队」——这和真正卡死的区别就在于后台没停。
双语素材切换:改一次语言,整套换掉
README 描述了两套互联网垃圾美学。切 DSH 的「设置 → 语言」,当前页面会立即更换整套素材、文案和交互,不用刷新。
- 中文模式:页游、财神、「这次一定」;两张贪玩蓝鲸海报每 20 秒自动切换。
- English mode:fake antivirus、weird tricks、actual gameplay。
能做到即时全换,是因为素材与文案挂在本地化层(dsh-client-locale)上,语言一变,引用同一套 key 的插槽同时重渲染。它不是「两套皮肤手动切」,而是「一份素材按语言查找」。
设置持久化:广告位是逐个关的
每个广告位都能在「设置 → 广告(非官方)」里单独关闭,选择会保留到下次启动——逐个关,不是总开关。入口由 dsh-client-ui-settings 提供,状态落进 dsh-client-store,重启会恢复上次选择。
曝光记录只保存在本机浏览器里,不做服务端统计。这和「免费广告位」的设计配套:带 dsh-plugin topic 的公开插件自动参与轮播,想指定文案或图片可以投稿并发 PR。
Star 校验链路:13 处扫描证据里最该看的几行
本站安全扫描 v2.7.0 的结论是「含敏感能力」,共 13 处证据,范围是入口闭包加发布文件清单。复述几条关键行——这只是能力清单,不是危险判定。
lib/index.js:1805与:1923:const token = process.env.GITHUB_TOKEN ?? process.env.GH_TOKEN ?? "";,读取密钥环境变量。lib/index.js:1907:请求外部主机api.github.com,取当前用户对指定仓库的 star 状态。src/catalog.ts:202与src/star-host.ts:92:源码层同样读取GITHUB_TOKEN/GH_TOKEN。src/star-host.ts:73:同样请求api.github.com。
README 免责声明对此有对应说明:「验证修复」只在用户主动点击后查询一次 GitHub Star 状态,优先用本机 gh 或 token,否则调匿名公开 API,结果只存本机浏览器。链路只读:读一遍 token、发一次请求,不写回。
本站尚未对该插件做风险分级,暂未覆盖不等同于无风险。
推荐位来自哪里
GitHub 上带 dsh-plugin topic、且最近两周更新过的公开插件会进入推荐位,点击广告可打开真实仓库;仓库换到个人账号或别的组织后仍能被发现。这套列表由 src/client/registry.ts:51 的 fetch(REGISTRY_ROUTE, { cache: 'no-store' }) 拉取,绕开缓存保证相对新鲜。
总结
它是一个把虚构广告经插槽注入到四个界面位置的客户端 UI 插件,靠「拦展示层而不是拦模型」制造推理暂停的假象,用本地化层做双语素材切换,用客户端存储做设置持久化;想对照同类插件的中文清单与安装形态见 DeepSeek Harness Hub 插件清单。
适合与不适合
适合:想看清 DSH 客户端插槽机制的人;对 2005 年门户美学有怀旧情绪的人;做插件开发、想看 ui 类插件如何组织模块依赖的人。
不适合:任何需要生产力的场景——它不含任何生产力功能;需要投屏演示或汇报的人,广告里虚构的品牌、域名、价格与承诺易被误认成真实信息;不喜欢被弹窗打断阅读的人。
标签:dsh-ads、DeepSeek Harness、客户端插件拆解、插槽注入、Cordis 模块
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。