🧩 资源库

这些都是我在一台安卓手机上真实跑起来的东西,拿走直接用

DSH 插件 · 12 个工具

dsh-bili —— 让 agent 自己刷 B 站

搜索、推荐流、视频详情、评论、弹幕、字幕、UP 主、专栏全文。免登录可用, 想个性化就把 SESSDATA 存进去。搜索/推荐接口都做了 wbi 签名(不签会 412)。

搜索 / 推荐 / 详情 / 评论 / 弹幕 / 字幕
bili_search  bili_feed  bili_video  bili_comments
bili_popular bili_ranking bili_user bili_user_videos
bili_opus    bili_subtitle bili_danmaku bili_auth

自检文件:装好后看 /root/.bili/plugin-loaded.txt(应为 registered=12 failed=none)

DSH 插件 · 自启看护

qq-boot —— DSH 启动后自动拉起 QQ 和桥接

proot 容器一重启,里面的 QQ、Xvfb、桥接全部消失。这个插件在 DSH 启动 15 秒后 调 boot.sh,并每 5 分钟看护一次 OneBot 端口;还会检查桌宠垫片 shim.js 是否被还原,是就自动把「视频自愈」补丁打回去。

mm:ss 模块加载 → 15s → boot.sh
       DSH 3080 就绪 → QQ → OneBot 3000 → bridge 3100

需要配套的 boot.sh / restart-qq.sh,思路写在博客里;插件本身不含这些脚本。

桥接补丁 · 文档

QQ 指令通道 —— 只让主人能下命令

给 qq-bridge 加一条私有指令:主人在私聊发「指令: xxx」才执行, 群友、陌生人、甚至主人不带前缀的闲聊都不会触发。指令在独立会话里跑,不污染人设。

指令: 看看 B 站热门前三
指令: 把 boot.log 最后 20 行发我

怎么装(以 dsh-bili 为例)

# 1. 解包到插件目录
mkdir -p /root/bili-plugin && tar xzf dsh-bili-0.1.0.tgz -C /root/bili-plugin --strip-components=1

# 2. 补一个 DSH 运行时依赖的软链(link: 安装的插件不自带)
mkdir -p /root/bili-plugin/node_modules/@deepseek-ai
ln -sfn /opt/node-v22.23.2-linux-arm64/lib/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-tools \
        /root/bili-plugin/node_modules/@deepseek-ai/dsh-tools

# 3. 注册成 profile bundle
ln -sfn /root/bili-plugin /root/.dsh/plugins/bili-plugin
# 编辑 /root/.dsh/profiles/web/package.json:
#   dependencies: "bili-plugin": "link:/root/.dsh/plugins/bili-plugin"
#   dsh.profile.bundles 里追加 "bili-plugin"
cd /root/.dsh/profiles/web && dsh plugin install

# 4. 让它热加载(或重启 DSH)
#    插件管理器里禁用再启用 bili 这一行即可

踩过的 6 个坑

① -q 被吞

QQ 会把单横杠参数从 process.argv 丢掉,NapCat 永远以为没指定快速登录。改用 NAPCAT_QUICK_ACCOUNT。

② kill -9 丢凭据

硬杀不给 QQ 写回登录记录的机会,下次只能扫码。先 SIGTERM,等它退出。

③ 多实例

命令行是 ./qq,按绝对路径匹配杀不干净。读 /proc/<pid>/exe。

④ Xvfb 残留锁

容器重启后 /tmp/.X99-lock 挡住虚拟屏,启动前先清。

⑤ 垫片被还原

dsh plugin install 会把 shim.js 换回原版,视频自愈补丁丢失。

⑥ 上下文膨胀

默认要到窗口 80% 才压缩;改成绝对 5 万 token 触发。