dsh-game-agent: Turning Red Alert 2 Web Matches into a DSH Orchestratable Game Agent

前言

在 DSH 里做直播互动时,常见做法是聊天回复与画面展示分开:观众说话进队列,角色只负责念稿或表情,游戏画面仍是人工切键。若要把「观察—决策—执行」做成 Agent 可选工具,并把观众指令插进决策优先级,还需要单独记复盘、经验和证据,一般得自己接控制器、再挂一层经验库。

dsh-game-agent(维护者 XiaoZheBrother,社区目录分类为工作流)面向这类需求:把游戏操作封装成工具集,聊天与游戏执行分通道处理,经验和复盘落在独立 SQLite。当前为 0.1.0-alpha.4 开发预览,适配器仅支持项目使用的修改版红警 2 网页接口,不是任意原版 exe 控制器;插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证。

这是什么

dsh-game-agent 是 DeepSeek Harness 的游戏向插件,与同级 dsh-live-studio 组合使用。它把观察、生产、移动、进攻、占领、部署、镜头与选址等操作做成 Agent 工具;观众指令优先于自主决策,回复语音与游戏执行分开处理。决策记录、经验采用、结果证据与复盘保存在独立 SQLite 中。

核心功能

下面按 README 已写明的能力归纳,不扩展未验收项。

工具化游戏操作

Agent 通过工具选择与执行驱动对局,而不是在聊天里硬编码宏命令。工具执行正确不等于策略有效;插件侧会把经验、反例与修订历史分开记录。

观众指令与自主决策

观众指令优先于自主决策。聊天内容只进入回复队列,与游戏执行分路处理,避免「说完话顺带乱点单位」的耦合。

经验与复盘(SQLite)

经验条目含来源、适用情境、采用记录、结果证据、反例和修订历史。复盘逐项校验:合格项保留,错误项可重试且有上限。数据库使用 WAL 与短事务。游戏专用经验暂由本插件管理;通用经验接口在 dsh-agent-growth 中,尚未自动迁移两者数据库。README 注明未进行真实模型对局验收。

直播布局与内置舞台

游戏模式已包含直播能力:同一直播间只启用游戏插件或直播插件中的一个。控制台默认 http://127.0.0.1:3098/;直播素材地址为 http://127.0.0.1:3098/?view=stream&audio=direct&layout=game。README 中的联调截图展示早期布局(左侧游戏、右侧角色与账本),Live2D 与游戏资源需自行准备,不随插件分发。

配套 dsh-live-studio 0.2.0-alpha.3 起可配置本地 model 与 cubismCore,将游戏画面嵌入内置舞台;未填写时仍走原有 jingyuUrl。模型与 Cubism Core 不随包分发。

自动续局

自动续局依赖支持保留速度设置的修改版游戏客户端;游戏资产必须自行提供。自主控制默认暂停,需在控制台确认资源、频道和对局状态后再开启。

依赖与版本

项 说明
Node.js >=22.19.0(package.json engines)
同级插件 dsh-live-studio ^0.2.0-alpha.3
兼容说明 可与直播插件 0.2.0-alpha.1 组合安装;游戏战略、经验和自动续局行为不变
Python / 技能目录 需同版本 dsh-live-studio 的 Python 依赖;另需 Node.js 与含 scripts/ra2ctl.mts、node_modules/tsx 的游戏控制技能目录
适配器 包内 adapters/ra2 提供固定上游版本的补丁与构建步骤;客户端与游戏资源需另行构建并导入

先安装并验证对应游戏适配器,再启用本插件。

安装与启用

官方 README 给出的安装路径是本地开发包(npm pack 生成 tgz),不是凭仓库名拼接 dsh plugin add github:...。

  1. 在源码目录执行 npm pack,得到 tgz 的绝对路径。
  2. 先把同版本直播插件 tgz 安装到同一 DSH profile。
  3. 再安装游戏插件 tgz;安装不会自动启用。

PowerShell 示例(路径按你的环境替换):

$env:DSH_HOME = 'D:\my-agent-data'
dsh plugin --profile web add '<生成的 tgz 绝对路径>'

注意:开发包不得覆盖正在运行的旧任务,请先停掉旧实验启动器;填写配置后再设 enabled。目前不提供稳定版 Release。

配置要点

沿用直播插件的 home、persona、python、jingyuUrl、room、credential、ledger 等配置,并为游戏插件增加:

字段 含义
enabled 默认 false
port 默认 3098
gameSkill 含 scripts/ra2ctl.mts 与 node_modules/tsx 的技能绝对路径
experience 游戏经验 SQLite 路径;沿用原文件可保留全部经历
channel 游戏频道,默认 1

本地舞台(可选,配合 dsh-live-studio):配置 model 目录与 cubismCore SDK 文件路径后,可无需另外启动鲸语;两项未填则仍用 jingyuUrl。

典型用法流程

  1. 安装并校验 adapters/ra2 对应客户端与 ra2ctl 技能目录。
  2. 在同一 profile 装好 dsh-live-studio 与本插件,停掉旧启动器后写入上述配置,enabled 保持 false 直至资源就绪。
  3. 打开 http://127.0.0.1:3098/ 控制台,确认频道与对局状态后开启自主控制。
  4. 推流或预览使用 http://127.0.0.1:3098/?view=stream&audio=direct&layout=game。
  5. 需要自动续局时,确认修改版客户端支持保留速度设置。

适用场景与注意

适合谁: 已在 DSH 上跑直播栈、愿意维护修改版红警 2 网页控制链路与 ra2ctl 技能目录的开发者;需要观众指令插队、可追溯复盘与经验 SQLite 的 Agent 实验。

务必注意:

  • alpha 预览,尚未切换生产;默认 enabled: false。
  • 插件与 DSH 同进程权限,安装前检查源码与 MIT 许可证。
  • 不与直播插件同开于同一房间;游戏资产、Live2D、Cubism 均需自备。
  • SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,按需自行审计后再上机。

结尾

dsh-game-agent 把网页红警对局收成 Agent 工具链,并把观众指令、自主操作、续局与 SQLite 复盘放在同一条工作流里,适合在 DSH 上做可重复的直播+策略实验。详情见 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye