# 投研平台路线图 · 2026 H2（B 数据深度 · C 覆盖面 · D 对话调研 · E 运营）

> 状态基线：web-backend v0.40.2 / 614 tests → **现 632 tests（B/C/D/E 主体已落，见下方 ✅）** · 生产在 ECS · 前端 oaf.world 全功能 QA 通过（0 崩溃）。
> 本文替代过时的 `NEXT-STEPS.md`（后者偏 agent 侧、停在 2026-07-08）。网页版 `/roadmap-2026h2`。
>
> 铁律贯穿全程：数字来自工具（确定性）、LLM 只写叙事、缺数显式降级不编、强制免责、离线可测、凭证只在 provider/网关层。

## 优先级与排序

| 序 | 块 | 项 | 杠杆 | 依赖 |
|---|---|---|---|---|
| 1 | D | ✅ 对话调研多轮 + 追问建议 + focus 感知 | 高（刚上线、纯前端+/ask、离线可验） | 无 |
| 2 | B | ✅ A 股财务字段补全（tushare failover 接入行业/相对估值） | 高（A 股杜邦/PB/ROE 直接受益） | tushare token / 境内源 |
| 3 | C | ✅ 更多行业篮子（白酒/家电）+ 港股卫星评估留白 + HK/US 中文名扩容 | 中（覆盖面、复用 /industry） | 无 |
| 4 | B | ✅ 跨源财务校验扩面到 A 股（离线测证明） | 中（数据质量） | 依赖第 2 项第二源 |
| 5 | E | ✅ 叙事分级（快模型 Haiku 路由 / 主模型 Opus 叙事）控成本 | 中（成本+稳定） | 无 |
| 6 | C | ✅ HK/US 中文名扩充（首批 ~60 条） | 低（搜索边界，逐步） | 无海外全量免费源 |
| 7 | E | ✅ Prometheus/Grafana 看板（叠加层）；观点台 ⏸ 待产品输入 | 低（运营） | 无 |
| 8 | B | 历史分位/股息率/PEG、舆情时序 | 低（需时序数据源） | 时序源未接入 |

> A（凭证轮换）是运维动作、不在此代码路线内，但仍是最高优先——见 RELEASING.md。

---

## D · 对话调研深化

对话调研（`/ask`）现为**单轮无记忆**：每问独立路由 → 分派 skill → 返回固定结构，不带上下文、不针对具体 focus 定制、答完无引导。

- **D1 多轮上下文**：`/ask` 接受 `history`（前几轮 uid/intent），前端把上一轮解析到的标的带上，让「它估值贵吗」「再看季度毛利率」能承接上一个标的。LLM 路由 prompt 加历史；仍只路由不产数。
- **D2 追问建议 chip**：答复后按已选 skill/标的给 2–3 个可点追问（如单标的 → 「季度财报」「和同业比」「行业怎么样」），点了走既有意图。纯前端渲染 + 后端可选返回 `suggestions`。
- **D3 focus 感知**：路由已抽 `focus`（毛利率/估值/护城河…）；把 focus 传给渲染层，答复**置顶**与 focus 最相关的段（如 focus=毛利率 → 优先展示财务/毛利率而非泛护城河）。数字仍来自 skill。
- **D4 更多意图**：直接问「英伟达最近财报」→ `/earnings-recap`、「K 线」→ 公司页深链、「新闻」→ `/news`。扩 intent 枚举 + 分派。
- 验证：`test_ask` 增多轮/focus/意图断言；Playwright 驱动追问 chip → 承接同标的。**纯前端 + /ask，需后端 rebuild（若改 /ask 契约）**。

## B · 数据深度

- **B1 A 股财务字段补全** ✅ 落地（2026-07-16）：`fetch_financials_filled`（备源补缺失权益/资产，只补不覆盖）已接入**行业成分明细** `_member_detail`、**相对估值** `_peer_detail`（此前仅 `screen.py` 用），让 A 股篮子（satellite_a/白酒/家电）ROE/PB 与同业 PB 在配 `TUSHARE_TOKEN` 后自动出真数；无备源则诚实留空不编。离线测覆盖补齐与降级两路。**待运营动作**：ECS 配 `TUSHARE_TOKEN`（2000 积分）后生产实测一只 A 股杜邦出真数。
- **B2 跨源财务校验扩面** ✅（2026-07-16）：`fetch_financials_cross_checked` 本就与市场无关（取路由前两个可用源比对），补 A 股双源（baostock+tushare）离线测证明分歧置 `data_quality_flag`；配 `TUSHARE_TOKEN` 后 A 股自动双源校验。
- **B3 历史分位/股息率/PEG、舆情时序**：需时序数据源（现「未接入不编」）。接了再做，暂留。

## C · 覆盖面

- **C1 港股卫星篮子** ✅ 评估完成（2026-07-16）→ **诚实留白，不单列 `satellite_hk`**。港股纯卫星运营标的仅**亚太卫星（HK:01045）**一只（卫星转发器/广播租赁）；AsiaSat 已于 2019 私有化退市；中国卫通/中国卫星等纯标的均在 A 股（已由 `satellite_a` 覆盖）。其余港股「卫星」相关名（中国移动/联通/电信、中兴通讯）主业为地面电信运营/设备，含卫星业务但非纯标的——按篮子铁律（同市场·同币种·纯 pure-play 可比，见 `satellite_a` 去中兴/中电信之例），单只标的无法构成可比篮子（中位倍数/合计营收失去意义），强行拼入非纯标的会污染可比性。**结论**：维持诚实留白；亚太卫星及港股电信标的已进 `cn_names`（可被搜索/展示），用户可单独调研，但不作为「港股卫星互联网行业」聚合。待港股出现 ≥3 只纯卫星互联网 pure-play 上市再单列。
- **C2 更多行业篮子**：现 satellite/satellite_a/semiconductor/ai。按用户高频问的行业加（新能源车/光伏/创新药/白酒…），每篮子手挑同市场可比成分，复用 `/industry` + 对话调研自动可查。
- **C3 HK/US 中文名扩充** 🔄 首批扩容（2026-07-16）：`cn_names.py` 补 ~60 条常研港美股中文名——美股卫星篮子（铱星/全球星/火箭实验室）+ 半导体/蓝筹/医药/金融（阿斯麦/应用材料/默沙东/高盛…）+ 中概 ADR（哔哩哔哩/贝壳/百胜中国…）+ 港股蓝筹（长和/联想/海底捞/华润啤酒…）+ 港股电信卫星（亚太卫星/中国联通/电信/中兴，其中联通/电信/中兴按名解析以 A 股为准）。仍诚实标边界：无海外全量免费中文名源，覆盖不到只显英文不编；后续按用户问到的继续补。

## E · 运营

- **E1 叙事分级** ✅（2026-07-16）：新增「快模型」层 `IR_LLM_MODEL_FAST`（默认 Haiku）+ `build_fast_llm`；`/ask` **意图路由/实体抽取** 与 **新闻标题翻译** 走快模型，护城河多空/议事厅/行业叙事仍用主模型（生产可为 Opus）——路由/翻译省成本+提速 ~10x，深度叙事不降质。`answer_question(router_llm=)` 分离，未配则回落主模型（行为不变）。离线测证明路由/叙事各用其模型。
- **E2 Prometheus/Grafana** ✅（2026-07-16）：`deploy/monitoring/`——可选叠加层（prometheus + grafana，只绑 127.0.0.1 走 SSH 隧道，不改 api/caddy）+ 抓取配置 + Grafana 面板 JSON（请求速率/错误率/平均延迟/状态码/限流）+ ops 文档。`IR_METRICS_TOKEN` 保护 `/metrics`。补 `KNOWN_PATHS` 缺的 `/council`·`/earnings-recap`。**诚实边界**：LLM token 成本走 Langfuse（非 `/metrics`），文档已标注。
- **E3 观点台扩充** ⏸ 待产品输入：现 admin 最小静态版，「加真实内容管理」需先定清楚观点台要管什么内容/工作流，不宜先造通用 CMS。待明确需求再做。

## 验证与交付

- 每项：离线单测（依赖注入）+ 前端 Playwright（若涉 UI）+ 生产实测（curl/浏览）。
- 逐项一个 feature PR → squash merge → 需要则 ECS rebuild → 攒版发 Release。
- 数据源类（B1/C3）诚实标边界：接不到就降级留白，绝不编。
