dragon1086/prism-insight · 上手攻略
- 仓库:dragon1086/prism-insight
- 链接:https://github.com/dragon1086/prism-insight
- 分类:engineering / agent / llm-infra
- 作者:Tom
- 更新:2026-10-30
是什么
PRISM-INSIGHT 是一个完全开源的 AI 股票分析与交易系统,主要覆盖韩国市场(KOSPI/KOSDAQ)和美股(NYSE/NASDAQ),Python 编写,AGPL-3.0 协议,仓库 790 star,最新 release 为 v2.25.0(2026-10-30 前后)。它的卖点不是"又一个选股 chatbot",而是一整条从筛选到下单再到复盘的闭环流水线:用规则筛出"异动股",交给一组分工明确的 AI agent 写分析师级研报,然后由买卖 agent 按成文评分规则给出操作建议,执行层落到模拟盘或韩国投资证券(KIS)真实 API,闭环结果再回灌到交易日志影响下一轮决策。
仓库自述为 "13+ specialized AI agents",但 docs/CLAUDE_AGENTS.md(自标 "Verified against source: 2026-07-29")明确指出这个数字已经不是有效契约,改按执行路径来划分 agent:宏观(KR/US)、个股研报(KR 六个基础分节、US 五个 yfinance 分节)、策略与摘要(运行时动态生成)、交易(KR/US 买卖)、日志与记忆、沟通与咨询六条线。
值得注意的是它近期加入了两个新东西:Stance(策略排行榜,要求从注册那一刻开始记账、禁止回填历史收益,股票市场需满 63 个交易日且 20 笔已平仓、各占资产 ≥1% 才进入正式排名)和 Codex OAuth Proxy(可用 ChatGPT Plus/Pro 订阅代替 OpenAI API key 跑分析)。
解决什么问题
- 研究流水线太散:多数 AI 选股工具只给一段 LLM 文字。PRISM 把"筛 → 六段研报 → 策略 → PDF → 摘要 → 买卖判定 → 日志复盘"串成一条可定时跑的流水线,报告是结构化产物而不是聊天记录。
- 纯 prompt 约束不可靠:项目从 v1.16.7 到 v2.18 逐步把"提示词层面的纠偏"换成确定性的规则闸门——市场状态(regime)决定最低评分与止损宽度(−5% ~ −7%),退出状态机、re-entry 次数上限都由代码裁决。
- 实盘 API 成本高:Codex OAuth Proxy 让已有 ChatGPT 订阅的用户零 API 账单跑同一套分析。
- 策略效果无法验证:Stance 用服务端封存决策时间与价格、不允许补历史,把"谁真的在赚钱"变成可对比的公开记录。
快速安装
前置:Python 3.10+ 或 Docker;Node.js 18+(供 MCP server 用);一个 OpenAI API key,或 ChatGPT Plus/Pro 订阅。
60 秒试跑(美股)
git clone https://github.com/dragon1086/prism-insight.git
cd prism-insight
./quickstart.sh YOUR_OPENAI_API_KEY
python3 demo.py MSFT # 微软
python3 demo.py NVDA # 英伟达
python3 demo.py TSLA --language ko # 特斯拉(韩文报告)
生成的 PDF 报告落在 prism-us/pdf_reports/。
Docker 路线(免装 Python)
export OPENAI_API_KEY=sk-your-key-here
docker compose -f docker-compose.quickstart.yml up --build -d
docker exec -it prism-quickstart python3 demo.py NVDA
# 报告输出到 ./quickstart-output/
首次构建镜像要几分钟。
完整安装
pip install -r requirements.txt
python3 -m playwright install chromium # PDF 生成;Ubuntu 建议 --with-deps
cp mcp_agent.config.yaml.example mcp_agent.config.yaml
cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml
cp trading/config/kis_devlp.yaml.example trading/config/kis_devlp.yaml
# 在 mcp_agent.secrets.yaml 填 OPENAI_API_KEY(必填)
# 在 trading/config/kis_devlp.yaml 填 KIS app key/secret(韩股自动交易用)
python stock_analysis_orchestrator.py --mode morning --no-telegram
美股用另一套入口:python prism-us/us_stock_analysis_orchestrator.py --mode morning --language en。
用订阅代替 API key:
python -m cores.chatgpt_proxy.oauth_login
PRISM_OPENAI_AUTH_MODE=chatgpt_oauth python stock_analysis_orchestrator.py --mode morning
生产环境建议 Docker:docker compose up -d,容器内 entrypoint 已带定时任务。
核心用法
一、跑一次盘前分析。核心入口是 stock_analysis_orchestrator.py,--mode morning(另有下午盘模式),--no-telegram 可在没有 Telegram 配置时先跑通链路。完整参数见 docs/SETUP.md。
二、六段研报结构。KR 侧由 cores.agents.create_agents() 返回六个基础定义,顺序执行(默认串行,可开 PRISM_PARALLEL_REPORT=true 但作者明确警告可能撞 OpenAI 速率限制):
| section key | 覆盖内容 |
|---|---|
price_volume_analysis |
价格、成交量、技术结构 |
investor_trading_analysis |
投资者供需 |
company_status |
财务与经营状况 |
company_overview |
公司、产品、竞争对手 |
news_analysis |
近期新闻、板块龙头、催化剂 |
market_index_analysis |
KOSPI/KOSDAQ 与大盘环境 |
之后由 cores/report_generation.py 内联构造 investment_strategy_agent 与 summary_agent,再出图表和最终 Markdown。
三、模型分工。README 的"生产模型表"给出角色到模型的映射(报告/策略/摘要/宏观用 GPT-6 Luna,买卖与 Telegram 问答用 GPT-6.1 Sol,翻译与交易日志用 GPT-6 Luna,按需洞察 agent 可选 Anthropic Claude Sonnet 5.5),全部可在 .env 覆盖,变量名为 REPORT_MODEL、PRISM_BUY_CODEX_MODEL、PRISM_SELL_CODEX_MODEL、TELEGRAM_ANALYSIS_MODEL、INSIGHT_MODEL。
四、交易规则(2026-10 版)。这是该项目最有信息量的部分,README 有完整 8 步表,摘要:
- 筛选:早晚盘各跑 trigger,按最近 180 天自身记录给 trigger 质量权重 0.7–1.3,弱 trigger 不再保送名额。
- 买入判定:1–10 分成文评分(盈利能力、资产负债表、成长性、业务清晰度 + 动量信号 + 趋势检查),还要过 regime 最低分、风险收益下限、止损不宽于 −5% ~ −7%。
- 小仓首买:账户分 10 个等额 slot,新仓从单 slot 的 30%–80% 起,按波动率定大小。
- 场景加仓:入场时 AI 写 2–4 个加仓剧本并每日更新;只在条件满足、只在均价之上、单次不超过上次买入、总风险预算内、最多一个整 slot 时加仓;当日首加后若确认强势(高于入场 8% 且量能 1.5×)可再加一次。
- 龙头持有:4–15 个交易日内收盘高于首买价 20% 且未远离 50 日线者,视为 leader,最多 40 个交易日内只有跌破 50 日线或跌破首买价才卖;1–3 日暴涨 20% 的则维持常规止盈保护。
- 再入场:被止损或因价格位置被跳过的股票跟踪最多 60 个交易日,临近收盘(KR 14:00 / US 13:50)收复关键位时需 AI 复核通过才可买,每轮最多 3 次尝试、每市场每天最多 2 单。
- 复盘:周报追踪大赢家捕获率、漏掉的赢家、止损成本、各 trigger 表现。
五、无 Perplexity 订阅的替代。在 .env 里改:
PRISM_WEB_SEARCH_PROVIDER=tavily
TAVILY_API_KEY=tvly-...
仓库内置的 cores/llm/tavily_mcp_server.py 会顶替 Perplexity server,工具名 perplexity_ask 不变,prompt 无需改。
六、选研报来源。.env.example 里 PRISM_MARKET_DATA_SOURCES=kis、PRISM_REPORT_DATA_SOURCES=kis,注释明确写着"韩股只用 KIS,不使用交易所网站登录"。
典型适用场景
- 韩股散户/量化个人做每日盘前异动股扫描与研报生成。
- 想研究多 agent 交易流水线怎么落地的开发者:它的 regime 闸门、状态机、slot 拆仓、re-entry 规则本身就是一份可读的设计文档(
docs/micro-split/B3_LIVE_ko.md、docs/RUNNER_HOLD_RULE_ko.md、docs/REENTRY_V3_LIVE_ko.md)。 - 策略对账:把自己的策略按 Stance 的协议接进去,和别人在同一套规则下比收益、最大回撤、平均持仓暴露和记账率。
坑与注意
- 模型名文档自相矛盾(重要)。README 的模型表写 GPT-6 Luna / GPT-6.1 Sol,但
docs/CLAUDE_AGENTS.md的"默认模型矩阵"写的是gpt-5.6-terra/gpt-5.6-sol/gpt-5.6-luna/gpt-5.4-mini,而docs/SETUP.md的 key 表又写"GPT-5 for analysis & trading"、示例配置写default_model: gpt-5。三处不一致。CLAUDE_AGENTS.md 自己提示"prompt factory 里的模型名可能在执行时被覆盖,改行为前务必看当前 call site"。建议以.env.example与实际 call site 为准,不要照抄 README 的模型名。 - 韩股数据源需要 Kakao 账号。
mcp_agent.config.yaml里kospi_kosdaqMCP server 走 Kakao 登录取 KRX Data Marketplace 数据,且若开了两步验证每次分析都要在 App 里确认,需要手动关掉。 - 美股路径与韩股路径不同。US 侧是五个 yfinance 分节顺序执行、新闻并发,KR 侧严格保序;
docs/CLAUDE_AGENTS.md说这是刻意设计,别以为改串行就能"优化"。 - 不要信"胜率 40%"这类数字的口径。README 的 Season 2 表格给两种口径:每笔收益简单相加(不复利、不按仓位加权)KR +355.3%、US +82.8%;10-slot 账户收益只有 KR +35.2%、US +8.3%。后者才是可比的。作者自己明写"KOSPI 同期翻倍,本账户跑输"。这些是模拟结果,非投资建议。
- 规则上线时间 vs 统计区间错位。README 明确说 10 月那批改动在 Oct 2–4 上线,Oct 6 才是首个全量生效交易日,而 Season 2 数字截止 Oct 2——表里的业绩基本是旧规则跑出来的,不能用来评估新规则。
- "胜率低但赔率高"是设计而非缺陷。KR 胜率 40.3%、US 33.1%,靠少数大牛股阶梯式增长;反复止损会消耗账户,所以核心能力在选股而非频繁交易。
- 已知的负向发现被作者自己公开:韩股入场后 60 个交易日内涨超 30% 的交易,实现收益中位数只有 +2%,而峰值收益中位数 +60%——卖飞龙头。这正是上面 leader hold 规则要修的问题。
- AGPL-3.0。二次分发或闭源集成前先读许可证。
- 已丢弃的实验不要重造。
docs/RESEARCH_LESSONS_ko.md记录了被否掉的方案:pocket-pivot 与量能确认 trigger(2018–2026 无增益)、同时收复 50/200 日线买入(无 edge,韩股更差)、纯 O'Neil 8 周持有到 50 日线(KR −43%p、US 约 −40%p)、小时级止损检查、ATR 波动率止损、只在收盘抬止损。 - Docker 定时任务默认开着。
docker/entrypoint.sh内置 cron 自动跑日分析,生产部署前先确认你真的想要自动下单。
与同类对比
- 对 ChatGPT / Claude 手工分析:后者一次问答给出观点,PRISM 是可定时、可回放、有仓位与风险闸门的系统,代价是配置量和 token 消耗高得多。
- 对 TradingView / 付费终端:终端给指标和信号,PRISM 给的是多 agent 生成的成文研报加 PDF,且开源可改。数据源质量仍取决于 KIS / yfinance,不比专业数据商。
- 对量化回测框架(backtrader / vectorbt):PRISM 不做历史回测,做的是从当下开始的模拟/实盘记账;作者甚至强调"cumulative return 是逐笔收益率之和,不是时间加权组合收益,也不是可复现回测"。
- 对 LangGraph / AutoGen 这类 agent 编排库:PRISM 是成品应用而非库,但它把 agent 团队、确定性状态机、复盘记忆三件事拼在一起的样子,本身是很好的架构参考。
一句话推荐
推荐:想研究"多 agent + 规则闸门 + 复盘回灌"如何做成一个能天天跑的生产系统,或者做韩股/美股盘前异动股研报生成,这套代码是目前开源里相当完整的一份,文档(尤其韩文设计笔记)值得逐篇读;但只想要一份选股信号的话它太重,只想要回测能力它反而太"在线",而任何"跑赢大盘"的结论都要先自己核对上面第 4、5 条的口径。
- 版本核对:仓库 latest release
v2.25.0;本文所述规则与模型表对应 README /docs/CLAUDE_AGENTS.md(标注 verified against source 2026-07-29)/docs/SETUP.md/.env.example,抓取日期 2026-10-30,HEAD commit887cb9a1459f5cd9a70c0f564f211ef039fb9fdb。 - 未核实项:README 的 GPT-6 Luna / GPT-6.1 Sol / Claude Sonnet 5.5 是否为真实可用的模型 ID,未在官方页面核实;本文按 README verbatim 记录并标注矛盾。