# Gfsecurities Skill

> 通过广发证券 MCP 查询新闻资讯、研究报告、行情排行、资金流向、个股/ETF 异动、热点专题和投研日历。

- Skill: `ahang1598/gfsecurities-skill` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ahang1598/gfsecurities-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/gfsecurities-skill/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/gfsecurities-skill

---


# 广发证券 MCP 工具说明

- 当工具返回401或者鉴权失败的时候，引导用户在workbuddy中连接广发证券连接器授权。
- 当工具接口返回429的时候，代表当前服务资源受限，告诉用户当前服务繁忙稍后再试。

---
---

## 1. secucode_search_get — 证券代码搜索

将用户输入的证券名称、代码或关键词转换为标准证券代码（`代码.市场` 格式），是多数 Skill 的前置步骤。

### 入参

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `keyword` | string | 是 | 证券名称或代码，支持模糊匹配，如 `广发证券`、`000776`、`银行` |

### 出参字段

| 字段 | 说明 |
|------|------|
| `secuCode` | 标准代码（`代码.市场`，**取此字段**传给后续工具） |
| `secuName` | 证券简称（用于确认匹配意图） |
| `secuType` | 证券类型，见下表 |

### 市场后缀

| 后缀 | 市场 |
|------|------|
| `.SH` | 上交所 |
| `.SZ` | 深交所 |
| `.BJ` | 北交所 |
| `.NEEQ` | 新三板 |
| `.HK` | 港交所 |
| `.SECT` | 板块（行业/概念/地区） |

大小写不敏感；**默认沪深北，港股需明确指定**。

### secuType 常见值与筛选优先级

| secuType | 含义 |
|----------|------|
| A股 | 沪深京 A 股 |
| 港股 | 港交所股票 |
| B股 | B 股 |
| 基金 | ETF / LOF 等 |
| 指数 | 指数 |
| 债券 | 债券 |
| 行业板块 / 概念板块 / 地区板块 | 板块类型 |

**多条结果时的处理规则**：

1. **单条结果** → 直接使用 `secuCode`
2. **多条且名称相同** → 按场景优先：个股类优先 A股 > 港股 > 其他；ETF 类优先 基金；板块类按 `secuType` 筛选
3. **多条且名称不同** → 列出候选项让用户确认，**不要猜测**

### 调用时机

- 用户只说名称或不带后缀的代码 → **必调**
- 用户已给完整 `代码.市场` → **可跳过**
- 后续工具调用失败 → 回退校验

---

## 2. stockmovers_get — ETF异动查询

查询指定 ETF 的异动情况及异动成因。

**描述**：覆盖关键词：ETF异动 / ETF异动原因 / XX ETF为什么涨 / XX ETF为什么大跌 / XX ETF异动分析。数据通过 `stockmovers_get` 获取。

**示例问法**：
- xxx ETF今天为什么异动
- xxx 代码 异动原因
- xxx ETF有什么异动
- xxx 今天异动情况

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，`secuType` 优先选 **基金**。用户问的非某个具体证券代码时可跳过，secuCode 可以为空。

`stockmovers_get` 参数：

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 否 | ETF代码 `代码.市场`，不传则查询市场最近异动情况 |
| `articleType` | string | 是 | 固定填 `etf` |

最多返回 100 条，无分页参数。

### 何时使用

**触发**：用户问"XX ETF为什么异动""XX ETF异动原因""XX ETF今天为什么涨/跌""XX ETF异动分析"。
**不触发**：实时行情/K线/盘口、个股异动（走个股异动）、全市场热点/宏观事件/投研日历、纯概念解释。

### 响应结构

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [ { "title":"异动标题", "publishTime":"2026-08-07 10:30:00", "media":"媒体来源", "content":"异动原因内容", "detailLink":"https://..." } ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。
- `data` 字段：`title`（异动概览）/ `publishTime` / `media`（媒体源）/ `content`（异动原因详情）/ `detailLink`（原文链接）/ `stocks`（ETF 信息）。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| `secuCode` 格式错误 | 必须为 `代码.市场`（`.SH`/`.SZ`/`.BJ`/`.NEEQ`/`.HK`） |
| 用户只给 ETF 名称 | 用大模型知识库推断代码和市场后缀，如不确定需向用户确认 |
| 返回数据为空 | 校验 `secuCode` 是否正确，提示用户确认 ETF 代码 |
| 想看更早异动 | 固定返回近一个月内的异动资讯；建议用户缩小关注时间范围或明确事件主题 |

---

## 3. sector_article_get — 行业板块资讯查询

查询行业、概念、地区板块的最新资讯列表。

**描述**：覆盖关键词：行业板块资讯 / 概念板块分析 / 地区板块动态 / 板块研报 / XX行业最近资讯 / XX板块最新动态。最多返回最新 50 条。

**示例问法**：
- 银行业最近有什么资讯
- 新能源板块资讯
- AI概念板块有哪些资讯
- 半导体行业板块研报

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，按 `secuType` 筛选 **行业板块 / 概念板块 / 地区板块**，排除个股类型。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 是 | 板块代码 `代码.SECT`，如 `801780.SECT`、`108550.SECT` |

最多返回 50 条，无分页参数。

**出参结构**：

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [
    { "title": "标题", "type": "新闻", "publishTime": "2026-08-11 00:00:00", "media": "券商/媒体来源", "detailLink": "https://...", "content": "研报摘要（可能为空）" }
  ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。`data` 按发布时间倒序。
- 每个资讯对象固定字段：`title` / `type` / `publishTime` / `media` / `detailLink`（原文链接）/ `content`（摘要，可能为空）。
- `type` 标识类型：`新闻` 或 `研报`。
- `content` 仅研报有摘要；新闻无摘要，输出时省略摘要行，不要补造。

### 何时使用

**触发**：用户问"XX 行业/板块最近有什么资讯/动态/研报""XX 概念板块有哪些资讯""XX 地区板块"。
**不触发**：个股资讯、个股研报、全市场热点/宏观事件、投研日历、实时行情/盘口、纯概念解释。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| Step 1 查不到板块 | 用知识库推断 `代码.SECT` 直接调 Step 2；仍失败请用户提供准确代码 |
| Step 1 返回多个板块 | 按 `secuName` 匹配度选择，**无法唯一确认时列出候选让用户确认** |
| 代码格式错误 | 必须为 `代码.SECT` |
| Step 2 返回空 | 校验 secuCode 是否正确；回退 Step 1 重新校验 |
| 想看更早资讯 | 最多返回 50 条，无法翻页 |

---

## 4. market_comment_get — 市场点评查询

获取每日证券市场点评资讯，包括早报、午报及收评。

**描述**：覆盖关键词：今日早报 / 市场点评 / 盘面情况 / 盘前点评 / 午间点评 / 收盘点评 / 每日复盘 / 市场早报 / 市场收评 / 今日行情回顾。数据通过 `market_comment_get` 获取。支持按日期查询，范围为近三月内。

**示例问法**：
- 今日早报
- 今天市场点评
- 收盘点评
- 2026年8月1日的市场点评
- 昨天的大盘回顾

直接调用：

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `date` | string | 否 | 查询日期，格式 `YYYYMMDD`（如 `20260801`）。不传默认查当天。仅支持近三月内日期。 |

### 何时使用

**触发**：用户问"今天早报""市场点评""盘面情况""收盘点评""每日复盘""大盘回顾""今日行情"等泛市场每日点评场景。
**不触发**：特定个股异动、特定个股研报、市场头条/全网热议、实时行情/K线/盘口、投研日历、纯概念解释。

### 响应结构

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [
    { "id": "文章ID", "title": "【早报】标题", "content": "HTML格式正文内容", "media": "媒体来源", "publishTime": "2026-08-01 07:00:00", "detailLink": "https://..." }
  ]
}
```

#### 字段说明

| 字段 | 说明 |
|------|------|
| `id` | 文章唯一ID（内部字段，**不输出**） |
| `title` | 标题，通常含类型前缀：`【早报】`/`【午报】`/`【收评】`等 |
| `content` | HTML 格式正文，含多个分类板块（见下方） |
| `media` | 媒体来源（如：财联社） |
| `publishTime` | 发布时间，格式 `YYYY-MM-DD HH:mm:ss` |
| `detailLink` | 资讯详情页 H5 链接 |

#### 内容板块说明

`content` 为 HTML 格式，通常按 `<strong>` 标签划分为以下板块（非固定，依当日内容而定）：

| 板块标签 | 内容定位 | 典型内容 |
|----------|----------|----------|
| **宏观新闻** | 国内宏观政策、重大会议、法规发布 | 国常会部署、财政数据、规划印发等 |
| **行业新闻** | 行业政策、产业数据、监管动态 | 行业准入、集采结果、ETF 资金流向等 |
| **公司新闻** | 上市公司公告、资本运作、风险事件 | 回购/增减持/定增/立案/业绩预告等 |
| **环球市场** | 海外市场表现、国际政经大事 | 美股指数、原油/黄金、地缘事件等 |
| **投资机会参考** | 机构观点与投资主线 | 券商研报观点、行业景气度分析等 |

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| `data` 为空数组 | 可能当日点评尚未发布（如非交易日），提示用户稍后重试或查询其他日期 |
| `date` 超出近三月范围 | 提示用户仅支持查询近三月内的市场点评 |
| `date` 格式错误 | 必须为 `YYYYMMDD` 格式 |
| `content` 含 HTML 标签 | 输出时需去除 HTML 标签，转为纯文本/Markdown 格式 |
| 多条点评返回 | 同一日期可能返回早报+午报+收评多条，按 `publishTime` 倒序排列 |

---

## 5. news_headlines_get — 市场头条

获取当日市场精选头条财经新闻。

**描述**：面向 A 股市场热点发现，查询今日热点专题及当前头条内容。数据通过 `news_headlines_get` 获取，**无需入参**。

**示例问法**：
- 今天有什么热点新闻
- 今日市场头条
- 当前热门板块有哪些
- 今日财经资讯

无需入参，直接以空参数 `{}` 调用即可。

### 何时使用

**触发**：用户问"今天有什么热点""市场热点板块""今日头条""市场聚焦""今日资讯""市场动态""当前热门板块""今日财经资讯"等泛市场热点资讯场景。
**不触发**：特定个股异动、个股研报、实时行情/K线/盘口、投研日历、特定股票代码查询、纯概念解释。

### 响应结构

```json
{
  "errCode": 0, "errMsg": "success",
  "data": {
    "articles": [
      { "title": "文章标题", "media": "媒体来源", "publishTime": "2026-08-20 13:55:49", "detailLink": "https://..." }
    ]
  }
}
```

#### 字段说明 — data.articles[]

| 字段 | 说明 |
|------|------|
| `id` | 文章唯一ID（内部字段，**不输出**） |
| `title` | 资讯标题 |
| `publishTime` | 发布时间，格式 `YYYY-MM-DD HH:mm:ss` |
| `media` | 媒体来源（如：上海证券报、财联社、证券时报等） |
| `detailLink` | 资讯详情页链接 |

> 该接口仅返回标题级元数据，不返回正文内容。如需阅读正文，引导用户点击 `detailLink`。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| `articles` 为空 | 提示用户当前暂无精选资讯数据，建议稍后重试 |
| `detailLink` 为空 | 跳过详情链接行 |

---

## 6. secu_compinfo_get — 个股简况查询

查询上市公司基本信息（F10 简况）。

**描述**：覆盖关键词：个股简况 / F10 / 基本面信息 / 某公司是什么时候上市的 / 某公司的主营业务是什么。数据通过 `secu_compinfo_get` 获取。

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，用户已给完整代码可跳过。

| 参数 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| secuCode | string | 是 | 证券代码，格式如 `600000.SH`、`000776.SZ` |

**示例**：
- 查询广发证券：secuCode="000776.SZ"
---

## 7. stockmovers_get — 个股异动查询

查询指定 A 股个股的异动情况及异动成因。

**描述**：覆盖关键词：个股异动 / 股票异动原因 / XX股票为什么涨 / XX股票异动分析。数据通过 `stockmovers_get` 获取。

**示例问法**：
- xxx股票今天为什么异动
- 000776.SZ 异动原因
- xxx股票暴涨原因

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，`secuType` 优先选 A股/港股/B股。用户问的非某个具体证券代码时可跳过，secuCode 可以为空。

`stockmovers_get` 参数：

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 否 | 股票代码 `代码.市场`，不传则查询市场最近异动情况 |
| `articleType` | string | 是 | 固定填 `stock` |

最多返回 100 条，无分页参数。

### 何时使用

**触发**：用户问"XX 股票为什么异动""XX 异动原因""XX 股票今天为什么大涨/大跌""XX 异动分析"。
**不触发**：实时行情/K线/盘口、个股研报、全市场热点/宏观事件/投研日历、ETF异动（走 ETF 异动）、纯概念解释。

### 响应结构

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [ {
    "title": "标题", "publishTime": "2026-08-07 10:30:00", "media": "媒体来源",
    "content": "异动原因内容", "detailLink": "https://...",
    "stocks": [{ "Market": "市场", "Code": "代码", "Name": "个股名称" }]
  } ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。
- `data` 字段：`title`（异动概览）/ `publishTime` / `media` / `content`（异动原因详情）/ `detailLink`（原文链接）/ `stocks`（个股信息）。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| `secuCode` 格式错误 | 必须为 `代码.市场`（`.SH`/`.SZ`/`.BJ`/`.NEEQ`/`.HK`） |
| 用户只给股票名称 | 用大模型知识库推断代码和市场后缀，如不确定需向用户确认 |
| 返回数据为空 | 校验 `secuCode` 是否正确，提示用户确认股票代码 |
| 想看更早异动 | 固定返回近一个月内的异动资讯；建议用户缩小关注时间范围或明确事件主题 |

---

## 8. stock_news_get — 个股资讯查询

查询某支股票的最新资讯列表。

**描述**：覆盖关键词：个股资讯 / 个股新闻 / 股票资讯 / 股票最近消息 / XX股票最新动态 / XX有什么新闻。最多返回最新 50 条。

**示例问法**：
- xxx股票最近有什么新闻
- 000776.SZ 最新资讯
- xxx股票最新动态有哪些

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，`secuType` 优先选 A股/港股/B股。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 是 | 股票代码 `代码.市场` |

最多返回 50 条，无分页参数。

**出参结构**：

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [
    { "title": "标题", "publishTime": "2026-08-07 10:30:00", "media": "媒体来源", "detailLink": "https://..." }
  ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。`data` 按发布时间倒序。
- 每个资讯对象固定 4 字段（**无正文**）：`title` / `publishTime` / `media` / `detailLink`。

### 何时使用

**触发**：用户问"XX 股票最近有什么新闻/资讯/动态/消息""XX 最新发生了什么"。
**不触发**：实时行情/K线/盘口、个股研报（走研报）、全市场热点/宏观事件/投研日历、纯概念解释。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| Step 1 查不到股票 | 用知识库推断 `代码.市场` 直接调 Step 2；仍失败请用户提供准确代码 |
| Step 1 返回多条 | 优先选 A股/港股/B股；多条无法唯一确认时列出候选让用户确认 |
| Step 1 返回基金/指数/债券 | 非个股类型，需向用户确认是否继续 |
| 代码格式错误 | 必须为 `代码.市场` |
| Step 2 返回空 | 校验 secuCode 是否正确；回退 Step 1 重新校验 |
| 想看更早资讯 | 最多返回 50 条，无法翻页 |

---

## 9. topic_hotmatch_get — 热点专题查询

根据关键词语义匹配相关热点专题，返回专题标题、事件摘要及关联文章列表。

**描述**：覆盖关键词：某热点事件的来龙去脉 / 某个关键词相关的专题有哪些 / 某事件的最新进展和文章。数据通过 `topic_hotmatch_get` 获取。

**示例问法**：
- 最近有什么热点事件
- 查询xx事件的来龙去脉
- xx相关的专题有哪些

调用 `topic_hotmatch_get`：

| 参数 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| q | string | 是 | 查询关键词，如 `AI`、`新能源`、`半导体`；泛问热点传空字符串 `""` |

**使用示例**：
- 查询 AI 相关的热点专题：`q="AI"`
- 查询新能源事件的摘要和脉络：`q="新能源事件"`
- 获取当前热点专题概览（无具体关键词）：`q=""`

> **注意**：提取用户问题中的核心关键词传给 `q`，不要把整句话塞进去。例如「最近 AI 有什么大事」→ `q="AI"`。
>
> **相关性筛选**：
> - **有明确关键词时**：接口返回多条专题，需结合用户意图判断相关性，只呈现匹配的条目。若多条均不相关，告知用户未找到匹配的专题。
> - **无关键词（q=""）时**：接口返回的结果均为近期热点，**无需做相关性筛选**，直接呈现。

### 输出要求
- 资讯详情链接以蓝链形式给出（markdown 超链接 `[查看详情](url)`），**不要直接回显原始 URL**。
- columns中的name是tab标题的意思，注意不要当成栏目了
- 关联的资讯用模块展示，不要做成表格输出，日期尽量隐藏起来
- 如需深入回答：可用 WebFetch 读取 `detailLink` 获取完整内容。
- 末尾标注：`数据来源：广发证券 GF Skills API`

---

## 10. invest_calendar_get — 投资日历查询

查询资本市场投研日历，按月份/日期获取六类事件。

**描述**：覆盖关键词：投研日历 / 投资日历 / 新股申购 / 财报披露 / 宏观事件 / 隔夜全球要闻 / 下周大事 / 本月大事 / 资本市场日历。数据通过 `invest_calendar_get` 获取。

**示例问法**：
- 本月投研日历有哪些大事
- 2026年8月有哪些新股申购
- 8月7日有什么资本市场事件
- 下周资本市场有哪些大事提醒
- 最近一期的隔夜全球要闻

调用 `invest_calendar_get`：

| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| `month` | string | 否 | 最新月份 | 月份 `YYYYMM`（如 `202608`），与 `date` 二选一 |
| `date` | string | 否 | - | 日期 `YYYYMMDD`（如 `20260807`），按天精确过滤，与 `month` 二选一 |

> 注意 日期无分隔符（`20260807`，不是 `2026-08-07`）。接口固定返回全部六类事件，无法按类型筛选；如需某一类，按 `typ` 自行过滤。

调用示例：`{}`（默认最新月份）/ `{"month": "202608"}` / `{"date": "20260807"}`

### 何时使用

**触发**：用户问"本月/某月投研日历/投资日历"、"某月有哪些大事/新股/财报"、"某日有什么资本市场事件"、"宏观事件/隔夜全球要闻/下周大事提醒"。
**不触发**：个股实时行情/K线/盘口、个股财务/估值/F10/研报、纯概念解释。

### 响应结构

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [ { "date": "2026-08-01 00:00:00", "events": [ ... ] } ]
}
```

- `errCode=0` 成功；非 0 看顶层 `errMsg`。
- `data` 按日期分组，每个元素含 `date` 与 `events`。

#### 事件类型（typ）

| typ | 名称 | 说明 |
|-----|------|------|
| 1 | 新股 | 每日新股申购/上市信息 |
| 2 | 大事 | 每日资本市场大事提醒 |
| 3 | 财报 | 上市公司财报披露日期 |
| 4 | 宏观事件 | 宏观经济数据、政策会议、行业事件（带行业/分类标签） |
| 5 | 隔夜全球要闻 | 每日隔夜全球金融市场要闻 |
| 6 | 下周大事提醒 | 下周资本市场大事提醒 |

#### 各 typ 字段说明

| typ | 字段 | 渲染方式 |
|-----|------|----------|
| 1 新股 / 3 财报 | `title` + `content` 股票列表（每行一条），无 `invest`/`id`，`time` 可能为空 | title 做小标题，`content` 按行展示 |
| 2/5/6 大事/隔夜/下周 | `title`（已含日期/星期）+ `content` 编号要点 + `id` + `time` | 显示 `title`，`content` 按编号缩进展示要点 |
| 4 宏观 | `invest` 对象（`desc`/`display_name`/`industry_name`/`invest_calendar_category_desc` 等）+ `time` | `[行业] [分类] 描述`，空值方括号省略 |

---

## 11. 行情排行榜单（quote_rank_get / lhb_aborttrade_get）

获取 A 股/ETF 实时排行榜单及龙虎榜数据。

**描述**：覆盖关键词：A 股涨幅排名 / ETF 换手率排行 / 资金净流入排行 / 个股资金流向 / 今日龙虎榜。数据通过 `quote_rank_get` 和 `lhb_aborttrade_get` 获取。

### 何时使用

| 用户意图 | 使用工具 |
|----------|----------|
| A 股涨幅/跌幅/成交额/换手率等排行 | quote_rank_get |
| ETF 涨幅/跌幅/换手率等排行 | quote_rank_get |
| 资金净流入排行 | quote_rank_get |
| 今日/某日龙虎榜、上榜个股、营业部买卖 | lhb_aborttrade_get |

### quote_rank_get - 行情排行

| 参数 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| rankType | string | 是 | 榜单类型：`ashare`=A股排行，`etf`=ETF排行 |
| sort | integer | 是 | 排序字段：`1`=涨跌幅，`2`=最新价，`3`=昨收价，`4`=成交量，`5`=成交额，`10`=换手率，`12`=涨跌值，`14`=振幅，`15`=5分钟涨速，`20`=资金流入 |
| sd | integer | - | 排序方向：`0`=升序，`1`=降序（默认 `1`） |
| pd | integer | - | 分页方向：`0`=下一页，`1`=上一页（默认 `0`） |
| from | integer | - | 起始位置，从 0 开始（默认 `0`） |
| count | integer | - | 返回数量，每页最大 100（默认 `10`） |

**使用示例**：
- A 股涨幅排行前 20：`rankType="ashare"`, `sort=1`, `count=20`
- A 股跌幅榜前 10：`rankType="ashare"`, `sort=1`, `sd=0`, `count=10`
- ETF 成交额排行：`rankType="etf"`, `sort=5`, `count=20`
- A 股资金净流入排行：`rankType="ashare"`, `sort=20`, `count=20`
- 翻页查询（第 2 页）：`rankType="ashare"`, `sort=1`, `from=20`, `count=20`

### lhb_aborttrade_get - 龙虎榜

| 参数 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| date | string | - | 日期，格式 `YYYYMMDD`（如 `20260812`），为空时默认查最新 |

**使用示例**：
- 查询最新龙虎榜：不传 date 参数
- 查询某日龙虎榜：`date="20260801"`

### 输出要求
- 涉及涨跌幅时补一句风险提示：排行数据不代表未来收益。
- 末尾标注：`数据来源：广发证券 GF Skills API`

---

## 12. stock_report_get — 个股研报摘要查询

查询某支股票最新券商研报列表。

**描述**：覆盖关键词：个股研报 / 券商研报 / 研报列表 / XX股票研报 / XX研报观点 / 机构研报 / 研报评级。最多返回最新 50 条。

**示例问法**：
- xxx股票最近有什么研报
- 000776.SZ 研报观点
- xxx股票机构研报有哪些

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，`secuType` 优先选 A股/港股/B股。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 是 | 股票代码 `代码.市场` |

最多返回 50 条，无分页参数。

**出参结构**：

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [
    { "title": "研报标题", "publishTime": "2026-08-07 10:30:00", "media": "研究机构", "detailLink": "https://...", "content": "研报摘要（可能为空）" }
  ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。`data` 按发布时间倒序。
- 每个研报对象固定字段：`title` / `publishTime` / `media`（研究机构）/ `detailLink`（原文链接）/ `content`（研报摘要，可能为空）。
- `content` 为空时仅展示标题与其他字段，不要补造内容。

### 何时使用

**触发**：用户问"XX 股票最近有什么研报/券商观点/机构评级""研报有哪些""研报列表"。
**不触发**：实时行情/K线/盘口、个股新闻资讯（走个股资讯）、个股财务/F10 基本面、全市场热点/宏观事件/投研日历、纯概念解释。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| Step 1 查不到股票 | 用知识库推断 `代码.市场` 直接调 Step 2；仍失败请用户提供准确代码 |
| Step 1 返回多条 | 优先选 A股/港股/B股；多条无法唯一确认时列出候选让用户确认 |
| Step 1 返回基金/指数/债券 | 非个股类型，需向用户确认是否继续 |
| 代码格式错误 | 必须为 `代码.市场` |
| Step 2 返回空 | 校验 secuCode 是否正确、该股票是否确有研报覆盖；回退 Step 1 重新校验 |
| 想看更早研报 | 最多返回 50 条，无法翻页 |


## 12. stock_report_get — 个股研报摘要查询

查询某支股票最新券商研报列表。

**描述**：覆盖关键词：个股研报 / 券商研报 / 研报列表 / XX股票研报 / XX研报观点 / 机构研报 / 研报评级。最多返回最新 50 条。

**示例问法**：
- xxx股票最近有什么研报
- 000776.SZ 研报观点
- xxx股票机构研报有哪些

需先调用 [secucode_search_get](#1-证券代码搜索secucode_search_get) 获取标准代码，`secuType` 优先选 A股/港股/B股。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `secuCode` | string | 是 | 股票代码 `代码.市场` |

最多返回 50 条，无分页参数。

**出参结构**：

```json
{
  "errCode": 0, "errMsg": "success",
  "data": [
    { "title": "研报标题", "publishTime": "2026-08-07 10:30:00", "media": "研究机构", "detailLink": "https://...", "content": "研报摘要（可能为空）" }
  ]
}
```

- `errCode=0` 成功；非 0 看 `errMsg`。`data` 按发布时间倒序。
- 每个研报对象固定字段：`title` / `publishTime` / `media`（研究机构）/ `detailLink`（原文链接）/ `content`（研报摘要，可能为空）。
- `content` 为空时仅展示标题与其他字段，不要补造内容。

### 何时使用

**✅ 触发**：用户问"XX 股票最近有什么研报/券商观点/机构评级""研报有哪些""研报列表"。
**❌ 不触发**：实时行情/K线/盘口、个股新闻资讯（走个股资讯）、个股财务/F10 基本面、全市场热点/宏观事件/投研日历、纯概念解释。

### 注意事项与错误恢复

| 问题 | 处理 |
|------|------|
| `errCode != 0` | 看顶层 `errMsg` 判断原因 |
| Step 1 查不到股票 | 用知识库推断 `代码.市场` 直接调 Step 2；仍失败请用户提供准确代码 |
| Step 1 返回多条 | 优先选 A股/港股/B股；多条无法唯一确认时列出候选让用户确认 |
| Step 1 返回基金/指数/债券 | 非个股类型，需向用户确认是否继续 |
| 代码格式错误 | 必须为 `代码.市场` |
| Step 2 返回空 | 校验 secuCode 是否正确、该股票是否确有研报覆盖；回退 Step 1 重新校验 |
| 想看更早研报 | 最多返回 50 条，无法翻页 |

---

## 13. 行业指标查询与解读（searchIndustryIndicators / queryIndicatorDetails）

查询行业、宏观、地区及大宗商品等**非个股**时序指标，并基于真实数据做投研解读。

精品数据库覆盖汽车、房地产、新能源、电力设备、机械、电子、基础化工、消费等 21 个重点行业，约 9 万个核心行业指标、200+ 垂类来源，提供行业经营、产业链与市场跟踪类时序数据。

**描述**：覆盖关键词：行业指标 / 宏观指标 / 指标数值 / 指标走势 / 最新值 / 数据解读，如「新能源汽车渗透率」「GDP增速」「动力煤价格」。

**示例问法**：
- 新能源汽车渗透率
- 商品房成交面积 / 光伏组件价格 / 汽车销量
- GDP增速最新值 / 动力煤价格走势
- 每间可售房收入RevPAR：全国_经济型：周

| 工具名称 | operationId | 用途 |
|---|---|---|
| **搜索行业指标** | `searchIndustryIndicators` | 按指标名关键词分词检索清单（名称、主题/分组、后续取数用的编号）。**不含数值。** |
| **查询指标数据** | `queryIndicatorDetails` | 按编号或完整名称批量拉详情与时间序列 |

推荐流程：**先「搜索行业指标」确认有哪些指标，再「查询指标数据」获取具体数值与走势。** 仅返回当前用户有权限、且仍在正常更新的指标。鉴权由平台注入，不要向用户索要或展示 token。

### 何时使用

**✅ 触发**：用户查询行业 / 宏观 / 地区 / 大宗商品等非个股主体的时序指标数值、走势或解读。调用搜索工具时，从问法中抽取**指标名关键词**作为 `query`，去掉「最新值」「走势」「查一下」等时间或口语修饰（「GDP增速最新值」→ `GDP增速`；「动力煤价格走势」→ `动力煤价格`）。
**❌ 不触发**：个股实时行情/K线、板块成分股名单、纯概念解释、新闻资讯。遇到时说明本能力覆盖行业 / 宏观 / 地区 / 大宗商品等时序指标，并请用户改用相应口径提问。

搜索结果的 `display_name` 通常是「指标名：主体/对象：频率或口径」三段式完整名称，用于候选消歧和详情查询；用户不必预先按三段式提问。

### 工作流程

```
用户自然语言
  → Step 1 解析关键词与时间
  → Step 2 搜索行业指标（已有 indicator_key 可跳过）
  → Step 3 查询指标数据
  → Step 4 先表格，后投研解读 + 免责声明
```

#### Step 1：解析用户问法

| 用户说法 | 动作 |
|---|---|
| 口语问法或普通指标名 | 去掉口语和时间修饰，抽出指标名关键词作为 `query` 单次传入 |
| 完整三段式（含两个「：」） | **整句原样**作为 `query` 单次传入，禁止拆成多段 |
| 已有上一轮返回的 `indicator_key` | 可跳过搜索，直接「查询指标数据」 |
| 「最新 / 最近 / 今日」 | 详情可不传日期，展示 `value_list` 最新一期 |
| 「近一年 / 近三年 / 2025年」或明确起止 | 映射为 `start_date` / `end_date`（`yyyy-MM-dd`） |
| 多个相关指标一起看 | 「查询指标数据」一次传入多个 `indicator_keys` |

时间映射：近一年 → 今日减 1 年至今日；近三年 → 今日减 3 年；2025 年 → `2025-01-01` ~ `2025-12-31`。不填日期则按系统默认范围返回。

#### Step 2：搜索行业指标（`searchIndustryIndicators`）

当你不确定具体指标叫什么、或想先看看库里有哪些相关数据时使用。只找清单，不会给出数值；单次最多约 50 条。

| 参数 | 类型 | 必填 | 说明 |
|---|---|:----:|---|
| `query` | string | ✅ | 指标名关键词；完整三段式则整句传入 |

```json
{ "query": "新能源汽车渗透率" }
```

出参（业务成功：`code == 200`，部分环境另有 `success == true`）：

| 字段 | 说明 |
|---|---|
| `indicator_key` | 指标编号。后续「查询指标数据」**优先使用** |
| `display_name` | 指标名称 |
| `cluster_name` | 所属主题/分组；可能为 `""` |

同一关键词可能返回簇下多口径及同比变体。用户已给完整名称时，**优先精确匹配 `display_name`**，勿把「周」误用成「周同比」。无法确定则列出名称 + 主题/分组请用户确认。无结果时把问法改得更具体后整体再搜一次，禁止拆词试探。

#### Step 3：查询指标数据（`queryIndicatorDetails`）

已经知道要查哪几个指标、想拿数值和时间序列时使用。单次最多 500 个指标。`indicator_keys` 与 `display_names` 至少提供一种。

| 参数 | 类型 | 必填 | 说明 |
|---|---|:----:|---|
| `indicator_keys` | array | 条件必填 | **推荐**。来自「搜索行业指标」的编号，可一次多个 |
| `display_names` | array | 条件必填 | 未提供编号时使用，须与库中返回的完整 `display_name` 一致（通常为三段式） |
| `cluster_name` | string | 否 | 按名称仍匹配不到时，用主题/分组辅助定位。不可单独作为唯一条件 |
| `start_date` | string | 否 | 开始日期，`yyyy-MM-dd` |
| `end_date` | string | 否 | 结束日期，`yyyy-MM-dd`，不得早于开始日期 |

优先只传 `indicator_keys` + 日期：

```json
{
  "indicator_keys": ["ind2024062487408648_tag074448458"],
  "start_date": "2023-01-01",
  "end_date": "2025-12-31"
}
```

出参 `data[]`：

| 字段 | 位置 | 展示 |
|---|---|---|
| `display_name` | 指标级 | 指标名称 |
| `frequency` | 指标级 | 更新频率，线上为中文频度如 `周度` / `月度` / `旬度` |
| `unit` | 指标级 | 单位，如 `元`、`元/件`、`万吨` |
| `cluster_name` | 指标级 | 主题/分组；空则不展示 |
| `data_source` | 指标级 | 数据来源，如 `酒店之家`、`蝉妈妈`、`同花顺iFinD` |
| `indicator_key` | 指标级 | 表注 |
| `value` | `value_list[]` | **原样展示**（数字、长小数或区间 `"[10,50)"`） |
| `data_time` | `value_list[]` | `yyyy-MM-dd`，按该指标 `frequency` 转换后展示 |

`data_time` 展示规则：

| frequency | 展示 |
|---|---|
| `日度` / `周度` | 日期 `yyyy-MM-dd` |
| `旬度` | 日=01 上旬、11 中旬、21 下旬（如 `2026-01-11` → 2026年1月中旬） |
| `月度` | 年月（`2026-01-01` → 2026年1月） |
| `季度` | 年季 |
| `年度` | 年 |
| 无法判断 | 原样显示 `data_time` |

多指标独立制表，不强行对齐日期。`value` 为区间时，解读中说明这是分档而非精确点值。

#### Step 4：输出（先表格，后解读）

顺序固定：**数据详情表格 → 投资研究解读 → 数据来源与免责声明**。

- **数据详情表格（必出）**：覆盖 `value_list` 有效记录；过长时取最新若干期并标注区间。列：指标名称 | 时间 | 频率 | 数值 | 单位。频率列直接展示返回值（如 `周度`）。
- **投资研究解读（必出）**：只基于真实数据，不得编造数值。覆盖：① 水平与趋势（当前值相对历史分位/均值，近期方向与斜率）；② 边际变化（最新一期环比/同比，是否拐点或加速/减速）；③ 驱动与关联（宏观/产业/供需，与上下游、价格、库存、政策的联动）；④ 投资含义（对相关行业、公司的景气与配置启示，区分短周期与中长期）；⑤ 风险与局限（频率、样本区间、季节性、口径变化；区间型数值的信息损失）。

输出模板：

```markdown
## {{display_name}}数据详情

> 数据来源：{{data_source}} | 主题/分组：{{cluster_name}} | 查询区间：{{start_date}} ~ {{end_date}}

| 指标名称 | 时间 | 频率 | 数值 | 单位 |
|----------|------|------|------|------|
| {{display_name}} | {{按 frequency 转换后的 data_time}} | {{frequency}} | {{value}} | {{unit}} |

### 投资研究解读

1. **水平与趋势**：…
2. **边际变化**：…
3. **驱动与关联**：…
4. **投资含义**：…
5. **风险与局限**：…

> 本回答由AI生成，仅供参考，不构成任何专业建议。
```

`cluster_name` 为空时省略「主题/分组」。

### 注意事项与错误恢复

| 情况 | 对用户 |
|---|---|
| 鉴权失败 | 说明精品数据库暂不可用，请稍后重试；不提及 token、appid |
| `code != 200` 或 `success == false` | 用通俗语言转述 `msg`，不编造数据 |
| 搜索无结果 | 请用户补充行业、主体或口径后再查 |
| 多条候选 | 选最贴合问法者；拿不准则列出名称请用户选 |
| `value_list` 为空 | 该时间范围内暂无数据，可换相邻指标或调整区间 |
| 超时 / 服务错误 | 自动重试最多 3 次（间隔 ≥ 2 秒）；仍失败则说明暂时查不到 |

### 响应前自查

- [ ] 调用的是「搜索行业指标」「查询指标数据」，不是 HTTP 路径名
- [ ] 已从用户问法抽取指标名关键词；仅用户已给完整三段式时整句传入；先搜索再查数（已有编号除外）
- [ ] 簇内多条时未误用同比/口径变体
- [ ] `indicator_keys` 与 `display_names` 至少一种；日期为 `yyyy-MM-dd`
- [ ] `value` 原样；`data_time` 按 `frequency` 转换
- [ ] 先表格后解读；数据来源用返回的 `data_source`；含免责声明
- [ ] 未向用户暴露鉴权信息

