| name | ficc-analysis-report |
| description | 招商银行FICC经营分析报告生成器,LLM驱动报告生成,支持18个业务团队,多维度分析(损益归因、RAROC/EVA、风险监控),引导式数据收集与数据库采集双模式,交互式确认与H5可视化 |
| dependency | {"python":["jinja2>=3.1.0","cx_Oracle>=8.3.0","pymysql>=1.0.0","psycopg2-binary>=2.9.0"]} |
招商银行FICC经营分析报告生成技能
任务目标
- 本 Skill 用于:自动化生成招商银行资金营运中心FICC条线的经营分析报告
- 能力包含:18个业务团队的经营分析、损益归因、RAROC/EVA绩效评估、风险管理、Markdown报告生成、H5可视化页面
- 触发条件:用户请求生成FICC业务经营分析报告,指定团队、业务线或分析维度
前置准备
核心工作流程(LLM驱动)
Phase 1: 需求理解与模板选择
由LLM处理:
-
识别业务团队
团队关键词对照表:
| 一级团队 | 二级团队 | 关键词 | 参考模板文件 |
|---|
| 自营投资 | 本币投资 | 本币投资、利率债投资、信用债投资 | proprietary/rmb_investment_reference.md |
| 自营投资 | 外币债券 | 外币债券、美元债、欧元债 | proprietary/rmb_investment_reference.md |
| 自营投资 | 信用与基金 | 信用与基金、基金投资 | proprietary/rmb_investment_reference.md |
| 债券交易 | 本币交易 | 本币交易、利率债交易、信用债交易 | fixed_income/rmb_trading_reference.md |
| 外汇交易 | OTC交易 | OTC交易、外汇OTC、代客外汇 | fx/otc_trading_reference.md |
| 外汇交易 | CFETS做市 | CFETS做市、做市、外汇做市 | fx/cfets_market_making_reference.md |
| 商品交易 | 贵金属 | 贵金属、黄金、白银 | commodities/precious_metal_reference.md |
| 销售交易 | 代客衍生 | 代客衍生、利率衍生、外汇衍生 | sales/derivatives_reference.md |
| 香港交易中心 | - | 香港交易中心、香港、跨境 | hk_center/hk_trading_reference.md |
-
确定分析周期
- 月度分析:格式为"YYYY年MM月"
- 季度分析:格式为"YYYY年QX"
- 年度分析:格式为"YYYY年度"
Phase 2: 数据准备(双模式支持)⭐关键环节
支持两种数据准备模式,根据用户实际情况自动选择:
模式A:引导式数据收集(用户无原始数据时使用)
触发条件:用户未提供任何原始数据文件,或数据不完整
执行流程:
-
确定业务团队和分析周期
LLM询问:
1. 请问需要分析哪个业务团队?
[可选:贵金属、外汇OTC、外汇做市、本币交易、本币投资、代客衍生...]
2. 请问分析周期是什么?
[格式:2025年Q1 / 2025年3月 / 2024年度]
-
按优先级收集必需数据
参考:references/data_collection_guide.md
第一优先级:核心指标(必需)
请提供以下核心指标:
1. 当期总收入是多少亿元?(如:0.8亿元)
2. 同比增长是多少?(如:15.2%)
3. 预算完成率是多少?(如:89%)
第二优先级:收入分解(必需)
根据业务类型,按references/data_collection_guide.md中对应业务的收入分解字段引导用户:
- 贵金属:单边收入、价差收入、错币种收入
- 外汇OTC:即期、远期、掉期、期权收入
- 本币债券:票息、资本利得、估值损益、资金成本
- 代客衍生:利率衍生、外汇衍生、商品衍生收入
第三优先级:策略复盘(必需)
请描述本期主要交易策略的复盘情况:
策略1:
1. 策略名称:___(如:黄金第一波上涨行情)
2. 时间段:___(如:2025年1月-4月)
3. 市场背景:___
4. 价格走势:起始价格___,结束价格___
5. 持仓操作:最大持仓___,主要操作时点___
6. 收益对比:实际收益___亿元,若持续持有可获利___亿元
7. 主要问题:___
第四优先级:风险指标(推荐)
请提供以下风险指标:
1. VaR(95%置信度):___亿元
2. 最大回撤:___%
3. 对冲有效性:___%
第五优先级:历史数据(可选)
如需生成历史趋势对比,请提供近5年的数据:
年份 收入(亿元) 预算(亿元)
2020 ___ ___
2021 ___ ___
...
-
数据验证与确认
- 收入分解合计 = 总收入(允许±5%误差)
- 必需字段完整性检查
- 向用户展示收集到的数据摘要,确认无误
模式B:数据库连接采集(有数据库访问权限时使用)
触发条件:用户具备内网数据库访问权限,需要批量采集数据
执行流程:
-
配置数据库连接凭证
首次使用时,调用skill_credentials工具配置凭证:
LLM询问:
检测到您需要使用数据库采集模式,请提供数据库连接信息:
- 数据库类型:Oracle / MySQL / PostgreSQL
- 主机地址:___
- 端口:___
- 数据库名/服务名:___
- 用户名:___
- 密码:___
凭证配置说明:
- 凭证名称:
ficc_db
- 授权类型:ApiKey
- 凭证格式:
username:password
- 环境变量:
COZE_FICC_DB_7599667191994351650
-
执行数据采集脚本
python scripts/db_connector.py \
--db-type oracle \
--business-line 贵金属 \
--period "2025年Q1" \
--host 10.10.10.100 \
--port 1521 \
--service-name FICCDB \
--output data.json
-
数据格式转换
-
数据质量检查
- 检查收入分解是否完整
- 检查历史数据年份是否连续
- 检查收益对比数据是否合理
模式选择决策树
用户发起请求
│
├─ 用户已提供完整数据?
│ │
│ ├─ 是 → 直接使用数据,进入Phase 3
│ │
│ └─ 否 → 询问数据来源
│ │
│ ├─ 用户有数据库权限?
│ │ │
│ │ ├─ 是 → 使用模式B(数据库采集)
│ │ │
│ │ └─ 否 → 使用模式A(引导式收集)
│ │
│ └─ 部分数据?
│ │
│ └─ 引导补充缺失字段
数据格式规范
无论使用哪种模式,最终数据需符合references/data_schema.md的格式要求:
{
"business_line": "贵金属",
"period": "2025年Q1",
"current": {
"total_revenue": 0.8,
"yoy_growth": 15.2,
"budget_completion_rate": 89.0,
"revenue_breakdown": {
"单边": 0.5,
"价差": 0.2,
"错币种": 0.1
}
},
"trading_strategies": [...],
"risk_metrics": {...},
"historical": {...}
}
Phase 3: 指标计算(Python辅助)
仅当需要复杂数学计算时调用Python脚本:
-
RAROC计算
from calculate_metrics import MetricsCalculator
calculator = MetricsCalculator()
result = calculator.calculate_raroc({
'net_pnl': 1.2,
'tax': 0.1,
'personnel_cost': 0.05,
'business_cost': 0.03,
'provision': 0.02,
'capital': 0.8
})
-
EVA计算
result = calculator.calculate_eva({
'revenue': 1.5,
'funding_cost': 0.3,
'operating_cost': 0.1,
'tax_rate': 0.25,
'capital': 0.8,
'wacc': 0.15
})
-
损益归因计算
result = calculator.calculate_pnl_attribution({
'principal': 100,
'coupon_rate': 0.035,
'holding_days': 90,
'cost': 98,
'maturity': 3650,
'buy_price': 98,
'sell_price': 99,
'position': ,
: ,
: ,
: ,
: ,
:
})
RAROC分层目标参考:
- 全行FICC:≥15%
- 业务线:≥12%
- 交易簿:≥10%
- 交易员:≥8%
Phase 4: 报告生成与交互确认(LLM驱动)⭐关键环节
由LLM根据模板生成完整报告,并提供用户确认:
-
读取业务参考模板
- 根据 Phase 1 选择的业务团队,读取对应的
*_reference.md 模板文件
- 例如:贵金属 →
templates/commodities/precious_metal_reference.md
- 理解模板结构和章节安排
- 重要: 模板仅作为结构参考,LLM根据实际数据灵活调整内容
-
填充数据与撰写内容
- 按照真实案例的结构撰写:
- 一、历史业务情况回顾(历年对比、预算完成率)
- 二、当期经营情况分析(收入分解、市场对比)
- 三、交易策略复盘(具体时间段操作)
- 四、收益评估(实际vs模拟测算)
- 五、风险管理情况
- 六、核心观点提炼
-
关键内容撰写要点
- 历史回顾:描述历年收入趋势、预算完成情况
- 收入分解:详细分析收入来源、各品种贡献
- 策略复盘:
- 明确时间段和市场背景
- 描述持仓操作的时序变化
- 对比实际收益与模拟测算(持续持有)
- 识别关键问题(用✗标记)
- 核心观点:提炼3-5条核心结论
-
数据展示要求
- 使用表格展示数据对比
- 使用列表描述操作过程
- 使用✗标记问题点
- 使用✓标记成绩点
-
⭐输出Markdown报告供用户确认
必须执行的操作:
-
⭐交互式调整循环
如果用户选择"需要调整":
- 根据用户反馈修改报告内容
- 重新展示修改后的Markdown报告
- 再次询问用户确认
- 持续循环直到用户满意为止
常见调整类型:
- 数据修正:更新错误的数值
- 内容补充:增加遗漏的分析维度
- 表述优化:调整专业术语或表达方式
- 结构调整:重新组织章节顺序
- 问题深化:对特定问题进行更深入分析
只有用户明确确认满意后,才能进入Phase 5!
Phase 5: H5可视化页面生成(LLM驱动)⭐大模型生成H5
用户确认满意后,由LLM生成H5可视化页面:
-
读取H5模板与规范
-
LLM生成H5页面
生成原则:
- 基于已确认的Markdown报告内容
- 使用招商银行品牌色(#C7162E)
- 单页面应用,支持滚动浏览
- 响应式设计,支持手机和PC访问
- 使用内联CSS和JavaScript,无需外部依赖
必须包含的元素:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ 业务线 }}{{ 分析周期 }}经营分析报告</title>
<style>
:root {
--primary-color: #C7162E;
--secondary-color: ;
: ;
: ;
: ;
}
资源索引
核心参考文档
PPT模板参考文档
业务模板(按团队分类)
H5模板
Python脚本
使用示例
示例1:模式A(引导式数据收集)- 用户无原始数据
Step 1: 用户发起请求
用户:帮我生成贵金属团队2025年Q1的经营分析报告
Step 2: LLM检测无数据,启动引导式收集
LLM:好的,贵金属业务分析。请问分析周期是什么?
用户:2025年Q1
LLM:明白了。请提供以下核心指标:
1. 当期总收入是多少亿元?(如:0.8亿元)
2. 同比增长是多少?(如:15.2%)
3. 预算完成率是多少?(如:89%)
用户:总收入0.8亿,同比增长15.2%,预算完成率89%
LLM:收到。请提供收入来源分解:
- 黄金单边交易收入:___亿元
- 境内外价差收入:___亿元
- 其他收入:___亿元
用户:单边0.5亿,价差0.2亿,其他0.1亿
LLM:数据已记录。请描述本期主要交易策略的复盘情况:
1. 策略名称:___
2. 时间段:___
3. 市场背景:___
4. 价格走势:起始价格___,结束价格___
5. 收益对比:实际收益___亿元,若持续持有可获利___亿元
6. 主要问题:___
用户:策略是黄金第一波上涨,1月-4月,从2650涨到3500,
实际获利1.2亿,持续持有可获利2.8亿,减仓过早
LLM:数据收集完成,正在生成报告...
[生成Markdown报告]
Step 3: 展示报告并询问确认
LLM:报告已生成,请确认内容是否符合预期:
[完整Markdown报告]
---
请选择:
1. 确认满意,继续生成H5可视化页面
2. 需要调整,请说明修改要求
示例2:模式B(数据库采集)- 用户有数据库权限
Step 1: 用户发起请求
用户:从数据库采集贵金属团队2025年Q1的经营数据,生成分析报告
Step 2: LLM检测需要数据库连接,配置凭证
LLM:检测到需要数据库连接,请提供数据库连接信息:
- 数据库类型:Oracle / MySQL / PostgreSQL
- 主机地址:___
- 端口:___
- 服务名/数据库名:___
- 用户名:___
- 密码:___
用户:Oracle,10.10.10.100,1521,FICCDB,ficc_user,xxx
LLM:正在配置数据库凭证...
[调用skill_credentials工具配置凭证]
凭证配置成功!
Step 3: 执行数据库采集
LLM:正在连接数据库并采集数据...
[执行 scripts/db_connector.py]
连接Oracle数据库成功!
正在采集贵金属业务2025年Q1数据...
数据采集完成,已保存到data.json
Step 4: 生成报告
LLM:数据采集完成,正在生成报告...
[生成Markdown报告]
示例3:用户提供部分数据 - 智能补充收集
Step 1: 用户提供部分数据
用户:帮我生成贵金属团队2025年Q1的经营分析报告
- 总收入:0.8亿元
- 同比增长:15.2%
Step 2: LLM检测数据不完整,引导补充
LLM:已记录核心指标。还需要以下数据:
1. 预算完成率是多少?
2. 收入来源分解:
- 黄金单边交易收入:___亿元
- 境内外价差收入:___亿元
- 其他收入:___亿元
3. 交易策略复盘(至少1个)
用户:预算完成率89%,单边0.5亿,价差0.2亿,其他0.1亿
策略是黄金上涨行情,实际1.2亿,模拟2.8亿
LLM:数据已收集完整,正在生成报告...
示例4:用户直接提供完整数据
Step 1: 用户发起请求
用户:帮我生成贵金属团队2025年Q1的经营分析报告,数据如下:
- 总收入:0.8亿元
- 同比增长:15.2%
- 预算完成率:89%
- 黄金单边收入:0.5亿元
- 境内外价差收入:0.2亿元
- 黄金第一波上涨行情:1月-4月,从2650涨到3500美元/盎司,
实际获利1.2亿元,但减仓过早,若持续持有可获利2.8亿元
Step 2: LLM识别业务团队
LLM:识别业务团队:贵金属 → 选择模板:commodities/precious_metal.md.jinja2
数据已完整,正在生成报告...
V2.0 优化说明
优化目标
本技能已进行V2.0优化,主要改进:
- 强化数据收集引导 - 分阶段收集,降低用户压力,数据完整性从40%提升到80%
- 智能数据推断 - 自动计算涨幅、收益差距等衍生指标,减少用户计算负担
- 增强策略复盘深度 - 引入持仓操作时间线模板,支持深度复盘
- 数据验证流程 - 事前验证,主动询问补充缺失数据
智能数据推断功能
以下指标由LLM自动计算,无需用户输入:
| 指标 | 计算公式 | 示例 |
|---|
| 价格涨幅 | (结束价格 - 起始价格) / 起始价格 | (3500-2650)/2650 = 32.1% |
| 收益差距金额 | 持续持有收益 - 实际收益 | 2.8-1.2 = 1.6亿元 |
| 收益差距占比 | 收益差距金额 / 持续持有收益 | 1.6/2.8 = 57.1% |
| 收入占比 | 单项收入 / 总收入 | 0.5/0.8 = 62.5% |
实现方式: LLM在数据收集过程中实时计算并展示,自动填充到报告中。
增强策略复盘深度
持仓操作时间线模板
位置:templates/position_timeline_template.md
功能: 引导用户提供详细的持仓操作时间线,包含至少3-5个关键时间点。
使用方式:
LLM引导:
收到策略信息。为了进行深度复盘,请补充以下详细信息:
1. 市场背景是什么?(如:美联储降息预期、地缘政治风险等)
2. 请提供持仓操作时间线(至少3个关键时间点):
| 时间点 | 持仓变化 | 价格 | 说明 |
|-------|---------|------|------|
| 1月初 | 建仓___万盎司 | 2650 | |
| 2月 | ___ | ___ | |
| 4月初 | ___ | 3500 | |
3. 主要问题有哪些?(如:减仓过早、持仓过小等)
模板特点:
- ✅ 结构化时间线,清晰展示操作过程
- ✅ 自动计算价格涨幅和收益差距
- ✅ 用✗标记具体问题点
- ✅ 提炼可操作的经验总结
数据验证流程
在生成报告前,LLM会进行以下验证:
| 验证点 | 验证规则 | 处理方式 |
|---|
| 收入分解合计 | 单边+价差+其他 = 总收入 | 如误差>±5%,要求重新输入 |
| 收益对比合理性 | 持续持有收益 > 实际收益 | 如不满足,提醒用户确认 |
| 价格走势合理性 | 起始价格 < 结束价格(上涨行情) | 如不符,提醒用户确认 |
| 历史数据完整性 | 年份、收入、预算列表长度一致 | 如不一致,提醒补充 |
效果: 在生成报告前确保数据质量,避免生成不准确的报告。
优化效果对比
| 维度 | 优化前(V1.0) | 优化后(V2.0) | 提升幅度 |
|---|
| 数据收集方式 | 一次性要求所有数据 | 分阶段逐个收集 | ✓ |
| 数据完整性依赖度 | 60%依赖用户提供 | 80%可自动推断/计算 | +33% |
| 策略复盘深度 | 基础信息(名称、时间段) | 详细时间线+关键问题 | ✓✓✓ |
| 数据验证 | 事后验证,标注缺失 | 事前验证,主动询问补充 | ✓✓ |
| 用户体验 | 信息过载,压力大 | 循序渐进,轻松提供 | ✓✓✓ |
| 报告质量 | 受数据限制较大 | 数据完整度大幅提升 | ✓✓ |
完整优化日志
详细的优化内容、测试用例和后续优化方向请参考:
OPTIMIZATION_LOG.md
注意事项
关键原则
- LLM驱动,Python辅助:报告生成和H5生成均由LLM主导,Python仅用于数学计算
- LLM负责:数据收集、报告生成、H5生成、交互式确认
- Python负责:RAROC计算、EVA计算、损益归因计算、价格涨幅计算、收益差距计算等数学运算
- 不要用Python读取模板生成报告,这是LLM的工作
- 交互式确认:Phase 4必须等待用户确认满意后才能进入Phase 5
- 模板为指导:模板提供结构参考,LLM根据实际数据灵活调整
- 使用
templates/*_reference.md 作为报告结构参考
- LLM根据实际数据填充和调整内容
- 数据驱动:所有结论必须有数据支撑,避免空泛描述
Phase 4 确认机制(强制执行)
- ✅ 必须展示完整的Markdown报告
- ✅ 必须明确询问用户是否满意
- ✅ 用户不满意时必须持续调整
- ✅ 只有用户明确确认后才能进入Phase 5
- ❌ 禁止跳过确认直接进入下一阶段
内容质量要求
- 历史回顾:至少包含5年数据对比
- 策略复盘:每个策略必须包含"实际vs模拟"对比
- 问题识别:用✗明确标记问题点
- 核心观点:提炼3-5条可操作的建议
H5页面质量要求
- 品牌一致性:使用招商银行品牌色(#C7162E),参考design-system.css
- 布局规范:遵循招商银行PPT布局规范,参考cmb-layout-specification.html
- 响应式设计:支持手机和PC访问
- 无外部依赖:使用内联CSS和JavaScript
- 图表清晰:使用纯CSS/SVG实现图表,参考component-library.md
- 内容结构:遵循标准章节结构,参考content-template.md
数据格式规范
- 金额单位统一为"亿元"
- 百分比统一为小数形式(如15.2表示15.2%)
- 价格、持仓量等保留2位小数
常见错误避免
- ✗ 不要跳过Phase 4的用户确认环节
- ✗ 不要省略"实际vs模拟"的收益对比
- ✗ 不要模糊描述问题,应具体说明
- ✗ 不要在H5中使用外部依赖库