一个开源的本地 AI 投研合伙人。把"好生意 / 好公司 / 好价格"编码进价投大师 Agent,替你做尽调、出三段式报告、自我复核、桌面端一键跑。
ai-hedge-fund 教你做对冲基金,价投合伙人教你少做交易。
一句话定位:A 股散户和研究者的本地 AI 投研台。
不用付费行情 API,不让模型编数字,不给买卖建议;它只帮你判断一家公司是否值得继续研究,并把证据、分歧和不知道的部分摊开。
| 股票 | 样例 | 裁判结论 | 一句话 |
|---|---|---|---|
中国平安 601318 |
HTML · meta | worth_research |
PE 8.19 处 21% 分位,金融生态稳但投资端待考 |
工业富联 601138 |
HTML · meta | pass |
PE 30.89 处 92% 分位,代工龙头毛利率仅 7% |
贵州茅台 600519 |
Markdown | sample | CLI 早期报告样例 |
更多真实输出见 样例报告库。
flowchart LR
A["股票代码 / 公司名"] --> B["Python 数据边车<br/>akshare"]
B --> C["DataPack<br/>唯一数字来源"]
C --> D["多位价值投资大师"]
D --> E["综合裁判<br/>verdict + scorecard"]
E --> F["HTML / Markdown 报告"]
F --> G["AI 复核员<br/>事实、逻辑、相关性问题"]
市面上 AI 选股工具的三个病:
- 黑箱:给你一个分数,说不清是好生意还是好价格;
- 追热点:LLM 自己编数字,追涨杀跌;
- 美股中心:A 股数据要付费、要会英文。
价投合伙人反着来:
- 🇨🇳 A 股原生:akshare 免费数据,不依赖任何付费 API
- 🧠 中文大师人格:巴菲特 / 段永平 / 芒格 / 林奇 / 马克斯 / 格雷厄姆 / 费雪 / 李录等多位大师,强制
PASS / FAIL / GRAY三段式输出 - 🔒 能力圈门禁:看不懂的生意直接拒绝分析,不装懂
- 📐 反幻觉:所有数字必须来自 tool call(akshare 实时查询),禁止 LLM 自算
- 🧪 AI 复核员:每份报告由独立的复核 Agent 对照原文扫引用、扫矛盾、扫估值跳跃,产出 issues 清单
- 🖥️ 桌面投研工作台:Electron 打包,Windows NSIS / Portable 与 macOS PKG / DMG / ZIP 发行,内置数据边车,下载即可用
- 🗂️ 自选股池 + 公司档案:把单次报告沉淀成长期跟踪对象,维护结论、备注、数据质量和历史报告
- 🔎 本地筛选 / 风险雷达 / 公司对比:基于本地快照筛候选、看风险红灯、横向比较估值、股息、历史分位和备注
- 🧰 诊断中心 + 本地持久化:内置边车状态、模型配置、报告目录、最近事件检查;自选股和原则写入本地状态文件
- 🪄 低学习成本交互:首次启动三步引导、报告摘要卡、长任务进度条、可操作错误提示和统一 AI 侧栏
- 🔑 自带 API Key · 12 家 LLM Provider 即选即用:OpenAI 兼容协议,桌面端内置预设:腾讯云 LKEAP / DeepSeek / 阿里通义 / 智谱 GLM / Kimi / 豆包 / 硅基流动 / OpenRouter / Ollama / OpenAI / Grok / 自定义。思考型模型(如 glm-4.6 / qwq)的 reasoning 链很费 token,v0.1.15 起默认预算已拉到 16384 并内置截断重试
桌面端不只是“生成一份报告”,而是围绕长期研究流程做了一个本地投研台:
| 模块 | 能做什么 |
|---|---|
| 分析 | 输入股票代码或公司名,拉取 DataPack,运行多位大师 Agent,生成 HTML / Markdown 报告 |
| AI 复核 | 对已生成 HTML 报告做事实、逻辑、相关性复核,并把复核卡片写回报告 |
| 首次引导 | 首次启动用“配置 AI → 输入公司 → 生成报告”三步带用户完成第一份报告 |
| 报告摘要卡 | 报告生成后优先展示结论入口、核心理由、优先复核项和下一步动作 |
| 历史报告管理 | 搜索历史报告,勾选批量删除;删除会移入 .trash,便于误删恢复 |
| 诊断中心 | 检查数据边车、LLM Key、模型、报告目录、回收站数量和最近错误日志 |
| 自选股池 | 将当前分析公司加入自选,维护“值得研究 / 继续观察 / 暂不研究”等结论和备注,并可一键刷新快照 |
| 批量筛选器 | 基于自选股快照按 PE、PB、分组筛候选,先排除明显不合适的公司 |
| 公司档案 | 按公司聚合历史报告、结论、备注,形成长期研究主页 |
| 风险雷达 | 根据当前数据快照提示估值偏高、杠杆较高、ROE 偏弱、数据不足等风险 |
| 公司对比 | 选择两家公司横向比较 PE、PB、市值、股息率、PE 分位、财务期数、数据质量、结论和备注 |
| 我的投资原则 | 在本地维护个人能力圈、排除项和检查清单 |
| 导出与分享 | 生成 Markdown 投研摘要,可复制到 Obsidian / Notion / 微信草稿 |
推荐使用路径:
单家公司分析 → AI 复核 → 加入自选 → 刷新快照 → 本地筛选 → 公司档案跟踪 → 对比 / 风险复盘 → 导出摘要
工作台内置统一的 AI Copilot Layer。顶部有统一的 AI 助手侧栏,每个模块也保留轻量 AI 动作按钮,用户不需要自己写 prompt:
| AI 动作 | 使用场景 |
|---|---|
| AI 今日简报 | 根据当前数据、自选股、原则和历史报告生成下一步研究提醒 |
| AI 整理自选 | 帮自选股分组、总结跟踪理由、提示应该先看哪几家公司 |
| AI 解释筛选 | 解释筛选条件含义、为什么这些公司留下、哪些公司暂时排除 |
| AI 解释风险 | 把风险雷达的红灯翻译成可执行核查清单 |
| AI 总结档案 | 总结某家公司历史判断变化、长期观点和下次研究问题 |
| AI 对比结论 | 对两家公司给出差异摘要,说明谁更接近你的投资原则 |
| AI 转规则 | 把自然语言投资原则转成可执行筛选/排除条件 |
| AI 摘要 / 润色 | 把报告或导出内容整理成更适合分享和复盘的版本 |
所有 AI 动作都遵守同一约束:只基于当前页面上下文、DataPack、报告、数据质量提示和用户原则整理,不新增未来源数字;如果数据缺失或冲突,必须先提示复核数据源,不输出买卖建议。
- 去 Releases 下载
价投合伙人-0.2.2-x64.exe(Windows 安装版)、价投合伙人-0.2.2-portable.exe(Windows 免安装版),或 macOS 的.pkg / .dmg / .zip包 - 首次启动填
LLM_BASE_URL / API_KEY / MODEL(支持 LKEAP / DeepSeek / 本地 Ollama) - 输入股票代码或公司名,点「开始分析」→ 得到三段式 HTML 报告
- 点击「AI 复核」检查报告,再把公司加入「自选」进入长期跟踪
桌面端会优先启动安装包内置的 value-copilot-sidecar,普通用户不需要安装 Python。开发者仍可用源码模式运行 pnpm sidecar。
corepack enable
pnpm install
pnpm desktop:dist:mac当前 macOS 配置默认生成 Apple Silicon (arm64) 的 PKG / DMG / ZIP。PKG 会把应用安装到 /Applications;安装包内已包含 Electron 应用和 PyInstaller 打出的 value-copilot-sidecar,普通用户不需要安装 Node、pnpm、Python 或 akshare。构建命令会在 Mac 上用系统 sips / iconutil 从现有 PNG 生成 resources/icon.icns。正式分发前建议配置 Apple Developer ID 签名与 notarization;未签名本地测试包可能需要在系统设置中允许打开。
pnpm install
pnpm sidecar
cp .env.example .env
# 填 LLM_BASE_URL / LLM_API_KEY / LLM_MODEL
pnpm ask 600519# 1. 启动数据边车(一个终端)
cd services/data-sidecar
pip install -r requirements.txt
python main.py # 监听 http://127.0.0.1:9876
# 2. 配置 LLM(另一个终端)
cp .env.example .env
# 编辑 .env,填 LLM_BASE_URL / LLM_API_KEY / LLM_MODEL
# 3. 装依赖 + 跑大师委员会
pnpm install
pnpm ask 600519 # 贵州茅台
pnpm ask 601318 # 中国平安报告落到 reports/{code}-{date}.md / .html,AI 复核摘要落到 .meta.json。
更多排错技巧见
RUN.md。
这个项目的重点不是让 LLM 更会说,而是限制它别乱说:
| 机制 | 作用 |
|---|---|
DataPack 单一事实源 |
所有估值、财务、股息、行业数据先由 akshare 拉取,再传给模型 |
| 禁止 LLM 自造数字 | prompt 明确要求只能引用 JSON 中已有数字,缺失就写"我没有这个数据" |
| 多大师分歧 | 不强行合成单一意见,保留 business / company / price 三段判断 |
| 裁判不发明证据 | judge 只汇总大师原文和 DataPack,不引入新事实 |
| 独立复核员 | reviewer 用独立上下文检查引用、矛盾、估值跳跃和相关性 |
| 可追溯落盘 | HTML / Markdown / judge raw / payload / meta 文件一起保存,方便排查 |
桌面端「设置」内置 12 家预设,选完自动填好 LLM_BASE_URL 与可选模型。全部走 OpenAI 兼容协议,CLI 用户改 .env 三个变量即可。
| # | Provider | 推荐模型 | Base URL | 申请 Key |
|---|---|---|---|---|
| 1 | 腾讯云 LKEAP · Token Plan ⭐推荐 | glm-4.6 / kimi-k2.5 / minimax-m2.7 |
https://api.lkeap.cloud.tencent.com/plan/v3 |
控制台 |
| 2 | 腾讯云 LKEAP · 按量计费 | deepseek-v3 / deepseek-r1 / qwen-plus |
https://api.lkeap.cloud.tencent.com/v1 |
控制台 |
| 3 | DeepSeek 官方 | deepseek-chat / deepseek-reasoner |
https://api.deepseek.com/v1 |
DeepSeek Platform |
| 4 | 阿里通义千问(DashScope) | qwen-max / qwen-plus / qwq-32b-preview |
https://dashscope.aliyuncs.com/compatible-mode/v1 |
阿里百炼 |
| 5 | 智谱 GLM | glm-4.6 / glm-z1-air |
https://open.bigmodel.cn/api/paas/v4 |
智谱控制台 |
| 6 | 月之暗面 Kimi | moonshot-v1-128k / kimi-latest |
https://api.moonshot.cn/v1 |
Moonshot Platform |
| 7 | 字节豆包(火山方舟) | doubao-1-5-pro-32k-250115 |
https://ark.cn-beijing.volces.com/api/v3 |
火山方舟 |
| 8 | 硅基流动 SiliconFlow | deepseek-ai/DeepSeek-V3 / Qwen/QwQ-32B |
https://api.siliconflow.cn/v1 |
SiliconFlow |
| 9 | OpenRouter(海外聚合) | anthropic/claude-sonnet-4.5 / google/gemini-2.5-pro |
https://openrouter.ai/api/v1 |
OpenRouter |
| 10 | Ollama 本地 🔒离线 | qwen2.5:14b / deepseek-r1:14b |
http://127.0.0.1:11434/v1 |
Ollama 安装 |
| 11 | OpenAI 官方 | gpt-4o / gpt-4o-mini / o3-mini |
https://api.openai.com/v1 |
OpenAI Platform |
| 12 | xAI Grok | grok-4-latest / grok-3 |
https://api.x.ai/v1 |
xAI Console |
| 13 | 自定义 | 任意 | 任意 OpenAI 兼容端点(Azure OpenAI / 文心 V2 / vLLM 私有部署 / 其他) | — |
- 追求性价比 + 国内直连:腾讯云 LKEAP Token Plan(包月不限模型)或 DeepSeek 官方(V3 极便宜)
- 追求质量 + 接受海外延迟:OpenRouter 选
claude-sonnet-4.5(推理质量天花板) - 追求隐私 + 完全免费:Ollama 本地跑
qwen2.5:14b(需 ≥16GB 内存)
# 腾讯云 LKEAP Token Plan
LLM_BASE_URL=https://api.lkeap.cloud.tencent.com/plan/v3
LLM_API_KEY=sk-tp-xxxxxxxxxxxx
LLM_MODEL=glm-4.6
# 或 DeepSeek 官方
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_API_KEY=sk-xxxxxxxxxxxx
LLM_MODEL=deepseek-chat
# 或 Ollama 本地(离线)
LLM_BASE_URL=http://127.0.0.1:11434/v1
LLM_API_KEY=ollama
LLM_MODEL=qwen2.5:14b
⚠️ Anthropic Claude / Google Gemini 原生 API 协议不兼容 OpenAI,需要走 OpenRouter 或自建代理(如 LiteLLM)转译。原生适配将在 v0.2 评估。
仓库自带一键自检脚本,用 /chat/completions 发一句 ping 探测每家:
# 1. 拷贝模板(首次运行会自动生成 .example)
cp .env.providers.test.example .env.providers.test
# 2. 把你有 key 的 provider 那行取消注释、填值(没填的会自动 skip)
# 例:DEEPSEEK_KEY=sk-xxxxxxxx
# 3. 跑!
pnpm verify:providers输出示例:
Provider Model Status Dur Info
-----------------------------------------------------------------------------
LKEAP · Token Plan glm-5.1 ✓ PASS 1024ms → ...
DeepSeek 官方 deepseek-chat ✓ PASS 780ms → ping
阿里 DashScope qwen-turbo ✗ FAIL 401 Invalid API-key
.env.providers.test 已加入 .gitignore,不会污染仓库。
┌─────────────────────────────────────────────────────────┐
│ Desktop (Electron) │ CLI (tsx) │ 入口层
└──────┬──────────────┴────────┬──────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ packages/agents │
│ - runner (OpenAI 兼容 LLM + tool calling) │
│ - buffett (巴菲特人格 prompt) │
│ - duan (段永平人格 prompt) │
│ - judge (两段合议 + verdict) │
│ - reviewer (AI 复核员,独立上下文) │
└──────┬──────────────────────────────────────────────────┘
│ HTTP
▼
┌─────────────────────────────────────────────────────────┐
│ services/data-sidecar (Python + akshare) │
│ /quote /profile /financial /valuation │
│ /dividend /historical-pe /industry-compare /healthz │
└─────────────────────────────────────────────────────────┘
| 路径 | 作用 |
|---|---|
apps/cli |
TypeScript CLI 入口(pnpm ask) |
apps/desktop |
Electron 桌面端(electron-vite + electron-builder) |
packages/agents |
大师人格 + LLM runner + 复核员 |
packages/data |
数据边车 TypeScript 客户端 |
services/data-sidecar |
Python akshare HTTP 服务 |
prompts/ |
buffett.md / duan.md / judge.md / reviewer.md — 产品灵魂 |
reports/ |
报告落盘目录(HTML + Markdown + meta.json) |
landing/ |
早期 Landing Page 原型(静态) |
| 决策 | 为什么 |
|---|---|
| LLM 禁止自算数字 | 幻觉是投资决策的头号敌人,数字只能来自 akshare |
| 三段式 PASS/FAIL/GRAY | 逼 Agent 承认"看不懂",能力圈外直接拒答 |
| judge 只做加权不引入新论据 | 合议员的职责是裁决,不是再发明事实 |
| reviewer 独立上下文 + 输出长度硬约束 | 防 JSON 截断、防自辩、issues ≤ 5、每条 ≤ 60 字 |
verdict 枚举:worth_research / skip / out_of_competence |
不用"买入/卖出"——价投不替你下单,只告诉你值不值得继续研究 |
- W1 数据边车 + 三段式 prompt + Buffett/段永平 Agent
- W1 CLI 串通本地链路
- W2 judge 合议员 + HTML 报告
- W2 Electron 桌面端(NSIS / Portable)
- W2 AI 复核员(reviewer)+ 失败自动重试 + JSON 截断抢救
- W3 批量跑样例(茅台 600519 / 平安 601318 / 工行 601138 已验证)
- W4 reviewer 结果落
meta.json,payload 附llm_meta(finish_reason / truncated / 预算使用) - W6 公开发布(v0.1.15 · 2026-05-10)
- W7 桌面投研工作台:自选股池、批量筛选器、公司档案、风险雷达、公司对比、投资原则、导出摘要
- W8 体验增强:诊断中心、历史报告搜索/批量删除、自选股刷新、数据质量提示、本地状态文件、冒烟测试
- W9 交互简化:首次启动三步引导、报告摘要卡、长任务进度条、可操作错误提示、统一 AI 助手侧栏
- W3 芒格 Agent + 三方圆桌辩论
- W8 自选股批量后台更新 + SQLite 持久化 + 持仓周报
- W5 Web UI(React Flow 可视化合议链路)
- W6 公众号推介 + 样例报告集
详见 CHANGELOG.md。
单人开发,欢迎 fork、借鉴、提 issue 和 PR。响应不一定及时,但认真的讨论都会看。
如果你打算扩展 prompt(比如加芒格、加彼得·林奇),直接在 prompts/ 里仿照现有格式写,再到 packages/agents/src/ 里加个 runner 就能接入委员会。
本工具是研究辅助,不是投顾服务。所有输出仅用于帮你独立思考,不构成任何买卖建议。投资决策由你自己负责。
"能力圈的大小不重要,知道能力圈的边界在哪里才重要。" —— 巴菲特
MIT © 2026 huahai