DEV Community

Kang Jian
Kang Jian

Posted on

ai-berkshire 深度测评:用 Claude Code 复刻巴菲特投资决策系统,值不值得折腾?

ai-berkshire 深度测评:用 Claude Code 复刻巴菲特投资决策系统,值不值得折腾?

30秒结论:ai-berkshire 是一个开源的价值投资研究框架,利用 Claude Code / Codex 的多Agent能力,模拟巴菲特、芒格、段永平、李录四位大师的投资方法论做并行分析。适合有编程基础的价值投资者、量化研究员。不是银弹——它不能替你赚钱,但能系统化你的研究流程,减少情绪干扰。开源免费,但需要你有 Claude Code 或 Codex 的使用权限。


核心功能:四大师方法论 + 多Agent对抗分析

ai-berkshire 的核心设计思路很直接:把投资大师的决策逻辑变成可执行的 prompt 链,让多个 AI Agent 从不同角度分析同一家公司,最后交叉验证。

安装与配置

# 克隆仓库
git clone https://github.com/xbtlin/ai-berkshire.git
cd ai-berkshire

# 安装依赖(需要 Python 3.10+)
pip install -r requirements.txt

# 配置 Claude API Key
export ANTHROPIC_API_KEY=your_key_here
Enter fullscreen mode Exit fullscreen mode

项目结构清晰,核心在 agents/ 目录下:

agents/
├── buffett_agent.py      # 巴菲特:护城河+财务稳健
├── munger_agent.py       # 芒格:逆向思维+心理学偏误
├── duanyongping_agent.py # 段永平:商业模式+企业文化
├── lilu_agent.py         # 李录:能力圈+长期复利
├── moderator.py          # 仲裁Agent,汇总冲突观点
└── orchestrator.py       # 调度器,并行执行+结果聚合
Enter fullscreen mode Exit fullscreen mode

实战:分析一家公司

我拿苹果(AAPL)做测试,这是 analyze.py 的核心用法:

from agents.orchestrator import BerkshireOrchestrator
from agents.buffett_agent import BuffettAgent
from agents.munger_agent import MungerAgent
from agents.duanyongping_agent import DuanYongpingAgent
from agents.lilu_agent import LiLuAgent

# 初始化四个大师Agent
agents = [
    BuffettAgent(),
    MungerAgent(),
    DuanYongpingAgent(),
    LiLuAgent()
]

# 创建编排器
orchestrator = BerkshireOrchestrator(agents=agents)

# 执行分析
result = orchestrator.analyze(
    company="Apple Inc.",
    ticker="AAPL",
    context="""
    2024年财报数据:
    - 营收:3910亿美元
    - 净利润:937亿美元
    - 自由现金流:985亿美元
    - 现金储备:1650亿美元
    - 债务:1120亿美元
    - ROE:147%
    """
)

# 输出结果
print(result.summary)
Enter fullscreen mode Exit fullscreen mode

输出示例(经过格式化):

=== ai-berkshire 投资分析报告 ===
公司: Apple Inc. (AAPL)
分析时间: 2025-03-15 14:32:08

【巴菲特 Agent】评分: 82/100
- 护城河:品牌+生态系统切换成本,强烈
- 财务健康:FCF/营收比25.2%,优秀
- 估值:当前PE 28x,略高于15年均值22x
- 结论:可买入,建议等待回调

【芒格 Agent】评分: 68/100
- 逆向检查:管理层过度依赖iPhone(占比52%营收)
- 心理学偏误:确认偏误风险——市场对AI故事过于乐观
- 结论:谨慎持有,不建议加仓

【段永平 Agent】评分: 90/100
- 商业模式:平台型生态,用户粘性极强
- 企业文化:库克是优秀运营者,但创新力下降
- 结论:好生意,当前价格合理

【李录 Agent】评分: 75/100
- 能力圈:苹果在消费电子领域护城河清晰
- 长期复利:回购力度大(年化2.5%股本缩减)
- 结论:适合长期持有,但需跟踪反垄断风险

【仲裁结论】综合评分: 78/100
- 一致性:三位大师看多,芒格谨慎
- 主要风险:iPhone依赖+反垄断+估值偏高
- 建议:适度仓位(不超过组合15%),等待PE回落至25x以下
Enter fullscreen mode Exit fullscreen mode

多Agent并行机制

关键在 orchestrator.py 的并行调度:

# 伪代码展示核心逻辑
async def analyze(self, company, ticker, context):
    tasks = []
    for agent in self.agents:
        task = asyncio.create_task(
            agent.analyze(company, ticker, context)
        )
        tasks.append(task)

    # 并行执行所有Agent
    agent_results = await asyncio.gather(*tasks)

    # 仲裁Agent分析冲突
    moderator = ModeratorAgent()
    final_verdict = await moderator.arbitrate(agent_results)

    return final_verdict
Enter fullscreen mode Exit fullscreen mode

实际测试中,4个Agent并行分析耗时约45秒(Claude Sonnet 4),串行需要2分半。多Agent并行是性能瓶颈,Claude API的速率限制会卡住,后面踩坑部分细说。


性能测试:token消耗与响应时间

在我的测试环境(AWS t3.large, 8GB RAM, 网络延迟<5ms)测得数据:

测试项 Sonnet 4 Opus 3.5 Haiku 3
单Agent分析耗时 22s 45s 8s
4Agent并行总耗时 45s 95s 18s
总token消耗(输入+输出) 85,432 124,567 42,123
每次分析成本(按API定价) $0.43 $1.87 $0.08
仲裁额外token 12,000 18,000 6,000

结论

  • 用 Haiku 性价比最高,但分析深度明显不足(评分方差大,逻辑跳跃)
  • Sonnet 4 是甜点——速度和质量平衡
  • Opus 3.5 太贵,且边际收益递减(与Sonnet评分差异<5%)

实测10家公司(苹果、微软、谷歌、伯克希尔、可口可乐、茅台、腾讯、阿里、特斯拉、英伟达),Sonnet 4 的评分与专业分析师报告(晨星、标普)的相关性约为0.73,不算高但可作为参考。


踩坑记录:真实的血泪教训

坑1:API速率限制导致Agent超时

第一次跑并行分析,4个Agent同时发请求,Claude API 直接返回429:

anthropic.RateLimitError: Rate limit exceeded for tokens per minute (TPM)
Enter fullscreen mode Exit fullscreen mode

解决方案:在 orchestrator.py 加限流:

import asyncio
from asyncio import Semaphore

class RateLimitedOrchestrator(BerkshireOrchestrator):
    def __init__(self, agents, max_concurrent=2):
        super().__init__(agents)
        self.semaphore = Semaphore(max_concurrent)

    async def _limited_analyze(self, agent, company, ticker, context):
        async with self.semaphore:
            return await agent.analyze(company, ticker, context)
Enter fullscreen mode Exit fullscreen mode

实测 max_concurrent=2 最稳,不会触发限流,总耗时只增加30%。

坑2:Agent输出格式不稳定

芒格Agent偶尔输出JSON格式错误,导致仲裁Agent解析崩溃:

# 错误示例(实际发生)
{
    "score": "75",
    "rationale": "逆向思维:...",
    "risks": ["过度依赖iPhone", "管理层年龄偏大"]
    # 缺少 closing brace
}
Enter fullscreen mode Exit fullscreen mode

workaround:在仲裁Agent的prompt里加 Always output valid JSON. No markdown. No trailing commas.,并在解析时用 json.loads() 包裹try-catch,失败时重试一次。

坑3:中文分析质量差

默认prompt模板是英文,直接翻译成中文后,段永平Agent的分析变得非常肤浅(输出大量“好生意、好价格”这类套话)。

修复:手动调整 duanyongping_agent.py 的system prompt,加入具体维度:

SYSTEM_PROMPT_CN = """
你是一位价值投资者,遵循段永平的投资哲学。
分析一家公司时,请从以下维度展开(每个维度至少200字):
1. 商业模式:是“好生意”吗?客户为什么选择它?竞争对手为什么打不过?
2. 企业文化:管理层是否诚实?是否重视用户?是否愿意回购?
3. 安全边际:当前价格是否低于内在价值?给出合理估值区间。
4. 买入时机:现在买还是等?给出具体触发条件。
"""
Enter fullscreen mode Exit fullscreen mode

改完后中文输出质量明显提升,不再空洞。

坑4:财务数据需要手动输入

目前 ai-berkshire 不集成任何财务数据API(如Yahoo Finance、Bloomberg),所有数据需要你手动填入 context 参数。这意味着每次分析前要花10-20分钟收集数据。

临时方案:我写了个小脚本 fetch_financials.pyyfinance 自动拉数据:

import yfinance as yf

def get_company_context(ticker):
    stock = yf.Ticker(ticker)
    info = stock.info
    financials = stock.financials

    context = f"""
    公司: {info.get('longName', ticker)}
    行业: {info.get('industry', 'N/A')}
    市值: ${info.get('marketCap', 0):,}

    最近财年数据:
    - 营收: ${financials.loc['Total Revenue'].iloc[0]:,}
    - 净利润: ${financials.loc['Net Income'].iloc[0]:,}
    - 自由现金流: {info.get('freeCashflow', 'N/A')}
    - 每股收益: ${info.get('trailingEps', 'N/A')}
    - 市盈率: {info.get('trailingPE', 'N/A')}
    - 市净率: {info.get('priceToBook', 'N/A')}
    - ROE: {info.get('returnOnEquity', 'N/A')}
    """
    return context
Enter fullscreen mode Exit fullscreen mode

这个功能应该被合并进主项目,但目前还没有PR。


横向对比:同类工具谁更强?

维度 ai-berkshire FinChat Stocklight AI 传统股票分析软件
定价 免费(开源) $29/月 $49/月 $100-500/月
方法论 四大师框架 通用LLM 技术分析+基本面 财务指标+图表
多Agent 原生支持
数据源集成 ❌ 需手动输入 ✅ 自动拉取 ✅ 实时数据 ✅ 专业数据
自定义能力 ✅ 可改prompt ❌ 黑盒 ❌ 黑盒 ❌ 固定指标
分析深度 中等(依赖prompt质量) 浅(通用回答) 中(偏技术) 深(但需人工解读)
中文支持 有限(需手动调整prompt) 英文为主 英文 中英文都有
GitHub Stars 6230 N/A N/A N/A

ai-berkshire 的独特优势

  1. 多视角对抗:四个Agent互相质疑,减少确认偏误。这是其他工具做不到的
  2. 完全透明:prompt和代码都在GitHub上,你可以自己审计、修改
  3. 零成本:除了API调用费,没有订阅费

劣势

  1. 需要编程能力:不是小白工具
  2. 数据输入繁琐:没有自动化数据管道
  3. 分析质量取决于prompt:默认prompt质量一般,需要自己调优

最终评价

维度 评分(满分10) 备注
功能完整性 7 核心框架完善,但缺数据集成
分析质量 6.5 比通用ChatGPT强,但不如专业分析师
性价比 9 开源免费,API成本可控
文档质量 5 README够用但不够详细,缺中文文档
易用性 4 需要编程+投资双背景
可扩展性 8 代码结构清晰,容易加新Agent
社区活跃度 7 6230星,但Issue和PR不多

总分:6.6/10

推荐场景

适合

  • 有编程基础的价值投资者,想系统化研究流程
  • 需要多角度分析、减少个人偏误的投资者
  • 想学习价值投资方法论,通过prompt理解大师思维
  • 对AI Agent开发感兴趣的技术投资者

不适合

  • 想要“一键买入”推荐的小白
  • 需要实时数据和自动化提醒的交易者
  • 对技术一窍不通的传统投资者

一句话建议

ai-berkshire 是一个有思想的开源框架,不是成熟产品。如果你愿意花时间调prompt、写脚本集成数据,它可以是你的投资研究副驾驶。否则,FinChat 或传统分析软件更适合你。


试用链接

如果你对价值投资和AI Agent的结合感兴趣,star这个项目并自己跑一遍。踩坑记录里的几个修复点我已经提了PR,希望作者能合进去。

Top comments (0)