WIYH GPT Hill Climb 是一个面向「Who's In Your Head」在线游戏的技能,用于围绕实时游戏建立可重复的改进循环。其产品目标明确:让模型回合更快、更便宜、更正确。技能只优化 GPT 产品路径,即默认的 gpt-chat-latest 以及被选中时的快速 GPT 选项 gpt-5.4-mini。支撑信号包括完成率上升、流失率下降、路由/模型错误保持低位、缓存与 token 效率健康,以及报告的漏判减少。
用途
该技能适用于对位于 /Users/dobby/GitHub/whos-in-your-head 的实时游戏进行监控、分析和改进。它可用于定期自动化检查,例如「检查近期游戏」「漏判/流失/延迟/缓存情况如何」「最近发生了什么」,也可在用户明确要求改变行为,或活跃目标、心跳、自动化提示明确授权爬山式改进时,用于执行聚焦的产品改进。
主要能力
技能提供两种模式。仅报告模式用于定期自动化,读取遥测数据、总结,并最多推荐一个下一步调查或变更;当用户或自动化提示明确要求仅报告时,不编辑代码。改进模式仅在用户要求改变行为,或活跃目标、心跳、自动化提示明确授权爬山时使用,包括「继续」「改进」「尽力而为」「修复值得修复的问题」等持续性许可。改进模式在短生命周期分支上工作,做一次聚焦修改,验证后仅在分支准备好进入正常 hook/部署路径时返回 main。
技能包含节奏守卫:除非用户明确要求立即检查,否则不要以高于每 30 分钟的间隔轮询遥测;对于定期自动化,除非用户要求更紧的循环,否则优先每 2 小时一次;高流量时若最近一小时约有 30 场以上已完成游戏,每小时报告是合理的,但模式有噪声时仍应与 2 小时窗口比较;部署后,除非检查部署健康或明显路由失败,否则等待完整遥测窗口再判断变更。
技能定义了 GPT 路径:gpt-chat-latest 回合遥测,以及被选中时的快速 GPT 路径 gpt-5.4-mini。不要仅通过最终模型为 gpt-chat-latest 的已完成行来判断 GPT 路径,因为玩家可以明确选择快速 GPT 选项。非 GPT 和不支持的 GPT 路径已从产品中移除,不要优化、比较或将实时游戏路由到这些路径。
成本与速度偏好方面,技能要求仅聚焦 GPT 默认路径,除非用户重定向:保持 gpt-chat-latest 对普通回合便宜且快速;爬山时不要重新引入非 GPT 或不支持的 GPT 路径;关注平均模型延迟、路由延迟、总 token、推理 token、缓存 token 和缓存读取率;优先选择减少浪费问题、重复重试、不必要升级或低价值昂贵回合的提示/机制/路由变更;仅对应用自有机制使用即时/本地确定性处理,例如固定开场白、验证、状态转换、重试守卫、预热和避免不必要的模型调用;不要用硬编码问题树或本地猜测替代模型的游戏判断;不要为了小幅成本节省而牺牲有意义的正确性。
使用方式
遥测检查从聚合开始,再读取转录。命令包括:
npm run telemetry -- summary --plain --minutes 30 --limit 10 npm run telemetry -- summary --plain --minutes 60 --limit 10 npm run telemetry -- dropoffs --plain --minutes 60 --limit 12 npm run telemetry -- token-stats --plain --model gpt --minutes 60 --limit 12
仅在聚合数据证明有必要时读取转录,例如 GPT 正确率回退、GPT 报告漏判增加、GPT 延迟或慢回合增加、出现路由/模型错误、可见重复失败模式。转录命令包括:
npm run telemetry -- misses --json --minutes 60 --model gpt --limit 8 --include-transcript npm run telemetry -- model-results --json --model gpt --minutes 60 --limit 12 --include-transcript
快速实时比较或更宽窗口时,只调整 --minutes、--model 和 --limit,保持转录限制较小。
失败分类方面,技能要求在提出变更前对每个有趣的失败进行分类:过早狭窄猜测;地理、语言、领域、类型、时代、角色或格式划分薄弱;良好缩小后附近人物混淆;玩家可能记错事实或回答类别有噪声;太多「也许」答案导致置信度不稳定;人格/虚构角色边界混淆;陈旧路由、无效回退、内容过滤恢复或模型错误;UX/客户端问题,如意外开始、部署中断或慢等待。不要仅凭一个孤立转录编辑提示,除非它显示明确且可能复发的规则违反。
慢回合检查方面,当流失集中在后续问题或完成被中断时,检查路由/模型计时。最重要的区分是玩家离开是因为模型慢、应用出错,还是缩小路径变差。如果慢异常看起来像陈旧重复回合,检查同一游戏状态和答案是否创建了多个模型调用。预期路由行为是服务器端幂等性:同一状态加同一答案在短运行时窗口内应重放一个生成结果,而不是启动第二个 OpenAI 请求或写入重复回合遥测。失败回合不应被缓存,因此真实重试仍然有效。已知先前问题:GPT 内容过滤在 Q20 附近不完整曾触发慢的非 GPT 回退再 GPT 重试,产生非常长的等待;非 GPT 回退路径此后已移除,预期行为是在任何支持的 GPT 回退之前重试支持的 GPT 路径。
改进工作流方面,编辑前:检查当前分支和工作树;如果在 main 上,创建短生命周期 codex/<specific-task> 分支;保留用户更改,不要回退无关工作。允许的变更面包括:游戏主持人提示和运行时指令;状态转换、最终猜测逻辑和模型路由;回退行为和推理计划;遥测事件、私有遥测客户端、Mongo/Cosmos 文档和索引;公共聚合统计,只要保持无转录;测试和持久仓库文档。安全约束:绝不向公共浏览器界面暴露 API 密钥、Mongo URI、原始模型响应、隐藏提示、实际答案或转录;保持转录访问私有/仅操作员;保持 /stats 仅聚合;优先使用附加式遥测模式变更而非破坏现有读取器。
返回 main 前的验证包括:
npm run lint npm run typecheck npm test scripts/check-fast.sh
迭代时使用针对性测试。对于游戏行为变更,运行禁用遥测的本地 API 冒烟测试:
GAME_TELEMETRY_ENABLED=false npm run dev -- --hostname 127.0.0.1 --port 3022 npm run play:api -- reset --base-url http://127.0.0.1:3022 --state-file tmp/<name>.json npm run play:api -- start --model gpt-chat-latest --base-url http://127.0.0.1:3022 --state-file tmp/<name>.json
回答几个回合,验证模型提出有效问题、继续游戏并按预期路由。之后删除临时状态文件。经过验证的变更落到 main 后,用 GitHub Actions 检查部署状态,然后等待完整遥测窗口再判断产品影响。删除已合并的本地和远程短生命周期分支,以免陈旧分支累积。
报告格式保持紧凑且对操作员友好:窗口(确切时间窗口和样本量);结果(已完成、正确、不正确、报告漏判、活跃、放弃);速度/缓存(GPT 路由/模型延迟、慢异常、可用时的 token/缓存读取率);流失(玩家离开的位置,以及看起来是延迟、UX 还是游戏质量);漏判(简短转述分类,除非要求否则不转储原始转录);解读(健康、有噪声还是需要行动);下一步行动(最多一个推荐调查或变更);下次检查(等到何时,遵守节奏守卫)。
适用场景
适用于对「Who's In Your Head」游戏的 GPT 默认路径进行定期遥测报告、漏判与流失分析、延迟与缓存效率检查、路由/模型错误排查,以及在明确授权下进行聚焦的产品改进。也适用于自动化提示驱动的仅报告检查或同线程爬山循环。
限制
技能仅优化 GPT 产品路径,不处理非 GPT 或不支持的 GPT 路径。仅报告模式下不编辑代码。改进模式需要用户明确授权或自动化提示明确授权。存在节奏守卫,限制轮询频率。安全约束禁止向公共浏览器界面暴露敏感信息,转录访问仅限私有/操作员。不要用硬编码问题树或本地猜测替代模型的游戏判断。不要为了小幅成本节省而牺牲有意义的正确性。不要仅凭一个孤立转录编辑提示。不要围绕用户回答错误的单一案例调整提示。