如何通过 API 构建确定性的扑克 game-state 工作流?
使用 POST /v1/pokerkit/games/state 根据已文档化的牌局配置和 actions 重建全信息 snapshot,再使用 POST /v1/pokerkit/games/step 追加一条经校验的 next_action。
POST /v1/pokerkit/games/state 获取当前 snapshot 和 legal_actions;只在自己的训练或复盘 UI 中由人选择行动,再以该行动和等于 action-list 长度的 expected_action_count 调用 POST /v1/pokerkit/games/step。保存返回的 actions,作为下一个确定性状态。在选择 variant code 或 enum vocabulary 前,调用 GET /v1/pokerkit/meta 读取当前已文档化 metadata;它不校验未文档化格式、不提供实时牌桌数据源,也不提供策略。快速事实
| State endpoint | POST /v1/pokerkit/games/state |
|---|---|
| Step endpoint | POST /v1/pokerkit/games/step |
| 必填基础字段 | 两个操作均要求 variant、starting_stacks 与 antes。公开示例使用 variant: NT。 |
| State 输出 | 公开示例返回包含 legal_actions 的 result.snapshot,并回显 result.actions。 |
| 校验追加 | Step 要求 next_action;expected_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 视为下一次 state 或 step 的输入。
确定性工作流与人工审核
一个最小工作流是:保存配置与 actions;调用 state;在训练或复盘 UI 中展示事实 snapshot 和 legal_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 重建当前全信息 snapshot 与 legal_actions | 确定性的训练、simulation 或牌局结束后复盘 state view |
POST /v1/pokerkit/games/step | 应用一条 next_action;可选 expected_action_count 保护 action-list extension | 人工审核的、经校验的 submitted action history 追加 |
SDK、MCP 与相关资源
- 开发者文档 — 官方 SDK、MCP、认证和配额设置
- API Reference — 查看当前 state 与 step request contract
- OpenAPI snapshot — 机器可读的中文 contract
- Python SDK — 官方包入口
- TypeScript / JavaScript SDK — 官方包入口
- MCP server — 官方包入口
- Poker hand-history API 指南 — 解析和回放提交的已结束牌局
- llms.txt — 精简的 LLM 入口