cli-anything-slay-the-spire-ii 是一个有状态命令行界面,用于通过本地 STS2_Bridge 模组控制真实的《杀戮尖塔 2》游戏。CLI 读取规范化后的游戏状态,并通过位于 localhost:15526 的本地 HTTP API 发送操作命令。
用途 该工具面向需要通过命令行或自动化方式与《杀戮尖塔 2》交互的场景,尤其是为 AI 代理提供结构化的游戏状态读取与操作发送能力。
安装 此 CLI 需要一个在游戏进程内运行的桥接模组。CLI 和桥接模组均从同一仓库分发:https://github.com/HKUDS/CLI-Anything
-
安装 CLI: git clone https://github.com/HKUDS/CLI-Anything.git cd CLI-Anything/slay_the_spire_ii/agent-harness pip install -e .
-
构建并安装桥接模组:桥接模组是一个 .NET 9 插件,必须编译并安装到游戏目录中。完整说明见仓库 README,简要步骤如下: cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin ./build.sh cd ../install ./install_bridge.sh 如果构建脚本无法自动检测游戏数据目录,请显式设置 STS2_GAME_DATA_DIR: STS2_GAME_DATA_DIR="/path/to/data_sts2" ./build.sh
-
启用模组并验证:通过 Steam 启动《杀戮尖塔 2》,在模组管理器中启用 STS2_Bridge 模组,然后验证连接: cli-anything-sts2 state 如果返回 JSON,则 CLI 与桥接模组已连接。
前置条件 Python 3.10+ 《杀戮尖塔 2》(Steam)并启用 STS2_Bridge 模组 .NET 9 SDK(仅在构建桥接模组时需要)
使用方式 基本命令:
读取规范化游戏状态(始终从这里开始)
cli-anything-sts2 state
启动交互式 REPL 模式(默认)
cli-anything-sts2
显示所有可用命令
cli-anything-sts2 --help
命令分组 状态检查:state(带 decision 字段的规范化状态)、raw-state(原始桥接 JSON)。 主菜单:continue-game(继续已保存的局)、start-game --character IRONCLAD --ascension 0(开始新局)、abandon-game(放弃当前存档)、return-to-main-menu(从任意界面返回主菜单)。角色包括 IRONCLAD、SILENT、DEFECT、NECROBINDER、REGENT。 战斗:play-card <index> [--target <enemy_id>](打出手牌)、use-potion <slot> [--target <enemy_id>](使用药水)、end-turn(结束当前回合)。 地图与房间流程:choose-map <index>(选择地图节点)、proceed(离开当前房间)。 奖励:claim-reward <index>(领取战斗奖励)、pick-card-reward <index>(选择卡牌奖励)、skip-card-reward(跳过卡牌奖励)、claim-treasure-relic <index>(领取宝箱遗物)、select-relic <index>(选择遗物)、skip-relic-selection(跳过遗物选择)。 事件与休息点:event <index>(选择事件选项)、advance-dialogue(推进纯对话事件)、rest <index>(选择营火动作)。 商店:shop-buy <index>(在商店购买)。 卡牌/遗物选择浮层:select-card <index>(在浮层中选择卡牌)、confirm-selection(确认当前选择)、cancel-selection(取消当前选择)、combat-select-card <index>(战斗中浮层选择卡牌)、combat-confirm-selection(确认战斗卡牌选择)。 原始动作:action <name> --kv key=value(发送原始桥接动作)。
决策状态 state 命令返回的 JSON 包含 decision 字段,指示当前游戏界面。根据该值路由下一条命令: menu(主菜单)→ continue-game、start-game combat_play(战斗中,你的回合)→ play-card、use-potion、end-turn hand_select(卡牌选择浮层)→ combat-select-card、combat-confirm-selection map_select(地图节点选择)→ choose-map game_over(本局结束)→ return-to-main-menu combat_rewards(战斗后奖励)→ claim-reward、proceed card_reward(卡牌奖励选择)→ pick-card-reward、skip-card-reward event_choice(事件界面)→ event、advance-dialogue rest_site(营火)→ rest shop(商店界面)→ shop-buy、proceed card_select(卡牌选择界面)→ select-card、confirm-selection relic_select(遗物选择)→ select-relic、skip-relic-selection treasure(宝箱房间)→ claim-treasure-relic、proceed
配置 --base-url 默认 http://localhost:15526,桥接 API URL。 --timeout 默认 10.0,HTTP 超时秒数。
面向 AI 代理的提示 始终先读取状态以获取 decision 字段;每次操作后重新读取状态,因为战斗中的索引和能量会变化;检查返回码,0 表示成功,非零表示错误;解析 stdout 获取 JSON 输出。
适用场景与限制 适用于需要以命令行或程序化方式控制《杀戮尖塔 2》真实游戏的场景,例如自动化测试、AI 代理训练或辅助操作。限制方面:必须安装并启用 STS2_Bridge 模组,且需要 Python 3.10+ 与 .NET 9 SDK(构建桥接模组时);游戏需通过 Steam 启动;桥接 API 默认仅监听本地 localhost:15526。