World Cup Predictor:给 AI Agent 的世界杯足球预测 Skill 设计
World Cup Predictor 是一个面向 AI Agent 的足球比赛分析 Skill,目标不是让模型直接猜比分,而是把市场基线、比赛数据、球队新闻、打法匹配、小组动机和赛后复盘放进同一套可检查流程里。
足球预测最容易犯的错,是把某一个信号当成答案。
赔率低,就默认强队大胜;上一场赢得多,就默认状态爆棚;控球率高、射门多,就默认进攻质量好;连续几场平局后,又开始机械防平。AI Agent 如果没有明确流程约束,也很容易被这些表面信号带着走。
这个 Skill 要解决的是另一个问题:不是让 Agent 更敢猜,而是让它在猜之前先说明自己到底用了哪些证据,哪些没有查,哪些只是推断。
这个 Skill 解决什么问题
worldcup-predictor 适合处理世界杯和国际足球比赛分析,包括:
- 赛前胜平负倾向和精确比分预测。
- 赔率、预测市场或盘口作为证据层的对比。
- 小组出线形势和净胜球动机分析。
- 球员伤停、首发变化和角色适配影响。
- 两队打法匹配、压迫、推进、转换和定位球分析。
- 赛后复盘,用结果和机会质量修正下一场判断。
它不把赔率、交易价格或博彩市场当成投注建议。赔率只是市场基线,最多说明当前共识和风险定价,不能替代球队状态、机会质量和人员可用性。
核心原则:证据分层
这个 Skill 的主线是分层,而不是堆信息。
| 层级 | 典型来源 | 使用方式 |
|---|---|---|
| 市场 | Polymarket、Stake、主流赔率 | 作为基线,不作为结论 |
| 数据 | Sofascore、FotMob、FBref、比赛中心 | 看 xG、重大机会、射正、扑救、评分和势头 |
| 新闻 | FIFA、足协、BBC、Guardian、ESPN、本地记者 | 查伤停、停赛、轮换、首发线索和旅途影响 |
| 背景 | 小组积分、晋级路径、赛程、场地、天气 | 判断动机和风险偏好 |
| 打法 | 压迫、推进、转换、防守间距、定位球 | 解释机会如何被创造或限制 |
关键约束是:Agent 必须说清楚实际用了哪些层级。
如果没有直接读到 Sofascore,就不能说“根据 Sofascore 数据”;如果没有官方首发,就只能说“首发未确认”;如果只看到了用户截图,也要标明是截图输入,而不是实时网页数据。
这条规则看起来朴素,但很重要。预测类回答最容易出现“证据幻觉”:模型会把常见来源名、常识判断和真实读取混在一起,最后看起来很专业,但不可复核。
预测流程
Skill 里把一次预测拆成九步:
- 检查校准状态:如果之前有赛后复盘,要先继承明确修正,不要被最近几场结果机械带偏。
- 识别比赛状态:时间、小组、积分、出线动机,以及平局对双方是否有价值。
- 设置市场基线:读取公开赔率或预测市场价格,转换成粗略强弱和总进球预期。
- 验证近期表现:优先看当前赛事数据,同时参考最近五场友谊赛或赛前热身赛。
- 检查人员可用性:伤停、停赛、病情、轮换、预计首发和关键角色是否能踢满 60-70 分钟。
- 分析打法匹配:两队如何创造机会、限制机会、抗压推进、防转换和处理定位球。
- 加入环境修正:天气、旅途、主场、开球时间、场地和纪律风险只作为修正项。
- 输出预测:给出胜平负倾向、精确比分、备选比分、信心和最关键失败模式。
- 赛后复盘:对照比分、xG、机会、评分和关键事件,更新后续判断。
这里最有价值的是第 1 步和第 9 步。很多预测失败不是因为少看了一条新闻,而是因为模型没有记住自己上一场错在哪里。
比如连续出现平局后,Agent 可能开始过度防平;意识到自己太保守后,又可能直接摆回纸面强队。这个 Skill 要求把这种校准写出来:上一轮错在高估市场、错在低估伤停、错在机会质量,还是错在把比分当成真实实力。
真实使用后补上的规则
这个 Skill 不是一次性写出来的,而是在连续预测和复盘里逐步收紧的。
一开始最容易出现的问题,是纸面强弱权重太高。比如分析荷兰和日本时,不能只看荷兰传统强队身份,也要看中卫年龄、边翼卫回追、最终名单和日本核心球员是否伤退。如果赛前确认远藤航、三笘薰这类关键球员缺席,日本近期状态再好,也要下调中场抗压和左路破局能力。
第二个问题,是复盘后容易矫枉过正。连续几场平局会让模型开始机械防平;但法国、阿根廷、英格兰这类球队,如果核心终结点健康、首发结构完整,就不能因为“首轮保守”或“天气湿热”直接压成平局。反过来,葡萄牙这种强队如果中卫组合替补化、主力中卫缺阵、边路爆点替补,就应该实质性提高被拖平风险。
第三个问题,是跨会话校准会丢失。一次新的预测如果只记住“别过度防平”,但没有继承前面复盘出的完整条件,就容易把强队拉得太猛。更稳的做法是把校准状态写成显式字段:上一轮到底是纸面强弱错误、过度防平、首发/伤病漏判、市场误读,还是被红牌、门将超常、终结波动改写。
第四个问题,是来源边界必须写清楚。Polymarket 截图、Stake 公开页、新闻报道、Sofascore/FotMob 数据,证据等级不一样;如果没有直接读到 Sofascore,就只能说“数据层缺失”,不能用“参考了 Sofascore”包装判断。盘口可以把西班牙、比利时这类场次从保守预测拉回胜局,但不能替代伤病、首发和机会质量。
权重不是公式,而是检查清单
参考框架里给了一组默认权重:
| 维度 | 权重 | 检查内容 |
|---|---|---|
| 球队和打法匹配 | 25% | 机会创造、防机会、抗压推进、防转换、定位球 |
| 人员可用性和状态 | 25% | 首发、伤停、停赛、角色状态、替补质量 |
| 当前比赛数据 | 20% | xG、重大机会、射正、扑救、机会位置、比赛势头 |
| 市场基线 | 15% | 赔率、预测市场、流动性、价格变化 |
| 小组背景和环境 | 15% | 积分、平局价值、晋级路径、主场、天气、旅途 |
这不是要把足球变成精确公式,而是防止某个维度被无意识放大。
如果一支球队依赖一个核心组织者、推进者、终结者、门将或定位球手,人员权重就应该上调。这里的“可用”也不是进了大名单就算,而是能不能执行自己的角色:能不能冲刺、压迫、带球、对抗、传关键球,能不能踢到足够分钟。
输出格式
这个 Skill 要求先给紧凑表格,再给短分析:
| Match | Sources used | Market baseline | Data/news correction | Prediction | Confidence |
|---|---|---|---|---|---|
| A vs B | Market, news, matchup | A small favorite | B low block is strong; A missing creator | A 1-0 | Medium |
然后补充每场比赛的要点:
- Sources used:实际使用了市场、数据、新闻、背景、打法中的哪些层级。
- Calibration:有没有继承之前赛后复盘的修正。
- Prediction:比分和备选比分。
- Why:最关键的 2-4 条理由。
- Failure mode:预测最可能怎么失效。
- Missing data:哪些重要数据没查到。
- Disclaimer:如果用了赔率或市场价格,说明这只是信息性分析,不是投注或金融建议。
这个格式的重点不是好看,而是把“我为什么这么判断”和“我哪里可能错”放在同一个回答里。
一个调用示例
可以这样让 Agent 调用:
Use $worldcup-predictor to analyze Spain vs Portugal using current team news, market baseline, recent match data, style matchup, and group incentives.
中文可以这样写:
使用 $worldcup-predictor 分析西班牙 vs 葡萄牙,结合当前球队新闻、市场基线、近期比赛数据、打法匹配和小组出线动机。
如果只想做赛后复盘,也可以这样写:
Use $worldcup-predictor to review the prediction after the match. Compare the prediction with result, xG, big chances, lineups, key events, and update the model correction for the next forecast.
中文可以这样写:
使用 $worldcup-predictor 复盘这场比赛预测。对比预测、实际比分、xG、重大机会、首发、关键事件,并更新下一场预测要继承的模型修正。
更好的提问方式,是直接给边界:
Use $worldcup-predictor for an informational match forecast. If official lineups or live data are unavailable, mark the prediction as provisional and list which missing data would change the score.
中文可以这样写:
使用 $worldcup-predictor 做一版信息性赛前预测。如果官方首发或实时数据不可用,请标记为临时预测,并列出哪些缺失数据会改变比分判断。
这样能减少 Agent 编造来源,也能让结论更容易复核。
安装和结构
作为一个本地 Skill,它的核心入口是:
worldcup-predictor/
├── SKILL.md
├── README.md
├── README_CN.md
├── LICENSE
├── agents/
│ └── openai.yaml
└── references/
└── prediction-framework.md
完整仓库可以看 Onlydreams/worldcup-predictor。
SKILL.md 保持简洁,负责说明什么时候触发、核心流程和输出格式;更细的权重、市场读取规则、数据读取规则、信心标签和复盘模板放在 references/prediction-framework.md。
这种拆法的好处是入口文件不会膨胀,Agent 需要详细规则时再读取引用文档。README 则只负责面向人解释安装、用途和边界,不和 Skill 逻辑重复太多。
对于 Codex 风格的本地 skills,常见安装目录是:
~/.codex/skills/worldcup-predictor
只要运行环境支持读取 SKILL.md 作为技能入口,就可以按类似方式安装。
使用边界
这个 Skill 的边界很明确:
- 不输出确定性结果。
- 不把赔率当成下注建议。
- 不声称使用了没有实际读取的信息源。
- 不把截图、论坛消息或社交媒体片段当作强证据。
- 不因为一场大胜、一张红牌、一个门将超神表现,就立刻重写球队强弱判断。
- 不让天气、开局谨慎或连续平局这类单一变量支配全部预测。
它真正想强化的是预测纪律:先说明证据层,再说判断;先承认缺失数据,再给信心;赛后不是只看比分对不对,而是复盘判断链条哪里偏了。
对足球预测来说,这比猜中一个 2-1 更重要。