使用 Skills 生成财经报告(龙虎榜、公司解读)
财经相关文档生成技能,使用 AI Agent(Gemini CLI/ Cursor / Open Claw),实现了财经公众号内容的自动化维护。内容 Skill 产出 Markdown 和本地图片,最后统一调用工具 Skill 替换为在线 URL,生成的 Markdown 可直接发布。通过将繁琐的数据收集和可视化工作代码化,AI 能够专注于高价值的信息整合与观点输出,从而实现高效、低成本且高质量的
前言
最近构建了一套 skills 财经相关文档生成技能,使用 AI Agent(Gemini CLI/ Cursor / Open Claw),实现了财经公众号内容的自动化维护。本文记录系统的设计思路与实现细节。
1. Skill 拆解
为了实现模块化和可维护性,我将公众号的内容生产拆解为四个独立的 Skill:
|
Skill |
功能 |
产出 |
|---|---|---|
analyze_public_company |
个股研报 |
A 股上市公司价值分析、财务数据及消息汇总 |
daily_market_pulse |
每日龙虎榜 |
龙虎榜数据图解、游资席位追踪及资金流向 |
weekly_financial_report |
财经周报 |
市场回顾、宏观大事及热点板块展望 |
upload_images |
图片上传 |
将生成的本地图片上传至图床并替换 Markdown 路径 |
这种拆分使得每个 Skill 的数据源和处理逻辑独立,便于迭代和排查问题。
依赖关系:
内容 Skill 产出 Markdown 和本地图片,最后统一调用工具 Skill 替换为在线 URL,生成的 Markdown 可直接发布。
2. API 获取数据
系统设计的核心原则是:能用 API 获取的结构化数据,绝不让 AI 去搜索。
让 AI 直接搜索数据存在明显缺陷:
-
Token 消耗大:AI 反复搜索、阅读网页会消耗大量 Token。
-
数据不可控:AI 可能获取到旧数据或错误来源的数据,且难以回溯验证。
因此,财务和行情等结构化数据由 Python 脚本通过 API 获取;AI 仅负责处理非结构化信息(如新闻摘要、公告解读)和最终的分析写作。
3. 数据获取方案
所有数据获取脚本均基于 argparse,输出统一的 JSON 格式供 AI 读取。
3.1 基础数据源
-
新浪财经:获取实时行情(价格、成交量)。
-
腾讯财经:获取估值数据(PE、PB、市值)。
-
东方财富:获取历史 K 线及个股所属板块/概念。
数据格式示例(AI 读取的 JSON):
{
"symbol": "000001",
"realtime": {
"name": "平安银行",
"price": 11.05,
"change_pct": -0.36
},
"valuation": {
"pe_ttm": 4.97,
"market_cap": 2144.35
},
"sector": "银行",
"concepts": ["破净股", "机构重仓", "HS300_"]
}
3.2 龙虎榜数据
脚本一次性拉取当日市场概况、资金流向及龙虎榜明细。亮点功能:内置游资别名映射表,将“XX证券营业部”自动翻译为“作手新一”等知名游资代号,提升报告的可读性。
4. 图片生成
为了解决 AI 配图不可控的问题,所有图表均由 Python 代码生成。
4.1 封面图 (Pillow)
使用 Pillow 库纯代码绘制,不依赖外部素材。统一设计语言:深色渐变背景 + 装饰光晕 + 动态文字,保证所有文章封面风格一致且专业。
4.2 数据图表 (Matplotlib + Seaborn)
基于 Matplotlib 绘制各类专业图表,包括:
-
股价走势图:K线趋势与均线。
-
财务分析图:营收/净利润双轴图、利润率趋势图。
-
业务构成:环形饼图。
核心绘图逻辑(Python):
def create_dual_axis_chart(data, title, filename):
"""生成营收(柱状)与净利润(折线)双轴图"""
fig, ax1 = plt.subplots(figsize=(12, 6))
# 左轴:营收柱状图
sns.barplot(x=years, y=revenue, ax=ax1, color='#D32F2F', alpha=0.8)
ax1.set_ylabel('营收 (亿元)')
# 右轴:净利润折线图
ax2 = ax1.twinx()
ax2.plot(years, profit, color='#1976D2', marker='o', linewidth=2)
ax2.set_ylabel('净利润 (亿元)')
# 智能处理中文字体
font_path = get_chinese_font() # 自动适配 macOS/Linux/Win
plt.title(title, fontproperties=font_path)
plt.savefig(filename, dpi=300)
4.3 特色图表:龙虎榜蝴蝶图
针对龙虎榜数据,设计了中轴对称的蝴蝶图:左侧红色显示买入席位,右侧绿色显示卖出席位。一张图即可直观展示多空博弈格局及机构、游资动向。
5. 工作流
每个内容 Skill 均遵循标准的四阶段流程:
-
Phase 1(脚本) :调用 API 获取数据,输出 JSON。
-
Phase 2 (脚本) :根据数据生成封面和图表 (PNG)。
-
Phase 3 (AI) :AI 读取 JSON,参考 Markdown 模板撰写分析报告。
-
Phase 4 (脚本) :扫描 Markdown,将本地图片上传图床并替换路径。
优势:Phase 1-2 纯脚本执行,无需 AI 介入,高效且零 Token 消耗;AI 仅需专注于它擅长的分析与写作。
6. AI 操作手册
每个 Skill 目录下包含一个 SKILL.md,作为 AI 的执行指南,明确定义:
-
环境依赖:所需 Python 库。
-
执行步骤:每个阶段调用的脚本命令及参数。
-
输出规范:文件保存路径及命名规则。
-
写作要求:禁止 AI 腔,强调数据驱动和客观分析。
7. 执行流程示例
生成一篇个股研报的典型流程:
8. 踩坑记录
-
接口编码:不同源(新浪/腾讯/东财)编码格式不一(GBK/UTF-8),需统一转码处理。
-
SSL 验证:macOS 环境下部分 HTTPS 请求需处理 SSL 证书验证问题。
-
中文字体:Matplotlib 需适配不同操作系统(macOS/Linux/Windows)的中文字体路径,防止乱码。
-
图床限流:批量上传时需增加延时,避免触发频率限制。
-
负值处理:绘制净利润柱状图时,需特殊处理负值标签的位置和颜色。
9. 总结
核心理念是:各司其职。
让脚本做执行(拉数据、画图、上传),让 AI 做思考(理解、分析、写作)。
通过将繁琐的数据收集和可视化工作代码化,AI 能够专注于高价值的信息整合与观点输出,从而实现高效、低成本且高质量的内容自动化生产。
可以参考以下生成结果:
对大A感兴趣的也可以关注我的财经公众号:
更多推荐

所有评论(0)