☰
FinRobot Initiating Coverage 技能实战:以 5 任务工作流产出机构级股票研报
2026/10/2 8:12:29 网站建设 项目流程
  • 人工智能
  • AI Agent
  • 金融科技
  • AI 应用
  • 大模型
  • RAG

【免费下载链接】FinRobot

FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models

项目地址:https://gitcode.com/GitHub_Trending/fi/FinRobot
点击查看免费下载

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):

字段值作用
idinitiating-coverage技能唯一标识,供引擎按 id 精确加载
nameinitiating-coverage展示名称
version1.0.0版本号
authoranthropic作者归属
domainequity-research所属业务台面
descriptionCreate 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 个任务",标准应答都包含三步:

  1. 先问用户想从哪个任务开始,并列出 5 个任务清单让用户确认;
  2. 当用户明确要求一次跑完全部任务时,解释当前技能只支持单任务执行(以保证每个阶段的质量控制与人工复核),并询问是否从 Task 1 开始;
  3. 永不自动假设起始任务、永不自动续跑后续任务。

技能文档为此提供了完整的任务矩阵(SKILL.md):

Task名称前置条件交付物
1Company Research公司名称/股票代码6,000–8,000 词研究文档
2Financial Modeling10-K 或财务数据访问Excel 模型(6 个 Sheet)
3Valuation Analysis依赖 Task 2 财务模型估值分析 + 目标价
4Chart Generation依赖 Task 1、2、3 + 外部数据25–35 张 PNG/JPG 图表
5Report Assembly依赖全部 Task 1–430–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):

  1. Revenue Model(收入模型):产品拆分(20–30 行)+ 地区拆分(15–20 行)
  2. Income Statement(利润表):完整 P&L,40–50 个科目,历史 3–5 年 + 预测 5 年
  3. Cash Flow Statement(现金流量表):经营/投资/筹资活动,历史 + 预测
  4. Balance Sheet(资产负债表):资产/负债/权益,历史 + 预测
  5. Scenarios(情景):Bull/Base/Bear 三情景对比表
  6. 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 3Task 2 财务模型存在且可访问
Task 4Task 2 模型与Task 3 估值均存在
Task 5Task 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):

  1. 按顺序完成全部 5 个任务;
  2. 通过全部输入校验;
  3. 满足全部质量标准;
  4. 产出全部规定交付物;
  5. 各交付物之间的数字相互交叉校验一致;
  6. 最终报告达到可发布状态。

输出质量:机构级(对标 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

项目地址:https://gitcode.com/GitHub_Trending/fi/FinRobot
点击查看免费下载

相关推荐

上一篇:老旧Mac系统升级完整指南:让过时设备重获新生
下一篇:AntiMicroX 终极指南:5分钟让任何游戏手柄控制你的电脑

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询