hyapp-server/docs/全站机器人产品文档.md
2026-06-12 00:35:14 +08:00

82 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 全站机器人产品文档
## 目标
全站机器人用于自研游戏自动补位。后台批量创建机器人资料号后,游戏服务可以在玩家等待超时后从机器人池选择一个可用机器人参与对局。
## 后台入口
- 菜单位置:游戏管理 / 全站机器人
- 菜单编码:`game-robots`
- 页面地址:`/games/robots`
- 权限:查看使用 `game:view`,创建使用 `game:create`,启停使用 `game:update`,删除使用 `game:delete``game:update`
## 机器人规则
- 机器人以 App 用户资料形式保存,有 `user_id`、短 ID、昵称、头像、国家、语言等基础资料。
- 机器人注册来源固定为 `game_robot`
- 机器人不是自然新增用户,不进入新增用户统计、注册 cohort、留存统计。
- 机器人不能通过 App 登录接口登录。
- 机器人创建时不生成 access token、refresh token也不写登录成功审计。
- 机器人不导入腾讯 IM 登录账号;它只用于游戏资料展示和游戏服务补位。
- 删除机器人只会从全站机器人池移除,用户资料和历史对局记录保留。
## 创建流程
1. 运营在后台选择创建数量和昵称语言。
2. admin-server 下载并转存头像。
3. admin-server 调 user-service 创建 `source=game_robot` 的资料号。
4. user-service 写入用户资料、短 ID 和密码身份,但不创建登录 session。
5. admin-server 调 game-service 把这些 user_id 注册到机器人池。
6. game-service 后续只从启用状态的机器人中选择补位。
## 统计口径
- 实时统计:`source=game_robot` 不写 `UserRegistered` outbox。
- 补数统计:统计补数按 `users.created_at_ms` 扫描时排除 `source=game_robot`
- 后台创建 100 个全站机器人,不会增加“新增用户数”,也不会进入留存 cohort。
## 登录限制
- 密码登录:即使知道短 ID 和密码,也会被 user-service 拦截。
- 三方登录:机器人没有三方身份绑定,不能通过三方接口登录成机器人。
- refresh token新机器人不会生成 refresh token历史上如果存在机器人 session续期时也会被用户登录判断拦截。
- access token 重签:会复用同一登录判断,机器人不能续签。
## 后台接口
### 列表
- 地址:`GET /admin/game/robots`
- 参数:`gameId``status``pageSize``cursor`
- 返回值:机器人列表、下一页游标、服务器时间
- 相关 IM
### 批量创建
- 地址:`POST /admin/game/robots/generate`
- 参数:`count`(默认 20最多 1000`nicknameLanguage``gender``country``avatarUrls`
- 返回值:创建数量、机器人列表
- 相关 IM机器人不导入 IM 登录账号
### 启停
- 地址:`PATCH /admin/game/robots/{user_id}/status`
- 参数:`status`,可传 `active``disabled`;可选 `gameId`
- 返回值:机器人当前状态
- 相关 IM
### 删除
- 地址:`DELETE /admin/game/robots/{user_id}`
- 参数:可选 `gameId`
- 返回值:`deleted`
- 相关 IM
## 游戏补位规则
- 自研游戏配置里开启机器人补位后玩家等待超过配置时间game-service 会优先选择最久未使用的启用机器人加入对局。
- 机器人被选中后会记录最近使用时间和累计使用次数;只有可用机器人轮过一遍后,才会重新使用较早出现过的机器人。
- 机器人对局资金由游戏奖池结算,不从机器人钱包扣款。
- 机器人禁用后不会再被新对局选中。