Skip to content
 
 

Latest commit

 

History

272 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

游资(UZI)Skills

"66 个投资大佬帮你看盘,巴菲特、赵老哥和股海贼王终于坐在了同一张桌子上。"

License: MIT Python 3.10+ Claude Code Dimensions Investors Methods Self-Review

A 股 / 港股 / 美股 · 个股深度分析引擎 · 66 位评审团 × 9 大流派 × 22 维数据 × 22 种机构方法 · 最新 v3.9.4:前端显示修复 + 美化(kimi-k3)· 完整演进见 更新日志

安装 · 用法 · 三档深度 · Hermes 🆕 · 评审团 · Serenity 🆕 · 机构方法 · 自查 gate · 报告截图 · FAQ · 入群交流测试 · Contributors

中文 | English


🚀 30 秒上手

任何 agent 里丢一句话 · 装好就能用。详细装法见 安装

你用的 agent 直接丢这句
Pi Agent
Claude Code /plugin marketplace add wbh604/UZI-Skill 然后 /plugin install stock-deep-analyzer@uzi-skill
Codex / OpenAI CLI "按 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.codex/INSTALL.md 装 UZI-Skill,分析 600519"
Cursor /add-plugin stock-deep-analyzer
Gemini CLI gemini extensions install https://github.com/wbh604/UZI-Skill
Hermes ⚠️ hermes skills install 当前被 Skills Guard 误判 · 用一键脚本绕过:curl -fsSL https://raw.githubusercontent.com/wbh604/UZI-Skill/main/install-hermes.sh | bash · 详见 INSTALL-HERMES.md
OpenClaw / 龙虾 "装 https://github.com/wbh604/UZI-Skill 这个股票分析技能"
CLI 直用 git clone https://github.com/wbh604/UZI-Skill.git && cd UZI-Skill && pip install -r requirements.txt && python run.py 贵州茅台

装好后最常用 4 条命令(任何 agent 里直接说):

/stock-deep-analyzer:analyze-stock 贵州茅台    ← 完整 22 维 × 66 评委分析(5-8min)
/stock-deep-analyzer:quick-scan 002217         ← 30 秒速判
/stock-deep-analyzer:scan-trap 002217          ← 杀猪盘排查
/stock-deep-analyzer:dcf 600519                ← DCF 估值专项

这是啥

一句话:输入一只股票,Claude 变成你的私人分析师,跑完 22 个维度的数据、调 22 种华尔街分析模型、让 66 个投资风格完全不同的大佬各自打分,最后吐出一份 600KB 的 Bloomberg 风格报告。

/stock-deep-analyzer:analyze-stock 国盾量子

5-8 分钟后你会得到:

  • 一份 HTML 报告 — 可以直接用浏览器打开,自包含,离线也能看
  • 一张朋友圈竖图 — 1080×1920,直接发
  • 一张微信群战报 — 1920×1080
  • 一段话摘要 — 复制粘贴就能发群里

为什么做这个

之前看一只票的流程:东方财富翻基本面 → 同花顺看 K 线 → 雪球刷大 V 说了啥 → 研报系统找卖方观点 → Excel 算个 DCF → 结果买进去还是亏。

这些活儿本质上就是"搜集信息 → 多角度分析 → 给个结论",让 AI 全干了不行吗?

市面上看了一圈,要么是输出三段废话的 GPT wrapper,要么是用不起的机构终端。Anthropic 出了个 financial-services-plugins,方法论很好(DCF / Comps / LBO 那套),但完全是美股视角 + 全要付费数据源。

所以自己搓了一个。全免费数据源,零 API key,A 股直接能跑。


安装

不管你用什么 agent,都是丢一句话过去就行

Claude Code

/plugin marketplace add wbh604/UZI-Skill
/plugin install stock-deep-analyzer@uzi-skill

装好后说 /stock-deep-analyzer:analyze-stock 贵州茅台

Codex

直接对 Codex 说:

请按照 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.codex/INSTALL.md 的指引安装 UZI-Skill,然后帮我深度分析 贵州茅台。

OpenClaw / 龙虾

对龙虾说:

帮我安装 https://github.com/wbh604/UZI-Skill 这个股票分析技能,装好后分析 贵州茅台。

Cursor

/add-plugin stock-deep-analyzer

然后说"分析 贵州茅台"。

Gemini CLI

gemini extensions install https://github.com/wbh604/UZI-Skill

OpenCode

对 OpenCode 说:

请按照 https://raw.githubusercontent.com/wbh604/UZI-Skill/main/.opencode/INSTALL.md 安装并分析 贵州茅台。

Windsurf / Devin / 其他 Agent

丢这句话进去:

克隆 https://github.com/wbh604/UZI-Skill ,读 AGENTS.md 了解怎么用,帮我深度分析 贵州茅台。

📱 不在电脑前?

对任何 agent 说:

分析 贵州茅台,用远程模式,生成一个公网链接让我手机能看。

agent 会用 --remote 启动 Cloudflare Tunnel,给你一个 https://xxx.trycloudflare.com 链接。若本机没有 cloudflared,默认只提示安装方式;确认要自动安装时再加 --install-cloudflared


用法

完整深度分析(5-8 分钟)

/stock-deep-analyzer:analyze-stock 水晶光电
/stock-deep-analyzer:analyze-stock 002273
/stock-deep-analyzer:analyze-stock 00700.HK
/stock-deep-analyzer:analyze-stock AAPL
/stock-deep-analyzer:analyze-stock 7203.T
/stock-deep-analyzer:analyze-stock 005930.KS

专项命令

都要加 /stock-deep-analyzer: 前缀才保证执行得通。

命令 干嘛的
/stock-deep-analyzer:dcf 600519 DCF 估值 · WACC + 5×5 敏感性表
/stock-deep-analyzer:comps 002273 同行对标 · PE/PB 分位分析
/stock-deep-analyzer:lbo 600519 LBO 测试 · PE 买方能赚多少 IRR
/stock-deep-analyzer:initiate 002273 机构首次覆盖报告 · JPM/GS 格式
/stock-deep-analyzer:ic-memo 002273 投委会备忘录 · 三情景回报
/stock-deep-analyzer:earnings 002273 财报解读 · beat/miss 检测
/stock-deep-analyzer:catalysts 002273 催化剂日历 · 未来 60 天
/stock-deep-analyzer:thesis 002273 投资逻辑追踪 · 5 支柱监控
/stock-deep-analyzer:screen 002273 5 套量化筛选 · value/growth/quality
/stock-deep-analyzer:dd 002273 尽调清单 · 5 工作流 21 项
/stock-deep-analyzer:quick-scan 002273 30 秒速判
/stock-deep-analyzer:panel-only 600519 只看 66 评委投票
/stock-deep-analyzer:scan-trap 002273 杀猪盘排查
/stock-deep-analyzer:segmental-model 300308 分业务收入 bottom-up 建模 · 3 情景 × 3 年 projection · 对 DCF 反向校验
/stock-deep-analyzer:ai-readiness 002273 🆕 v3.8 · 单票 AI 就绪度/卡位评估 · 3 道 gate → Go/Wait + 评级
/stock-deep-analyzer:earnings-preview 002273 🆕 v3.8 · 财报预览 · 一致预期 + Bull/Base/Bear + 隐含波动
/stock-deep-analyzer:model-update 002273 🆕 v3.8 · 新财报/指引增量更新模型 · 假设 delta → DCF/thesis 影响
/stock-deep-analyzer:returns 🆕 v3.8 · 组合收益归因 · 按持仓/行业拆解 + Top 贡献/拖累
/stock-deep-analyzer:rebalance 🆕 v3.8 · 逐持仓再平衡 · 漂移 + 交易清单 + A股印花税/佣金换手成本

CLI 直跑进阶玩法(git clone 用户)

python run.py 600519.SH --depth lite --no-browser   # 30-60s 快速档
python run.py 300394.SZ --school I                  # 只看 Serenity 卡位视角(A-I 九派任选)
python run.py --versus 茅台 五粮液 002594.SZ         # 2-4 只票横向对决 · ★WIN 高亮
python run.py --portfolio holdings.csv             # CSV 组合 · 加权评分 + 健康度
python run.py 600519.SH --output-dir /tmp/out      # SaaS 集成 · index.html + meta.json
python run.py 600519.SH --remote                   # 公网链接 · 缺 cloudflared 时默认不改系统
python run.py 601238.SH --from-modeling            # 采集后建模崩溃 · 从 raw_data.json 秒级续跑

🎯 评分校准(v2.11)

用户反馈"茅台 47 分"、"没超过 65 分"—— 诊断发现两处公式偏严苛,v2.11 校准:

改动 旧 (v2.9.1) 新 (v2.11) 影响
verdict 阈值 85/70/55/40 80/65/50/35 从未有股能 ≥85("值得重仓"档空设),下调 5 分让白马/真强股进"可以蹲一蹲"档
consensus neutral 权重 0.5(半权) 0.6 (v2.11 校准)价值派+游资 35 人偏保守,neutral 权重 0.5 让白马 consensus 仅 37,0.6 更贴近"不坑但不是心头好"的真实语义

公式(未变):overall = fund_score × 0.6 + consensus × 0.4

典型白马(如茅台)预期:

  • v2.9.1:fund=62 consensus=45 → overall 55 → 观望优先
  • v2.11:fund=62 consensus=50 → overall 57 → 观望优先(但更接近"可以蹲一蹲"边界,白马行情启动时容易进 65)

两档合计影响 ~5-8 分。真正的坑仍会 < 35 → 回避,分数辨识度不降反升。

诊断字段 panel.json::consensus_formula.version = "v2.11 · (bullish + 0.6*neutral) / active" 可审计。

回归测试:tests/test_v2_11_scoring_calibration.py 8 个用例。

完整校准记录见 BUGS-LOG.md v2.11.0 章节


🎚️ 三档思考深度(v2.10.3 新增)

给用户自己选择分析力度——快想 / 正常 / 深挖:

python run.py 600519 --depth lite     # ⚡ 速判模式(1-2 分钟)
python run.py 600519                   # 📊 标准分析(5-8 分钟)· 默认
python run.py 600519 --depth deep      # 🔬 深度研究(15-20 分钟)

或通过环境变量:

export UZI_DEPTH=lite       # 或 medium / deep
python run.py 600519

三档差异一览

维度 lite 速判 📊 medium 标准 🔬 deep 机构级
预计耗时 1-2 分钟 5-8 分钟 15-20 分钟
fetcher 维度 核心 7 维 全 22 维 全 22 维 + 强化 fallback
评委数量 10 位代表 66 位完整 66 位 + Bull-Bear 结构化辩论
机构方法 只 DCF 全 22 种 全 22 种 + Segmental Build-Up
ddgs 定性查询 全 skip(省 token) 按需 · 预算 30 次 跑满 · 预算 60 次
fund_holders Top 5 完整业绩 Top 20 完整 + 其余清单 Top 100 完整
自查 gate critical block critical block · warning 可 ack 两级都 block
Playwright 兜底(v2.13.1) ❌ 完全禁用 opt-in · UZI_PLAYWRIGHT_ENABLE=1 · 6 维(4_peers/8_materials/15_events/17_sentiment/7_industry/14_moat) ✅ 默认启用 · 10 维(medium 6 + 3_macro/13_policy/18_trap/19_contests)· 首次 y/n 交互装 Chromium
Token 消耗(Codex) 最省 中等 最大
适用场景 随手看 / 老板临时问 / 预判 ETF 成分股 日常深度分析 · 写研报 投委会备忘录 · 建仓前深挖

自动降级策略

  • 第一次安装 / .cache/_global 空时 → 自动切 lite(省首次冷启动时间)
  • 网络预检 3+ 域不通 → 自动切 lite(避免卡死)
  • 手动 --depth 始终覆盖自动判定

实战选择

问题 推荐档位
"帮我看看这只票能不能买" medium(默认)
"15 分钟内给我个结论" lite
"老板明天投委会要看" deep(含 Bull-Bear 辩论 + bottom-up segmental)
"ETF 代码输进去了(系统会提示选成分股)" lite(成分股快速预判)
"Codex 环境 / 首次安装" 不用管 · 自动 lite

命令映射(隐式档位)

命令 隐式档位
/stock-deep-analyzer:quick-scan 600519 lite
/stock-deep-analyzer:panel-only 600519 lite
/stock-deep-analyzer:analyze-stock 600519 medium(默认)
/stock-deep-analyzer:ic-memo 600519 deep
/stock-deep-analyzer:initiate 600519 deep

🎭 66 位评审团

不是模板话术。每个人有自己的量化规则集(共 236 条),给出的建议必须引用具体命中了哪条。 v3.7.0 起新增 13 位新晋科技大佬 + 独立的 I 组 Serenity(AI 卡位/瓶颈猎手);v3.9.0 再添从十年实盘交割单蒸馏的 股海贼王,覆盖 9 大流派:

风格 人数 代表人物
A 经典价值 6 巴菲特 · 格雷厄姆 · 芒格 · 费雪 · 邓普顿 · 卡拉曼
B 成长投资 9 林奇 · 木头姐 · 蒂尔 · Andreessen (a16z) · Gurley (Benchmark) · Naval · Gerstner (Altimeter) · Chamath
C 宏观对冲 7 索罗斯 · 达里奥 · 霍华德马克斯 · 德鲁肯米勒 · 罗伯逊 · Burry(大空头) · Chanos(做空猎手)
D 技术趋势 4 利弗莫尔 · 米内尔维尼 · 达瓦斯 · 江恩
E 中国价投 7 段永平 · 张坤 · 朱少醒 · 谢治宇 · 冯柳 · 邓晓峰 · 张磊(高瓴)
F A 股游资 24 章盟主 · 赵老哥 · 炒股养家 · 股海贼王 🆕(淘股吧十年实盘蒸馏)· 北京炒家 …
G 量化系统 4 西蒙斯 · 索普 · 大卫·肖 · Asness (AQR)
H 科技领袖派 🆕 4 黄仁勋 (NVIDIA) · 马斯克 (Tesla) · Sam Altman (OpenAI) · Saylor (MSTR)
I AI 卡位/瓶颈猎手 🆕 1 Serenity(@aleabitoreddit)

v3.7.0(2026-06)新晋 13 人加粗。H 组是带着自家产业链视角的科技 CEO;I 组 Serenity 是单人特殊评委(见下)。

举个例子

巴菲特 给水晶光电打 62 分 · 中性 "观望:护城河 27/40 可见;但 ROE 5 年最低 6.7%,达标率仅 0/5" ✅ 资产负债率 30% 保守 · ❌ ROE 5 年最低 6.7%

黄仁勋 给某 CPO 光模块股打 100 分 · 看多 "在 AI 算力链上 · 数据中心 Capex 直接受益 · 毛利率 ≥50% 定价权强——这是光速摩尔定律的受益方。" ✅ AI 算力需求强相关 · ✅ CUDA/生态绑定深

卡拉曼 给水晶光电打 0 分 · 看空 "看空核心:无 30% 安全边际"


🧠 I 组 · Serenity · AI 卡位/瓶颈猎手

重磅角色:2026 年 X(推特)爆火的海外散户研究员 @aleabitoreddit。 单独成组、单独评分——因为她的打法极度集中、极度逆共识,跟任何机构大佬都不一样。

她是谁

  • 自述背景:前 AI 研究科学家 · Nature 论文作者 · 前 RISC-V 基金会成员 · 半导体/光通信工程师
  • 二次元头像、匿名、不露脸、不卖课、不跟单,研究全部免费公开,X 粉丝 30 万+
  • 成名战:提前约一年押中 InP 磷化铟衬底瓶颈股 $AXTI($12 → $70+,最高 $115–140),2026 Q1 被 IntelliEPI CEO 公开印证"InP 短缺是整个 AI 基建的瓶颈"

⚠️ 身份与收益均为自述/媒体转述、未经第三方审计,各来源数字互相矛盾。本项目仅蒸馏其方法论作为一个分析视角,不代表认可其真实战绩。详见 docs/serenity-research-dossier.md(全网 20+ 来源逐条档案)。

她在 UZI-Skill 里的作用

把她的「AI 产业链卡脖子/瓶颈点理论(Chokepoint Theory)」做成一个可量化的评委—— 不买 AI 龙头(英伟达这种已被充分定价的票),而是沿供应链往上游拆,找那个"全世界都绕不过去、又最容易供给见底"的二三线上游小盘,抢在市场定价前埋伏。

龙头被买爆 → 沿供应链往上拆 → 找最难替代的环节 → 找该环节里供给最紧的小盘 → 提前埋伏

核心打分逻辑「卡位决定态度」——不看估值便宜、不看成长快,只看一个变量:这家公司的产品在当前 AI 浪潮里有没有卡住别人的脖子

判定 态度
卡住了(不可替代 + 供给瓶颈 + 没被定价) 🟢 看多 / 可能重仓
在 AI 链上但卡位不硬(能被替代 / 产能充足) ⚖️ 中性 · 待验证
没卡到位 / 只是蹭概念 / 不在 AI 链 🔴 直接 skip(白酒、银行护城河满分也给 0 分)

判一个环节是不是"卡位点"看三件事:① 难替代(换供应商/材料/工艺要多久,越久越好 → 14_moat 切换成本)② 供给紧(产能跟不跟得上 AI 需求曲线,越跟不上越好 → 7_industry)③ 没被定价(市场还在用"周期股/老半导体/小众材料"旧叙事看它 → 5_chain + 15_events)。

怎么单独跑 Serenity 视角

python run.py 300394.SZ --school I       # 只看 Serenity 的"卡没卡位"判断
python run.py NVDA --school H             # 只看 H 组科技领袖派(黄仁勋/Musk/Altman/Saylor)

方法论六步法 + alpha 5 维详见 skills/deep-analysis/references/fin-methods/serenity-bottleneck.md; 语气库 + 评分规则见 skills/investor-panel/references/group-i-serenity.md


📐 22 种机构级方法

anthropics/financial-services-plugins 移植方法论,适配了 A 股参数(rf=2.5% / ERP=6% / 税率 25% / 终值 g=2.5%)。首批 17 种 + v3.8.0 Tier-1 续引 5 种(/ai-readiness /earnings-preview /model-update /returns /rebalance · 见 专项命令):

估值建模

  • DCF(WACC 拆解 + 两段 FCF + Gordon Growth 终值 + 5×5 敏感性热力图)
  • Comps 同行对标(PE / PB / EV-EBITDA 分位 + 隐含目标价)
  • 三表预测(5 年 IS / BS / CF 联动)
  • Quick LBO(PE 基金视角 IRR 交叉校验)
  • 并购增厚/摊薄模型

研究工作流

  • 首次覆盖报告(JPM/GS/MS 格式 · 评级 + 目标价 + 论点 + 风险)
  • 财报 beat/miss 解读
  • 催化剂日历(真实事件提取 + 未来预排 + 影响分级)
  • 投资逻辑追踪(5 支柱健康度)
  • 晨报 · 量化筛选 · 行业综述

深度决策

  • IC 投委会备忘录(8 章节 · Bull/Base/Bear 三情景)
  • Porter 五力 + BCG 矩阵
  • DD 尽调清单(5 工作流 21 项 · 自动标注完成状态)
  • 单位经济学 · 价值创造计划 · 组合再平衡

📸 报告长什么样

以下截图全部来自水晶光电(002273.SZ)的真实分析结果。

综合评分 + 核心结论

多空大分歧 · The Great Divide

费雪 100 分 vs 卡拉曼 96 分,三轮互喷,每轮引用具体数字。

65 位评审团 · 审判席

每个人一盏灯——绿色看多、红色看空、灰色中性。

聊天室模式

评委们用自己的语言风格发言,引用命中的具体规则。

DCF 估值 · 5×5 敏感性热力图

WACC 6.96% · 内在价值 ¥20.73 · 安全边际 -28.6%,颜色从深绿(低估)到深红(高估)。

IC 投委会备忘录 · 三情景回报

Bull ¥26.95 / Base ¥20.73 / Bear ¥14.51,每个情景有概率和假设。

22 维深度卡

每个维度有独立可视化——K 线蜡烛图 / PE Band / 雷达图 / 供应链流程图 / 温度计 / 环形图。

朋友圈竖图 · 一键分享


🔧 数据源

全部免费,零 API key:

数据 主源 备用
实时行情 / PE / 市值 东方财富 push2 雪球 → 腾讯 → 新浪 → 百度
财报历史 akshare 雪球 f10
K 线 / 技术指标 akshare yfinance
龙虎榜 / 北向 / 两融 akshare 东财
研报 / 公告 巨潮 cninfo + akshare 同花顺
港股 akshare hk yfinance
美股 yfinance akshare us
全球同行 Yahoo Equity Screener + Fundamentals Timeseries 本地行业同行 + 24h 缓存
全球汇率 Yahoo Chart FX 原币值始终保留
宏观 / 政策 / 舆情 / 杀猪盘 DuckDuckGo web search
社交热榜(v2.12 新增) 微博 / 知乎 / 百度 / 抖音 / 头条 / B 站 · 各平台官方 JSON API 5min 文件缓存 · 单平台失败不影响其他

多层 fallback 链 — 一个源挂了自动切下一个。

全球同行业绩对比

分析单只股票时,4_peers 会先保留本地市场同行,再按细分行业发现全球上市公司候选, 只为相关度最高的 8 家补齐年度财务。报告展示全球同行中位数、目标公司分位、 营收规模/毛利率散点和跨市场明细表;Comps 估值也会复用有效全球同行。

已识别中国、香港、美国、日本、韩国、台湾、新加坡、印度、加拿大、澳大利亚、 英国及欧洲主要交易所,并支持 Yahoo 可识别的其他交易所代码作为通用全球标的。

口径约束:

  • 年报、季度和 TTM 不混在同一序列。
  • 营收、利润等金额保留原币值,另写基准币换算值;原始值不会被覆盖。
  • 不同币种的原始市值不会直接用于规模相似度评分。
  • 负利润和负 ROE 是有效数据,不会改写成零。
  • 有效同行少于 3 家时只展示数据,不输出全球分位结论。
  • 单个同行或汇率源失败不会中断主报告,失败代码会保留在结果中。

可选配置:

# 完全关闭全球同行,只保留原有本地同行
export UZI_DISABLE_GLOBAL_PEERS=1

# 调整最终补全数量,范围 3-12,默认 8
export UZI_GLOBAL_PEER_LIMIT=10

📱 6 平台社交热榜(v2.12 新增)

散户情绪和杀猪盘题材经常先在抖音/小红书/微博发酵,DuckDuckGo 扫不到。v2.12 起 17_sentiment 维度自动查:

  • 微博热搜 · 抓 weibo.com/ajax/side/hotSearch · 50 条实时热搜
  • 知乎热榜 · 抓 zhihu.com/api/v3/feed/topstory/hot-list-web · 50 条
  • 百度热搜 · 抓 top.baidu.com/api/board · 实时榜单
  • 抖音热点 · 抓 douyin.com/aweme/v1/web/hot/search/list/ · 搜索热点
  • 头条热榜 · 抓 toutiao.com/hot-event/hot-board/ · 热点事件
  • B 站热搜 · 抓 s.search.bilibili.com/main/hotword · 全站热搜

股票名(含简称,如"贵州茅台"→"贵州"/"茅台")在热榜标题里命中 → 计入情绪热度 + 记录具体条目。

数据结构:synthesis 的 17_sentiment.data.hot_trend_mentions

{
  "stock_name": "贵州茅台",
  "platforms_ok": 6,
  "total_hits": 3,
  "by_platform_count": {"weibo": 2, "zhihu": 1, ...},
  "mentions": { "weibo": [{"rank":3, "title":"茅台 1499 回归", ...}], ... }
}

致谢:本模块设计参考了 run-bigpig/jcp (韭菜盘 AI) 的 hottrend 服务实现。

🔑 可选:东方财富妙想 Skills API(v2.3 新增)

2026 年 push2.eastmoney.com 在大陆网络经常被反爬拦截。若设置 MX_APIKEY,UZI-Skill 会优先走官方 NLP API:

  • 中文名纠错:"北部港湾" → 自动识别为 "北部湾港(000582.SZ)"
  • 行情快照:绕过 push2 直接拿到最新价/市值/PE/PB/行业

配置:

cp .env.example .env
# 编辑 .env 填入 MX_APIKEY(免费申领:https://dl.dfcfs.com/m/itc4)

无 key 时全部回退到 XueQiu/akshare 链,现有用户零感知。

🔓 需登录的数据源(v2.7.1 新增)

部分数据源 2026 年起加了登录鉴权,UZI-Skill 默认不主动弹登录窗(保持无人值守)。 用户可按需启用:

数据源 维度 启用方式 影响
XueQiu cubes_search.json 19_contests 实盘比赛持仓 export UZI_XQ_LOGIN=1 然后 python -m lib.xueqiu_browser login(一次性弹浏览器登录) 不启用:报告 19_contests 显示"⚠️ XueQiu 需登录,0 cube";启用后能看到雪球 50+ 个实盘组合持有本股

XueQiu 登录步骤

# 1. 启用环境变量(一次性,可加进 .zshrc)
export UZI_XQ_LOGIN=1

# 2. 一次性登录(首次跑会弹有头浏览器,登录后回到终端按回车)
python -m lib.xueqiu_browser login
# → 浏览器弹出,手动账密 / 微信扫码 / 短信登录
# → 登录成功后回终端按回车,cookie 持久化到 ~/.uzi-skill/playwright-xueqiu/

# 3. 后续跑分析自动复用登录态(cookie 通常有效 ≥ 30 天)
python run.py 贵州茅台 --no-browser
# 19_contests 维度会显示真实雪球组合数 + 收益率分布

# 4. 如果直接跑 run.py 想启用,加 flag
python run.py 贵州茅台 --enable-xueqiu-login

跳过登录(默认行为)

不想登录?什么都不用做。XueQiu 维度会清晰标注 ⚠️ 需登录,0 cube, 其他 21 个维度照常工作。

状态查询

python -m lib.xueqiu_browser status
# 显示:profile dir / cookie 是否存在 / 是否启用

🚨 数据缺口怎么处理(v2.3)

若某些字段脚本拿不到(网络限制 / 新股 / 停牌),pipeline 不会塞默认值糊弄

  1. 生成 _data_gaps.json 列出每个缺口的建议恢复动作(浏览器 / MX / WebSearch / 推导)
  2. Agent 按 HARD-GATE-DATAGAPS 逐条尝试补齐
  3. 真的补不到 → 在 agent_analysis.jsondata_gap_acknowledged 显式承认
  4. HTML 报告顶部显示橙色 banner + 相关字段显示 "—" 并划线

这样你永远能分辨"这只股真的不适合买" vs "只是数据没拿到"。

🌐 网络受限环境(v2.4 新增)

UZI-Skill 在大陆和海外都能跑,但瓶颈不同,建议对号入座:

大陆网络 · pip install 失败怎么办?

run.pysetup.sh 会自动尝试国内镜像(清华 → 阿里云 → 中科大), 所以常见情况你什么都不用做。若要手动指定:

pip install -r requirements.txt \
    -i https://pypi.tuna.tsinghua.edu.cn/simple \
    --trusted-host pypi.tuna.tsinghua.edu.cn

Codex / 海外 agent · 数据源访问慢怎么办?

国内数据源(尤其 push2.eastmoney.com)从海外访问经常超时。强烈建议 设置 MX_APIKEY(免费申领 → https://dl.dfcfs.com/m/itc4),它走 mkapi2.dfcfs.com 境内外都通,同时天然具备中文名纠错能力。

cp .env.example .env
# 编辑 .env 填入 MX_APIKEY
python run.py 贵州茅台

双端都不通:agent 应保留 _data_gaps.json / _resolve_error.json。如果数据已采集、 但机构建模或评分阶段中断,使用 python run.py <ticker> --from-modelingraw_data.json 继续;如果 dimensions.jsonpanel.json 也已生成,可直接调用 stage2(),都不需要从头抓取。

详见 AGENTS.md · 网络受限环境 的场景 A/B/C 速查。


📁 项目结构(v3.x 架构)

UZI-Skill/
├── run.py                              # ✅ 用户入口 (python run.py <ticker>)
├── AGENTS.md / CLAUDE.md / CODEX.md    # agent 指令 (v3.2 新增 CODEX.md)
├── GEMINI.md                           # Gemini CLI 指引
├── RELEASE-NOTES.md                    # 完整版本日志
├── docs/BUGS-LOG.md                    # bug 登记 + 防回归清单
├── .claude-plugin/plugin.json          # Claude Code manifest
├── .cursor-plugin/plugin.json          # Cursor manifest
├── gemini-extension.json               # Gemini manifest
├── commands/                           # 20 个 slash commands
├── personas/                           # 66 位评委 persona (v2.15.0 · 12 flagship YAML)
├── skills/
│   ├── deep-analysis/                  # ★ 主 skill (股票分析)
│   │   ├── SKILL.md
│   │   ├── references/                 # 方法论文档
│   │   ├── assets/                     # HTML 模板 + 65 头像 svg
│   │   └── scripts/                    # ← 所有 Python 业务代码
│   │       ├── run_real_test.py        # legacy stage1/stage2 (v3.1 瘦身 735 行)
│   │       ├── assemble_report.py      # HTML shell (v3.2 瘦身 587 行)
│   │       ├── fetch_*.py              # 22 fetcher · 也是独立 CLI
│   │       ├── compute_deep_methods.py # 机构建模
│   │       ├── tests/                  # 642 pytest
│   │       └── lib/
│   │           ├── pipeline/           # 🆕 v3.0 管道式架构(默认路径)
│   │           │   ├── run.py          # run_pipeline 编排入口
│   │           │   ├── collect.py      # 并发 collector (22 adapter)
│   │           │   ├── score.py        # scoring 段(调 rrt 纯函数)
│   │           │   ├── synthesize.py   # stage2 薄 wrapper
│   │           │   ├── score_fns.py    # 🆕 v3.1 · 1228 行纯函数
│   │           │   ├── preflight_helpers.py  # 🆕 v3.1 · 网络/ticker preflight
│   │           │   ├── fetchers/registry.py  # 22 adapter 工厂
│   │           │   └── renderer/       # 21 个 renderer stub
│   │           ├── tier1/              # 🆕 v3.8 · 5 个 Tier-1 方法(ai_readiness 等)
│   │           ├── versus_runner.py    # 🆕 v3.6 · --versus 多股对比
│   │           ├── portfolio_runner.py # 🆕 v3.6 · --portfolio 组合分析
│   │           ├── fund_holdings_runner.py # v3.4 · ETF/LOF 持仓循环
│   │           ├── report/             # 🆕 v3.2 · assemble_report 拆分
│   │           │   ├── svg_primitives.py     # 19 svg_* + COLOR_*
│   │           │   ├── dim_viz.py            # 19 _viz_xxx + DIM_VIZ_RENDERERS
│   │           │   ├── institutional.py      # DCF/LBO/IC/catalyst/competitive
│   │           │   ├── panel_cards.py        # 66 评委 panel
│   │           │   └── special_cards.py      # fund/insights/school_scores
│   │           ├── investor_criteria.py      # 66 人 × 242 规则
│   │           ├── investor_evaluator.py     # 规则引擎
│   │           ├── stock_features.py         # 108 标准化特征
│   │           ├── playwright_fallback.py    # v2.13 兜底
│   │           ├── self_review.py            # 机械自查 13 check
│   │           └── ...                       # 其他 lib 模块
│   ├── investor-panel/                 # 评审团 skill
│   ├── lhb-analyzer/                   # 龙虎榜 skill
│   └── trap-detector/                  # 杀猪盘 skill
├── requirements.txt
└── LICENSE

v3.2 重构分层亮点

文件 职责
入口 run.py CLI 主入口 · UZI_LEGACY=1 回退老路径
管道 lib/pipeline/* v3.0 主干 · collect / score / synthesize
纯函数 lib/pipeline/score_fns.py v3.1 · score_dimensions / generate_panel / generate_synthesis
渲染 lib/report/* v3.2 · 5 个子模块 · svg / viz / inst / panel / special
Legacy run_real_test.py + assemble_report.py v2.x 向后兼容层 · re-export 所有迁移函数

🧠 设计理念

Agent 驱动分析,脚本只是工具。

整个流程分两段——中间 agent 必须介入,最后必须自查(v2.9 起机械强制):

Stage 1 (脚本)          → 数据采集 + 模型计算 + 规则引擎骨架分
        ⏸️ Agent 介入   → 读数据 → role-play 66 评委 → 写判断 → 审查假设
Stage 2 (脚本)          → 综合研判 + 自动跑 13 条自查 → 报告生成
                         ↑ v2.9 核心:critical 不过 → 拒绝出 HTML

66 个评委不是跑公式出分数——agent 要真正站在每个人的角度思考:

  • 巴菲特分析苹果 → agent 知道这是伯克希尔第一大持仓 → override 看多
  • 赵老哥分析美股 → agent 知道游资不做美股 → skip
  • 木头姐分析白酒 → agent 知道她只看颠覆创新 → "不在平台里"
  • 格雷厄姆看到 PE 33 → 不需要复杂推理 → 看空

每个判断都可以覆盖规则引擎的机械得分,但必须给出理由。

三层评估:真实持仓 → 行业亲和度 → 量化规则。真金白银比任何公式都有说服力。

🛡 机械级自查 gate(v2.9 起)

过往 HARD-GATE-FINAL-CHECK 是"软要求"——agent 可能跳过、可能忘、可能做半截。BUG#R10(云铝被归为"农副食品加工")就是全流程跑完报告发出去,才被用户发现行业分类错了。软 gate 不够,v2.9 起机械强制。

lib/self_review.py 13 条自动检查覆盖所有历史 BUG 经验:

severity 抓什么 背后 BUG
🔴 critical 行业碰撞(工业金属→农副食品加工) BUG#R10
🔴 critical 维度缺失 / 空 data / 占位符 wave2 timeout、fetcher 崩溃
🔴 critical HK kline 0 根 / HK 财报空 BUG#R7 / R8
🔴 critical panel 全 skip / coverage < 60% 数据灾难
🔴 critical agent_analysis 缺 / 未 review agent 偷懒
🟡 warning DCF 全 0 / 金属股 materials 空 v2.8.x coverage gap
🟡 warning 编造"苹果产业链"无 raw_data 证据 联想编造

assemble_report::assemble() 入口自动跑 review,critical > 0 → raise RuntimeError("⛔ BLOCKED by self-review")物理上无法出报告,直到 agent 修完。

# agent 迭代流程
loop:
  python review_stage_output.py <ticker>
  读 .cache/<ticker>/_review_issues.json
  对每条 critical 执行 suggested_fix
  直到 critical == 0 才出 HTML

每次新 BUG 修完,对应的 check_* 规则都会加到 self_review,下次同类问题跑完就自动抓到,不再靠用户反馈


🤝 致谢


⚠️ 免责声明

本工具由 AI 模型基于公开数据生成分析报告。所有评分、建议、模拟评语均为算法输出,不代表任何真实投资者的实际观点。不构成投资建议,投资有风险,入市需谨慎。


MIT License · Made by FloatFu-true · O.o

About

游资(UZI)Skills — 66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages