首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
用 Claude Custom Skill 构建财务报表比率分析器:从 SKILL.md 到可落地的财务分析引擎
📅 2026/9/8 17:54:24
✍️ 爱科研究院
👁 阅读 3,247
用 Claude Custom Skill 构建财务报表比率分析器从 SKILL.md 到可落地的财务分析引擎【免费下载链接】claude-cookbooksA collection of notebooks/recipes showcasing some fun and effective ways of using Claude.项目地址: https://gitcode.com/GitHub_Trending/an/claude-cookbooksClaude Skills 允许开发者以目录 SKILL.md 可执行脚本的形式把特定领域的专业知识打包成可被 Claude 动态加载的能力。本篇文章以 claude-cookbooks 仓库中的 analyzing-financial-statements 自定义技能为完整范本讲解如何设计一份财务比率计算技能——包括六大类财务比率的指标体系、输入输出约定、两条核心 Python 脚本的计算原理以及如何在 Jupyter Notebook 中把它上传、测试并用于实际投资分析。读完本文你将掌握自定义财务分析类 Skill 从目录结构、Frontmatter 编写到代码实现的完整方法论。技能目录与 FrontmatterSkill 的身份证Custom Skill 的目录结构遵循统一约定SKILL.md是唯一必需文件其余脚本、资源均为可选。analyzing-financial-statements 目录下共包含三个文件skills/custom_skills/analyzing-financial-statements/ ├── SKILL.md # 技能说明必需Frontmatter 指令正文 ├── calculate_ratios.py # 计算引擎全部财务比率的计算实现 └── interpret_ratios.py # 解释模块行业基准对比、趋势分析与报告生成SKILL.md开头是 YAML Frontmatter定义了 Claude 在**加载阶段Metadata Stage**最先看到的两项信息它们决定了技能何时被检索、被调用--- name: analyzing-financial-statements description: This skill calculates key financial ratios and metrics from financial statement data for investment analysis ---按仓库 Notebook 与 Skills 文档规范name采用小写字母与连字符本技能即analyzing-financial-statements建议控制在 64 字符内description用于能力描述与触发匹配建议不超过 1024 字符。Frontmatter 之下才是指令阶段的正文能力清单、使用步骤、输入输出格式、最佳实践与局限性——这些构成了 Claude 执行任务时的行为准则。渐进式披露Progressive Disclosure机制贯穿始终元数据阶段始终可见以触发匹配指令阶段SKILL.md等所有.md文件在主题相关时才加载calculate_ratios.py、interpret_ratios.py等脚本属于资源阶段仅在需要执行计算时才按需读取。这正是该技能把知识与代码分层放置的设计逻辑。能力边界技能覆盖的六大财务比率体系SKILL.md的 Capabilities 一节给出了技能的完整计算域。技能的定位是财务健康体检覆盖公司经营分析的常见维度类别包含比率分析意义盈利能力ProfitabilityROE、ROA、毛利率、营业利润率、净利率企业赚取利润的能力与股东回报水平流动性Liquidity流动比率、速动比率、现金比率短期偿债能力与营运资金充足度杠杆/偿债Leverage资产负债率Debt-to-Equity、利息保障倍数、偿债覆盖率资本结构与长期偿债风险运营效率Efficiency资产周转率、存货周转率、应收账款周转率资产使用效率与营运管理质量估值ValuationP/E、P/B、P/S、EV/EBITDA、PEG市场对公司的定价水平与相对贵贱每股指标Per-ShareEPS、每股净资产、每股股息普通股股东视角下的收益与权益这些分类并非只停留在文档层面而是完整映射到了 calculate_ratios.py 中FinancialRatioCalculator类的五个分组方法上calculate_profitability_ratios()L33、calculate_liquidity_ratios()L61、calculate_leverage_ratios()L82、calculate_efficiency_ratios()L106与calculate_valuation_ratios()L130。因此只要补充每股股息口径的数据字段技能便可覆盖文档声明的全部指标。三步使用流程与真实输入格式SKILL.md把技能的交互收敛为三个步骤输入报表数据 → 指定要计算的比率或使用 all→ 获得计算结果与行业解读。典型触发语句包括Calculate key financial ratios for this company based on the attached financial statements Whats the P/E ratio if the stock price is $50 and annual earnings are $2.50 per share? Analyze the liquidity position using the balance sheet data技能可接受的输入格式有四种财务科目行的CSV、结构化报表的JSON、关键财务数据的文本描述以及含财务报表的Excel 文件。其中 JSON 是底层引擎最直接的输入形态——calculate_ratios.py 的FinancialRatioCalculator.__init__L13-L25会把传入字典拆解为四个命名空间income_statement利润表科目含revenue、cost_of_goods_sold、operating_income、ebit、ebitda、interest_expense、net_incomebalance_sheet资产负债表科目含total_assets、current_assets、cash_and_equivalents、accounts_receivable、inventory、current_liabilities、total_debt、current_portion_long_term_debt、shareholders_equitycash_flow现金流量表科目operating_cash_flow等为未来的现金流指标预留market_data市场数据含share_price、shares_outstanding、earnings_growth_rate。脚本文件末尾L310 起自带一份可直接运行的示例数据——收入 100 万美元、总资产 200 万美元、股本 150 万美元、股价 50 美元等——演示了文本/CSV 输入如何被结构化后喂给计算引擎。将SKILL.md中文本描述财务数据的能力与源码字典结构对照即可发现Claude 的工作就是把非结构化输入翻译成上述四个字典字段再交给脚本。输出格式与解读报告依据SKILL.md计算结果应包含计算出的比率与数值、可用时的行业基准对比、多期数据时的趋势分析、解读与洞见以及格式化的 Excel 报告。这一输出规范与 interpret_ratios.py 的实现一一呼应数值calculate_ratios.py中format_ratio()L229-L240按指标性质输出%毛利率、ROE 等百分比型、x周转/保障倍数、days应收天数或$每股金额行业基准对比与解读RatioInterpreter内置BENCHMARKS行业基准表L13-L48支持technology、retail、financial、manufacturing、healthcare五个行业及兜底的general基准逐项给出 Excellent/Good/Acceptable/Poor 评级和行动建议趋势分析analyze_trend()L187-L227对比首末两期数值计算变化幅度与方向识别 Stable/Improving/Deteriorating 趋势对杠杆类指标方向判定相反综合洞见perform_comprehensive_analysis()L261-L311汇总当期分析 趋势分析 整体健康度 优先级建议_assess_overall_health()L314-L350将各比率评级折算为 4 分制得分并给出公司财务健康度的整体判定generate_report()L229-L258则生成格式化的分析报告文本。也就是说interpret_ratios.py不只是简单翻译数值而是通过基准分级、方向判定、评分汇总三层逻辑把裸数值转化为可辅助决策的结论。这与文档中Industry benchmark comparisons、Trend analysis、Interpretation and insights的输出承诺完全对应。计算引擎逐类拆解六类比率的公式来源下面结合calculate_ratios.py各方法逐类核对指标公式方便你在改造技能时增减字段口径。盈利能力L33-L59ROE net_income / shareholders_equityROA net_income / total_assets毛利率 (revenue - cogs) / revenue内部先计算gross_profit营业利润率 operating_income / revenue净利率 net_income / revenue。流动性L61-L80流动比率 current_assets / current_liabilities速动比率酸性测试(current_assets - inventory) / current_liabilities即剔除存货的流动资产口径现金比率 cash_and_equivalents / current_liabilities最严苛的短期偿付口径。杠杆/偿债L82-L104资产负债率 D/E total_debt / shareholders_equity利息保障倍数 ebit / interest_expense偿债覆盖率 DSCR operating_income / (interest_expense current_portion_long_term_debt)——分母即当期需偿还的本息总和。运营效率L106-L128资产周转率 revenue / total_assets存货周转率 cogs / inventory应收账款周转率 revenue / accounts_receivable顺带推导应收账款周转天数 DSO 365 / receivables_turnover。估值与每股指标L130-L166EPS net_income / shares_outstandingP/E share_price / EPS每股净资产 BVPS shareholders_equity / shares_outstandingP/B share_price / BVPSP/S market_cap / revenue市值 股价 × 总股本EV/EBITDA (market_cap total_debt - cash) / ebitda企业价值扣除现金后对 EBITDA 的倍数PEG 仅在earnings_growth_rate 0时计算即PE / (growth_rate × 100)规避负增长导致的无意义结果。关键工程细节除零保护。所有除法都经由safe_divide()L27-L31——分母为零时返回默认值 0.0而不是抛 ZeroDivisionError。这让脚本在遇到缺失科目或零值字段时仍能稳定运行是财务数据常不完整场景下的必要健壮性设计。在 Notebook 中创建、上传并实测该 Skill在 skills/notebooks/03_skills_custom_development.ipynb 中该技能被作为自定义技能开发第一个完整示例L352 起进行演示完整链路为初始化客户端与目录L113-L124读取ANTHROPIC_API_KEY以anthropic-beta: skills-2025-10-02头创建Anthropic客户端SKILLS_DIR Path.cwd().parent / custom_skills清理潜在同名冲突L305-L345调用list_custom_skills(client)检查是否已存在名为 Financial Ratio Analyzer 的技能存在时先delete_skill()删除旧版本避免上传时报cannot reuse an existing display_title上传技能目录L380-L403create_skill(client, str(financial_skill_path), Financial Ratio Analyzer)底层调用client.beta.skills.create(display_title..., filesfiles_from_dir(skill_path))把整个analyzing-financial-statements目录打包上传成功后可取回skill_id与latest_version实测技能L421-L453以文本形式输入一份迷你财务数据收入 $1,000M、EBITDA $200M、净资产 $1,200M、股价 $50、股本 100M 等调用test_skill(client, financial_skill_id, test_prompt)触发一次包含该 custom skill 的 Messages API 请求从响应中提取文本输出作为验证。这套流程揭示了 Skill 的运行时机制Claude 收到用户的分析请求后依据元数据匹配到该技能加载SKILL.md指令再把计算逻辑外包给捆绑脚本执行——脚本负责确定性数值计算Claude 负责字段映射、结果组织与自然语言表达。可配合参考仓库中 sample_data/financial_statements.csv 这类报表样例快速构造更真实的测试输入。解读引擎行业基准、趋势与行动建议的落地细节如果说calculate_ratios.py解决算得准interpret_ratios.py则解决看得懂。其内部采用评级取向分治的策略越高越好型current_ratio、roe、gross_margin值达到excellent/good/acceptable基准线即依次评为 Excellent → Good → Acceptable低于最差线则为 Poor越低越好型debt_to_equity反向比较低于excellent阈值才是 Excellent资本结构非常保守估值语境型pe_ratio区分负盈利PE ≤ 0与正盈利区间再按 undervalued/fair/growth/expensive 四档给出潜在低估/合理/成长溢价/高估评级。每个评级还会通过_get_recommendation()L153-L185映射到一句可执行建议例如流动比率 Poor 时建议改善营运资金管理、降低短期债务或增加流动资产ROE Poor 时建议聚焦运营效率与盈利能力改善。在_generate_key_recommendations()L353 起中所有 Poor 评级会升级为 Priority: 前缀的最高优先级建议配合趋势下滑的 Monitor: 条目最终返回不超过 5 条的精炼行动清单。最佳实践与已知局限SKILL.md沉淀了此类技能在真实财务分析中的工程纪律写作与扩展技能时应一并遵守计算前校验数据完整性脚本对各字段用.get(key, 0)兜底缺字段返回 0但零值本身可能就是异常信号如股本为零导致 ROE0合理处理缺失值用行业均值补全或剔除该指标避免静默扭曲结论解释时必须考虑行业语境同一 D/E 在金融业基准可接受值 4.0与科技业可接受值 1.0含义天差地别务必选择匹配的行业基准提供多期数据做趋势对比analyze_trend()要求至少两个时期的数据单期输入只能给出截面结论标记异常/令人担忧的比率生成报告时对 Poor 评级与恶化趋势做显式标注。同时需要正视文档声明的局限分析依赖准确完整的财务数据BENCHMARKS基准表是简化的通用指导值各行业实际阈值需随业务调整部分比率并非适用所有行业如银行报表中 D/E、存货指标口径特殊历史数据不能保证未来表现任何结论都不应替代专业财务意见。从实现看interpret_ratios.py 注释也明确写明基准为 simplified for demonstration——扩展技能时建议把行业基准表升级为可外部配置的数据源并结合 applying-brand-guidelines 等技能共同使用的组合式工作流把财务分析结果直接落入品牌化报表。小结analyzing-financial-statements是一个文档即接口、脚本即实现的典型自定义 Skill 范本SKILL.md定义了技能的触发方式、能力边界与行为准则calculate_ratios.py以字段化字典与除零保护实现了六大类比率与每股指标的计算interpret_ratios.py则通过行业基准分级、趋势方向判定与综合健康度评分把数值翻译为可执行建议。开发者可参照该结构把任意分析领域估值建模、SaaS 指标、成本分析的知识沉淀为同样的三层架构——这也正是 Skills 机制区分于普通提示词的工程价值所在。【免费下载链接】claude-cookbooksA collection of notebooks/recipes showcasing some fun and effective ways of using Claude.项目地址: https://gitcode.com/GitHub_Trending/an/claude-cookbooks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/8 17:54:24
YOLOv8集装箱缺陷检测实战:从数据标注到边缘部署全流程
2026/9/8 17:54:24
企业级Agent从Demo到生产:六大关键架构与工程实践全解析
2026/9/8 17:49:23
FPGA以太网通信入门:从UDP回环到PHY芯片调试
2026/9/8 22:50:15
用Prompt做代码审查与微重构:一份可复用的AI辅助审查模板
2026/9/8 22:50:15
Storybook 故事变体复用与背景参数覆盖:从 CSF 2 的 `bind({})` 到 CSF 3 的对象展开
2026/9/8 22:50:15
Rufus 启动盘制作:配对分区方案,从空白U盘到直接开机
2026/9/8 22:50:15
PR-Agent实战:AI代码审查如何解放你的PR处理流程
2026/9/8 22:50:15
微信小程序背单词工具开发复盘:从选型到上线的完整踩坑指南
2026/9/8 22:45:14
无sudo权限下在Ubuntu上运行RIOT网络性能测试实战
2026/9/8 0:02:01
中国车企再破谣言,GAC吉利零跑获欧盟安全五星
2026/9/8 0:02:01
Compose Hot Reload新增MCP服务器助AI智能体调试
2026/9/8 0:02:01
你熟悉的GoPro正在悄然改变
2026/9/8 0:43:11
超人会飞不算本事:系统稳定依赖清晰规则与边界设计
2026/9/8 1:13:27
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
2026/9/8 2:18:22
基于CNN的调制信号识别:MATLAB实现时频图分类实战