← 全部指南
本页内容
指南 扑克语义 · 09/09 训练器 14 分钟 高级

如何通过 API 构建确定性的扑克 game-state 工作流?

使用 POST /v1/pokerkit/games/state 根据已文档化的牌局配置和 actions 重建全信息 snapshot,再使用 POST /v1/pokerkit/games/step 追加一条经校验的 next_action

更新于 维护者 Pokerai API

直接答案:由你的应用保存完整牌局配置与 action list。调用 POST /v1/pokerkit/games/state 获取当前 snapshotlegal_actions;只在自己的训练或复盘 UI 中由人选择行动,再以该行动和等于 action-list 长度的 expected_action_count 调用 POST /v1/pokerkit/games/step。保存返回的 actions,作为下一个确定性状态。在选择 variant code 或 enum vocabulary 前,调用 GET /v1/pokerkit/meta 读取当前已文档化 metadata;它不校验未文档化格式、不提供实时牌桌数据源,也不提供策略。

快速事实

State endpointPOST /v1/pokerkit/games/state
Step endpointPOST /v1/pokerkit/games/step
必填基础字段两个操作均要求 variantstarting_stacksantes。公开示例使用 variant: NT
State 输出公开示例返回包含 legal_actionsresult.snapshot,并回显 result.actions
校验追加Step 要求 next_actionexpected_action_count 是被扩展 action list 的乐观并发 token。
使用边界仅用于训练、教练、手牌复盘、学习和研究的全信息模拟;禁止真钱 RTA。

State 与 step 的区别

当你需要从提交的牌局配置和 actions 重建当前局面时,使用 state。其 snapshot 会提供 pot、stacks、board、提交的 hole cards 和 legal_actions 等事实状态。

仅在要为同一 action list 追加一条已文档化 next_action 时使用 step。它返回新的 snapshot 与扩展后的 actions。两个 endpoint 都不会返回 GTO strategy、玩家建模或推荐行动。

读取当前 snapshot

使用 JSON 和 API key。以下请求与响应是公开 pokerkitGamesState docs-code 示例。

{"variant": "NT", "antes": [0, 0], "blinds_or_straddles": [1, 2], "min_bet": 2, "starting_stacks": [200, 200], "actions": ["d dh p1 AhKh", "d dh p2 QsQd", "p2 cbr 6"]}

{"result": {"snapshot": {"terminal": false, "street_index": 0, "actor_index": 0, "pot": 8, "bets": [2, 6], "stacks": [198, 194], "board": [], "hole_cards": [{"player": 0, "cards": ["Ah", "Kh"]}, {"player": 1, "cards": ["Qs", "Qd"]}], "legal_actions": [{"action": "fold"}, {"action": "check_or_call", "amount": 4}, {"action": "complete_bet_or_raise_to", "min": 10, "max": 200}]}, "actions": ["d dh p1 AhKh", "d dh p2 QsQd", "p2 cbr 6"]}}

只渲染或校验返回的 snapshot 事实。此示例中 legal_actions 列出 fold、check-or-call amount,以及 complete-bet-or-raise-to 的 min/max;它是提交的全信息状态中的合法行动面,不是应当选择哪项行动的建议。

用并发保护追加一条行动

追加前,保留 state 调用使用的精确 action list。将 expected_action_count 设为其长度,并发送预期的已文档化 next_action。公开 schema 说明不匹配时会返回 HTTP 409;应刷新已保存 action list 并重建 state,而非覆盖并发更新。

{"variant": "NT", "antes": [0, 0], "blinds_or_straddles": [1, 2], "min_bet": 2, "starting_stacks": [200, 200], "actions": ["d dh p1 AhKh", "d dh p2 QsQd", "p2 cbr 6"], "next_action": "p1 cc", "expected_action_count": 3}

{"result": {"snapshot": {"terminal": false, "street_index": 1, "actor_index": null, "pot": 12, "bets": [0, 0], "stacks": [194, 194], "board": [], "hole_cards": [{"player": 0, "cards": ["Ah", "Kh"]}, {"player": 1, "cards": ["Qs", "Qd"]}], "legal_actions": [{"action": "deal_board"}]}, "actions": ["d dh p1 AhKh", "d dh p2 QsQd", "p2 cbr 6", "p1 cc"]}}

示例在三条已提交 actions 后追加 p1 cc,返回四条 actions 并推进 snapshot。后续调用应将该返回 action list 视为下一次 statestep 的输入。

确定性工作流与人工审核

一个最小工作流是:保存配置与 actions;调用 state;在训练或复盘 UI 中展示事实 snapshotlegal_actions;由人选择或批准一条已文档化行动;携带该行动和 expected count 调用 step;保存返回的 actions

服务根据提交数据重建状态,而不是保存实时牌局会话。请由你自己的系统保存配置、action list、人工审核和返回 snapshot 的审计记录。不得暗示 API 验证了玩家身份、预测对手,或选择了扑克策略。

全信息与 simulation 边界

公开示例包含提交的 snapshot.hole_cards;schema 将 viewer 描述为 reserved,且 v1 为 full-information。仅在每张提交的牌和行动都属于训练、simulation 或牌局结束后复盘工作流时使用这些 endpoint。

不得将此 API 表述为隐藏信息对局、实时牌桌数据源、支持未文档化 variant 或 action format、玩家建模或策略建议。请以当前 OpenAPI schema 和 /v1/pokerkit/meta 为准确认支持的 variant code,勿自行推断覆盖范围。

校验、当前 contract 与 no-RTA

两个公开操作都声明 422 validation response。对 state,校验已文档化的配置和 action list。对 step,还应校验 next_action,并在文档所述的 409 count mismatch 时重新加载当前 actions。账户级处理请使用当前 认证配额错误文档。

Pokerai API 仅用于训练、教练、手牌复盘、学习和研究。禁止在真实资金牌桌上提供实时辅助。不得使用 snapshot、legal actions 或 step result 自动化或指示真钱实时决策。

相关 endpoint

请使用当前公开 contract 重建 state 和经校验的 action append;不要推断未支持的游戏格式或决策能力。

Endpoint作用适用场景
POST /v1/pokerkit/games/state从提交的配置和 actions 重建当前全信息 snapshotlegal_actions确定性的训练、simulation 或牌局结束后复盘 state view
POST /v1/pokerkit/games/step应用一条 next_action;可选 expected_action_count 保护 action-list extension人工审核的、经校验的 submitted action history 追加

SDK、MCP 与相关资源