# Fund Candidate Discovery

> 基金候选发现 Skill。基于财富 MCP Gateway，通过基金类型、产品标签、投资风格和历史指标等条件召回并复核基金候选。适用于“筛选近三年回撤较小的基金”“找几只红利低波基金”“半导体相关基金中哪些波动较低”等问题。结果仅代表当前工具候选范围，不负责全市场严格筛选、个性化基金推荐或交易决策。

- Skill: `templeking/fund-candidate-discovery` (Agent Skill)
- Install (CLI): `npx skillmds@latest add templeking/fund-candidate-discovery`
- Raw SKILL.md: https://api.skillmd.com/api/skills/templeking/fund-candidate-discovery/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: TempleKing (https://skillmd.com/u/templeking)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/templeking/fund-candidate-discovery

---


# 基金候选发现 Skill

## 1. 功能范围

本 Skill 用于从当前工具可检索的基金范围中发现符合用户条件的候选基金，包括：

* 指标条件：收益、最大回撤、波动率、夏普率、规模等；
* 基金类型：偏股型、纯债型、货币型等；
* 风格标签：成长、价值、大盘、小盘、红利、低波等；
* 组合条件：多个基金内部条件组合；
* 实时表现：用户明确要求时补充当日估值和涨跌幅。

本 Skill 定位为“候选发现”，不保证覆盖全市场全部基金，不输出个性化推荐或买卖建议。

---

## 2. When to Use

当用户提出以下问题时，使用本 Skill：

### 指标筛选

* 筛选近三年最大回撤小于 15% 的基金。
* 找几只近一年夏普率较高的偏股基金。
* 找规模较大、历史波动较低的基金。
* 筛选近一年收益为正的纯债基金。


### 风格筛选

* 找几只红利低波基金。
* 筛选大盘价值风格基金。
* 找成长风格但历史波动相对较低的基金。

### 组合条件

* 找近三年回撤小于 20%、夏普率较高的偏股基金。
* 偏股基金中，哪些近一年波动较低
* 找几只大盘价值风格、规模在 10 亿元以上的基金。

---

## 3. When NOT to Use

以下问题不要用本 Skill 直接完成：

1. 用户已指定 2～5 只基金并要求详细比较。
2. 只分析一只具体基金。
3. 要求保证覆盖全市场全部符合条件的基金。
4. 要求返回严格意义上的全市场 TopN 排名。
5. 要求根据用户持仓、收入或风险偏好推荐基金。
6. 要求明确判断“应该买哪只”。
7. 要求买入、卖出、加仓、减仓或交易执行。
8. 要求预测基金未来收益或承诺回报。
9. 筛选条件涉及当前工具未返回的指标。
10. 用户从行业、板块赛道触发，要求查找相关基金，应该转向跨资产关联的Skill

如用户已指定具体基金，应转向单基金分析或多基金对比 Skill。

---

## 4. 场景识别与工具路由

| 用户意图 | 优先 Tool | 用途 |
| -------------- | ------------------------- | ------------------------ |
| 基金类型、风格或语义条件召回 | `queryFundCodes_7361` | 获取基金代码候选，不负责最终过滤 |
| 候选指标、类型和风格复核 | `queryKypInfo_3107` | 获取收益、风险、规模、持仓、风格和基金经理等信息 |
| 当日估值或实时表现 | `queryFundValuation_6326` | 用户明确询问时补充，不默认调用 |

工具调用原则：

1. `queryFundCodes_7361` 仅作为候选召回工具。
2. 不依赖 `queryFundCodes_7361` 执行数值阈值、AND 条件或指标排序。
3. `queryKypInfo_3107` 是条件复核和候选排序的核心工具。。
4. 实时估值不作为默认筛选条件。
5. 所有结果都应说明候选范围限制。

---

## 5. 工具能力边界

### 5.1 `queryFundCodes_7361`

当前测试表明：

* 可以根据基金类型、主题和风格词返回候选代码；
* `size` 只限制返回数量；
* 数值阈值不能可靠执行；
* 多条件不能确认是否按照 AND 关系执行；
* 排序关键词不能保证真实排序；
* 无意义、极端或矛盾条件也可能返回兜底结果；
* 返回非空不代表条件被正确理解。

因此：

1. 不得将其返回结果直接表述为“满足全部条件”。
2. 不得将返回顺序表述为真实 TopN 排名。
3. 不得因为返回了基金代码就认为数值阈值已执行。
4. 必须调用 `queryKypInfo_3107` 复核可验证条件。

### 5.2 `queryKypInfo_3107`

可用于复核：

* 日、周、近 1 / 3 / 6 / 12 / 36 月收益；
* 近 1 / 3 / 6 / 12 / 36 月最大回撤；
* 近 1 / 3 / 6 / 12 / 36 月波动率；
* 近 1 / 3 / 6 / 12 / 36 月夏普率；
* 对应同类排名；
* 基金类型、规模、费率和风险等级；
* 成长价值风格和市值风格；
* 资产配置和重仓股；
* 基金经理信息。

只有工具明确返回的字段才能参与过滤和排序。

---

## 6. 参数构造规则

### 6.1 指标与风格候选召回

调用 `queryFundCodes_7361` 时，优先传入基金范围、类型、主题或风格条件。

不依赖该工具执行精确数值阈值。

用户：

> 筛选近三年最大回撤小于 15% 的纯债基金。

建议候选召回参数：

```json
{
  "query": "纯债基金",
  "size": 20
}
```

候选返回后，再通过 `queryKypInfo_3107` 复核近 36 月最大回撤是否小于 15%。

用户：

> 找几只大盘成长风格基金。

构造：

```json
{
  "query": "大盘成长风格基金",
  "size": 20
}
```

返回结果只能视为语义候选，仍需通过 KYP 风格字段复核。

---

### 6.2 候选复核

将候选基金代码传入 `queryKypInfo_3107`：

```json
{
  "fundCodeList": ["基金代码1", "基金代码2"],
  "pageSize": 20,
  "currentPage": 1
}
```

只对 KYP 成功返回且可以验证的基金执行过滤和排序。

---

### 6.3 实时估值补充

只有用户明确要求“今天表现”“当前估值”时调用：

```json
{
  "fundCodes": ["基金代码1", "基金代码2"]
}
```

实时估值不等于最终净值，不得单独作为基金优劣判断。

---

## 7. 工作流策略：七步基金候选发现法

### Step 1：解析筛选条件

将用户条件拆分为：

* 基金范围：类型、主题或风格；
* 硬性条件：必须满足的指标或标签；
* 统计周期：近 1 / 3 / 6 / 12 / 36 月等；
* 排序条件：用户希望优先观察的指标；
* 结果数量；
* 是否要求实时表现。

示例：

> 筛选近三年最大回撤小于 15%、夏普率较高的偏股基金。

解析为：

* 基金范围：偏股型基金；
* 硬性条件：近 36 月最大回撤小于 15%；
* 排序指标：近 36 月夏普率从高到低；
* 默认展示数量：5 只。

不得擅自添加用户没有提出的数值阈值。

---

### Step 2：选择候选来源

#### 指标、类型或风格条件

统一调用 `queryFundCodes_7361`，仅用于召回基金候选。备用 queryKypInfo_3107 复核。

本 Skill 不处理外部板块、行业或赛道实体导航到基金的请求

如果工具返回数量较少，不得通过模型记忆补充其他基金。

---

### Step 3：建立候选池

候选生成后：

1. 提取基金代码；
2. 删除重复代码；
3. 默认控制候选池不超过 20 只；
4. 调用 `queryKypInfo_3107` 获取候选画像；
5. 检查基金名称、代码和类型是否正确。

候选池仅代表当前工具召回范围，不代表全市场基金全集。

---

### Step 4：复核硬性条件

根据 KYP 数据逐项验证用户条件。

处理规则：

1. 数值条件必须根据 KYP 实际字段判断。
2. 多个硬性条件应逐项执行。
3. 字段缺失时标记为“无法验证”，不得默认视为满足。
4. 成立时间不足统计周期时，不得使用短周期数据替代。
5. 不得根据基金名称猜测基金类型、风格或策略。
6. 不得自行计算 KYP 未返回的指标。

例如：

> 近三年最大回撤小于 15%。

必须检查近 36 月最大回撤字段，不能使用近 12 月回撤代替。

---

### Step 5：检查异常值与可比性

排序前检查：

* 基金类型是否一致；
* 数据周期是否一致；
* 数据日期是否接近；
* 是否存在指标缺失；
* 是否存在成立时间不足；
* 是否存在同一基金的不同份额；
* 是否混入货币基金等风险属性明显不同的产品；
* 风格或标签是否有 KYP 数据支持。

处理原则：

1. 不同类型基金不进行机械统一排名。
2. 货币基金最大回撤为 0，不代表综合表现优于权益基金。
3. 同一基金不同份额应合并展示或说明份额差异。
4. 极端数值应提示，不得自动判断为数据错误。
5. 未经验证的风格词只能标记为“语义召回候选”。

---

### Step 6：排序和数量控制

先应用硬性条件，再根据用户指定指标排序。

排序规则：

1. 用户明确指定排序指标时，以该指标排序。
2. 用户未指定时，不生成综合评分。
3. 不依赖 `queryFundCodes_7361` 返回顺序。
4. 不自行设置收益、回撤、波动率和夏普率的加权分数。
5. 并列结果可展示规模、同类排名等辅助字段。
6. 默认展示 5 只，通常不超过 10 只。

如果用户说“较稳”“风险较低”，应明确采用的口径，例如：

> 本次将“较稳”解释为相同周期下最大回撤和波动率相对较低。

如果没有候选满足全部条件，不得静默放宽阈值。

---

### Step 7：输出候选与筛选依据

输出应包括：

1. 用户筛选条件；
2. 候选召回方式；
3. KYP 复核结果；
4. 最终候选及关键指标；
5. 排序依据；
6. 缺失和异常说明；
7. 候选范围限制。

推荐表达：

* 以下结果来自当前工具召回的候选池，并经过 KYP 指标复核。
* A 满足近 36 月最大回撤条件，并在有效候选中夏普率相对较高。
* B 因近 36 月数据缺失，未纳入最终排序。
* C 由“红利低波”语义条件召回，但当前字段不足以完全验证策略标签。
* 当前结果不代表全市场全部符合条件的基金。

不得输出：

* 全市场最好的基金；
* 严格 Top1 或 TopN；
* 推荐用户购买某只基金；
* 工具未返回的综合评分；
* 基于用户个人情况的适配结论。

---

## 8. 自然语言条件映射

| 用户表达  | 处理规则 |
| ----- | ------------------------- |
| 回撤小 | 必须确定最大回撤周期 |
| 波动低 | 使用相同周期的波动率 |
| 比较稳 | 结合最大回撤和波动率，并说明口径          |
| 性价比高 | 含义不明确，可解释为风险调整后收益，但不得静默转换 |
| 长期表现好 | 优先观察近 36 月，并检查成立时间 |
| 红利低波 | 作为语义召回条件，再结合风格、行业和持仓复核    |
| 大盘价值 | 结合市值风格和成长价值风格复核 |
| 行业分散 | 需要行业配置字段支持 |
| 规模别太小 | 用户未指定阈值时，不得自行设置具体规模条件 |
| 最近表现好 | 用户未指定周期时，应明确采用的默认周期 |

对于模糊条件，应在结果中说明本次采用的解释口径。

---

## 9. 风格和策略筛选规则

### 成长、价值、大盘和小盘

可以通过 `queryFundCodes_7361` 召回，再使用 KYP 返回的：

* 成长价值风格；
* 市值风格；
* 行业和持仓结构；

进行复核。

### 红利、低波等策略词

可以作为语义召回条件，但必须区分：

* 基金名称中包含相关关键词；
* 工具明确返回相关策略或风格；
* 仅从持仓和行业特征推测相关性。

如果 KYP 没有明确策略标签，应说明：

> 该基金由相关关键词召回，但当前工具不足以完全验证其是否严格采用该策略。

不得只根据基金名称认定其实际投资风格。

---

## 10. 输出规范

### 推荐输出结构

```text
一、筛选条件
- 基金范围：
- 硬性条件：
- 排序指标：
- 候选范围：

二、复核后的候选
| 基金 | 代码 | 核心指标 | 风格 | 复核结果 |
| --- | --- | --- | --- | --- |

三、结果说明
- A 满足……
- B 因……未纳入排序。
- C 的某项条件暂时无法完全验证。

四、范围与风险提示
- 结果仅来自当前工具召回的候选池，不代表全市场完整名单。
- 历史指标不代表未来表现。
- 以上为候选发现，不构成投资建议。
```

总体要求：

1. 表格只展示与筛选条件相关的字段。
2. 明确区分召回条件、硬性条件和排序条件。
3. 不展示完整原始 JSON。
4. 不展示接口名称、内部 class 或 debug 信息。
5. 不编造缺失指标。
6. 不将语义召回结果包装成严格筛选结果。
7. 不输出个性化推荐或交易建议。

---

## 11. 禁止默认调用的 Tools

本 Skill 默认不得调用：

* `queryKycInfo_3105`
* `queryPersonalIndex_6139`
* `queryUserMemory_7495`
* `queryAssetAllocationSuggestion_3341`
* `queryFamilyFundsAllocation_3340`
* `fundRecommend_5756`
* `queryStockCodes_7724`
* `queryStockKypInfo_7192`
* `querySecuQuote_7681`
* `queryComponentInfo_3108`
* `queryComponentInfo_4206`
* `joyAsk_6375`
* `page_7422`
* `requestMethod_5731`
* `queryBoardFund_7222`

这些工具涉及用户画像、个性化推荐、股票筛选、交易或内部能力，不属于基金候选发现范围。

---

## 12. 错误与降级处理

### 候选工具返回不合理结果

如果 `queryFundCodes_7361` 在无意义、极端或矛盾条件下仍返回基金：

1. 不将返回结果视为条件已执行。
2. 使用 KYP 逐项复核。
3. 无法复核时，明确说明当前候选召回不可靠。
4. 不输出最终筛选结论。

### 数值条件无法验证

如果 KYP 未返回相应周期或指标：

1. 标记为“无法验证”；
2. 不将该基金视为满足条件；
3. 不使用其他周期代替；
4. 不自行计算。

### 没有基金满足全部条件

应说明：

> 在当前工具召回并成功复核的候选范围内，暂未发现满足全部条件的基金。

可以指出限制较强的条件，但不得自动放宽。

### 部分候选 KYP 查询失败

1. 展示成功复核的候选；
2. 单独列出未成功复核的基金；
3. 未复核基金不得进入最终排序。

---

## 13. 示例流程

### 示例 1：指标筛选

用户：

> 筛选近三年最大回撤小于 15% 的纯债基金。

流程：

1. 解析范围为纯债基金，硬条件为近 36 月最大回撤小于 15%。
2. 调用 `queryFundCodes_7361` 召回纯债基金候选。
3. 调用 `queryKypInfo_3107` 获取近 36 月最大回撤。
4. 在候选池内执行实际阈值过滤。
5. 输出满足条件的候选，并说明不代表全市场完整结果。

---

### 示例 2：指标与排序组合

用户：

> 找近三年回撤小于 20%、夏普率较高的偏股基金。

流程：

1. 召回偏股基金候选。
2. 使用 KYP 过滤近 36 月最大回撤小于 20%。
3. 对满足条件且有数据的基金按近 36 月夏普率排序。
4. 不依赖候选工具原始顺序。
5. 默认展示前 5 只有效候选。


---

### 示例 4：风格选基

用户：

> 找几只大盘价值风格基金。

流程：

1. 使用“大盘价值风格基金”召回候选。
2. 调用 KYP 检查成长价值风格和市值风格。
3. 只保留风格字段能够验证的候选。
4. 未返回风格字段的基金标记为无法验证。
5. 不将语义召回结果直接视为严格风格分类。

---

### 示例 5：策略词筛选

用户：

> 找几只红利低波基金。

流程：

1. 使用“红利低波策略基金”召回候选。
2. 调用 KYP 检查基金类型、风格、行业和持仓特征。
3. 对无法确认严格策略标签的候选进行说明。
4. 不输出“全市场红利低波基金排名”。
5. 不直接推荐用户购买。

---

### 示例 6：极端条件

用户：

> 找收益超过 100000% 的基金。

流程：

1. 即使候选工具返回基金，也不得认为条件成立。
2. 调用 KYP 复核对应收益指标。
3. 如果没有候选满足条件，明确说明当前候选范围内没有符合结果。
4. 不采用候选工具的兜底列表作为答案。

