Python · 旧版 YGOPro 协议 · Stage 2

YGOACCESS

把原始决斗通信转换成可执行决策。

像普通玩家一样连接兼容的 YGOPro 服务器,解析合法操作,并通过统一决策模型将选择交给机器人、LLM 或人类玩家。

decision_request.json
{
  "source": "MSG_SELECT_CARD",
  "state": "GameState@42",
  "legal_actions": [
    { "id": 0, "card": "..." },
    { "id": 1, "card": "..." }
  ],
  "adapter": "llm | human"
}
实验性版本CTOS ↔ STOC
目标协议
旧版 YGOPro
规则真相来源
服务器 + ocgcore
Runtime
Python 3.11+

一个客户端,多种决策路径

YGOAccess 负责网络与状态边界,再将决策开放给不同操作者,而不重复维护决斗真相。

01WIRE

协议客户端

封装 CTOS、解析 STOC,并处理进房、准备、开局、换边、追帧及重赛流程。

02STATE

合法动作模型

将核心消息归一化为 GameState 与结构化合法 Action,不让上层重复理解底层数据包。

03HUMAN

人类操作

把同一份决策请求投影到命令行和 Web 界面,用于检查、测试与直接操作。

04LLM

模型适配

为确定性兜底、人工复核和知识增强的 LLM 策略提供统一决策边界。

05TRACE

运行诊断

记录回放、状态、请求与响应证据,让协议行为可追踪、可复现。

06DECK

卡组知识包

为模型策略关联卡组专属知识,同时始终由决斗服务器判断操作是否合法。

从通信到意图

每层只承担一类职责。GameState 是唯一的决斗状态真相,适配器只为不同操作者投影视图。

01

TCP / STOC / MSG

旧版协议服务器通信

02

协议层 + 解析器

封包、解码与合法动作

03

GameState

唯一决斗状态

04

决策层

标准化决策请求

05

LLM / 人类

策略与界面适配器

!适配器只投影状态,绝不维护另一份决斗真相。

STAGE 2,持续推进

协议基础已经覆盖较广的运行流程。目前重点是收紧旧客户端一致性,并完成共享决策层。

当前可用

  • 旧协议数据包封装
  • 卡组解析与更新编码
  • 从进房到决斗的完整流程
  • 较广范围的 STOC 与 MSG 解析
  • 兜底、命令行和 Web 策略
  • 回放与诊断信息采集

仍在完善

  • 完整协议覆盖
  • 旧客户端合法性完全对齐
  • 更严密的场地状态合并
  • 完成 Stage 2 决策层
  • 生产级 LLM 策略

YGOAccess 不在本地实现卡片规则。操作是否合法,始终以连接的服务器与 ocgcore 为准。

启动客户端

需要 Python 3.11 或更高版本。准备兼容服务器与 YDK 卡组后即可运行。

安装开发环境POWERSHELL
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .[dev]
通过配置启动POWERSHELL
python run_bot.py --config duelbot.toml