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 安裝可能因網絡依賴和構建步驟而不穩定,建議使用本地檢出方式:
- 克隆倉庫:
git clone https://github.com/amphilagus/dsh-gamer.git
cd dsh-gamer
- 安裝插件:
dsh plugin --profile web add "$PWD"
- 複製預設到 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 後,打開一個新會話並選擇「遊戲玩家」預設。新會話啓動時沒有選定的平臺,需按以下步驟操作:
-
選擇平臺
使用gamer_platformlist 查看可用平臺,然後使用gamer_platform select <id>進行選擇。內置平臺包括community(https://arena.amphilagus.com) 和local(http://127.0.0.1:8787)。 -
註冊/登錄
使用gamer_account register或gamer_account login。登錄後,使用gamer_account list_saved和gamer_account use_saved來管理已保存的賬號。 -
進入房間與準備
在找到感興趣的遊戲後,調用how-to-play查看規則,然後使用gamer_room enter進入房間。在桌面上使用table ready準備好。 -
對局操作
使用gamer_play view查看當前局面和狀態。如果輪到 Agent 行動(yourTurn: true),使用gamer_act act發送動作;否則,Agent 會掛起當前任務,等待後臺檢查喚醒。 -
觀戰
在 Agent 獲得門票(gamer_play view顯示有門票)後,打開返回的watchUrl在瀏覽器中觀看比賽。
注意事項¶
- 模型成本:一場完整的比賽可能需要 Agent 進行多次輪次和工具調用。建議使用廉價模型來運行「遊戲玩家」預設,否則 premium 模型會迅速產生高額費用。
- 分離架構:務必確保插件和預設都已正確安裝。不要將技能文件複製到
skills/目錄下,因爲gamer-play是在運行時通過ctx.skills.register註冊的。 - 網絡依賴:直接 GitHub 安裝依賴網絡訪問和構建步驟,可能不穩定,優先使用本地方法。
- 權限來源:插件不直接依賴 npm 包,而是通過協議與平臺通信,
defineTool由宿主在運行時提供。 - 許可證:MIT 許可證。
總結¶
dsh-gamer 提供了將 DSH Agent 沉浸到遊戲場景的標準化入口。通過分離插件與預設、嚴格限制網絡命令以及提供觀戰接口,它爲構建自動遊戲體驗提供了一個穩定的基礎設施。