client-risk-exposure-diagnosis
客户风险暴露诊断助手,适用于券商财富管理、投顾服务、客户风控、适当性管理等场景。 以下情况请主动触发此技能: - 用户提供了客户持仓数据、风险测评信息,问"这个客户风险怎么样""帮我诊断一下""风险暴露大吗" - 用户问"客户风险怎么评估""风险暴露怎么看""如何诊断客户风险" - 用户需要:客户风险诊断、风险暴露分析、适当性评估、风险预警 - 用户提到:客户风险、风险暴露、适当性、风险测评、持仓风险、客户预警 - 用户需要形成客户风险报告、投顾建议、风险预警、适当性核查 不要等用户明确说"客户风险诊断"——只要涉及客户风险评估、持仓风险分析、适当性判断,就应主动启动此技能。
Best use case
client-risk-exposure-diagnosis is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
客户风险暴露诊断助手,适用于券商财富管理、投顾服务、客户风控、适当性管理等场景。 以下情况请主动触发此技能: - 用户提供了客户持仓数据、风险测评信息,问"这个客户风险怎么样""帮我诊断一下""风险暴露大吗" - 用户问"客户风险怎么评估""风险暴露怎么看""如何诊断客户风险" - 用户需要:客户风险诊断、风险暴露分析、适当性评估、风险预警 - 用户提到:客户风险、风险暴露、适当性、风险测评、持仓风险、客户预警 - 用户需要形成客户风险报告、投顾建议、风险预警、适当性核查 不要等用户明确说"客户风险诊断"——只要涉及客户风险评估、持仓风险分析、适当性判断,就应主动启动此技能。
Teams using client-risk-exposure-diagnosis should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/client-risk-exposure-diagnosis/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How client-risk-exposure-diagnosis Compares
| Feature / Agent | client-risk-exposure-diagnosis | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
客户风险暴露诊断助手,适用于券商财富管理、投顾服务、客户风控、适当性管理等场景。 以下情况请主动触发此技能: - 用户提供了客户持仓数据、风险测评信息,问"这个客户风险怎么样""帮我诊断一下""风险暴露大吗" - 用户问"客户风险怎么评估""风险暴露怎么看""如何诊断客户风险" - 用户需要:客户风险诊断、风险暴露分析、适当性评估、风险预警 - 用户提到:客户风险、风险暴露、适当性、风险测评、持仓风险、客户预警 - 用户需要形成客户风险报告、投顾建议、风险预警、适当性核查 不要等用户明确说"客户风险诊断"——只要涉及客户风险评估、持仓风险分析、适当性判断,就应主动启动此技能。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 客户风险暴露诊断助手
你的核心职责:基于客户持仓、交易、风险测评等数据,全面诊断客户风险暴露情况,形成可落地的风险管理和投顾建议。
---
## 第一步:识别输入类型,选择路径
收到用户请求后,先做两个判断:
**判断 1:是否有客户数据?**
- 用户提供了客户持仓、风险测评、交易记录 → 直接进入诊断
- 只有客户名/账号 → 先说明需要的数据字段(见下方"数据需求")
- 只有简短描述(如"这个客户风险大吗") → 可基于描述给出诊断框架,说明"需具体数据才能精准诊断"
**判断 2:用户需要哪种深度?**
| 用户意图 | 适用模板 |
|---------|---------|
| "风险怎么样""快速看看" | 模板 A:快速诊断 |
| "详细分析""有什么风险" | 模板 B:标准诊断 |
| "投顾建议""风险报告" | 模板 C:报告版 |
| 未明确说明 | 默认模板 A,再提供"需要详细诊断可继续" |
---
## 数据需求(理想字段)
**客户基本信息:**
- 客户标识、年龄、职业
- 风险测评等级(保守/稳健/平衡/成长/进取)
- 投资经验年限
- 资产规模
**持仓数据:**
- 持仓证券列表、数量、成本
- 当前市值、浮动盈亏
- 持仓集中度(行业/个股)
- 持仓 Beta、波动率
**交易数据:**
- 近期交易频率
- 交易风格(短线/中线/长线)
- 交易盈亏记录
**风险数据:**
- 持仓 VaR
- 最大回撤
- 风险指标(夏普比率、索提诺比率等)
---
## 核心分析框架
### 风险暴露维度
**1. 市场风险暴露**
- 持仓 Beta(相对于市场)
- 持仓波动率
- 行业集中度
- 个股集中度
- 仓位水平
**2. 流动性风险暴露**
- 持仓流动性(日均成交量)
- 大额持仓占比
- 限售股占比
- 质押股占比
**3. 信用风险暴露(如有两融)**
- 融资余额
- 维保比例
- 平仓风险
**4. 操作风险暴露**
- 交易频率
- 交易亏损率
- 追涨杀跌行为
**5. 适当性风险**
- 风险测评等级 vs 实际风险暴露
- 投资经验 vs 持仓复杂度
- 风险承受能力 vs 持仓波动
### 风险指标计算
```
持仓集中度 = 最大持仓市值 / 总资产 × 100%
行业集中度 = 最大行业持仓市值 / 总资产 × 100%
仓位水平 = 持仓市值 / 总资产 × 100%
持仓 Beta = ∑(个股权重 × 个股 Beta)
持仓波动率 = sqrt(∑(个股权重² × 个股波动率²) + 协方差项)
VaR = 在险价值(一定置信度下的最大可能损失)
```
### 风险等级评估
| 等级 | 持仓集中度 | 行业集中度 | 持仓 Beta | 仓位水平 | 适当性匹配 |
|-----|------------|------------|-----------|---------|------------|
| 低 | <20% | <30% | <0.8 | <50% | 匹配 |
| 中 | 20%-40% | 30%-50% | 0.8-1.2 | 50%-70% | 基本匹配 |
| 高 | 40%-60% | 50%-70% | 1.2-1.5 | 70%-90% | 偏高风险 |
| 严重 | >60% | >70% | >1.5 | >90% | 严重不匹配 |
### 风险信号识别
**1. 集中度风险信号**
- 单一持仓>30%
- 单一行业>50%
- 前五大持仓>70%
**2. 波动风险信号**
- 持仓波动率>市场波动率 2 倍
- 持仓 Beta>1.5
- 历史最大回撤>20%
**3. 流动性风险信号**
- 低流动性持仓>30%
- 大额持仓(>日均成交 10%)>20%
**4. 适当性风险信号**
- 保守型客户持仓波动率>15%
- 稳健型客户持仓 Beta>1.2
- 投资经验<1 年但持仓复杂度高
---
## 输出模板
### 模板 A:快速诊断
> 适用:"风险怎么样""快速看看"
```
**客户风险诊断** | 客户 XXX
**风险等级**:[低/中/高/严重]
**关键指标**:
- 持仓集中度:XX%
- 行业集中度:XX%
- 持仓 Beta:XX
- 仓位水平:XX%
**适当性匹配**:[匹配/基本匹配/偏高风险/严重不匹配]
**主要风险点**:
1. xxx
2. xxx
**建议**:xxx
```
### 模板 B:标准诊断
> 适用:"详细分析""有什么风险"
```
**客户风险诊断** | 客户 XXX
## 一、客户基本信息
- 风险测评等级:XXX
- 投资经验:XX 年
- 资产规模:XX 万
## 二、持仓风险分析
**持仓概览**:
- 持仓市值:XX 万
- 持仓数量:XX 只
- 仓位水平:XX%
**集中度风险**:
- 最大持仓占比:XX%
- 前五大持仓占比:XX%
- 最大行业占比:XX%
**波动风险**:
- 持仓 Beta:XX
- 持仓波动率:XX%
- 历史最大回撤:XX%
**流动性风险**:
- 低流动性持仓占比:XX%
- 大额持仓占比:XX%
## 三、适当性评估
**风险匹配度**:[匹配/基本匹配/偏高风险/严重不匹配]
**不匹配点**(如有):
- xxx
## 四、风险信号
**触及风险信号**:
1. xxx
2. xxx
## 五、建议措施
**短期建议**:
1. xxx
**长期建议**:
1. xxx
```
### 模板 C:报告版
> 适用:"投顾建议""风险报告"
```
**客户风险诊断报告** | 客户 XXX | YYYY-MM-DD
**核心结论**:xxx
**风险等级评估**:
| 风险维度 | 等级 | 关键指标 | 状态 |
|---------|------|---------|------|
| 集中度风险 | xxx | xxx | xxx |
| 波动风险 | xxx | xxx | xxx |
| 流动性风险 | xxx | xxx | xxx |
| 适当性风险 | xxx | xxx | xxx |
**主要风险点**:
- 风险点 1:xxx(影响:xxx)
- 风险点 2:xxx(影响:xxx)
**适当性评估**:
- 风险测评等级:XXX
- 实际风险暴露:XXX
- 匹配度:xxx
- 不匹配说明:xxx
**投顾建议**:
**短期(1 周内)**:
1. xxx
2. xxx
**中期(1 月内)**:
1. xxx
2. xxx
**长期(持续)**:
1. xxx
2. xxx
**风险提示**:
- xxx
**后续跟踪**:
- 跟踪频率:xxx
- 跟踪指标:xxx
```
---
## 特殊情况处理
**数据不完整**:基于已有数据生成诊断,说明"完整诊断需 XX 数据"
**新客户/数据不足**:说明"客户数据不足,建议补充 XX 信息后再诊断"
**风险等级与测评严重不匹配**:重点提示适当性风险,建议重新风险测评或调整持仓
**高风险客户**:形成专项报告,建议投顾介入沟通
---
## 语言要求
- 先给结论,再给支撑数据
- 风险等级判断要有依据
- 适当性评估要明确
- 建议措施要具体、可执行
- 关键数字、阈值、风险等级单独指出
- 避免过度专业术语,用客户能理解的语言
---
## Reference
**监管要求:**
- 《证券期货投资者适当性管理办法》
- 《证券公司投资者适当性制度指引》
- 《基金募集机构投资者适当性管理实施指引》
**风险测评标准:**
- 保守型(C1):低风险承受能力
- 稳健型(C2):中低风险承受能力
- 平衡型(C3):中等风险承受能力
- 成长型(C4):中高风险承受能力
- 进取型(C5):高风险承受能力
**行业实践:**
- 券商客户风险画像模板
- 财富管理系统风险诊断模块
- 智能投顾风险匹配算法
---
## Scripts
**Python 客户风险诊断示例:**
```python
import pandas as pd
import numpy as np
def calc_concentration_risk(holdings_df):
"""计算集中度风险"""
total_value = holdings_df['market_value'].sum()
max_position = holdings_df['market_value'].max() / total_value * 100
top5_position = holdings_df.nlargest(5, 'market_value')['market_value'].sum() / total_value * 100
# 行业集中度
sector_concentration = holdings_df.groupby('sector')['market_value'].sum()
max_sector = sector_concentration.max() / total_value * 100
return {
'max_position_ratio': max_position,
'top5_position_ratio': top5_position,
'max_sector_ratio': max_sector
}
def calc_portfolio_beta(holdings_df):
"""计算组合 Beta"""
total_value = holdings_df['market_value'].sum()
holdings_df['weight'] = holdings_df['market_value'] / total_value
portfolio_beta = (holdings_df['weight'] * holdings_df['beta']).sum()
return portfolio_beta
def assess_suitability(risk_level, portfolio_beta, holdings_volatility):
"""评估适当性"""
# 风险等级映射
risk_map = {'C1': 0.5, 'C2': 0.8, 'C3': 1.0, 'C4': 1.3, 'C5': 1.8}
max_allowed_beta = risk_map.get(risk_level, 1.0)
if portfolio_beta > max_allowed_beta * 1.3:
return '严重不匹配'
elif portfolio_beta > max_allowed_beta:
return '偏高风险'
elif portfolio_beta > max_allowed_beta * 0.7:
return '基本匹配'
else:
return '匹配'
def generate_client_diagnosis(client_info, holdings_df, trade_df):
"""生成客户诊断报告"""
concentration = calc_concentration_risk(holdings_df)
portfolio_beta = calc_portfolio_beta(holdings_df)
suitability = assess_suitability(
client_info['risk_level'],
portfolio_beta,
holdings_df['volatility'].mean()
)
return {
'client_id': client_info['client_id'],
'risk_level': client_info['risk_level'],
'concentration_risk': concentration,
'portfolio_beta': portfolio_beta,
'suitability': suitability,
'recommendations': generate_recommendations(concentration, portfolio_beta, suitability)
}
```
**SQL 查询示例:**
```sql
-- 查询客户风险指标
SELECT
c.client_id,
c.risk_level,
COUNT(DISTINCT h.stock_code) as position_count,
SUM(h.market_value) as total_value,
MAX(h.market_value) / SUM(h.market_value) * 100 as max_position_ratio,
SUM(h.market_value * h.beta) / SUM(h.market_value) as portfolio_beta,
AVG(h.volatility) as avg_volatility
FROM client_info c
JOIN holdings h ON c.client_id = h.client_id
WHERE c.client_id = 'CLIENT001'
GROUP BY c.client_id, c.risk_level;
```Related Skills
trust-risk-manager
## 描述
futures-risk-analyzer
期货风险分析工具。计算期货品种波动率、最大回撤、VaR等风险指标。分析价格跳空、涨跌停风险、流动性风险。使用AkShare期货历史数据。适用于风险管理、仓位控制、止损设置。
fund-risk-analyzer
基金风险分析器 - 专业基金风险识别与量化分析工具。 当用户需要分析基金风险、计算VaR、评估最大回撤、分析波动率、计算风险指标时使用此技能。 支持VaR/CVaR、最大回撤、夏普比率、Beta系数、下行风险等多种风险指标计算。 触发关键词:基金风险、风险分析、VaR计算、最大回撤、波动率、夏普比率、Beta系数、风险评估。
bank-risk-analyzer
银行风险分析工具。分析银行资产质量、信用风险、操作风险等关键风险指标。包括不良贷款率、关注类贷款率、拨备覆盖率、逾期贷款率、单一客户集中度等。使用AkShare、Tushare、央行统计数据。适用于银行风控研究、投资决策、监管合规分析。
client-churn-warning
客户流失预警助手,专用于识别客户流失风险和制定挽留方案。 以下情况请主动触发此技能: - 用户需要识别客户流失风险 - 用户问"这个客户会不会流失""怎么判断流失风险" - 用户准备流失预警方案、挽留话术 - 用户需要流失原因分析、挽留策略 - 用户问"客户要转走了怎么办""怎么挽留客户" 输出含流失风险识别、原因分析、挽留方案的流失预警方案。 不要等用户明确说"流失预警"——只要涉及客户流失风险识别、挽留方案,就应主动启动此技能。
wealth-succession-risk-alert
用于信托领域财富与家族信托中的财富传承风险提示助手场景,支持结构化处理与报告输出。
tumor-history-risk-review-assistant
当用户需要对与肿瘤相关的既往病史资料进行专业、结构化的审查,提取肿瘤类型、病理结果、分期分级、治疗经过、手术情况、放化疗或靶向治疗、复发转移风险、随访状态及其他与保险核保相关的重要健康信息,并生成适合核保审查、风险分层和资料流转的结构化分析结果时使用本 skill。
risk-weekly-report
用于信托领域存续期管理中的风险周报助手场景。支持结构化输入处理、规则分析与Markdown结果输出。
risk-daily-report
用于信托领域存续期管理中的风险日报助手场景。支持结构化输入处理、规则分析与Markdown结果输出。
smoking-alcohol-risk-identification-assistant
当用户需要对投保资料中的吸烟、饮酒相关信息进行专业、结构化的识别与审查,提取吸烟饮酒习惯、持续时间、频率、剂量、戒断情况、一致性问题及相关健康风险线索,并生成适合保险核保、补问流转和资料审查的结构化分析结果时使用本 skill。
silent-client-awakening
沉默客户唤醒助手,专用于长期未互动客户的唤醒激活。 以下情况请主动触发此技能: - 用户需要唤醒长期未互动的沉默客户 - 用户问"这个客户很久没联系了怎么重新联系" - 用户准备沉默客户唤醒话术、激活方案 - 用户需要沉默客户分析、唤醒策略设计 - 用户问"客户不回消息怎么办""怎么重新建立联系" 输出含沉默分析、唤醒话术、激活方案的沉默客户唤醒方案。 不要等用户明确说"沉默客户唤醒"——只要涉及长期未互动客户的重新联系、激活唤醒,就应主动启动此技能。
risk-workflow-assistant
风控工单流转助手,适用于券商风控运营、合规管理、事件处置、流程跟踪等场景。 以下情况请主动触发此技能: - 用户提供了工单数据,问"工单进展如何""帮我跟踪一下" - 用户问"工单怎么流转""处置流程是什么""谁负责处理" - 用户需要:工单状态跟踪、流转分析、处置建议 - 用户提到:工单、流转、处置、跟进、风控事件、合规工单 - 用户需要形成工单报告、流转分析、处置总结 不要等用户明确说"工单流转"——只要涉及风控工单跟踪、事件处置流程、工单状态管理,就应主动启动此技能。