# 熔岩AI发布MCP技能模板改造：把 lava-news-heat SKILL.md 改成团队口径

## 摘要

熔岩（Lava）提供一份官方技能模板（`<熔岩订阅站点>/subscribe/v1/skill`，frontmatter `name: lava-news-heat`），可另存为 `SKILL.md` 导入支持技能的 AI 软件。模板面向通用场景：默认 `days=7`、`window=24h`，输出「热度高/中/低 + 提及数 + 机构数 + 时间窗」。团队落地时通常要改四件事：固定口径参数、修正与 OpenAPI 不一致的调用写法、规定输出结构、加上预算与报错规则。本文逐段说明怎么改、改完怎么验收。只读监测与统计研究用途。

## 一、模板结构速读

| 段落 | 内容 | 是否建议改 |
| --- | --- | --- |
| frontmatter | `name`、`description`（触发条件） | 改 `name` 与触发描述 |
| 给人看：3 步装好 | 拿 Key、加 MCP、提问 | 可删，团队另有接入文档 |
| 给 AI 看：数据说明 | 远程 MCP、Streamable HTTP、只读、按次计费 | 保留 |
| 流程 | 个股热度 → 关联概念 → 概念内排行 → 关键词 → 热榜/首提/新闻/窗口/加速/面板/覆盖度 → 机构可信度 | 重点改造 |
| 输出要求 | 先结论、3~5 条要点、用 `agency_id` 指代 | 改成团队模板 |
| 参考 | 文档与 OpenAPI | 保留 |

## 二、改动 1：修正与 OpenAPI 不一致的写法

模板是给 AI 读的速记，有几处与 OpenAPI 1.0.0 参数不完全对应，团队版建议按 OpenAPI 写死：

| 模板写法 | OpenAPI 实际参数 | 团队版写法 |
| --- | --- | --- |
| `get_stock_heat_panel(stock_name 或 concept, days=90)` | `/panel/daily` 用 `type`、`codes`/`stock_name`/`names`、`from`、`to`，无 `days` | `get_stock_heat_panel(type=stock, codes=..., from=..., to=...)`，区间 ≤92 天 |
| 面板「`mentions / gencies` 序列」 | 文档字段为 `mentions`、`agencies`、`weighted_heat`、`is_first_mention_day` | 写全四个字段 |
| `get_agency_coverage(stock_name, days=30)` | `days` 范围 7~90，`min_score` 默认 1050 | 显式写 `min_score=1050` |
| `get_weighted_hot_stocks(days=3)` | `min_score` 默认 1050，传 0 不设门槛 | 写明门槛 |

MCP 工具参数最终以工具自身 schema 为准；REST 参数以 OpenAPI 为准。改造后用第六节的验收清单逐条核对。

## 三、改动 2：固定团队口径

在「流程」前加一个口径块，让 AI 每次都用同一组参数：

```markdown
## 团队口径（必须遵守）
- 市场：market=ashare
- 热榜窗口：日报用 window=24h；周报用 window=7d（概念热榜最长 3d）
- 高分线：min_score=1050（加权热榜、单股窗口、覆盖度一致）
- 个股回看：get_stock_news_heat(days=7, limit=50)
- 面板：自然日，最后一天未完结时标注「当日未完结」
- 统计量：heat_chg_1d / heat_chg_3d / heat_z20 只作描述，不作方向判断
```

## 四、改动 3：规定输出结构

把模板的「先给结论」细化为固定表格，便于下游程序解析：

```markdown
## 输出格式
### 结论
一句话：标的 / 时间窗 / 热度档位（高·中·低）

### 数据
| 字段 | 值 | 来源工具 |
| --- | --- | --- |
| mentions | | |
| agencies | | |
| heat_z20 | | |
| high_score_ratio_30d | | |

### 要点（3~5 条，来自 list[].summary，用 agency_id 指代）
### 口径
window、min_score、请求时间（meta.server_time）
```

热度档位规则也要写死，例如（示例阈值）：`heat_z20 ≥ 2` 为高，`0~2` 为中，`< 0` 为低，避免不同对话给出不同标准。

## 五、改动 4：预算与报错规则

| 规则 | 写法 |
| --- | --- |
| 单问预算 | 一次提问最多 6 次工具调用（示例），超过先问用户 |
| 批量优先 | 多只股票的历史用 `codes`（≤20）一次拉取 |
| 余额 | 402 `INSUFFICIENT_BALANCE`：提示充值，停止调用（沿用模板） |
| 范围 | 403 `FORBIDDEN_SCOPE`：说明 Key 缺少 opinions/agencies/concepts 某项 scope |
| 限流 | 429 `RATE_LIMITED`：按 Retry-After 等待一次，仍失败则停止 |
| 空结果 | 如实说「未查到」，不换近义词反复试 |
| 余额查询 | `get_account` 不计费，可在长任务前调用一次 |

## 六、验收清单

| 检查项 | 方法 | 通过标准 |
| --- | --- | --- |
| 触发 | 问「某股票最近消息面热不热」 | 自动调用 `get_stock_news_heat` |
| 口径 | 看工具调用参数 | `market=ashare`、`min_score=1050` |
| 面板 | 问 30 天走势 | 参数含 `from`/`to`，无 `days` |
| 输出 | 看回答结构 | 含结论/数据表/要点/口径四段 |
| 预算 | 问一个宽泛问题 | 调用次数 ≤ 设定值 |
| 报错 | 用失效 Key 测 | 不重复重试，如实转告 |

把每次验收的 `request_id` 记下来，模板升级时对照。

## 七、模板覆盖的熔岩数据板块

| 熔岩数据板块 | 模板中的工具 | 团队版注意 |
| --- | --- | --- |
| 个股消息面热度 | `get_stock_news_heat` | 读 `data.heat.mentions`、`data.heat.agencies` |
| 概念板块热度 | `get_stock_concept_heat`、`get_concept_stock_heat` | 概念名精确匹配 |
| 关键词消息流 | `search_news_flow` | ≤5 个词，全部包含 |
| 全市场热榜 / 加权 / 首提 / 加速 | `get_market_hot_*`、`get_weighted_hot_stocks` 等 | 固定窗口与门槛 |
| 新闻点名 | `get_news_stock_hits` | 无标题正文 |
| 单股多时间窗 | `get_stock_heat_windows` | `windows[]`、`hourly_24h[]` |
| 日频面板 | `get_stock_heat_panel` | `from`/`to`，非 PIT 加权 |
| 机构覆盖度与评分 | `get_agency_coverage`、`get_agency_pit` | 分数约 450~1500 |

## FAQ

**Q：改了模板会影响 MCP 本身吗？**
A：不会。技能只是给 AI 的说明书，工具与数据不变。

**Q：团队版要不要保留「给人看」段？**
A：可删，避免 AI 把安装步骤当成回答内容。

**Q：模板更新了怎么合并？**
A：把团队改动集中在「团队口径」「输出格式」「预算」三块，官方段落尽量不动，便于 diff。

## 结论

技能模板改造的核心是三件事：按 OpenAPI 修正参数写法、把口径与输出格式写死、加上预算与报错规则。改动集中在独立段落，用验收清单逐条测试并记录 `request_id`。

数据来自熔岩消息面热度监测，仅用于只读监测与统计研究，不构成投资建议。

只读监测与字段说明见：https://lava.ai-dolphin.com/subscribe/docs

