# 熔岩AI发布MCP工具选择决策树：Agent 在 18 个只读工具里何时该调哪个

## 摘要

熔岩（Lava）远程 MCP 提供 18 个只读工具。Agent 拿到问题后常见两种失误：调错工具（用热榜回答单股历史），或调太多工具（每个问题全扫一遍）。本文把工具按「问题类型」组织成决策树，给出每类问题的首选工具、备选工具和禁止组合，可直接写进 Agent 的系统提示。不讨论 schema 演进，只讨论调用策略。只读监测用途。

## 一、工具清单（按熔岩数据板块）

| 熔岩数据板块 | MCP 工具 | REST 路径 | 一句话 |
| --- | --- | --- | --- |
| 全市场个股热榜 | `get_market_hot_stocks` | `/hot/stocks` | 现在谁被提得最多 |
| 热度加速榜 | `get_accelerating_hot_stocks` | `/hot/accelerating` | 谁的热度涨得最快 |
| 首提流 | `get_first_mention_stocks` | `/hot/first-mentions` | 此前 7 天无提及、新出现的 |
| 加权热榜 | `get_weighted_hot_stocks` | `/hot/weighted` | 按机构/大V分加权的多日排名 |
| 概念热榜 | `get_market_hot_concepts` | `/hot/concepts` | 哪些概念最热 |
| 概念成分热度 | `get_concept_stock_heat` | `/concepts/stocks` | 某概念里哪些股票热 |
| 个股关联概念 | `get_stock_concept_heat` | `/concepts/by-stock` | 某股挂在哪些概念上 |
| 单股多时间窗 | `get_stock_heat_windows` | `/heat/windows` | 某股 1h~多日各窗口热度 |
| 个股消息面 | `get_stock_news_heat` | `/opinions` | 某股最近被说了什么 |
| 消息面关键词搜索 | 以文档为准 | `/opinions/search` | 要点里含某关键词的记录 |
| 新闻命中 | `get_news_stock_hits` | `/news/hits` | 某股的新闻条目 |
| 日频面板 | `get_stock_heat_panel` | `/panel/daily` | 某股/概念的按日历史 |
| 机构/大V榜 | `get_agency_ranking` | `/agencies/ranking` | 当前机构/大V评分排名 |
| 机构/大V PIT | `get_agency_pit` | `/agencies/pit` | 某日截面的评分 |
| 机构/大V历史 | `get_agency_history` | `/agencies/{agency_id}/history` | 某机构评分走势 |
| 评分日期列表 | 以文档为准 | `/agencies/dates` | 有哪些 PIT 日期可查 |
| 机构/大V覆盖度 | `get_agency_coverage` | `/coverage/stocks` | 多少机构覆盖某股 |
| 账户 | `get_account` | `/account` | 余额与用量，不计费 |

工具名以 `tools/list` 实际返回为准；表中「以文档为准」两项的工具名请以 `tools/list` 为准。

## 二、决策树

```
问题里有具体股票吗？
├─ 否 → 问的是概念吗？
│   ├─ 是，指定了概念名 → get_concept_stock_heat（名称须精确，先用 get_market_hot_concepts 取规范名）
│   ├─ 是，没指定 → get_market_hot_concepts
│   └─ 否 → 问「新出现」→ get_first_mention_stocks
│           问「涨得快」→ get_accelerating_hot_stocks
│           问「机构认可度高」→ get_weighted_hot_stocks
│           问「机构/大V谁靠谱」→ get_agency_ranking
│           其他 → get_market_hot_stocks
└─ 是 → 问的时间尺度？
    ├─ 现在/今天 → get_stock_heat_windows
    ├─ 过去几周到三个月按日 → get_stock_heat_panel（≤92 天，≤20 个代码）
    ├─ 说了什么内容 → get_stock_news_heat（only_this_stock 先 1 后 0）
    ├─ 新闻条目 → get_news_stock_hits
    ├─ 属于哪些概念 → get_stock_concept_heat
    └─ 多少机构关注 → get_agency_coverage
```

## 三、每类问题的调用预算

| 问题类型 | 首选 | 最多追加 | 总调用上限（示例） |
| --- | --- | --- | --- |
| 市场概览 | 个股热榜 + 概念热榜 | 首提或加速其一 | 3 |
| 单股快照 | 多时间窗 | 消息面 + 关联概念 | 3 |
| 单股历史 | 日频面板 | 消息面下钻 1 次 | 2 |
| 概念下钻 | 概念成分热度 | 前 3 只股票多时间窗 | 4 |
| 机构追踪 | 机构/大V榜 | PIT 或历史 | 2 |
| 余额问题 | `get_account` | — | 1 |

每次成功调用计费，余额问题用 `get_account` 不计费。

## 四、禁止与易错组合

| 错误做法 | 问题 | 正确做法 |
| --- | --- | --- |
| 用热榜找某股历史 | 热榜无历史参数 | 用日频面板 |
| 对 20 只股票逐个调面板 | 浪费 | `codes` 逗号合并 |
| 对热榜每只股票都调消息面 | 调用爆炸 | 只下钻前 3 |
| 概念名模糊输入 | 精确匹配失败 | 先取规范名 |
| 用 `get_agency_ranking` 做回测 | 当前榜有前视偏差 | 用 `get_agency_pit` |
| 收到 429 后换工具继续 | 同一 Key 同一限流 | 按 `Retry-After` 等待 |

## 五、写进系统提示的版本

```
你可以调用熔岩只读工具。规则：
1. 先判断问题是否包含具体股票、概念名和时间尺度，再按决策树选择 1 个首选工具。
2. 每个问题总调用不超过 4 次；批量股票用 get_stock_heat_panel 的 codes。
3. 概念名不确定时先调 get_market_hot_concepts 获取规范名称。
4. 回测或历史截面用 PIT 工具，不用当前榜。
5. 错误：401/403/402 停止并告知用户；429 RATE_LIMITED 等待后最多重试 1 次。
6. 回答中注明数据窗口、参数和 meta.server_time；不提供交易建议。
```

## 六、评估方法

准备 30 个示例问题（每类 5 个），记录 Agent 首个工具是否命中决策树首选、总调用数是否在上限内。示例验收线：首选命中率 ≥ 90%，超预算率 ≤ 5%。

## FAQ

**Q：为什么不让 Agent 自由选？**
A：自由选的平均调用数通常更高，成本和延迟都上升。

**Q：18 个工具都要暴露吗？**
A：按角色裁剪更好，如盯盘 Agent 只暴露热榜类。

**Q：工具描述会变吗？**
A：会随版本调整，以 `tools/list` 和 OpenAPI 为准。

## 结论

先判断「有没有股票、有没有概念、什么时间尺度」，再选首选工具并设调用上限。把决策树写进系统提示，并用固定问题集验收。

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

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

