Agent项目-世界杯预测 Agent
⚽️绿茵神算 · 2026 FIFA World Cup AI Agent
一份 system prompt 把任意大模型驯成专业世界杯预测引擎
Turn any LLM into a deterministic World Cup prediction engine with one prompt.

🎯 它解决什么问题
直接问大模型 "墨西哥对南非谁会赢?",你会得到:
❌ 编造历史交锋 — 两队从未交手,它能列出"上次 2-1"
❌ 编造伤病信息 — 编造"梅西腿伤上半场退场"
❌ 格式飘忽不定 — 一会儿大段文字,一会儿 markdown,一会儿表格
❌ 信息严重过时 — 训练数据截止到 2024,2026 预选赛它不知道
❌ 无法接前端 — 自然语言输出根本没法解析
本 Skill 用 4 层约束 一次治住所有问题:
代码块
Haskell
┌─────────────────────────────────────────────────────────┐
│ 一份 system prompt = 一个垂类小模型 │
└─────────────────────────────────────────────────────────┘
↓
┌────────────────┬─────────────────┬─────────────────────┐
│ Layer 1 │ Layer 2 │ Layer 3 │
│ 📚 资料库 │ 📐 方法论 │ 📦 输出契约 │
│ 48 队锁死 │ 4 维权重 │ 严格 JSON Schema │
└────────────────┴─────────────────┴─────────────────────┘
+
┌─────────────────────────────────────────────────────────┐
│ Layer 4 · 🔄 每日情报区(动态覆盖位 · 实时跟进伤停) │
└─────────────────────────────────────────────────────────┘
🧠 架构 · 四层约束
代码块
Haskell
用户提问
│
▼
各层职责拆解
Layer 1 · 资料库
全部 48 队的核心球员、近况、隐忧均写死在 skill.md 内,模型只许引用,严禁编造。
Layer 2 · 方法论
⚠️ 铁律:实力悬殊也不得给出超过 85% 的胜率(足球有偶然性 — 2022 沙特 vs 阿根廷)
🚀 快速开始
Method 1 — cURL · 一行直接跑
代码块
C++
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-v4-pro",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "<skill.md 全文粘贴到这里>"},
{"role": "user", "content": "请预测这场 2026 世界杯比赛:【小组赛】墨西哥 vs 南非。严格按约束文档的 JSON 格式输出。"}
]
}'
Method 2 — Python · 接进你的应用
代码块
Python
Method 3 — Node.js · TypeScript
代码块
TypeScript
import OpenAI from "openai"
📦 输出契约
每次调用返回一份严格 JSON,字段、类型、长度全部锁死:
代码块
JSON
{
"teamA": { "name": "墨西哥", "winProb": 70 },
"draw": 20,
"teamB": { "name": "南非", "winProb": 10 },
"predictedScore": "2-0",
"confidence": "高",
"keyFactors": [
"阿兹特克主场揭幕战气势如虹",
"墨西哥金杯冠军班底实力碾压",
"南非时隔16年重返经验不足"
],
"analysis": "东道主墨西哥在阿兹特克球场迎战南非,实力与主场优势明显……",
"playersToWatch": [
{ "team": "墨西哥", "player": "圣地亚哥·希门尼斯", "reason": "米兰前锋状态火热" },
{ "team": "南非", "player": "佩西·塔乌", "reason": "南非进攻核心,肩负爆冷希望" }
]
阶段(stage)取值
代码块
Plain Text
小组赛 → 32 强 → 16 强 → 8 强 → 半决赛 → 决赛
淘汰赛的 draw 概率代表 90 分钟战平进加时/点球(对应 analysis 须说明谁更可能笑到最后)。
🇲🇽 分组与赛程
赛事:2026 FIFA World Cup(美国 · 加拿大 · 墨西哥三国联办) 日期:2026 年 6 月 11 日 — 7 月 19 日 揭幕战:6 月 11 日 · 墨西哥 vs 南非 · 阿兹特克球场
👉 点击展开 12 个小组完整分组表
每组前两名 + 8 个成绩最好的第三名 → 晋级 32 强淘汰赛。
🔄 每日情报更新流程
核心设计:写死的资料库 + 每天可覆盖的情报位 = 动静结合。
代码块
Haskell
┌─────────────────────────────────────────┐
│ skill.md (~10 KB · 一二三四五节 锁死) │
│ ──────────────────────────────────── │
│ 一、赛事基本盘 │
│ 二、预测方法论 │
│ 三、输出格式契约 │
│ 四、48 队球队资料库 │
│ 五、红线 │
│ │
│ ↓↓↓ 永远只动这一节 ↓↓↓ │
│ │
│ 六、最新情报(每日更新区) │
│ - 情报日期:YYYY-MM-DD │
│ - 未来 48h 参赛队伤停 / 状态要点 │
│ - 与第四节冲突时,以本节为准 │
└─────────────────────────────────────────┘
💡 适用场景
•
📱 球迷应用 / 小程序 — 直接喂给前端渲染预测卡片
•
🤖 微信群 / Discord 机器人 — 群友提问即出预测
•
📊 数据可视化看板 — 64 场比赛批量预测 · 跑出冠军树
•
🎙️ 内容创作辅助 — 解说稿 / 短视频脚本基础数据
•
🎮 预测游戏 / 竞猜社区 — 作为 AI 对手 / 参考意见(非投注)
•
🧪 Prompt Engineering 教学样本 — 极简结构 · 教科书级约束设计
🛣️ Roadmap
v1.0 — 48 队完整资料库 + 4 层约束 + 严格 JSON
v1.0 — DeepSeek / Qwen / GPT / Claude 全模型适配
v1.0 — 在线 Demo 站(worldcup.youliaoyun.com)
v1.1 — 每日情报区自动化更新 GitHub Action
v1.1 — 英文版 skill.en.md
v1.2 — 球员级别预测(进球者 / MVP / 黄牌)
v1.2 — 赛后回测脚本(对照实际结果统计命中率)
v2.0 — 升级为 Skill Pack:把方法论抽象为可复用的"赛事预测 Skill 模板",支持欧洲杯 / 奥运 / NBA
❓ FAQ
Q1: 这是机器学习模型吗?需要训练吗?
不是,不需要。 本项目本质是一份 system prompt(文本文件)。 你拿任何一个开箱即用的 LLM(GPT / Claude / DeepSeek 等),把 skill.md 全文塞进它的 system 消息,它就具备了"世界杯专家"的能力。
零训练、零向量库、零依赖。
Q2: 预测准确率有多高?会不会瞎说?
本 Skill 通过四层约束大幅降低瞎说概率,但不保证比赛结果——足球本身的偶然性谁都消不掉。 我们刻意把胜率上限锁在 85%,就是为了承认"再悬殊也可能爆冷"(沙特 vs 阿根廷)。
这是娱乐和讨论工具,不是先知。
Q3: 我能拿这个去做付费应用吗?
MIT 协议,可以。但请注意:
•
仅限娱乐与球迷讨论场景
•
严禁用于任何投注、博彩、赔率、下注业务(Skill 自身已内置红线拒绝)
•
如果做了酷的东西,欢迎在 Issues / PR 里分享一下
Q4: 资料库里我喜欢的球队漏写了/写错了,怎么办?
欢迎提 PR 修订 skill.md 第四节。 请在 PR 描述里贴上信息来源(官方/权威媒体),不接受小道消息。
Q5: 每天的伤停情报怎么自动更新?
短期(v1.0):手动在第六节顶部覆盖一次,即可生效。 中期(v1.1 规划):GitHub Action + LLM 每日自动抓取新闻 → 提取要点 → PR 第六节。 长期(v2.0 规划):抽象成"赛事 Skill 模板",任意赛事可复用本模式。
Q6: 为什么淘汰赛的"平局"概率也要给?
淘汰赛不存在平局,draw 字段表示 90 分钟战平进入加时/点球的概率。 analysis 字段中会进一步说明加时/点球阶段谁更有可能笑到最后。