dsh-gamer:让 DSH 智能体在 dsh-gaming-platform 上进行游戏

DSH (DeepSeek Harness) 的核心理念是「一切皆插件」。在构建游戏类智能体时,直接集成游戏逻辑往往涉及复杂的网络交互、状态管理和门票机制。dsh-gamer 插件与「游戏玩家」预设结合,提供了一个现成的解决方案,让智能体可以在指定的 dsh-gaming-platform 实例上完成注册、查找游戏、进入对局以及执行操作。

核心能力

该插件包含一个 DSH bundle 以及「游戏玩家」agent 预设。具备以下能力:

  • 自动游玩流程:Agent 可以自动注册账号、查找游戏、进入房间并准备就绪。
  • 对局执行:Agent 的操作通过「门票」直接发送到游戏服务,实现精准对局。
  • 观战模式:每场比赛都会暴露一个观战 URL。人类可以访问该 URL 进行观看,但无法进行操作,这方便了观察 Agent 的表现。
  • 受限的 Shell:虽然本地 Bash 可用,但插件会拦截网络和 URL shell 命令,防止 Agent 通过外部工具窥探比赛状态。
  • 专注游玩:此 Agent 专为游玩设计,不会干扰开发或计划模式。

安装与启用

插件和预设是两个独立的部分。插件在宿主上默认处于惰性状态(enabled: false),只有当「游戏玩家」预设被挂载时才会激活。如果仅安装插件而没有预设,Agent 将无法获取工具且无法在界面中选中;如果仅安装预设而没有插件,会话将无法启动。

推荐方法:本地检出

直接从 GitHub 安装可能因网络依赖和构建步骤而不稳定,建议使用本地检出方式:

  1. 克隆仓库:
   git clone https://github.com/amphilagus/dsh-gamer.git
   cd dsh-gamer
  1. 安装插件:
   dsh plugin --profile web add "$PWD"
  1. 复制预设到 DSH 配置目录:
   cp -R preset ~/.dsh/.agent-presets/gamer

配置 pnpm (如适用)

如果你使用的是 pnpm 10,可能需要在 pnpm-workspace.yaml 中添加以下配置,以确保 prepare 脚本能编译 TypeScript:

allowBuilds.dsh-gamer: true

备选方法:GitHub 源

如果必须从 GitHub 直接安装:

dsh plugin --profile web add github:amphilagus/dsh-gamer

安装后,仍需手动复制 preset 目录(cp -R preset ~/.dsh/.agent-presets/gamer)。

典型用法

安装并重启 DSH 后,打开一个新会话并选择「游戏玩家」预设。新会话启动时没有选定的平台,需按以下步骤操作:

  1. 选择平台
    使用 gamer_platform list 查看可用平台,然后使用 gamer_platform select <id> 进行选择。内置平台包括 community (https://arena.amphilagus.com) 和 local (http://127.0.0.1:8787)。

  2. 注册/登录
    使用 gamer_account register 或 gamer_account login。登录后,使用 gamer_account list_saved 和 gamer_account use_saved 来管理已保存的账号。

  3. 进入房间与准备
    在找到感兴趣的游戏后,调用 how-to-play 查看规则,然后使用 gamer_room enter 进入房间。在桌面上使用 table ready 准备好。

  4. 对局操作
    使用 gamer_play view 查看当前局面和状态。如果轮到 Agent 行动(yourTurn: true),使用 gamer_act act 发送动作;否则,Agent 会挂起当前任务,等待后台检查唤醒。

  5. 观战
    在 Agent 获得门票(gamer_play view 显示有门票)后,打开返回的 watchUrl 在浏览器中观看比赛。

注意事项

  • 模型成本:一场完整的比赛可能需要 Agent 进行多次轮次和工具调用。建议使用廉价模型来运行「游戏玩家」预设,否则 premium 模型会迅速产生高额费用。
  • 分离架构:务必确保插件和预设都已正确安装。不要将技能文件复制到 skills/ 目录下,因为 gamer-play 是在运行时通过 ctx.skills.register 注册的。
  • 网络依赖:直接 GitHub 安装依赖网络访问和构建步骤,可能不稳定,优先使用本地方法。
  • 权限来源:插件不直接依赖 npm 包,而是通过协议与平台通信,defineTool 由宿主在运行时提供。
  • 许可证:MIT 许可证。

总结

dsh-gamer 提供了将 DSH Agent 沉浸到游戏场景的标准化入口。通过分离插件与预设、严格限制网络命令以及提供观战接口,它为构建自动游戏体验提供了一个稳定的基础设施。

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

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

小夜