skills/key-risk-client-list/SKILL.md
重点风险客户名单助手,适用于券商客户风控、财富管理、投顾服务、合规监控等场景。 以下情况请主动触发此技能: - 用户提供了客户风险数据,问"哪些客户风险高""帮我列个名单" - 用户问"重点风险客户怎么筛选""风险客户标准是什么" - 用户需要:重点风险客户筛选、风险等级排序、跟进建议 - 用户提到:风险客户、重点关注、高风险、预警客户、平仓风险 - 用户需要形成风险客户名单、跟进计划、风控报告 不要等用户明确说"重点风险客户"——只要涉及客户风险筛选、高风险客户识别、风险名单整理,就应主动启动此技能。
npx skillsauth add aifinlab/finclaw key-risk-client-listInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
你的核心职责:基于客户风险指标,筛选重点风险客户,形成清晰的风险名单和跟进建议,支持风控管理和客户服务。
收到用户请求后,先做两个判断:
判断 1:是否有客户风险数据?
判断 2:用户需要哪种深度?
| 用户意图 | 适用模板 | |---------|---------| | "哪些客户风险高""快速名单" | 模板 A:快速名单 | | "详细分析""风险报告" | 模板 B:标准报告 | | "跟进计划""处置建议" | 模板 C:处置版 | | 未明确说明 | 默认模板 A,再提供"需要详细报告可继续" |
客户基本信息:
风险指标数据:
交易行为数据:
预警记录:
1. 两融风险客户
2. 持仓风险客户
3. 交易风险客户
4. 综合风险客户
| 等级 | 风险评分 | 典型特征 | 跟进频率 | |-----|---------|---------|---------| | 高风险 | 80-100 分 | 触及平仓线/多次预警 | 每日跟进 | | 中风险 | 60-80 分 | 触及预警线/持仓集中 | 每周跟进 | | 低风险 | 40-60 分 | 风险指标偏高 | 每月跟进 | | 关注 | 20-40 分 | 轻微风险信号 | 季度跟进 |
风险评分 = 两融风险×0.3 + 持仓风险×0.3 + 交易风险×0.2 + 行为风险×0.2
两融风险 = (150 - 维保比例) / 50 × 100(维保比例<150 时)
持仓风险 = (集中度 - 20%) / 40% × 100
交易风险 = 异常交易次数 / 10 × 100
行为风险 = 预警次数 / 5 × 100
适用:"哪些客户风险高""快速名单"
**重点风险客户名单** | YYYY-MM-DD
**高风险客户(X 户)**:
| 客户 | 风险类型 | 关键指标 | 状态 |
|-----|---------|---------|------|
| 客户 A | 两融风险 | 维保 125% | 平仓风险 |
| 客户 B | 持仓风险 | 集中度 45% | 高度集中 |
| 客户 C | 交易风险 | 异常 8 次 | 频繁预警 |
**中风险客户(X 户)**:
| 客户 | 风险类型 | 关键指标 |
|-----|---------|---------|
| 客户 D | 两融风险 | 维保 145% |
| 客户 E | 持仓风险 | 集中度 35% |
**建议优先跟进**:客户 A、客户 B
适用:"详细分析""风险报告"
**重点风险客户名单报告** | YYYY-MM-DD
## 一、名单概览
**筛选标准**:xxx
**客户总数**:XX 户
- 高风险:XX 户
- 中风险:XX 户
- 低风险:XX 户
## 二、高风险客户明细
**客户 A**
- 客户类型:个人/机构
- 风险类型:两融风险
- 关键指标:维保比例 125%,低于平仓线
- 风险敞口:XX 万
- 历史预警:X 次
- 建议处置:立即联系,要求追加担保物
**客户 B**
- 客户类型:个人/机构
- 风险类型:持仓风险
- 关键指标:单一持仓 45%,行业集中 60%
- 风险敞口:XX 万
- 历史预警:X 次
- 建议处置:建议分散持仓
## 三、风险分析
**主要风险类型分布**:
- 两融风险:XX%
- 持仓风险:XX%
- 交易风险:XX%
**风险趋势**:
- 较上周变化:XX 户
- 新增高风险:XX 户
- 风险化解:XX 户
## 四、跟进建议
**优先级排序**:
1. 客户 A(平仓风险)
2. 客户 B(高度集中)
3. 客户 C(频繁预警)
适用:"跟进计划""处置建议"
**重点风险客户处置计划** | YYYY-MM-DD
**核心结论**:共 XX 户重点风险客户,需立即处置 X 户
**处置清单**:
| 客户 | 风险等级 | 风险类型 | 处置措施 | 责任人 | 时限 |
|-----|---------|---------|---------|-------|------|
| 客户 A | 高 | 两融风险 | 追保通知 | 张三 | 今日 |
| 客户 B | 高 | 持仓风险 | 风险提示 | 李四 | 3 日内 |
| 客户 C | 中 | 交易风险 | 电话沟通 | 王五 | 本周 |
**处置话术要点**:
- 客户 A:强调平仓风险,明确追加金额和时限
- 客户 B:建议分散持仓,提供调仓建议
- 客户 C:提示异常交易风险,了解交易意图
**跟踪要求**:
- 每日更新处置进展
- 高风险客户每日汇报
- 风险化解后更新名单
数据不完整:基于已有数据生成名单,说明"完整筛选需 XX 数据"
客户数量过多:按风险等级排序,优先呈现高风险客户,提供分页/筛选建议
风险类型复杂:如客户同时存在多类风险,综合评估后确定主要风险类型
敏感客户处理:如 VIP 客户、机构客户,提示"建议由资深投顾/专人跟进"
监管要求:
行业标准:
内部制度:
Python 风险客户筛选示例:
import pandas as pd
import numpy as np
def calc_risk_score(client_data):
"""
计算客户风险评分
参数:
client_data: 客户风险数据 DataFrame
返回:
风险评分 Series
"""
# 两融风险(0-100 分)
def margin_risk(row):
if row.get('maintenance_ratio', 200) < 150:
return min(100, (150 - row['maintenance_ratio']) / 50 * 100)
return 0
# 持仓风险(0-100 分)
def position_risk(row):
concentration = row.get('max_position_ratio', 0)
return min(100, (concentration - 20) / 40 * 100) if concentration > 20 else 0
# 交易风险(0-100 分)
def trade_risk(row):
abnormal_count = row.get('abnormal_trade_count', 0)
return min(100, abnormal_count / 10 * 100)
# 计算各维度风险
client_data['margin_risk'] = client_data.apply(margin_risk, axis=1)
client_data['position_risk'] = client_data.apply(position_risk, axis=1)
client_data['trade_risk'] = client_data.apply(trade_risk, axis=1)
# 综合风险评分
client_data['risk_score'] = (
client_data['margin_risk'] * 0.3 +
client_data['position_risk'] * 0.3 +
client_data['trade_risk'] * 0.2 +
client_data.get('warning_count', 0) / 5 * 100 * 0.2
)
return client_data['risk_score']
def filter_key_risk_clients(client_data, threshold=60):
"""
筛选重点风险客户
参数:
client_data: 客户风险数据 DataFrame
threshold: 风险评分阈值
返回:
重点风险客户 DataFrame
"""
client_data['risk_score'] = calc_risk_score(client_data)
# 风险等级划分
def get_risk_level(score):
if score >= 80:
return '高风险'
elif score >= 60:
return '中风险'
elif score >= 40:
return '低风险'
else:
return '关注'
client_data['risk_level'] = client_data['risk_score'].apply(get_risk_level)
# 筛选重点风险客户
key_clients = client_data[client_data['risk_score'] >= threshold].copy()
key_clients = key_clients.sort_values('risk_score', ascending=False)
return key_clients
# 使用示例
if __name__ == '__main__':
# 假设数据
data = {
'client_id': ['C001', 'C002', 'C003'],
'maintenance_ratio': [125, 145, 180],
'max_position_ratio': [45, 35, 20],
'abnormal_trade_count': [8, 3, 1],
'warning_count': [5, 2, 0]
}
df = pd.DataFrame(data)
key_clients = filter_key_risk_clients(df)
print(key_clients[['client_id', 'risk_score', 'risk_level']])
SQL 查询示例:
-- 查询重点风险客户名单
SELECT
c.client_id,
c.client_name,
c.client_type,
m.maintenance_ratio,
h.max_position_ratio,
t.abnormal_trade_count,
w.warning_count,
CASE
WHEN m.maintenance_ratio < 130 THEN '平仓风险'
WHEN m.maintenance_ratio < 150 THEN '预警风险'
WHEN h.max_position_ratio > 40 THEN '持仓集中'
WHEN t.abnormal_trade_count > 5 THEN '交易异常'
ELSE '其他风险'
END as risk_type,
CASE
WHEN m.maintenance_ratio < 130 OR h.max_position_ratio > 50 THEN '高'
WHEN m.maintenance_ratio < 150 OR h.max_position_ratio > 40 THEN '中'
ELSE '低'
END as risk_level
FROM client_info c
LEFT JOIN margin_risk m ON c.client_id = m.client_id AND m.trade_date = '2026-03-16'
LEFT JOIN (
SELECT client_id, MAX(position_ratio) as max_position_ratio
FROM holdings_risk
WHERE trade_date = '2026-03-16'
GROUP BY client_id
) h ON c.client_id = h.client_id
LEFT JOIN (
SELECT client_id, COUNT(*) as abnormal_trade_count
FROM abnormal_trade
WHERE trade_date >= DATE_SUB('2026-03-16', INTERVAL 30 DAY)
GROUP BY client_id
) t ON c.client_id = t.client_id
LEFT JOIN (
SELECT client_id, COUNT(*) as warning_count
FROM risk_warning
WHERE trade_date >= DATE_SUB('2026-03-16', INTERVAL 30 DAY)
GROUP BY client_id
) w ON c.client_id = w.client_id
WHERE m.maintenance_ratio < 150
OR h.max_position_ratio > 30
OR t.abnormal_trade_count > 3
ORDER BY
CASE
WHEN m.maintenance_ratio < 130 THEN 1
WHEN m.maintenance_ratio < 150 THEN 2
WHEN h.max_position_ratio > 40 THEN 3
ELSE 4
END;
development
# trust-valuation-engine ## 描述 信托资产估值引擎,支持非标债权估值、股权估值、净值计算、减值测试。 ## 功能 - 非标债权估值(现金流折现法) - 股权估值(市场法/收益法/资产基础法) - 净值计算与发布 - 减值测试与拨备 - 估值模型管理 ## 许可证 MIT License
development
# trust-risk-manager ## 描述 信托风险全流程管理工具,覆盖信用风险、市场风险、流动性风险、操作风险四大维度,提供实时监控、预警提示和风险处置建议。 ## 功能 - 信用风险评估(融资主体、担保措施、偿债能力) - 市场风险监控(利率、汇率、商品价格敏感性) - 流动性风险分析(期限错配、赎回压力、变现能力) - 操作风险检查(流程合规、系统安全) - 风险预警指标(VaR、CVaR、压力测试) - 风险限额管理(集中度、久期、杠杆) - 风险报告生成 ## 使用场景 - 风控部门日常监控 - 投后管理风险排查 - 新产品风险评审 - 监管报送数据准备 - 风险预警处置 ## 输入输出 ### 输入 ```json { "portfolio_id": "", "risk_type": "all|credit|market|liquidity|operation", "assets": [ { "asset_id": "", "asset_type": "非标债权|股票|债券|基金", "exposu
development
# trust-product-analyzer ## 描述 信托产品综合分析与筛选工具,支持产品信息抓取、风险评级、收益测算、合规检查和竞品对比。 ## 功能 - 信托产品信息智能抓取与解析(支持用益信托网、中国信托登记等平台) - 多维度风险评估(信用风险、市场风险、流动性风险) - 预期收益与实际收益对比分析 - 合格投资者适当性匹配 - 产品竞品横向对比 - 自动生成尽调报告 ## 使用场景 - 理财师为客户筛选合适信托产品 - 投资经理进行竞品分析 - 风控部门审查产品合规性 - 研究人员追踪市场产品发行情况 ## 输入输出 ### 输入 ```json { "action": "analyze|compare|screen", "product_code": "", "product_name": "", "filters": { "min_yield": 6.5, "max_duration": 24, "risk_level": ["R2", "R3"], "trust_type": "集合信托", "i
development
# trust-post-investment-monitor ## 描述 信托投后监控工具,提供预警指标追踪、风险事件监测、处置建议生成、定期报告输出。 ## 功能 - 融资主体监控(经营/财务/舆情) - 担保物监控(价值/权属/流动性) - 预警阈值管理 - 风险事件响应 - 处置方案建议 - 定期监控报告 ## 许可证 MIT License