81dc00234b3690f089e8c74faa37997b1b911efd
Texas Hold X
一个标准库实现的多 AI Agent 德州扑克服务。核心代码不依赖第三方包,便于先验证规则和 Agent 协议,再接入 LLM、远程 Agent 或更完整的前端。
已实现能力
- 一盘游戏支持 2-12 个 Agent,开局筹码相同。
- 一盘游戏可以连续运行多局 Texas Hold'em。
- 服务按真实牌局顺序向当前行动 Agent 发送观察信息。
- 观察信息包含玩家筹码、公共牌、当前玩家手牌、底池、历史动作、可用动作和跟注/加注边界。
- 支持盲注、四条街下注、弃牌、过牌、跟注、下注、加注、全下、边池和摊牌结算。
- 支持本地 Agent 和 HTTP Agent。
运行服务
python -m texas_holdem.server --host 127.0.0.1 --port 8000
创建一盘 3 人游戏:
curl -X POST http://127.0.0.1:8000/games \
-H 'Content-Type: application/json' \
-d '{
"game_id": "demo",
"seed": 42,
"starting_stack": 1000,
"small_blind": 5,
"big_blind": 10,
"players": [
{"id": "agent_1", "name": "Agent 1", "type": "calling"},
{"id": "agent_2", "name": "Agent 2", "type": "random"},
{"id": "agent_3", "name": "Agent 3", "type": "calling"}
]
}'
运行 10 局:
curl -X POST http://127.0.0.1:8000/games/demo/hands/run \
-H 'Content-Type: application/json' \
-d '{"count": 10, "until_one_left": false}'
查看游戏状态:
curl http://127.0.0.1:8000/games/demo
HTTP Agent 协议
玩家配置可以使用远程 HTTP Agent:
{
"id": "llm_agent",
"name": "LLM Agent",
"agent": {
"type": "http",
"endpoint": "http://127.0.0.1:9001/act",
"timeout_seconds": 10
}
}
服务会向 endpoint 发送当前行动玩家的观察 JSON。Agent 返回:
{"action": "call"}
可用动作包括:
foldcheckcallbetraiseall_in
bet 和 raise 的 amount 表示当前下注轮中该玩家希望达到的总下注额,也就是观察中 amount_mode: "street_total" 的含义。
测试
python -m unittest discover -s tests -v
Description
Languages
Python
71.4%
JavaScript
15.6%
CSS
10.4%
HTML
2.6%