前言¶
在 DSH 里对接 B 站 Toy 广场,常见做法是手写定时任务、自己调 Toy 接口,再在会话里补进度和评论。dsh-bili-toy-bot 把「到点选片、开玩、收工点评、播报」收成一条工作流:默认把一局任务写成提示词交给绑定会话里的 agent,用 toy_* / coach_* 完成操作;也可退回插件自带的 headless Edge(CDP)模式。配套插件 dsh-bili-toy 提供 Toy 接口与登录凭证,本插件不负责登录。
下面按定位、能力、安装、用法和注意事项说明。维护者:yuanstarstar;当前版本 0.4.5(资料来源:GitHub README / package.json)。SkillHub 分类为「工作流」。
这是什么¶
dsh-bili-toy-bot 是 DSH Desktop 的本地 bundle 插件(@local/dsh-bili-toy-bot),向宿主注册 20 个 bot_* 工具,并在设置页提供「玩toy机器人」面板。出厂人设写在包内 preset.json(不含登录与会话状态);运行配置与记录写在用户家目录 C:\Users\<你>\.dsh\bili-toy-bot\。
引擎要求:node >= 22,dsh >= 0.1.7-rc.1。
核心功能¶
两种玩法¶
默认:playMode: 'session'(交给绑定会话玩,推荐)
到点建 run 记录 → buildPlayPrompt 生成整局提示词 → agent.followup 发进绑定会话 → 会话内 agent 自行挑游戏、toy_open、用 coach_* 看画面操作 → 单局时长内可 bot_say 开局一句、收工后 1~3 句点评(0.4.1 起不在局内每 20 秒刷进度)→ 可选 toy_comment 评论。
备选:playMode: 'headless' 或未绑会话时兜底
插件用 headless Edge 开页,点「开始游戏」、定时截图、到点或挂机收工;动作偏保守(有文字按钮、画面中下、空格等),频率受 maxActionsPerMinute 限制。截图落在 runs/<id>/shots/。
调度与策略¶
- 活跃时段
slots(默认12:00-23:00,支持跨夜如21:00-01:00)。 - 每天局数上限
maxRunsPerDay(默认 6)、两局最短间隔minGapMinutes(默认 20 分钟)、每天总时长dailyTotalMinutes(默认 90)、单局最长maxMinutesPerToy(默认 20)。 - 「看表间隔」
heartbeatSeconds(默认 10 秒):每隔多久判断该不该开工(设置页可见,0.4.4 起由「心跳」改名以免与两局间隔混淆)。 - 选品:
allowAuthors/allowSlugs白名单、blacklistKeywords黑名单;bot_plan可只挑不玩。
人设、评论与 @¶
人设(名字、形象、性格、口头禅、选片口味等)与说话风格、开局模板可在配置或设置页编辑;bot_voice 可试写评论效果。
评论默认关(commentEnabled: false)。打开后受 commentMaxPerDay / atMaxPerDay 限制。atEnabled 与 atTargets: [{name, uid}] 控制能否 @ 及可 @ 名单(第一条当「主人」);评论提示词要求只 @ 名单内用户。dryRun: true 时只规划不发评论;关 dryRun 才真发(见 README「开关流程」)。
播报:broadcastMode 为 feed(动态)、session(绑定会话)或 off。
工具面(节选)¶
| 类别 | 工具 |
|---|---|
| 状态与配置 | bot_status、bot_config_get / bot_config_set、bot_start / bot_stop |
| 对局 | bot_plan、bot_play_now、bot_runs / bot_run_get、bot_diary / bot_stats |
| 会话 | bot_sessions、bot_session_bind、bot_session_activate |
| 播报与评论 | bot_say、bot_voice、bot_comment_draft / bot_comment_send / bot_comment_list、bot_feed |
完整 20 项见 README 表格。
安装与启用¶
README 写明:不需要 npm 安装器;须先具备 dsh-bili-toy(与机器人同父目录放置即可,通过 @local/dsh-bili-toy/lib/bili.mjs 或相对路径 ../../dsh-bili-toy/lib/bili.mjs 解析接口)。
- 将 release zip 解压到任意目录,例如
D:\plugins\dsh-bili-toy-bot。 - 在 profile 的
node_modules下建目录联接,并改package.json(保持 UTF-8 无 BOM)。 - 重启 DSH Desktop(宿主代码不热更新)。重启后设置页出现「玩toy机器人」,工具列表出现 20 个
bot_*。
# 示例:目录联接 + package.json 片段(摘自 README)
$profile = "$env:USERPROFILE\.dsh\profiles\desktop"
New-Item -ItemType Junction -Path "$profile\node_modules\@local\dsh-bili-toy-bot" -Target "D:\plugins\dsh-bili-toy-bot"
"dependencies": {
"@local/dsh-bili-toy-bot": "link:D:/plugins/dsh-bili-toy-bot"
},
"dsh": {
"profile": {
"bundles": [ "...", "@local/dsh-bili-toy-bot" ]
}
}
安装前请自行阅读仓库源码与 LICENSE,确认权限与行为符合预期;插件以当前 DSH 进程权限运行。
典型用法¶
绑定会话并手测一局¶
设置页「绑定会话」可列在线会话、一键绑定或新建;也可用工具:
bot_config_set { sessionId: '<会话id>', playMode: 'session' }
bot_play_now
接口会同步返回是否已交给会话;面板可显示「已经交给会话 / 会话不在线」。0.4.5 修复:设置页「立刻玩一局」发送的 minutes 仅作当次上限,不再覆盖已保存的 maxMinutesPerToy。
打开自动调度¶
bot_config_set { commentEnabled: true } # 需要真发评论时
bot_config_set { dryRun: false } # dryRun 影响是否真发评论
bot_start
需要暂停时调用 bot_stop。查状态用 bot_status(含时段内与否、今日局数、下一局时间、绑定会话是否在线)。
家目录里有什么¶
C:\Users\<你>\.dsh\bili-toy-bot\
config.json # bot_config_* 读写
state.json # 今日计数、上次开工
history.json # 各 toy 游玩次数
bot.log
cdp-profile/ # headless Edge 独立 profile
runs/<id>/ # meta、steps、shots、diary
daily/<日期>.md # 日报
适用场景与注意¶
适合谁: 已在 DSH 使用 dsh-bili-toy、希望用固定作息自动逛 Toy 广场,并更倾向在绑定会话里用 agent 完成一整局(或接受 headless 兜底)的开发者。
依赖: 无 dsh-bili-toy 时接口解析会失败;B 站登录与 Toy API 由配套插件负责。
安全与合规: 自动评论、@ 用户、浏览器自动化均依赖你的配置与账号;默认 enabled: false、commentEnabled: false、dryRun: true,避免误开。headless 模式会写独立 cdp-profile,不共用日常浏览器标签。
生态说明: DSH 社区插件目录(如 SkillHub)为社区站点,与 DeepSeek / 幻方无官方从属;安装链路以维护者 README 为准,勿臆造 dsh plugin add github:... 一类未在资料中出现的命令。
结尾¶
dsh-bili-toy-bot 把 Toy 广场的定时游玩、会话交棒、收工点评和过滤策略封装成可配置的 20 个 bot_* 工具与设置页,适合作为 DSH 工作流里「B 站 Toy 自动逛玩」的一层。
- 目录页:https://www.skillhub.cn/plugins/yuanstarstar/dsh-bili-toy-bot
- 源码与文档:https://github.com/yuanstarstar/dsh-bili-toy-bot