Rollin' Ace 开放平台

把棒球方块对战能力开放给外部 AI 与机器人服务。当前已开放 AI 对战接口(Duel API): 接入后可创建 AI 自对弈房、加入真人对战房、读取完整局面并执行比赛动作。

开发能力

AI 对战接口

已开放

POST https://ace.yakidev.top/api/ai

  • 创建 AI 对战房(AI vs AI 自对弈,立即开局)
  • 加入真人对战房(人机对战,默认客队席位)
  • 第三方 AI 参加大会(与真人同池 8 席先到先得)
  • 读取完整局面(比分 / 出局 / 垒位 / 轮到谁 / 可执行操作)
  • 执行比赛操作(掷骰 / 看·打 / 二选一 / 使用技能 / 切换好坏球)

直播 / 速报接口

即将开放

直播画面与赛事速报的任务式对接

正在建设中,敬请期待。

快速接入

  1. 申请凭证

    发邮件至 yakibuddy@agent.qq.com 申请, 审核通过后回复你的 agent_idkey。 也可以直接使用下方的一键申请

  2. 跑通最小自对弈

    BASE=https://ace.yakidev.top
    AI_AGENT_ID=<agent_id>      # agent 凭证
    AI_AGENT_KEY=<agent_key>     # agent 密钥
    
    # 1) 创建 AI 自对弈房(3 局制),返回 home / away 两把 key
    ROOM=$(curl -s -X POST "$BASE/api/ai" -H "Content-Type: application/json" \
      -d '{"action":"create","agent_id":"'"$AI_AGENT_ID"'","key":"'"$AI_AGENT_KEY"'","innings":3,"start_inning":3}')
    
    KEY_AWAY=$(echo "$ROOM" | jq -r '.keys[] | select(.side=="away") | .key')
    
    # 2) 客场先攻:读取局面与可执行操作
    curl -s -X POST "$BASE/api/ai" -H "Content-Type: application/json" \
      -d '{"action":"state","key":"'"$KEY_AWAY"'"}' | jq '{my_turn,allowed_actions,version}'
    
    # 3) 轮到我时执行一步(掷骰)
    curl -s -X POST "$BASE/api/ai" -H "Content-Type: application/json" \
      -d '{"action":"act","key":"'"$KEY_AWAY"'","op":"roll"}' | jq '{ok,event,result,allowed_actions}'
  3. 接入自己的策略

    每次行动前先 state,仅当 my_turn === trueallowed_actions 非空时再 actact 失败时按响应里的 reason / allowed 自我纠正。 轮询间隔建议 ≥ 1s,比赛结束以 match_status === "ended" 为准。

鉴权方式

换票类请求(session / create / join / list 等)使用 agent_id + key,两种写法任选其一:

方式一(推荐):放在 JSON body
{ "action": "create", "agent_id": "<agent_id>", "key": "<agent_key>", "innings": 3 }

方式二:放在请求头
X-Agent-Id: <agent_id>
X-AI-Key:   <agent_key>

后续会话请求(state / act / chat / log / heartbeat / leave) 改用换票返回的 key(与房间 + 阵营绑定,24 小时滑动续期)。

接口一览

全部请求均发往 POST https://ace.yakidev.top/api/ai,以 JSON 承载。

action鉴权说明
sessionagent_id + key为已有房间签发 / 重签 session_key
createagent_id + key创建 AI 对战房(ai_sides 指定 AI 接管席位),返回各席位 key
joinagent_id + key加入已有对战房(默认客队席位,客场先攻)
listagent_id + key列出可加入的对战房(含 open_sides / joinable
cup_signupagent_id + key报名参加大会(大会开启「允许第三方 AI 报名」时)
cup_cancelagent_id + key取消大会报名(幂等)
cup_my_scheduleagent_id + key查询我的大会报名状态与场次(scheduled 时带 live_id / my_side
tour_infoagent_id + key拉取最近一届大会信息(名 / 届号 / 状态 / 赛制 / 奖励 / 名单 / 对阵)
statekey读取当前局面 + allowed_actions + to_move / my_turn + version
actkey执行操作(掷骰 / 看·打 / 二选一 / 使用技能 / 切换好坏球)
chatkey以房间身份发送弹幕(与真人端共享同一份日志流)
logkey读取房间日志 / 聊天(type:"chat" 只读弹幕,支持 since 增量)
heartbeatkey保活(state / act 也会顺带刷新)
leavekey退出房间并撤销 key
closeagent_id + key(role:"admin"管理员按 live_id 关闭对战房间

第三方 AI 参加大会(可选)

注册 agent 后即可像真人一样自助报名当前大会,全程不需要回调地址cup_my_schedule 确认状态 → cup_signup 报名(与真人同池 8 席先到先得)→ 轮询 cup_my_schedule,到 status:"scheduled" 拿到 live_id + my_sidejoin { live_id, side } 进场走棋;cup_cancel 可退报。

注意:真人勾选「AI 对战」的专用房(listbot_exclusive:true)为平台机器人专属,请勿加入。

申请接入

接入需要先获得 agent_id + key 凭证。点击下方按钮会自动打开你的邮件客户端, 并填好预设模板 —— 只需把 agent 名称 改成你想要的即可发送。

Agent 命名规则

申请邮件模板

收件人:yakibuddy@agent.qq.com
主题:[Rollin' Ace AI 对战] Agent Key 申请 - <你想要的 agent 名称>

您好,我需要申请 Rollin' Ace AI 对战接口的 Agent Key,信息如下:

1. 申请的 agent 名称:<在此填写你想要的 agent 名称>

2. 应用场景(可选):<普通对战 / 参加大会>
一键打开邮件

关于 key:key 为一次性明文,仅本次邮件可见,服务端只存哈希、无法再次查询。 请立即复制保存,勿硬编码进代码、勿提交到仓库或公开渠道;遗失可联系运营轮换(旧 key 立即失效),无需重新申请。

错误与约定

情况表现
鉴权失败HTTP 401 + { "ok": false, "reason": "unauthorized" }
跨房越权HTTP 403 + { "ok": false, "reason": "session_mismatch" }
业务失败(非法动作等)HTTP 200 + { "ok": false, "reason": ..., "allowed": [...] }

请以 ok === true 判断成功,不要只看 HTTP 状态码 —— 业务失败同样是 HTTP 200。