- 人工智能
- AI Agent
- 金融科技
- AI 应用
- 大模型
- RAG
【免费下载链接】FinRobot
FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models
FinRobot 的initiating-coverage技能(SKILL.md)把"从零覆盖一家公司"这一卖方研究工作拆解为公司研究、财务建模、估值分析、图表生成、报告组装五个独立且可验证的任务。本文以该技能文档为骨架,结合 FinRobot 桌面端 skills 引擎与自动化研报流水线的源码实现,完整讲解每个任务的交付物规格、前置校验、文件命名规范与底层加载/调度机制,帮助你用一次请求一个任务的方式,逐步产出一份对标 JPMorgan / Goldman Sachs / Morgan Stanley 格式的投行级首次覆盖报告。
技能定位与元数据
initiating-coverage是 FinRobot 的 56 个分析师技能手册(playbook)之一,归属于equity-research(股票研究)台面,同类技能还包括catalyst-calendar、earnings-analysis、earnings-preview、idea-generation、model-update、morning-note、sector-overview、thesis-tracker等(见 README.md)。
该技能通过SKILL.md头部 YAML frontmatter 声明自己的元数据(SKILL.md):
| 字段 | 值 | 作用 |
|---|---|---|
id | initiating-coverage | 技能唯一标识,供引擎按 id 精确加载 |
name | initiating-coverage | 展示名称 |
version | 1.0.0 | 版本号 |
author | anthropic | 作者归属 |
domain | equity-research | 所属业务台面 |
description | Create institutional-quality equity research initiation reports through a 5-task workflow... | 技能能力摘要 |
triggers | ["initiating", "coverage"] | 关键词触发,供引擎搜索命中 |
requires_data/requires_tools/requires_skills/compatible_models | 均为空 | 数据、工具、技能、模型兼容性声明 |
这些元数据不是摆设。FinRobot 的技能引擎在 loader.py 中通过load_skill(path)解析每个SKILL.md:以---分隔 YAML frontmatter 与 Markdown 正文,id与name为必填字段,缺失即抛出SkillLoadError;description缺失时则自动回退取正文第一段。解析后的技能被构造成 spec.py 中的SkillPydantic 模型(含full_content与source_path),再被 registry.py 递归收集进SkillRegistry,支持get(skill_id)精确获取与search(query)关键词检索(名称命中 3 分、触发器命中 2 分、描述命中 1 分)。
在桌面端 CLI 中,可以通过finrobot skill list和finrobot skill search <query>浏览与检索全部技能(见 README.md),在编排器(orchestrator.py)中则通过activate_skill(skill_id)把整份方法论注入上下文。
核心工作流:单任务模式(One Task at a Time)
该技能最关键的运行约束是每次用户请求只执行一个任务,绝不自动串联。无论用户请求"为某公司创建覆盖发起报告""完成全部 5 个任务",标准应答都包含三步:
- 先问用户想从哪个任务开始,并列出 5 个任务清单让用户确认;
- 当用户明确要求一次跑完全部任务时,解释当前技能只支持单任务执行(以保证每个阶段的质量控制与人工复核),并询问是否从 Task 1 开始;
- 永不自动假设起始任务、永不自动续跑后续任务。
技能文档为此提供了完整的任务矩阵(SKILL.md):
| Task | 名称 | 前置条件 | 交付物 |
|---|---|---|---|
| 1 | Company Research | 公司名称/股票代码 | 6,000–8,000 词研究文档 |
| 2 | Financial Modeling | 10-K 或财务数据访问 | Excel 模型(6 个 Sheet) |
| 3 | Valuation Analysis | 依赖 Task 2 财务模型 | 估值分析 + 目标价 |
| 4 | Chart Generation | 依赖 Task 1、2、3 + 外部数据 | 25–35 张 PNG/JPG 图表 |
| 5 | Report Assembly | 依赖全部 Task 1–4 | 30–50 页 DOCX 报告 |
依赖关系可归纳为:Task 1 与 Task 2 相互独立(可并行),Task 3 依赖 Task 2,Task 4 依赖 Task 2 与 Task 3,Task 5 依赖前四个任务全部完成。Task 3–5 在启动前必须严格校验输入存在,否则立即停止并向用户说明缺哪个前置任务。
交付物红线:禁止任何"额外文档"
技能对交付物有严格边界(SKILL.md):每个任务只交付规格列出的那一种文件,不创建任何"完成总结""执行摘要""快速参考""下一步计划"等附加文档。理由很直接——这些多余内容浪费上下文,也不属于专业工作流的一部分。
- Task 1 只交付
.md研究文档; - Task 2 只交付
.xlsx财务模型; - Task 3 交付
.md估值分析 + 向 Task 2 的 Excel 追加 4 个 Sheet; - Task 4 只交付
.zip图表包; - Task 5 只交付
.docx终稿。
请求模式速查
- 模式 1:用户指定具体任务(如 "Use initiating-coverage, Task 1 for Tesla")→ 立即执行该任务。
- 模式 2:用户要求"initiation report / full pipeline"→ 不自动启动任何任务,先询问从哪个任务开始。
- 模式 3:用户要求"all tasks / entire workflow"→ 不串联任务,解释单任务限制,询问是否从 Task 1 开始。
一个完整的覆盖报告需要5 次独立请求:Task 1 完成交付 → 用户复核 → 请求 Task 2 → …… 依次推进到 Task 5。技能文档也提醒:Task 1 和 Task 2 可以任意顺序执行;Task 3–5 存在严格依赖。
Task 1:公司研究(Company Research)
目的:研究公司的业务、管理层、竞争地位、行业与风险。
前置条件:无(完全独立),仅需公司名称或股票代码。
流程:校验公司名称/代码 → 加载references/task1-company-research.md详细指令 → 执行定性研究工作流 → 交付研究文档。
交付物规格(SKILL.md):
- 公司概况与历史沿革
- 管理层简介(每位高管 300–400 词 × 3–4 位)
- 产品与服务分析
- 行业概览
- 竞争分析(5–10 家竞争对手)
- TAM(潜在市场规模)测算
- 风险评估(8–12 项风险,覆盖 4 大类别)
文件命名:[Company]_Research_Document_[Date].md
底线要求:全文必须写满 6,000–8,000 词;3–4 位高管每位完整撰写 300–400 词简介;5–10 家竞争对手逐一深入分析;8–12 项风险全部覆盖。技能文档明确禁止为省时缩写章节或跳过任何必需部分。
Task 2:财务建模(Financial Modeling)
目的:提取历史财务数据,构建包含预测与情景的综合 Excel 财务模型。
前置条件(启动前必须校验)(SKILL.md):
- 必选:公司财务数据访问渠道
- 上市公司:SEC EDGAR 最新 10-K;
- 非上市公司:财务报表或可用估算;
- 或用户直接提供已提取的历史财务数据。
- 可选:Task 1 公司研究作为业务背景。
输入校验提供了两种接入方式:Option A 自行提取财务数据(最常见,需确认可访问 10-K 且准备提取 3–5 年数据)与Option B 用户提供已提取数据(需确认历史财务文件含利润表、现金流量表、资产负债表三表 3–5 年数据)。
流程:校验数据可访问性 → 加载references/task2-financial-modeling.md→ 步骤 1 提取历史财务数据 → 步骤 2+ 构建含 6 个核心 Sheet 的预测模型 → 交付 Excel 模型。
交付物规格:6 个必建 Sheet(SKILL.md):
- Revenue Model(收入模型):产品拆分(20–30 行)+ 地区拆分(15–20 行)
- Income Statement(利润表):完整 P&L,40–50 个科目,历史 3–5 年 + 预测 5 年
- Cash Flow Statement(现金流量表):经营/投资/筹资活动,历史 + 预测
- Balance Sheet(资产负债表):资产/负债/权益,历史 + 预测
- Scenarios(情景):Bull/Base/Bear 三情景对比表
- DCF Inputs(DCF 输入):为 Task 3 估值预留
文件命名:[Company]_Financial_Model_[Date].xlsx
进入 Task 3 前的验证清单:历史财务数据已提取/提供;Excel 可正常打开;6 个 Sheet 齐全;历史 3–5 年数据与未来 5 年预测已纳入;Bull/Base/Bear 三情景完整。技能明确禁止构建简化/缩写版本、跳过任一 Sheet 或省略历史数据提取。
值得说明的是,这是交互式技能的建模约定。在 FinRobot 自动化研报流水线(equity_research.py)中,财务建模被实现为确定性 DCF:
DCFInputs仅通过seed_dcf_inputs从真实申报文件构建(3 年历史中位数或 Damodaran 行业中位数,含来源记录assumption_provenance),calculate_dcf+calculate_sensitivity计算目标价与 WACC×终期增速敏感性矩阵,LLM 在其中只负责叙述、不挑选任何数字——这正对应 SKILL.md 强调的"估值必须基于可验证输入"的纪律。
Task 3:估值分析(Valuation Analysis)
目的:使用 DCF、可比公司与先例交易进行综合估值。
前置条件(严格):Task 2 的财务模型——预测利润表、预测现金流、收入与 EBITDA 预测、DCF 输入(无杠杆自由现金流)。技能文档以⚠️ CRITICAL 级别警示:Task 2 未完成不得启动本任务,禁止用占位估值或凑合方式推进;若 Task 2 未完成,应立即停止并告知用户先完成财务建模。
输入校验清单:Task 2 是否完成、模型路径是否已知、能否读取模型预测财务数据;模型需提供:5 年预测 FCF、收入预测、EBITDA 预测、终年指标。
交付物规格(SKILL.md):
- DCF 分析(含敏感性表)
- 可比公司分析(5–10 家同行,含统计汇总:max / 75th / median / 25th / min)
- 先例交易(如适用)
- 估值足球场图(football field)
- 目标价:$XX.XX
- 投资建议:BUY / HOLD / SELL
- 上行空间:XX%
- 关键催化剂(3–5 项)
文件交付:
[Company]_Valuation_Analysis_[Date].md(书面分析,4–6 页)- 向 Task 2 的
[Company]_Financial_Model_[Date].xlsx追加 4 个 Sheet:DCF 计算表、敏感性分析表、可比公司表、估值汇总表
底线要求:完整 DCF + 敏感性矩阵(多组 WACC 与终期增速情景);全部 5–10 家可比公司;统计汇总;完整 4–6 页分析;目标价须有具体方法论论证。进入 Task 4 前的验证:目标价已确定、估值至少使用 DCF + Comps 两种方法、DCF 敏感性表完整、可比公司表含统计汇总。
Task 4:图表生成(Chart Generation)
目的:为报告生成 25–35 张专业金融图表。
前置条件(严格):Task 1 公司研究、Task 2 财务模型(含 Task 3 估值 Sheet)、外部市场数据三方面齐备(SKILL.md):
- 来自 Task 1:公司历史与里程碑(时间线图)、管理层与组织结构(组织图)、产品组合(产品图)、客户细分(客户图)、竞争格局(竞争图)、TAM 分析(市场规模图)——共支撑 9 张图;
- 来自 Task 2:按产品/地区划分的收入(历史+预测)、利润表与利润率、现金流量表、情景对比数据——共支撑 8 张图;
- 来自 Task 3:DCF 敏感性矩阵、DCF 组成、可比公司数据、估值区间——共支撑 6 张图;
- 外部数据:历史股价数据(Yahoo Finance、Bloomberg 等)、历史估值倍数——共支撑 2 张图。
⚠️ Task 1、2、3 任一未完成即停止,明确告知用户缺哪些前置任务,禁止创建占位图或跳过图表。
交付物规格(SKILL.md):
4 张必含图表 ⭐:
chart_03:Revenue by product(堆叠面积图)chart_04:Revenue by geography(堆叠柱状图)chart_28:DCF sensitivity(二维热力图)chart_32:Valuation football field(水平条形图)
25 张必建图表(分布在 Investment Summary / Financial Performance / Company 101 / Competitive-Market / Scenario Analysis / Valuation 六个章节),10 张可选图表(charts 19–27、35,覆盖客户获取、单位经济学、产品路线图等,用于凑足 26–35 张)。
技术要求:300 DPI 印刷级清晰度(禁止低分辨率占位图);chart_##_description.png命名规范;所有图表 +chart_index.txt打包进[Company]_Charts_[Date].zip。
进入 Task 5 前的验证:≥25 张图表;4 张必含图表齐全;全部可正常打开;300 DPI;图表索引包含文件与分类;命名符合规范;已打包 zip。
Task 5:报告组装(Report Assembly)
目的:编写并组装最终的综合 DOCX 报告。
前置条件(严格):Task 1 研究文档(全部 6–8K 词、管理层简介、竞争分析、风险评估)、Task 2 财务模型(全部预测与情景)、Task 3 估值分析(目标价与建议、DCF、Comps、先例交易)、Task 4 图表包(全部 25–35 张 PNG/JPG + 索引)。任何前置缺失即停止,不允许占位内容、替代缺失章节或组装不完整报告。
组装流程(SKILL.md):校验全部输入 → 加载references/task5-report-assembly.md→ 使用 Claude 内置技能组装:DOCX skill创建/操作 Word 文档、XLSX skill读取 Task 2/3 的 Excel 数据、Read tool读取 Task 1 与 Task 3 的 Markdown;随后把 Task 1 的.md转为 Word 格式并内嵌图表、从 Task 2 的.xlsx提取表格撰写量化分析、改编 Task 3 的估值内容、将 Task 4 的全部 PNG 图表穿插进正文(每 200–300 词插入一张)。
交付物规格(SKILL.md):
- 页数:30–50 页(最低 30 页)
- 字数:10,000–15,000 词(最低 10,000 词)
- 图表:25–35 张内嵌图片
- 表格:12–20 张综合表格
- 格式:专业 DOCX,引用为可点击超链接
章节结构:第 1 页投资摘要(INITIATING COVERAGE 格式)→ 第 2–5 页投资论点与风险 → 第 6–17 页 Company 101 → 第 18–30 页财务分析与预测 → 第 31–40 页估值分析 → 第 41–50 页附录。
文件命名:[Company]_Initiation_Report_[Date].docx
技能文档用"🔥 CRITICAL: GO ALL OUT ON THIS TASK"强调这是最终交付物:使用完整 token 预算;每个章节完整撰写而非概括;达到全部最低要求(30+ 页、10,000+ 词、25+ 图表、12+ 表格);预测假设部分 2,000–3,000 词逐产品展开;情景部分 1,500–2,000 词并给出 Bull/Base/Bear 具体参数;插入 Task 4全部图表(不是只插几张);提取 Task 2/3所有财务表格;Task 1 内容逐字复用。同时明确禁止出现 "This section would include..." 这类占位表述——必须写出实际章节、插入实际图表、提取实际数据。
输入校验协议(Input Verification Protocol)
技能对每个任务强制前置校验,理由清晰:没有必需输入就运行任务,只会浪费时间产出半成品,最终仍需返工(SKILL.md)。
| Task | 校验内容 |
|---|---|
| Task 1 | 无需校验(独立) |
| Task 2 | 历史财务数据可用 |
| Task 3 | Task 2 财务模型存在且可访问 |
| Task 4 | Task 2 模型与Task 3 估值均存在 |
| Task 5 | Task 1、2、3、4 全部完成 |
校验失败时的处置协议:停止当前任务 → 识别缺失的前置任务 → 先完成缺失任务 → 前置满足后回到原任务。技能文档给出了标准应答示例(以 "Use initiating-coverage, Task 5 for Tesla" 为例):依次检查 Task 1–4,发现缺失即输出 VERIFICATION FAILED 提示,并列出 1–5 步恢复路径询问用户是否从 Task 1 开始。这一"先校验后执行"的纪律与 FinRobot 流水线中的结构化校验器(如validate_has_fields、validate_dcf_result、validate_peer_comps等)一脉相承——自动化引擎同样在每个 pipeline 步骤产出后做结构校验。
任务参考文件与加载原则
技能文档将每个任务的详细分步指令拆到独立参考文件,以保持SKILL.md本身精简(SKILL.md):
references/task1-company-research.md— 公司研究工作流references/task2-financial-modeling.md— 财务建模工作流references/task3-valuation.md— 估值方法论(另见references/valuation-methodologies.md的 DCF/Comps 深入讲解)references/task4-chart-generation.md— 图表生成工作流references/task5-report-assembly.md— 报告编写工作流(另见assets/report-template.md报告结构与assets/quality-checklist.md质检清单)
加载原则:只加载正在执行任务对应的那一个参考文件;这些文件体积很大,切勿同时加载多个。任务开始时读取对应参考文件获取逐步指令。
质量标尺与会话管理
质量标准
所有输出对标一线投行(JPMorgan、Goldman Sachs、Morgan Stanley)标准(SKILL.md):
- 全面:满足全部最低要求;
- 详实:具体数据与实例,而非泛泛陈述;
- 量化:以数字和指标开篇;
- 可溯源:引用规范来源(可点击超链接);
- 专业:机构级排版格式;
- 准确:所有数字经过核实与交叉校验。
会话与文件管理
- 同一会话:上一任务的输出自动可用于后续任务;
- 跨会话:需显式引用历史输出,例如 "Use Task 3 with the model from yesterday at [path]" 或 "Use Task 5 with the research document at [path]";
- 推荐目录结构:按任务分目录组织
ProjectFolder/Task1_Research/、Task2_Model/、Task3_Valuation/、Task4_Charts/、Task5_Report/。
为什么不支持端到端自动执行
技能明确不支持一次请求自动跑完所有任务,原因:每个阶段的质量控制、输出交付前的复核、工作流可暂停/恢复、前置条件的清晰验证。这一点在自动化流水线场景中同样被尊重——FinRobot 的 pipeline_methodology.py 为initiating-coverage提供了"pipeline-safe"的精简版方法论:在无人值守的自动化研报流水线中,技能正文会被替换为不包含任务选择、前置确认、图表/文件生成、Word/Excel 指令的纯叙述框架,且绝不覆盖权威目标价/评级、绝不自行计算新数字——所有估值数字必须来自上游确定性计算输出。这也解释了为什么交互式使用必须遵循单任务模式:把"人在环路中的质量控制"作为专业研报的默认前提。
成功标准(Success Criteria)
一次成功的覆盖发起工作流应满足(SKILL.md):
- 按顺序完成全部 5 个任务;
- 通过全部输入校验;
- 满足全部质量标准;
- 产出全部规定交付物;
- 各交付物之间的数字相互交叉校验一致;
- 最终报告达到可发布状态。
输出质量:机构级(对标 JPMorgan / Goldman Sachs / Morgan Stanley)。适用场景:对一家公司的首次全面覆盖(initiating coverage)。
要上手使用,只需在 FinRobot 桌面端的会话中按模式请求具体任务,例如先发"Use initiating-coverage skill, Task 1 for Tesla"启动公司研究,再依次推进后续 4 个任务,即可沿着这条被工程化约束过的路径,稳定地产出一份从公司基本面到估值结论、图表与表格齐备的完整首次覆盖报告。
- 人工智能
- AI Agent
- 金融科技
- AI 应用
- 大模型
- RAG
【免费下载链接】FinRobot
FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models
相关推荐
使用 initiating-coverage 技能生成机构级研报图表:Task 4 Chart Generation 完整工作流指南
使用 initiating coverage 技能生成机构级研报图表:Task 4 Chart Generation 完整工作流指南 本指南以 equity r
人工智能AI 应用AI 技能/插件AI Agent金融科技研究报告组装实战:用 initiating-coverage Skill 的 Task 5 装配 30–50 页机构级 DOCX 投研报告
研究报告组装实战:用 initiating coverage Skill 的 Task 5 装配 30–50 页机构级 DOCX 投研报告 核心导读 :本文以
人工智能AI 应用AI 技能/插件AI Agent金融科技financial-services 权益研究插件 initiating-coverage Skill 深度解析:五阶段机构级投研首发覆盖报告工作流
financial services 权益研究插件 initiating coverage Skill 深度解析:五阶段机构级投研首发覆盖报告工作流 导读 本文
人工智能AI 应用AI 技能/插件AI Agent金融科技
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考