CtrlK
BlogDocsLog inGet started
Tessl Logo

investment-research

AI Berkshire skill: 投资研究:巴菲特-芒格-段永平-李录 四大师综合分析框架. Source: skills/investment-research.md.

47

Quality

49%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./codex-skills/investment-research/SKILL.md
SKILL.md
Quality
Evals
Security

Codex adapter note

This skill is generated from skills/investment-research.md so Claude Code and Codex users share one canonical workflow.

  • Treat $ARGUMENTS as the user's request in the current Codex thread.
  • When the source mentions Claude-only surfaces such as Task, Agent, WebSearch, Bash, Read, or Write, use the closest Codex capability available in this session: subagents when available, web search when needed, shell commands for local tools, and normal file edits for workspace files.
  • Use shared project tools from tools/ in this repository. Prefer running commands from the repository root with paths like python3 tools/financial_rigor.py ...; if the current thread starts outside the repo, locate the actual checkout path first instead of assuming a fixed home-directory path.
  • Before starting research, run the date command to confirm today's date; treat it as the baseline for "latest" data and state the data cutoff date in the report header. Never assume the current date from training data.
  • Preserve the research quality rules from AGENTS.md: cross-check financial data, use exact arithmetic tools for valuation/math, and clearly label uncertainty and source gaps.

投资研究:巴菲特-芒格-段永平-李录 四大师综合分析框架

对 $ARGUMENTS 进行系统化投资研究分析。

研究框架

基于巴菲特、芒格、段永平、李录四位投资大师的方法论,按以下七个模块顺序执行研究:

前置步骤:AI研究偏见自觉(必须执行)

在开始研究前,先评估该公司的"AI可研究性",识别潜在的数据偏见:

信息丰富度评级

等级特征AI研究陷阱应对策略
A级(信息充裕)上市多年、券商覆盖多、媒体报道密集共识过强,AI输出趋同于市场定价,alpha有限重点做反面检验:聪明人为什么不买?被忽略的风险是什么?
B级(信息适中)上市1-3年、覆盖有限、部分数据需推算AI可能用"合理推测"填补空白,看起来完整实则虚假确定性每个推算数据标注置信度,区分"有据推算"和"凭空填充"
C级(信息稀缺)刚上市/冷门股/新兴市场、几乎无覆盖AI会因资料不足而过度保守,误判为"看不清=不好"用第一性原理提问(见下方),从有限信息中提取商业本质

C级公司的第一性原理研究法: 当公开资料不足时,不要试图拼凑出"看起来完整"的报告,而是聚焦以下底层问题:

  1. 客户是谁?为什么付钱?有没有替代选择?
  2. 复购靠什么驱动?是习惯、锁定、还是持续创造新价值?
  3. 竞争对手拿100亿能复制这门生意吗?
  4. 管理层做过什么关键决策?这些决策反映了什么判断力和价值观?

偏见自查清单(研究全程保持警惕):

  • 我的"确定性"感受是来自生意本质,还是来自资料数量?
  • 如果把这家公司的资料量减少一半,我的结论会变吗?
  • AI输出的分析是否与市场共识高度雷同?如果是,我的信息优势在哪?
  • 是否存在"公开资料很少但生意本质极好"的可能性被低估了?

将信息丰富度评级结果写入报告开头,并在最终结论中注明"AI研究置信度"与"实际投资确定性"的区别。

第一步:数据收集

数据源规范:参见 skills/financial-data.md。所有财务数据必须来自两个独立来源,误差>1%须标记。

  • 美股:macrotrends(主)+ stockanalysis(副)
  • 港股:aastocks(主)+ macrotrends ADR(副)
  • A股:东方财富(主)+ 巨潮资讯(副)

使用 Task 工具启动后台 Agent,从网络收集以下数据:

  1. 收入结构:最近财年及近4季度分部收入、增速、毛利率
  2. 财务指标:近5年收入、净利润、毛利率、经营利润率、自由现金流、现金储备
  3. 竞争格局:市场份额、主要竞争对手对比
  4. 商业模式与护城河:核心竞争优势来源
  5. 技术能力:核心技术栈、研发投入
  6. 管理层:创始人/CEO履历、持股比例、关键决策记录
  7. 行业前景:TAM(总可寻址市场)、增长预测
  8. 风险因素:地缘政治、监管、供应链等
  9. 当前估值:市值、PE、PS、PEG、EV/Revenue
  10. 多空双方核心论点

数据交叉验证(必须执行,使用金融严谨性工具)

数据收集完成后,必须调用 tools/financial_rigor.py 对关键数据进行程序化验证,杜绝LLM心算误差。

必须验证的数据点

  • 总股本(从交易所、Yahoo Finance、StockAnalysis 等至少2个源确认)
  • 当前股价和市值(手动计算 股价×总股本 并与报告市值对比,防止单位错误
  • 最近财年收入和净利润(从公司年报+至少1个第三方源确认)
  • 现金储备和净现金(现金+短期投资-总债务,注意口径差异)
  • 管理层持股比例(区分经济权益和投票权,注意AB股结构)

强制验证步骤(使用Bash调用工具)

Step 1 — 市值验算(精确十进制,非浮点):

python3 tools/financial_rigor.py verify-market-cap \
  --price {股价} --shares {总股本} --reported {报告市值} --currency {币种}

Step 2 — 关键数据多源交叉验证:

python3 tools/financial_rigor.py cross-validate \
  --field {字段名} --values '{"来源1": 数值, "来源2": 数值}' --unit {单位}

对收入、净利润、现金储备分别执行。

Step 3 — 估值指标精确验算(PE/PB/ROE/FCF Yield 等):

python3 tools/financial_rigor.py verify-valuation \
  --price {股价} --eps {EPS} --bvps {每股净资产} --fcf-per-share {每股FCF} --dividend {每股股息}

验证规则

  1. 每个关键数据点至少2个独立来源
  2. 发现来源间有差异时,优先采用公司年报/交易所数据,并注明差异原因
  3. 所有涉及计算的数据必须通过工具验算,禁止LLM心算
  4. 工具输出结果直接嵌入报告附录"关键数据交叉验证记录"
  5. 如果工具报告 ❌ 偏差过大,必须排查原因后才能继续分析

常见错误防范

  • 市值单位:港币亿 vs 人民币亿 vs 美元亿,容易漏写/多写一个零
  • FCF口径:不同来源对资本支出的定义可能不同(是否含租赁、收购等)
  • 债务口径:是否包含经营租赁负债
  • 持股比例:AB股公司的经济权益 ≠ 投票权

第二步:生意本质分析 — 段永平"对的生意"

分析要点:

  • 用一句话定义这门生意的本质
  • 收入结构拆解(图表)
  • 5年盈利能力趋势(图表)
  • 商业模式画布:一次性销售 vs 订阅/复购?硬件 vs 软件 vs 平台?
  • 生态粘性/客户锁定强度
  • 毛利率水平与同行对比,解释为什么高/低
  • 经营杠杆分析
  • 段永平式追问:这门生意好在哪?如果只能用一句话描述,是什么?

第三步:护城河评估 — 巴菲特"经济护城河"

逐一验证五类护城河:

护城河类型验证方法
品牌/定价权是否能在不损失销量的情况下提价?
转换成本客户迁移到竞品的成本有多高?
网络效应用户越多产品越好吗?
规模效应规模带来的成本优势有多大?
技术/专利壁垒技术领先几年?能否被复制?

分析护城河趋势:过去5年变宽还是变窄?未来5年预判。

巴菲特式追问:10年后这条护城河还在吗?什么能摧毁它?

第四步:逆向思考与风险清单 — 芒格"反过来想"

  • 列出"这家公司可能失败的所有路径"(表格:路径/概率/影响程度)
  • 历史类比:找到历史上处于相似位置的公司,结局如何?
  • 跨学科分析:用网络效应理论、技术采纳曲线、竞争博弈等模型交叉验证
  • 偏误自查:叙事偏差、锚定效应、幸存者偏差
  • 收集空方核心论点

芒格式追问:我最可能在哪里犯错?聪明人为什么会不买/做空这家公司?

第五步:管理层评估 — 段永平"对的人" + 巴菲特"管理层诚信"

  • CEO/创始人关键决策复盘(表格:时间/决策/结果/评分)
  • 资本配置能力:研发回报率、并购成功率、回购时机
  • 股东利益一致性:管理层持股、薪酬结构、减持记录
  • 组织能力:团队稳定性、关键人才风险
  • 企业文化特征

段永平式追问:如果CEO退休,这家公司还能保持竞争力吗?

第六步:行业与文明趋势 — 李录"文明演进框架"

  • 判断所在行业是否处于"文明级范式转移"
  • 历史技术革命类比(蒸汽机/电力/互联网/AI)
  • TAM增长曲线与天花板分析
  • 公司在产业价值链中的位置
  • 技术路线风险
  • 客户/供应商集中度分析

李录式追问:站在20年后回看,这家公司是"这个时代的标准石油"还是"昙花一现的3Com"?

第七步:估值与安全边际 — 巴菲特"内在价值" + 段永平"对的价格"

  • 当前市场定价(关键估值指标表格)—— 必须通过工具验算
  • 反向DCF:当前股价隐含了什么增长预期?
  • 三情景估值 —— 必须通过工具精确计算,禁止心算
python3 tools/financial_rigor.py three-scenario \
  --price {股价} --eps {EPS} --shares {总股本亿} \
  --growth {乐观增速} {中性增速} {悲观增速} \
  --pe {乐观PE} {中性PE} {悲观PE} --years 3 --currency {币种}
  • 与自身历史估值对比
  • 与同行估值对比

长期折现估值(十年尺度,必须执行)

三年三情景回答"贵不贵",十年折现回答"值不值得重仓"。凡是给出十年期 IRR 或终值倍数的研究,必须走这套流程,用 tools/terminal_value.py

终值倍数只有一个合法来源——永续增长模型,不许用同业类比

$$PE_{终值} = \frac{1 - g/ROIC}{r - g}$$

"帝亚吉欧 13 倍所以茅台给 16 倍"是循环论证:用别人今天的价格,证明我假设的价格合理。市场今天整体贵,类比法就把这份贵原封不动搬到十年后。

Step 1 — 定三个输入,逐个写出理由(这一步全是判断,不是计算,必须在报告里交代):

输入怎么定常见错误
r 资本成本无风险利率 + β × ERP。币种必须与现金流一致:人民币口径 6%–9%(主用 8%),美元/港元口径 9%–11.5%(主用 10%)跟着国债利率跑。中国国债 1.70% 折出来的 PE 会到 50 倍以上,那不是估值是放大偏见
ROIC 稳态增量资本回报夹在存量 ROIC(含不上表的无形护城河,偏高)与派息反解的隐含增量 ROIC(假设 capex 回报为零,偏低)之间直接用存量 ROIC。等于假设新投的每块钱都能复制建立微信时的回报
g 永续增速不是未来十年增速(那已在终值利润里),是终值年之后到永远。硬天花板是长期名义 GDP:人民币口径基准档 ≤2%,美元口径 ≤4%用美元的 g 配人民币的 r。3% 名义增长在美国是 0.5% 实际(保守),在中国是 2% 实际(激进)

g 不随 r 变——g 是对终值年之后经济的判断,r 是你要求的回报,两件独立的事。做敏感性时只动 r。

Step 2 — 三条硬约束准出检查(不通过不许把估值写进报告):

python3 tools/terminal_value.py audit \
  --currency {CNY|USD|HKD} --r {资本成本} --roic {稳态ROIC} \
  --g {悲观g},{基准g},{乐观g} --rf {无风险利率} --beta 1.0 \
  --discrete-risks "{风险名}:{情景|尾部档|概率|未建模},..."

三条检查的内容与打回条件:

#检查打回条件
C1r 与 g 必须同币种r 落在别的币种区间、或基准档 g 超过本币上限。工具会直接指出"这是 USD 的量级——r 用了本币而 g 用了外币"
C2分母 r−g ≥ 5 个百分点任一档不足 5pct。分母越窄 g 动一点点估值就翻天;分母 ≤0 直接判模型失效。确实要做上行/下行情景时加 --upside-only 显式声明,但报告里必须写明"这是情景不是估值"
C3离散风险不得进 r 或 β任一风险归属写成 折现率/r/beta 一律打回。退市、VIE 失效、地缘断供、监管重击必须归 情景尾部档。β 偏离 1.0 必须给 --beta-justification

C3 为什么是硬的:抬 r 三个百分点,对第 10 年现金流的惩罚是第 1 年的 2.6 倍;而退市风险是大致均匀甚至前置的年度危害率。用折现率处理离散风险,会系统性地把风险的时间分布搞反。 正确做法是单列一个尾部情景档并给它一个概率。

C1/C2/C3 的完整论证见 reports/7公司10年投资价值横评-确定性调整后回报-20260814.md 第 3.4–3.6 节——三条都是那份报告实际踩过的坑。

Step 3 — 出数(准出后才能跑):

# 单点退出 PE,打印完整算式(留存率/分子/分母全部展开,便于报告引用)
python3 tools/terminal_value.py pe --roic {ROIC} --g {g} --r {r}

# 从零算 IRR
python3 tools/terminal_value.py irr \
  --profit {终值年利润} --mcap {今日市值} --pe {退出PE} \
  --years 10 --payout {股息率-稀释率}

多公司横评时把参数写成 JSON 传 --config,再用 table / sweep / check

Step 4 — 报告里必须写出的四件事:

  1. r 取值、币种、以及配对的 g 上限。不写明 r 就报 IRR,报的是自己的偏好。
  2. 至少两档 r 的敏感性,以及排序在各档下是否稳定。绝对数字受 r 支配,排序才是稳健结论。
  3. 每一档的 r−g 分母宽度,凡低于 5pct 的必须标注"仅作情景参考"。
  4. 未建模的离散风险清单(audit 里标 未建模 的),写进"限制"章节。

巴菲特式追问:这个 r 如果错 2 个百分点,我的结论会翻转吗?如果会,我的结论买的是公司还是折现率?

段永平式追问:如果股市明天关闭5年,你愿意以这个价格持有吗?

第八步:综合决策备忘录

汇总表格:

维度结论信心度
生意质量(段永平)
护城河(巴菲特)
管理层(段永平+巴菲特)
最大风险(芒格)
文明趋势(李录)
估值(巴菲特+段永平)

最终决策表格:

策略建议
空仓者
持仓者
卖出信号
加仓信号

四位大师的模拟点评(用引用格式)。

输出要求

  1. 所有分析必须有数据支撑,附数据来源
  2. 使用 Markdown 表格呈现关键数据
  3. 每个模块末尾必须有对应大师的"追问"
  4. 最终将完整报告写入 ~/[公司名]投资研究报告.md
  5. 结论要明确,不回避给出买入/观望/回避的建议
  6. 估值部分必须给出具体的价格区间
  7. 报告开头必须包含"信息丰富度评级"(A/B/C)和"AI研究局限性声明"
  8. 报告结尾必须区分"AI分析置信度"与"投资确定性"——前者取决于资料量,后者取决于生意本质。明确告知读者:本报告的哪些结论基于充分数据,哪些基于有限信息的推理
  9. 如果公司属于C级(信息稀缺),报告末尾必须列出"需要一手验证的问题清单"——建议读者通过田野调查、产品体验、供应链访谈等方式补充AI的盲区

数据抽检(准出流程)

报告写入文件后,必须执行数据抽检,通过后方可发布:

Step 1 — 提取抽检清单(15%随机抽样):

python3 tools/report_audit.py extract \
  --report <报告文件路径>

输出 JSON 模板,每项含 fetched_value(待填)。

Step 2 — 取数核验: 对清单中每个数据点,按 skills/financial-data.md 规范从可靠信源取数 (美股:macrotrends+stockanalysis;港股:aastocks+macrotrends;A股:东方财富+巨潮资讯), 填入 fetched_value / fetched_source / fetched_value2 / fetched_source2

Step 3 — 输出判决:

python3 tools/report_audit.py verdict \
  --results '<填好的JSON>' \
  --report <报告文件名>
  • 【准出】:所有抽检点偏差 ≤ 1% → 报告可发布
  • 【打回】:任意点偏差 > 1% → 修正对应数据后重新抽检,直到准出

Step 4 — 估值口径复检(含十年折现估值的报告必须执行):

如果报告里出现了十年期 IRR 或终值倍数,把最终定稿用的参数再跑一遍 audit,确认写进报告的数字与准出时的一致:

python3 tools/terminal_value.py audit \
  --currency {币种} --r {r} --roic {ROIC} --g {三档g} --rf {无风险利率} \
  --beta {β} --discrete-risks "{风险归属清单}"
  • 【准出】(退出码 0)→ 报告可发布
  • 【打回】(退出码 1)→ 修正后重跑,直到准出

这一步不能跳过的原因:第七步的 audit 是在算数之前做的,而写报告的过程中经常会回头调 g 或 r。准出前的最后一次 audit 才是对报告负责的那一次。

Repository
xbtlin/ai-berkshire
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.