- 人工智能
- AI Agent
- 金融科技
- AI 应用
- 大模型
- RAG
【免费下载链接】FinRobot
FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models
本篇技术指南面向在 FinRobot 桌面端(finrobot_desktop)中使用投资银行演示文稿审查能力的开发者与金融从业者,围绕技能库 ib-check-deck/SKILL.md 展开。你将掌握:如何让 Agent 对投行 Pitch Deck 或客户演示文稿执行"数字一致性、数据与叙述对齐、语言润色、视觉格式 QC"四维质检,如何通过 slide-level 归因脚本定位跨页数字冲突,以及如何按严重级别输出可执行的审查报告。
技能定位:IB 演示文稿的专职质量检查器
ib-check-deck 是 FinRobot 技能体系中financial-analysis领域下的一个专用技能,frontmatter 中声明其id为ib-check-deck、version: 1.0.0、author: anthropic,描述为Investment banking presentation quality checker,核心职责是审查 Pitch Deck 或客户交付级演示文稿的四个方面:
- 跨幻灯片数字一致性(number consistency);
- 数据与叙述对齐(data-narrative alignment);
- 语言是否符合 IB 表达规范(language polish);
- 视觉与格式 QC(visual and formatting QC)。
技能通过triggers字段声明触发关键词ib、check、deck,当用户提出 review、check、QC、proof 等诉求时即可被唤起。该技能为只读审查(read-and-report only),不会对演示文稿做任何修改,因此在 Add-in 与 Chat 两种环境下工作流保持一致。
技能在仓库中的来源与格式
FinRobot 桌面端的技能目录由 scripts/convert_skills.py 从 Anthropic 的 financial-services-plugins 自动转换而来。转换脚本会解析上游两种格式(带 YAML frontmatter 的 Format B 与仅含 H1 标题的 Format A),为每个技能生成id / name / version / author / domain / description / triggers / requires_* / compatible_models等元数据,并写入output/<domain>/<skill_id>/SKILL.md。ib-check-deck 的 frontmatter 正是该转换流程的产物,其转换记录可参考 ATTRIBUTION.md 与 UPSTREAM_VERSION.txt。
在运行侧,技能文件由 engine/skills/loader.py 加载为 engine/skills/spec.py 中定义的Skill数据模型,id与name为必填字段,description可回退到正文首段,full_content保存整个 Markdown 正文,triggers作为检索关键词参与匹配。
开始前的环境判断
技能要求 Agent 在启动审查前先识别所处运行环境,两种环境的差异只在于文本来源:
- PowerPoint 加装组件(Add-in):直接读取当前打开的活动演示文稿(live open deck);
- 聊天(Chat):读取用户上传的
.pptx文件。
由于本技能不做编辑,只做读取与报告,两种环境下的工作流完全相同,Agent 无需针对环境编写两套逻辑。
工作流第一步:读取整份 Deck 并保留 slide 归属
审查质量的前提是逐页读取全部幻灯片文本,并保留每一行的幻灯片归属。技能特别强调 slide-level attribution:任何一条审查发现都必须能够定位到具体幻灯片,例如"$500M 出现在第 3 页和第 8 页,但第 15 页显示 $485M"。
对于 30 页左右的大型 Deck,内容超出工作记忆的可承载范围,因此技能要求将抽取的文本写入文件,供数字检查脚本统一处理。脚本期望的输入是带 slide 标记的 markdown 风格文本,格式如下:
## Slide 1 [slide 1 text content] ## Slide 2 [slide 2 text content]四维质检:逐一执行的完整流程
维度一:数字一致性(Number consistency)
这是四维中最容易捕捉到人工第五遍阅读仍会漏掉问题的一环,核心手段是运行数字抽取脚本:
python scripts/extract_numbers.py /tmp/deck_content.md --check技能描述中该脚本具备三类能力:
- 单位归一化:
$500M、$500MM、$500,000,000会被归一化为同一个数值; - 数值分类:按 revenue、EBITDA、multiples、margins 等指标类别归类;
- 冲突标记:同一指标类别在不同幻灯片上出现相互冲突的取值时主动告警。
说明:
scripts/extract_numbers.py以及下文提到的references/ib-terminology.md、references/report-format.md是 SKILL.md 文档中引用的配套脚本与参考文件,需要用户在运行环境中按技能约定提供。当前仓库的技能目录 ib-check-deck 仅收录 SKILL.md 本体。
除脚本告警之外,Agent 还必须人工核验以下三类问题:
- 计算正确性:合计是否加总一致、百分比是否加总到 100%、增长率是否与端点数值匹配;
- 单位风格一致性:整份 Deck 应统一采用
$M或$MM其中一种并保持一致,不得混用; - 时间口径对齐:FY 与 LTM 与季度数据必须显式标注,避免不同期间数字被并排比较。
维度二:数据与叙述对齐(Data-narrative alignment)
这一维度用于捕捉"有人改了第 7 页的图表,却忘了第 4 页的叙述"这类静默漂移。Agent 需要把每一条叙述性声明映射到支撑它的数据上:
- 趋势陈述:例如"margins declining(利润率下滑)"——对应的图表方向是否真的向下;
- 市场地位声明:例如"#1 player"——营收与市场份额数据是否支撑;
- 合理性校验(plausibility):技能给出的经典反例是"在 $100B 的市场中自称 #1",但营收只有 $200M——0.2% 的市场份额显然不构成 #1,Agent 必须对这种数据-叙述矛盾给出显式判断。
维度三:语言润色(Language polish)
IB 演示文稿有一套固定的语域(register),Agent 需扫描并标记任何破坏该语域的表述:
- 口语化措辞(如 "pretty good"、"a lot of");
- 缩写形式(contractions);
- 感叹号;
- 无数字支撑的模糊量词(vague quantifiers without numbers);
- 同一概念使用了不一致的术语(inconsistent terminology)。
技能文档指向references/ib-terminology.md提供替换模式(replacement patterns),Agent 应据此给出符合 IB 规范的具体替换建议。
维度四:视觉与格式 QC(Visual and formatting QC)
对每张幻灯片执行标准的视觉核验,重点检查:
- 图表缺失来源引用(missing chart source citations);
- 缺失轴标签(missing axis labels);
- 排版不一致(typography inconsistencies);
- 数字格式漂移(同一 Deck 内 1,000 与 1K 混用);
- 日期格式漂移;
- 脚注与免责声明缺失。
技能特别提醒:视觉核验能捕捉到文本抽取中完全不可见的重叠、溢出与对比度问题——一张缺来源标注的图表在文本转储中和标注完整的图表看起来一模一样,因此这一步不可跳过。
输出:按严重级别分类的审查报告
最终报告按技能文档要求的结构输出,并按严重级别分类:
- Critical(阻断交付):数字不匹配、事实错误、数据与叙述矛盾,此类问题阻止客户端交付;
- Important(应当修复):语言问题、来源缺失、术语漂移;
- Minor(打磨项):字号、间距、日期格式。
报告格式遵循references/report-format.md定义的结构。报告组织原则是以 Critical 开篇;若没有 Critical,则必须显式说明——"no number inconsistencies found"(未发现数字不一致)本身就是一个审查结论,而不是"没有问题"的缺省表述。
实战要点小结
- 只读审查原则:ib-check-deck 全程 read-and-report,不产生任何编辑,Add-in 与 Chat 工作流完全一致;
- slide 级归因是底线:每条发现必须能定位到具体幻灯片页,这是后续修复与复核的基础;
- 脚本 + 人工双保险:
extract_numbers.py负责单位归一化与冲突告警,人工负责计算正确性、单位风格与时间口径核验; - 合理性质疑:对 "#1 player" 之类地位声明要主动做份额验算,避免叙述与数据脱节;
- 显式声明"无发现":没有 Critical 也要明确写出,这本身是审查结论的一部分;
- 技能加载机制:该技能在运行时由 loader.py 按 frontmatter 元数据加载为 spec.py 中的
Skill模型,triggers(ib/check/deck)决定了它的唤起时机,full_content中保存的完整 Markdown 正文即为上述工作流的执行指令。
将本技能接入 Agent 工作流后,一份投行 Deck 可以在一次会话内完成从文本抽取、数字冲突检测、叙述核验、语言润色到视觉 QC 的完整质检闭环,并以按严重度排序的可执行报告交付用户。
- 人工智能
- AI Agent
- 金融科技
- AI 应用
- 大模型
- RAG
【免费下载链接】FinRobot
FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models
相关推荐
金融服务业投行演示文稿 QC 指南:Pitch Agent 的 ib-check-deck 技能全解析
金融服务业投行演示文稿 QC 指南:Pitch Agent 的 ib check deck 技能全解析 本文以 financial services 仓库中 p
人工智能AI 应用AI 技能/插件AI Agent金融科技Financial Services 插件 ib-check-deck 技能:面向投行 Pitch Deck 的四维质量检查实战指南
Financial Services 插件 ib check deck 技能:面向投行 Pitch Deck 的四维质量检查实战指南 本指南讲解 GitHub
人工智能AI 应用AI 技能/插件AI Agent金融科技financial-services 投行术语规范指南:基于 ib-check-deck 的 Deck 语言润色与 QC 实战
financial services 投行术语规范指南:基于 ib check deck 的 Deck 语言润色与 QC 实战 本指南聚焦于 financial
人工智能AI 应用AI 技能/插件AI Agent金融科技
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考