# Recommendation

> 汇总深度分析结果，逐场推送分析报告，最后发送汇总（含串关建议）。在用户说「给推荐」「今天买什么」「推荐」或赛前流程中深度分析之后使用。

- Skill: `philipbo/recommendation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add philipbo/recommendation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/philipbo/recommendation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: philipbo (https://skillmd.com/u/philipbo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/philipbo/recommendation

---


# 推荐输出（recommendation）

逐场推送 deep-analysis 的分析结果，最后发送汇总消息（含串关组合建议）。

**核心原则**：龙王主玩比分串关（2 串 1 为主），推荐输出需突出比分概率排序和串关适合度。

## 输入

来自 deep-analysis 的每场比赛综合评估结果。**执行 recommendation 时**，以收齐的 announce 所包含的**综合评估与 memory 摘要**为输入，**无需**再从 memory 读取 `## 深度分析`。

**流程衔接说明**：

- **编排/多场场景**（赛前全流程、手动多场分析、精选多场）：**单场分析报告的逐场推送由 deep-analysis worker 完成**（每场完成 10 步后通过 messaging 推送该场报告）。recommendation 在**主会话或编排 subagent 收齐所有场次的 announce 后**才执行，只做：精选（步骤 2）→ 汇总消息与串关建议（步骤 3）→ 推送汇总（步骤 4）→ 写入 memory（步骤 5）。即「逐场看报告」来自 worker，「精选 + 串关 + 写推荐」来自 recommendation 一次执行。
- **单场场景**：单场 worker 完成后主会话收齐 announce，再执行 recommendation（精选 1 场、汇总、写 memory）。
- 上述任一场景下，**初筛通过 0 场**时无深度分析输入，recommendation 仍须执行（见下）。

**初筛通过 0 场时**：无深度分析输入，recommendation 仍须执行——生成一条汇总消息（今日无候选场次，无推荐），写入 `## 推荐` 并推送给龙王，以便 Heartbeat 与流程状态一致。

## 执行步骤

**当深度分析场次为 0 时**（初筛通过 0 场）：跳过步骤 1–3，直接生成一条汇总消息「今日无候选场次，无推荐」，推送并写入 `## 推荐`（精选 0 场、无串关），然后结束。推送消息可带一句「⏳ 今日购彩截止：{22:00/23:00}」以与正常汇总一致。**写入的 `## 推荐` 仍按步骤 5 的标准结构**（含 ### 精选场次、### 候补场次、### 串关组合）。精选/候补表无数据行。

### 步骤 1：逐场推送分析报告（内容格式规范）

**编排/多场场景下**：单场分析报告已由 deep-analysis worker 在每场完成时推送，本步骤无需重复执行；直接进入步骤 2（精选）。

**非编排或需本 skill 输出单场时**：**分析完一场，立即推送一场**，不等全部分析完。龙王可以边看边决策。以下为单场报告的内容与格式规范。

**推送顺序（减轻单条消息压力）**：**先发结论、后发分析过程**。结论单条控制在约 3500 字内，便于先看推荐再决定是否展开过程；分析过程可单独一条或按长度分段。

**第 1 条：结论先行（建议 ≤3500 字）**

```
📌 **{编号}** [{联赛}] {主队} vs {客队}（{N}/{总推荐数}）
⏰ {开球时间}
🔗 https://zq.titan007.com/analysis/{matchId}cn.htm

━━━ 结论 ━━━

🎯 推荐：
  ⚽ 胜平负：首选 {主胜/平局/客胜}；次选 {主胜/平局/客胜}
    └ 即时赔率：主 {X.XX} / 平 {X.XX} / 客 {X.XX}
    └ 赔率依据：{首选/次选依据各一句}
  🏈 亚盘：{让球方向}（盘口：{X}）└ 即时：主水 {X.XX} 客水 {X.XX}
  📏 大小球：首选 {大X球/小X球}；次选 {大Y球/小Y球}（盘口：{X}/{Y}，预期总进球：{λ1+λ2}）｜或 ⚠️ 观望
  🔢 比分（按概率）：1️⃣ {比分} → 2️⃣ {比分} → 3️⃣ {比分} → 4️⃣ {比分}

📊 置信区间：主胜 {XX-XX%} / 平 {XX-XX%} / 客胜 {XX-XX%}
🔑 关键点：{关键点1}；{关键点2（如有）}
❓ 疑点：{疑点1（如有）}｜或「本场无明显疑点」
⚔️ 核心矛盾：{矛盾1（如有）}｜或「各维度方向一致」
💪 信心度：{高/中/低}  🔗 串关：{🔒/✅/⚠️}
⚠️ 风险：{风险1}

⬇️ 完整分析过程见下条
```

**第 2 条（及后续）：分析过程**

```
📌 **{编号}** [{联赛}] {主队} vs {客队} — 分析过程
🔗 https://zq.titan007.com/analysis/{matchId}cn.htm

━━━ 分析过程 ━━━

1️⃣ 基本面分析
{基本面分析内容，含均值回归评估、赛程陷阱检测、赛季阶段特征}

2️⃣ 伤情分析
{伤停情况及对球队影响}

3️⃣ 欧洲指数（胜平负）赔率分析
{表格：各公司初盘→即时盘赔率}
{意图解读 + RLM 检测结果}

4️⃣ 亚盘赔率分析
{表格：各公司盘口+水位 初盘→即时盘}
{意图解读 + RLM 检测结果}

5️⃣ 进球数赔率分析
{表格：各公司大小球盘口+水位 初盘→即时盘}
{意图解读 + 方向验证}

6️⃣ 赔率合理性评估
{三者交叉验证 + 方向合理性评估}

7️⃣ 赔率变动解读
{各公司变动时间线，谁先动、方向是否一致}

8️⃣ 关键点 / 疑点 / 矛盾
{核心判断要素、不确定项、冲突信号、RLM 信号汇总}

9️⃣ 风险提示
{可能推翻判断的因素}

🔢 比分概率建模
{泊松模型最多 6 个比分概率及推荐}
{Crown/竞足波胆参考（如有）}
```

（采用「先结论后过程」时，结论已在第 1 条发送，本条第 2 条仅含分析过程，不再重复结论。）

推荐内容的表述规范：

- **编号**：来自初筛或当日赛程；龙王直接指定比赛 ID/URL 时可能无编号，填「-」即可。
- **即时盘与赔率（必含）**：综合推荐中**必须**带可执行、可复盘的价位。**亚盘**：即时盘口 + 主水/客水；**胜平负**：须带即时主/平/客赔率。可选在亚盘或胜平负处带**初盘一句**（如「初盘半球 0.88→即时 0.92 阻上」），便于对照变动；若篇幅紧可只写即时，初盘在分析正文中已有。
- 胜平负：每场固定 2 项——**首选**（欧指主结论）、**次选**（与亚盘/大小球交叉后不矛盾或更受支持；若诱买则优先与诱买方向相反且受亚盘/大小球支持；打平时用泊松或欧指概率），由 deep-analysis 给出并注明依据；复盘时命中首选或次选任一即算胜平负命中
- 亚盘：「主队让{X}球 主胜」「主队受让{X}球 主胜」；方向不明确时标「⚠️ 观望」
- 大小球：改为 **首选 + 次选** 两档盘口：`首选 大/小 X 球；次选 大/小 Y 球`（盘口：X/Y，预期总进球：λ1+λ2）。次选用于覆盖/风控；方向不明确或与泊松比分重大矛盾时标「⚠️观望」。
- 比分：「比分 X:X」
- **两套比分（deep-analysis 矛盾场次）**：当 deep-analysis 输出了两套比分（整体 Top 3 + 与大小球同方向 Top 3）时，recommendation 的汇总表「比分」列默认填整体 Top 3；同时在该场的「核心矛盾」或「理由」中补一句「本场存在大小球 vs 泊松比分矛盾，另有同方向 Top 3 参考」。

**多玩法统计规则**：每场推荐包含胜平负 + 亚盘 + 大小球 + 比分四个维度，各维度独立计入对应玩法的命中统计。标注「⚠️ 观望」的玩法不计入该玩法统计（分子分母均排除）。在"推荐场次"维度仍算 1 场，胜平负/亚盘/大小球中任一命中即视为该场命中。比分推荐独立计数。

**逐场推送**：每场分析完成后立即通过 messaging 推送给龙王，不等所有场次分析完。

**消息长度控制**：单条消息如超过 4000 字符，拆分为多条顺序发送（飞书等通讯渠道有长度限制）：

- **逐场分析报告**：**先发结论（第 1 条，建议 ≤3500 字）**，再发分析过程（第 2 条；若分析过程超 4000 字，在过程内部再拆条，首条末尾「⬇️ 接下文」，续条开头「⬆️ 接上文」）。这样单条体积小，龙王可先看结论再决定是否展开过程。
- 汇总消息：如超长，按「精选推荐表 + 串关建议」和「候补/观察 + 免责声明」拆为 2 条
- 拆分时在首条末尾标注「⬇️ 接下文」，续条开头标注「⬆️ 接上文」

### 步骤 2：精选（全部分析完成后执行）

全部场次深度分析完成后，从所有已分析场次中**精选 2-3 场**（最多 4 场）作为核心推荐。

**精选规则**：

1. **信心度为「低」的场次** → 直接排除，列为「观察场次」
2. 对信心度「高」和「中」的场次，按以下优先级综合排序：
   - 信心度（高 > 中）
   - 串关适合度（🔒 > ✅ > ⚠️）
   - 比分可预测性（泊松 Top 1 概率越高越好）
   - 联赛层级（高 > 中）
3. 取排序后的 **Top 2-3 场**作为精选（**仅 1 场符合条件时，该场仍作为精选推荐**，汇总照发，仅串关部分改为「今日精选 1 场，无法组串，建议单买」）
4. 第 4 场仅在以下情况纳入：
   - 龙王主动说"多推一场""今天来 4 场"等
   - 或前 3 场中有 2 场以上是🔒做胆级别，第 4 场也至少是✅可串
5. 未入选精选但信心度为「中」的场次 → 列为「候补场次」（分析已推送过，但不纳入串关组合）

**精选理由必须明确**：每场精选和每场淘汰都要写出理由。

**精选数量控制**：

- 默认精选 **2-3 场**
- 龙王说「今天来 4 场」→ 扩展到 4 场
- 龙王说「今天只要 1 场最稳的」→ 缩减到 1 场
- 如果所有场次信心度都低 → 如实告知「今日无高信心推荐，建议观望」

### 步骤 3：生成汇总消息（含精选 + 串关建议）

精选完成后，发送一条汇总消息。

```
⚽ Agent今日汇总 | {日期} {星期X}
⏳ 今日购彩截止：{22:00/23:00}（根据星期判断）

今日共筛选 {初筛总数} 场，深度分析 {分析数} 场。

（若本次非赛前全流程、无初筛，则「今日共筛选」可写「—」或省略该句，仅保留「深度分析 N 场」。）

━━━ 🌟 精选推荐（{N} 场）━━━

### {编号} {联赛} {主队} vs {客队}
**比赛 ID**: {matchId} | **开球**: {YYYY-MM-DD HH:MM}
🔗 [查看详情](https://zq.titan007.com/analysis/{matchId}cn.htm)

| 玩法 | 推荐 | 即时盘/赔率 | 信心 | 串关 |
|------|------|-------------|------|------|
| 胜平负 | {首选} / {次选} | 主 {X.XX} / 平 {X.XX} / 客 {X.XX} | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 亚盘 | {让球方向}（盘口：{X}） | {盘口} 主水 {X.XX} 客水 {X.XX} | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 大小球 | {首选 大/小X；次选 大/小Y 或 观望}（盘口：{X}/{Y}） | — | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 比分 | {比分 1} → {比分 2} → {比分 3} → {比分 4} | — | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |

**理由**:
- {核心理由 1，优先级最高}
- {理由 2}
- {理由 3（如有）}

**疑点**:
- {疑点 1（如有）}

**风险提示**:
- {风险 1（如有）}

---

### {编号} {联赛} {主队} vs {客队}
**比赛 ID**: {matchId} | **开球**: {YYYY-MM-DD HH:MM}
🔗 [查看详情](https://zq.titan007.com/analysis/{matchId}cn.htm)

| 玩法 | 推荐 | 即时盘/赔率 | 信心 | 串关 |
|------|------|-------------|------|------|
| 胜平负 | {首选} / {次选} | 主 {X.XX} / 平 {X.XX} / 客 {X.XX} | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 亚盘 | {让球方向}（盘口：{X}） | {盘口} 主水 {X.XX} 客水 {X.XX} | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 大小球 | {首选 大/小X；次选 大/小Y 或 观望}（盘口：{X}/{Y}） | — | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |
| 比分 | {比分 1} → {比分 2} → {比分 3} → {比分 4} | — | 🔥高 / ⭐中 / ⚠️低 | {🔒/✅/⚠️} |

**理由**:
- {核心理由 1，优先级最高}
- {理由 2}
- {理由 3（如有）}

**疑点**:
- {疑点 1（如有）}

**风险提示**:
- {风险 1（如有）}

━━━ 串关建议 ━━━

（每种类型最多 2 组，按综合概率从高到低排序，概率最高的排前面）

🏆 2 串 1（最多 2 组）：
  组合 1：{场次} + {场次}（综合概率约 {XX}%，赔率约 {XX}）
    理由：{简短理由}
  组合 2：{场次} + {场次}（综合概率约 {XX}%，赔率约 {XX}）
    理由：{简短理由}

🎲 3 串 1（最多 2 组，风险较高）：
  组合 1：{场次} + {场次} + {场次}（综合概率约 {XX}%，赔率约 {XX}）
  组合 2：...

📌 比分串（最多 2 组）：
  组合 1：...
  组合 2：...

📌 混合串（最多 2 组）：
  组合 1：...
  组合 2：...

━━━ 候补场次（已分析但未精选）━━━
- [{联赛}] [{主队} vs {客队}](https://zq.titan007.com/analysis/{matchId}cn.htm) — 未精选原因：{理由}

━━━ 观察场次（信心度低）━━━
- [{联赛}] [{主队} vs {客队}](https://zq.titan007.com/analysis/{matchId}cn.htm) — {简要原因}

⚠️ 竞彩有风险，请在可承受范围内投注。历史战绩不代表未来表现，理性购彩，量力而行。
```

**汇总表填写**：若某场让球或大小球为「⚠️ 观望」，该行玩法列填「⚠️ 观望」，即时盘可填「—」。

**比分口径（强制统一）**：推荐输出与复盘统计的泊松比分最多 **6 个**。无矛盾时可写 Top 4～6；矛盾时两套各 Top 3。不得输出完整概率表。

**串关组合生成规则**：

- **数量上限**：2 串 1、3 串 1、比分串、混合串 **每种最多推荐 2 组**，避免信息过载。
- **排序**：同一类型内按**综合概率从高到低**排序，概率最高的排第一位。
- **精选仅 1 场时**：该场正常列入精选推荐表并推送，跳过串关建议，汇总中标注「今日精选 1 场，无法组串，建议单买」
- **2 串 1**（主推）：优先用 🔒做胆场次 + ✅可串场次组合，最多 2 组，按概率排序
  - 两场比赛的赛事应尽量独立（不同联赛、不同时间段更佳）
  - 避免两场都是冷门方向的组合（风险叠加太大）
- **3 串 1**（可选）：仅当有 3 场以上 🔒或✅时给出，最多 2 组，按概率排序；须提醒风险
- **比分串**：最多 2 组，按综合概率排序
- **混合串**（如 1 场比分 + 1 场胜平负/亚盘）：最多 2 组，按综合概率排序
- **4 串 1**：仅当龙王主动要求时才给出，默认不推荐，最多 2 组
- ⚠️慎串场次不纳入串关组合

### 步骤 4：推送汇总

通过 messaging 工具将汇总消息发送给龙王。

如果 messaging 不可用：

- 将内容写入当日 memory
- 回复告知龙王推荐已生成，可在对话中查看

### 步骤 5：写入记忆

将推荐内容追加写入 `memory/{今天日期}.md`。

根据**本次执行的触发方式**选择 section 标题：

- **定时任务触发**（17:00）→ 标题：`## 推荐`
- **用户手动触发**（如「给推荐」「分析吧」）→ 标题：`## 推荐（{当前时间 HH:MM}）`，例如 `## 推荐（14:25）`

同一天多次手动触发时，post-review 复盘取**文件中最后一个**推荐 section 作为当日最终版。

**同一场多次推荐**：复盘只以该最后一段内的推荐为准；同一场比赛若曾在当日更早的推荐段中出现，不合并、不追溯，仅本段有效。写入新推荐段时，若某场（matchId）在当日更早的推荐段中已出现过，可在该场精选理由后加注「（当日曾于 HH:MM 推荐，本段为最新）」便于龙王对比，不影响复盘逻辑。

```
## {推荐 / 推荐（HH:MM）}

推荐时间：{时间}
深度分析：{N} 场
精选推荐：{M} 场

### 精选场次

| 比赛 | 比赛ID | 开球 | 胜平负 | 亚盘 | 大小球 | 比分推荐 | 信心度 | 串关 | 精选理由 |
| ---- | ------ | ---- | ------ | ---- | ------ | -------- | ------ | ---- | -------- |
| {主队} vs {客队} | {matchId} | {HH:MM} | {首选 / 次选} | {让X 上/下/观望} | {首选 大/小X；次选 大/小Y / 观望} | {比分1} / {比分2} / {比分3} / {比分4} | {高/中/低} | {🔒/✅} | {理由} |

（胜平负列必须填「首选 / 次选」格式，如 主胜 / 平，以便 post-review 正确应用「首选或次选任一即算命中」规则。）

### 候补场次

| 比赛 | 比赛ID | 推荐 | 信心度 | 未精选原因 |
| ---- | ------ | ---- | ------ | ---------- |
| {主队} vs {客队} | {matchId} | {推荐} | {中} | {理由} |

### 串关组合

{串关建议内容——仅基于精选场次}

```

**重要**：

- 比分推荐也记录，用于复盘比分命中率
- **命中率统计主体 = 精选场次**（龙王实际投注的）
- 候补场次结果也在复盘中展示（作为参考：如果选了会怎样），但不计入主要统计
- **同一场在当日多段推荐中**：复盘只认**最后一段**内该场的推荐，不合并、不追溯更早段

## 特殊场景处理

### 无推荐场景

如果今日无高信心推荐（所有场次信心度都低）：

- 仍须执行**步骤 4 推送**与**步骤 5 写入**：推送下述汇总消息，并写入 `## 推荐`（精选场次表为空，候补/观察在汇总中列出；结构同步骤 5 标准格式），便于 post-review 与 Heartbeat 解析一致。

```
⚽ Agent今日推荐 | {日期}
⏳ 今日购彩截止：{22:00/23:00}（根据星期判断）

今日共筛选 {N} 场，深度分析 {N} 场。
经分析，今日无高信心推荐场次，建议观望。

📋 观察场次：
- {列出信心度低的场次及原因}

💡 宁可错过，不可乱推。明天见！
```

### 用户追问单场

如果龙王问「{某场比赛}怎么看」：

1. 检查是否已分析过（查当日 memory）
2. 如果已分析，直接输出该场分析结果
3. 如果未分析，启动 deep-analysis 单场分析再输出

### 用户要求调整

如果龙王说「再多推几场」或「只看英超」：

- 回到初筛结果，按新条件调整
- 必要时对额外场次补做深度分析
- 重新生成推荐和串关建议

## 输出

逐场推送 + 汇总消息（含串关建议），已推送或已写入记忆。

