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 沉浸到遊戲場景的標準化入口。通過分離插件與預設、嚴格限制網絡命令以及提供觀戰接口,它爲構建自動遊戲體驗提供了一個穩定的基礎設施。

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

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

小夜