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 里把一次预测拆成九步:

  1. 检查校准状态:如果之前有赛后复盘,要先继承明确修正,不要被最近几场结果机械带偏。
  2. 识别比赛状态:时间、小组、积分、出线动机,以及平局对双方是否有价值。
  3. 设置市场基线:读取公开赔率或预测市场价格,转换成粗略强弱和总进球预期。
  4. 验证近期表现:优先看当前赛事数据,同时参考最近五场友谊赛或赛前热身赛。
  5. 检查人员可用性:伤停、停赛、病情、轮换、预计首发和关键角色是否能踢满 60-70 分钟。
  6. 分析打法匹配:两队如何创造机会、限制机会、抗压推进、防转换和处理定位球。
  7. 加入环境修正:天气、旅途、主场、开球时间、场地和纪律风险只作为修正项。
  8. 输出预测:给出胜平负倾向、精确比分、备选比分、信心和最关键失败模式。
  9. 赛后复盘:对照比分、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 更重要。