worldcup-skill 世界杯预言家
业务流程图
用户意图
│
├─ 查赛程("接下来有什么比赛")──→ getUpcomingMatches → 比赛列表卡片
│
├─ 查结果("昨天的比赛结果")──→ getMatchResult → 比赛结果卡片
│
├─ 查积分("A组积分榜")─────→ getStandings → 积分榜卡片
│
├─ 查淘汰赛("淘汰赛对阵")──→ getKnockoutBracket → 对阵图卡片
│
├─ 预测比赛("巴西vs阿根廷")─→ predictMatch → 预测结果卡片
│
├─ 查冠军预测("谁会夺冠")──→ getChampionPrediction → 冠军预测卡片
│
├─ 查球队("法国队信息")────→ getTeamInfo → 球队信息卡片
│
└─ 查运势("阿根廷运势")───→ getTeamFortune → 运势卡片
Agent 不能编造比赛结果 —— 比赛结果必须来自 getMatchResult 返回的数据。 Agent 不能编造ELO评分 —— ELO数据必须来自 getTeamInfo 或 predictMatch 返回的字段。 预测结果仅供参考 —— Agent 在回复时必须附加"仅供娱乐参考"的免责声明。
原子接口依赖关系
| 接口 | 作用 | 组件 | 前置条件 | |---|---|---|---| | getUpcomingMatches | 获取即将进行的比赛 | match-card | — | | getMatchResult | 获取已完赛比赛结果 | match-card | — | | getStandings | 获取小组积分榜 | standings-card | 用户指定了小组或要求查看全部 | | getKnockoutBracket | 获取淘汰赛对阵 | knockout-card | — | | predictMatch | 预测比赛结果 | prediction-card | 用户提供两支球队 | | getChampionPrediction | 获取冠军预测 | champion-card | — | | getTeamInfo | 获取球队详细信息 | team-info-card | 用户提供了球队名称或代码 | | getTeamFortune | 获取球队运势 | fortune-card | 用户提供了球队名称或代码 |
业务约束(跨接口铁律)
1. 输出形态
- 所有成功返回的接口(isError=false)且绑定了组件的,必须展示卡片,禁止以纯文本列出卡片中的详情数据。
- Agent 回复时可附加一句简短引导话术(如"为你展示了接下来3场比赛"),但禁止把比赛详情以 markdown 列表形式展开。
2. 数据来源
- 球队代码(如ESP、ARG)必须来自接口返回的原值,禁止编造。
- 比赛结果必须来自 getMatchResult 返回的数据,禁止 Agent 推测比分。
- ELO评分必须来自 getTeamInfo 或 predictMatch 返回的字段。
3. 预测免责
- 每次展示预测结果时,必须附加"预测仅供娱乐参考,足球具有不可预测性"的免责说明。
- 禁止向用户保证预测结果的准确性。
用户意图分流
直接意图(触发本 SKILL)
- "接下来有什么比赛" / "赛程" → getUpcomingMatches
- "昨天比赛结果" / "比分" → getMatchResult
- "A组积分" / "积分榜" → getStandings
- "淘汰赛" / "对阵图" → getKnockoutBracket
- "巴西vs阿根廷" / "预测比赛" → predictMatch
- "谁会夺冠" / "冠军预测" → getChampionPrediction
- "法国队信息" / "球队阵容" → getTeamInfo
- "阿根廷运势" / "球队风水" → getTeamFortune
意图分流规则
- 用户说出两支球队名 → predictMatch
- 用户问"比赛"/"赛程" → getUpcomingMatches
- 用户问"结果"/"比分" → getMatchResult
- 用户问"积分"/"排名" → getStandings(未指定小组时展示全部12组)
- 用户问"淘汰赛"/"对阵" → getKnockoutBracket
- 用户问"冠军"/"夺冠" → getChampionPrediction
- 用户问某球队详情 → getTeamInfo
- 用户问某球队运势/风水 → getTeamFortune
- 用户表达歧义 → 先反问澄清,禁止猜测
微信扫一扫