基于 FinRobot 的私募股权 Deal Screening 技能:从 CIM 拆解到一页式筛选备忘录的实战指南
基于 FinRobot 的私募股权 Deal Screening 技能:从 CIM 拆解到一页式筛选备忘录的实战指南
导读
本文围绕 FinRobot 桌面版内置的 deal-screening 技能(SKILL.md),完整讲解如何在收到 CIM(保密信息备忘录)、Teaser 或券商推介材料时,由 AI Agent 快速提取交易关键要素、对照基金投资标准执行 pass/fail 筛选,并输出一份可供合伙人与投委会快速浏览的一页式筛选备忘录。读完本文,你将掌握该技能的四步工作流、前后端配置结构,以及它在 FinRobot 技能注册与加载机制中的底层实现方式,可直接在桌面端或 CLI 场景中复现同等的筛选流程。
技能定位:面向私募股权投前漏斗的第一道闸
deal-screening 是 FinRobot 桌面版 skills/private-equity 域下的十个私募股权技能之一,定位于"投前漏斗的第一道闸":在 deal-sourcing(项目挖掘)之后、dd-checklist(尽调清单)与 ic-memo(投委会备忘录)之前,用分钟级速度完成对一个入池项目的初筛。其前端 YAML 元数据(frontmatter)定义如下:
id: deal-screening
name: Deal Screening
version: 1.0.0
author: anthropic
domain: private-equity
description: Quickly screen inbound deal flow — CIMs, teasers, and broker materials
— against the fund's investment criteria. Extracts key deal metrics, runs a pass/fail
framework, and outputs a one-page screening memo. Use when reviewing new deal flow,
triaging inbound materials, or deciding whether to take ...
triggers:
- screen this deal
- review this CIM
- should we look at this
- triage this teaser
- deal screening
requires_data: []
requires_tools: []
requires_skills: []
compatible_models: []
这份元数据在 FinRobot 中不是装饰:finrobot_desktop/finrobot/engine/skills/spec.py 中的 Skill Pydantic 模型将 id、name、version、author、domain、description、triggers、requires_data、requires_tools、requires_skills、compatible_models、full_content、source_path 全部建模为字段;finrobot_desktop/finrobot/engine/skills/loader.py 中的 load_skill() 则负责从 --- 分隔的 YAML 头部中解析这些字段,并校验 id 与 name 为必填项。因此,触发器(triggers)并非普通的自然语言描述,而是后续被 SkillRegistry.search() 用作关键词匹配打分的关键索引。
该技能与同域其他技能的最大区别在于:它明确标注 requires_data: [] 与 requires_tools: [],即不依赖任何外部数据源或工具,纯靠 Agent 对入站材料(CIM / Teaser / 描述文本)的内容理解即可完成,这与 DCF、LBO 等依赖确定性数据管线的计算型技能有本质不同。
四步工作流全景
SKILL.md 将完整筛选流程定义为四个步骤,构成"提取事实 → 对照标准 → 快速评估 → 成文输出"的漏斗闭环。
Step 1:提取交易事实(Extract Deal Facts)
第一步的目标是从给定的 CIM、Teaser 或公司描述中抽取结构化事实清单,共九项:
- Company:公司名称、所在地、行业/子行业;
- Description:业务简介(1~2 句话);
- Financials:营收、EBITDA、利润率、增长率;
- Deal type:平台型(Platform)、并购补强型(Add-on)、资本重组(Recap)、少数股权(Minority)、分拆(Carve-out);
- Asking price / valuation:估值倍数、企业价值(EV,若材料中给出);
- Seller motivation:卖方当下出售的动因;
- Management:管理层留任(Rolling)还是退出(Exiting);
- Key customers:客户集中度风险;
- Key risks:明显的红旗(red flags)。
这九项字段直接映射筛选决策所需的最小信息集:财务体量决定是否在营收/EBITDA区间内,交易类型决定结构复杂度与投后动作,卖方动机与管理层去留决定交易确定性,客户集中度与风险清单决定能否快速否决。
Step 2:对照投资标准执行筛选(Screen Against Criteria)
在事实提取完成后,将各项指标填入基金投资标准对照表。若首次筛选时基金标准未知,SKILL.md 明确要求先向用户询问投资标准,而不是凭空假设:
| Criterion | Target | Actual | Pass/Fail |
|---|---|---|---|
| Revenue range | |||
| EBITDA range | |||
| EBITDA margin | |||
| Growth profile | |||
| Sector fit | |||
| Geography | |||
| Deal size / EV | |||
| Valuation (x EBITDA) | |||
| Customer concentration | |||
| Management continuity |
该表覆盖了十个关键筛选维度:三个财务规模指标(营收区间、EBITDA 区间、EBITDA 利润率)、一个成长画像、两个定位指标(行业契合、地域)、两个交易结构指标(交易规模/EV、EBITDA 倍数估值)、两个风险指标(客户集中度、管理层连续性)。每个维度由 Target 与 Actual 对比后给出明确的 Pass/Fail 判定,为下一步的快速评估提供结构化证据。
Step 3:快速评估(Quick Assessment)
第三步输出三部分评估结论:
- Verdict(结论):三档定性——通过(Pass)/ 进一步尽调(Further Diligence)/ 硬性否决(Hard Pass);
- Bull case(利多论点,2~3 条要点):为什么这可能是一笔好交易;
- Bear case(利空论点,2~3 条要点):关键风险与担忧;
- Key questions(关键问题):首次电话会议(first call)需要落实的问题清单。
Verdict 作为最终输出中最先被合伙人/IC 阅读的元素,必须建立在 Step 2 的 Pass/Fail 矩阵之上,避免凭感觉下结论。
Step 4:输出一页式筛选备忘录(Output)
最终产出是一页式筛选备忘录(one-page screening memo),可直接与合伙人分享或作为 IC 快速筛查材料。一页式的约束决定了内容组织必须精炼:事实摘要、标准对照表结论、Verdict、Bull/Bear case 与 Key questions 按固定版式排列,压缩在单页内。
实操要点:速度、直白与显式标记
SKILL.md 的 "Important Notes" 部分给出了五项影响执行质量的行为准则,这是技能能在真实交易团队中使用的前提:
- 速度优先——筛选应耗时分钟而非小时。这决定了 Agent 不应在筛选阶段发起外部数据拉取、长流程尽调或深挖财务模型;
- 直白暴露红旗——不要掩埋担忧("Be direct about red flags. Don't bury concerns"),筛选备忘录的价值恰恰在于快速否定;
- 显式标记不一致——若财务数据看起来不一致或不完整,必须显式标注(flag it explicitly),而不是擅自补齐或忽略;
- 首次筛选先问清标准——如果是基金的第一次筛选,必须先询问基金投资标准;
- 标准沉淀进记忆——确认后的筛选标准应存入记忆(save screening criteria in memory),供后续交易复用,避免每笔交易都重复询问。
最后一条"标准入记忆"正是 Agent 化筛选与人工筛选的本质差异:基金的投资标准是跨交易复用的资产,沉淀后筛选效率会随着交易笔数积累而提升。
源码级解析:Deal Screening 在 FinRobot 技能体系中的运作机制
技能目录结构与加载
Deal Screening 技能的物理位置遵循 FinRobot 统一的技能目录规范 skills/{domain}/{skill-id}/SKILL.md。finrobot_desktop/finrobot/engine/skills/registry.py 的 SkillRegistry 通过 skills_dir.glob("**/SKILL.md") 递归发现全部技能,并按 (domain, id) 排序索引;解析失败的技能仅记录 warning 并跳过,不会导致整个注册表崩溃。技能目录的运行时路径由 finrobot_desktop/finrobot/paths.py 中的 default_skills_dir() 解析——开发/源码环境下为仓库根目录下的 skills 目录,PyInstaller 冻结的桌面 sidecar 场景下则为 sys._MEIPASS 下的打包资源目录,从而保证"cwd 必须是仓库根目录"的隐式假设不再成立。
触发与检索:trigger 的真实作用
当用户对 Agent 说出 "screen this deal"、"review this CIM"、"should we look at this"、"triage this teaser" 或 "deal screening" 时,这些关键词通过 SkillRegistry.search() 的加权匹配命中本技能。匹配计分规则为:名称命中 +3、触发器命中 +2、描述命中 +1,按总分降序返回。也就是说,SKILL.md 中列出的五个 triggers 是技能可发现性(discoverability)的第一优先级索引,而非可有可无的装饰字段。在命令行环境中,可用 finrobot skill search "screen this deal" 或 finrobot skill list(按域分组列出全部技能)验证索引是否生效,详见 CLI 实现。
两种调用形态:对话激活与管线渲染
Deal Screening 属于交互式技能(interactive skill),主要通过 Mode A 对话中的 activate_skill 工具激活:finrobot_desktop/finrobot/engine/orchestrator.py 中 activate_skill(ctx, skill_id) 从 skill_runtime 注册表按 id 取技能后,交由 render_pipeline_methodology() 渲染。这里有一个值得注意的细节:finrobot_desktop/finrobot/engine/skills/pipeline_methodology.py 维护了一张"管线安全方法论"白名单(competitive-analysis、dcf-model、ic-memo 等),白名单内的技能在无人值守的报告管线中会被蒸馏为仅叙事、无交互检查点的安全版本;而 deal-screening 不在该白名单中,因此其渲染会回退到 full_content(原始 SKILL.md 正文)——这从源码结构上印证了该技能被设计为面向交互式聊天场景(Mode A)使用,而非接入自动化报告管线(Mode B)。对应地,管线化的 IC 备忘录由 ic_memo.py 承担,其 IRR 门槛闸门(IRR < 15% 强制 PASS)等确定性逻辑是纯代码职责,与 LLM 驱动的筛选技能职责边界清晰。
与同域技能的衔接
从技能目录可以清楚看到 private-equity 域的完整漏斗:deal-sourcing(挖掘与筛选目标清单)→ deal-screening(本技能,入站项目初筛)→ dd-checklist / dd-meeting-prep(尽调准备)→ ic-memo(投委会议事备忘录),后续还有 portfolio-monitoring、returns-analysis、unit-economics、value-creation-plan 等投后技能。Deal Screening 正处在这个漏斗中承上启下的位置:它既不负责寻找项目,也不负责终局估值,而是用最少的动作成本回答"这笔交易值不值得花时间"这一决策问题。
实战使用指引
在 FinRobot 桌面端(Tauri 客户端 + Python sidecar)中启用该技能的前提是技能目录已正确解析(skills_dir 在 finrobot_desktop/finrobot/config.py 中于运行时解析为绝对路径,参考 test_config.py 的断言),随后即可在对话中直接说:
"Screen this deal" + 粘贴 CIM / Teaser 文本或文件内容
Agent 将按本文所述四步流程执行:先输出九项事实提取,再询问或复用已记忆的基金标准并填充对照表,给出三档 Verdict 与 Bull/Bear case,最终形成一页式备忘录。对于首次使用,建议在触发前主动提供基金的投资标准(营收/EBITDA 区间、行业与地理偏好、估值上限、客户集中度红线等),并将确认后的标准沉淀到记忆中以加速后续交易。
结语
Deal Screening 技能的价值不在于替代投行团队的判断,而在于把"快速提取事实 → 对照标准 → 直白结论"这一可复用流程固化进 Agent:它以分钟级耗时、显式红旗标注和标准记忆复用三个机制,保证了入站项目漏斗的效率与纪律性。结合 FinRobot 的技能注册、加权检索与管线安全渲染机制,团队可以低成本地把这套方法论复制到其他领域,让每一笔入站交易都在同一条标准线下接受检验。