协议客户端
封装 CTOS、解析 STOC,并处理进房、准备、开局、换边、追帧及重赛流程。
Python · 旧版 YGOPro 协议 · Stage 2
把原始决斗通信转换成可执行决策。
像普通玩家一样连接兼容的 YGOPro 服务器,解析合法操作,并通过统一决策模型将选择交给机器人、LLM 或人类玩家。
{
"source": "MSG_SELECT_CARD",
"state": "GameState@42",
"legal_actions": [
{ "id": 0, "card": "..." },
{ "id": 1, "card": "..." }
],
"adapter": "llm | human"
}01 / 核心能力
YGOAccess 负责网络与状态边界,再将决策开放给不同操作者,而不重复维护决斗真相。
封装 CTOS、解析 STOC,并处理进房、准备、开局、换边、追帧及重赛流程。
将核心消息归一化为 GameState 与结构化合法 Action,不让上层重复理解底层数据包。
把同一份决策请求投影到命令行和 Web 界面,用于检查、测试与直接操作。
为确定性兜底、人工复核和知识增强的 LLM 策略提供统一决策边界。
记录回放、状态、请求与响应证据,让协议行为可追踪、可复现。
为模型策略关联卡组专属知识,同时始终由决斗服务器判断操作是否合法。
02 / 系统架构
每层只承担一类职责。GameState 是唯一的决斗状态真相,适配器只为不同操作者投影视图。
旧版协议服务器通信
→封包、解码与合法动作
→唯一决斗状态
→标准化决策请求
→策略与界面适配器
!适配器只投影状态,绝不维护另一份决斗真相。
03 / 开发状态
协议基础已经覆盖较广的运行流程。目前重点是收紧旧客户端一致性,并完成共享决策层。
YGOAccess 不在本地实现卡片规则。操作是否合法,始终以连接的服务器与 ocgcore 为准。
04 / 快速开始
需要 Python 3.11 或更高版本。准备兼容服务器与 YDK 卡组后即可运行。
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .[dev]python run_bot.py --config duelbot.toml