前言¶
在 DSH 里做 IM 桥接,QQ 侧已有成熟路径:客户端经 SnowLuma(OneBot 网关)进 DSH,会话正文落在 DSH 的 session 日志里,LLM 侧用 mcp__snowluma__* 一类工具回消息。抖音没有同等现成的网关。若只想让 agent 在 DSH 里读私信、搜视频、分享卡片、用文本或图片回话,又不想单独维护一套 jsonl 聊天记录,就需要一层「IM 侧网关 + DSH 注入 + 工具面」的实现。下面介绍社区插件 dsh-douyin-bridge(维护者 pcmxiao,分类:联网工具),它把这一层做进 DSH 插件形态,并声明仅供学习研究。
这是什么¶
dsh-douyin-bridge 是 DeepSeek Harness(DSH)插件,npm 包名 dsh-douyin-bridge,当前版本 0.1.0,MIT 许可证。核心链路是:好友在抖音发私信 → 桥接读网页端 DOM → 注入 DSH 会话 → agent 拿到上下文 → 通过 douyin_* 工具刷视频、分享、回私信(含图片/表情收发)。插件自述角色类似 QQ 链路里的 SnowLuma,但桥的是抖音私信,且直接长在 DSH 里;映射与去重指纹在 $DSH_HOME/douyin-bridge/,对话正文不另存副本,全在 DSH session 日志中。
目录页:SkillHub 插件页。源码与说明:GitHub pcmxiao/dsh-douyin-bridge。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
与 QQ 桥接的对照¶
README 用表格概括差异,便于理解定位:
| QQ 那套 | dsh-douyin-bridge | |
|---|---|---|
| IM 侧网关 | SnowLuma(现成) | 本插件自带(浏览器 DOM 操作) |
| 桥接形态 | MCP server + 桥接进程 | DSH 插件(宿主半 + 浏览器半) |
| 消息进 DSH | session/prompt |
注入 DSH 会话(agent/inbox/spliced + user/message) |
| LLM 侧动作 | mcp__snowluma__* |
douyin_* 工具 |
核心功能¶
私信进 DSH¶
轮询抖音网页版私信面板,新消息注入对应 DSH 会话;自己发的消息不会回灌。对方发图片时,桥接从 DOM 取出内联 base64,经 attachments.saveImages() 写入 DSH 附件库,注入块带 {type:'image', attachment: ref},前提是当前模型支持图像输入(否则 DSH 会省略 image 块)。
运行模式¶
配置项 mode 控制自动行为(默认值见下节):
simulation:由 AI 决定是否回复mirror:AI 每条回复自动发回抖音(与 agent 主动调douyin_dm_send并用时可能重复发送)off:只暴露工具,不自动注入
autoReply 为 true 时,收到新消息会唤醒 agent。
LLM 工具面¶
README 列出的工具包括:搜视频与详情(douyin_search、douyin_detail)、分享到私信(douyin_share)、评论列表/发帖/分享评论(douyin_comment_*)、私信列表/读取/发送文本图片表情(douyin_dm_*)、本地表情库(douyin_sticker_*)、从 DSH 会话读完整历史(douyin_history)、值班章程与状态(douyin_duty、douyin_status、douyin_whoami、douyin_login、douyin_selftest)。在某一好友的 DSH 会话里,douyin_share / douyin_dm_send 等发送类工具的 to 留空即对应当前好友。配置了 peers 白名单后,只有名单内好友能收到 outbound 消息。
值班章程¶
prompts/duty.md 作为桥接会话的系统提示,可直接修改,新会话立即生效。
安装与启用¶
引擎要求:dsh >= 0.1.7-rc.1,node >= 22。安装后需重启一次 DSH(bundle 层需重新组装)。
本地开发目录安装:
dsh plugin --profile desktop add link:<这个目录>
或从 npm 安装:
dsh plugin --profile desktop add dsh-douyin-bridge
桌面版 Electron 的 desktop profile 不能仅靠上述 CLI 管理;若报 profile "desktop" is managed exclusively by the Electron application,应在 设置 → 插件 安装,或通过 tools/dsh-rpc.mjs 调用 pluginManager/installBundle(见仓库 tools/README.md)。
启用步骤:
- 打开 设置 → 刷抖音
- 点 「打开浏览器登录」,弹出抖音网页版 Edge/Chrome 窗口
- 在窗口内扫码登录(使用你要代聊的账号)
- 不要关闭该窗口(登录态依赖它)
窗口被手动关闭后桥接会暂停,日志提示「浏览器窗口被关掉了 —— 桥接暂停」;可再次点「打开浏览器登录」,或 POST /dsh-douyin-bridge/start。浏览器崩溃时会自动重连(30 秒一次,最多 3 次)。
装完无反应时可排查:
node tools/dsh-rpc.mjs pluginManager/listPlugins "{}" | grep -A2 douyin
node tools/dsh-rpc.mjs GET /dsh-douyin-bridge/status
node tools/dsh-rpc.mjs POST /dsh-douyin-bridge/stop
node tools/probe.mjs
配置¶
持久化配置在 $DSH_HOME/douyin-bridge/config.json(不在插件目录,升级不丢)。设置页可改的主要字段:
| 项 | 默认 | 含义 |
|---|---|---|
mode |
simulation |
见上文三种模式 |
peers |
[] |
好友白名单;空则所有会话进 DSH |
sharePeers |
[] |
允许分享视频的对象;空则跟随 peers |
pollIntervalMs |
20000 |
轮询间隔,不宜过短 |
maxInjectChars |
4000 |
单条注入字符上限 |
autoReply |
true |
新消息是否自动唤醒 agent |
browserPort |
47881 |
CDP 端口 |
userDataDir |
<家目录>/profile |
浏览器 profile 路径 |
README 建议为 peers 填白名单,避免整个私信列表进入模型上下文。
典型用法¶
评论区三步¶
douyin_comment_list { video: "7697459346984897955" }
douyin_comment_post { video: "…", text: "这条猫也太可爱了" }
douyin_comment_share { video: "…", index: 0, to: "某个好友" }
发评论可能返回 { ok: false, code: "NEEDS_VERIFY" },需在浏览器完成短信验证,属平台风控而非插件 bug。
本地表情库¶
抖音网页端无收藏表情入口时,可从评论区抓取 CDN 图片进 $DSH_HOME/douyin-bridge/stickers/,再用 douyin_sticker_send 经发图链路透传。
查模型是否支持看图¶
curl "http://127.0.0.1:<DSH端口>/dsh-douyin-bridge/models"
curl "http://127.0.0.1:<DSH端口>/dsh-douyin-bridge/status"
若 canSeeImage 为 false,可在 profile 的 cordis.patch.yml 为对应模型补 input: [text, image]。
数据落点¶
| 数据 | 位置 |
|---|---|
| 对话正文 | DSH session 日志(~/.dsh/sessions/...) |
| 好友名 ↔ session id、去重指纹 | $DSH_HOME/douyin-bridge/sessions.json |
| 配置 | $DSH_HOME/douyin-bridge/config.json |
| 登录态 | $DSH_HOME/douyin-bridge/profile/ |
| 运行日志 | $DSH_HOME/douyin-bridge/bridge.log |
适用场景与注意¶
适合:已在用 DSH 做 agent 开发、需要在同一套 session 日志里接抖音私信、并希望 LLM 用统一工具面操作搜视频/分享/私信的学习研究场景。
务必注意:
- 插件以当前 DSH 进程权限运行,安装前应阅读源码、DISCLAIMER.md 与 MIT 许可证,自行遵守抖音平台规则与适用法律。
- DOM 选择器随抖音改版失效;私信面板视口宽度不足时可能 0×0 渲染;轮询过频易触发风控;语音可读不可发;视频页短时间打开过多会
VIDEO_UNAVAILABLE。 - 禁止 git clone 仅为「试用」而绕过 npm/官方安装流程时,仍须理解上述合规与风控限制。
结尾¶
dsh-douyin-bridge 把抖音私信桥进 DSH:会话数据留在 DSH,agent 用 douyin_* 完成搜、Share、聊。安装用 dsh plugin --profile desktop add dsh-douyin-bridge(或 link 本地目录),登录浏览器后按配置与白名单使用即可。
- 目录页:https://www.skillhub.cn/plugins/pcmxiao/dsh-douyin-bridge
- GitHub:https://github.com/pcmxiao/dsh-douyin-bridge