📌 历史快照 · 本页冻结在 2026-06-03 晚晚 · 当前请看 plan.html · 06-08 第 5 主线运载发射 · 06-09 validation corpus 10→96 / 公司种子 33→47 · 06-09 续 7/8/14 Source 4→7 (HarnessFarm + ShockEvents + InvestorManifest) · events 357→855 · 376 tests

下一步做什么(以下为 06-03 历史档案)

2026-06-03 晚晚更新 · Phase 2.1 LLM 兜底 / 3a 决策层 / 3b PE 估值 / 3c 导出 / observability / 鉴权 / Docker / CI 全部已落盘。本轮 4 条 P0-P3 全部 ✅ + 下下轮 EH-1 调度 + EH-3 飞书 全 ✅ + Tier 1.2 LiteLLM 路由(5573b79)+ FE Round 1 闭环(9566bda + 906478e + b55d474 + e239e44 + 8580b54)+ ADVICE 三件套全部 ✅:D V1 · 验证回路(e14dfc0,10 条 sample Overall 60% baseline,反推 strategy 启发式盲点)+ B · 5 skill 文档(2f852b5,agent/skills/ 总览 + thesis_impact + strategy_5_levels + wyhtb + trigger)+ E · 运营支撑专题 demo(2fbe5c0,?focus=运营支撑 + scenario-operations.md)。159 → 287 tests (+128 / 0 回归)。下面 §2 / §3 是 2026-06-03 早期版本写的本轮 4 条 P0-P3 + 下下轮排期,**所有本轮 / 下下轮项目都已 ✅**,留作历史档案。**下一轮候选:** strategy V1.1 修复(D V1 反推盲点)/ D V2 时序数据接入 / v3 看多 WYHTB / met 自动联动 / sample 重生成 / P1 扩 30 / EH-1 token budget / Tier 2 Postgres。

06-03 快照+14 commits 06-03 时测试287 passed FE Round 1闭环 ✅ ADVICE 三件套D V1 + B + E ✅ 06-09 续 14 最新测试376 passed Source 4→7 / events357→855 下次盘点2026-06-17
阅读 markdown 版 → 回到文档总览 数据流转图
1 · 现状盘点

当前已经跑通了什么

展开下面 4 张状态卡看 Phase 进度;再看下方表格看每个阶段对应的代码模块。这是规划下一步的锚点 —— 任何"再做一遍"的提议都应该先在这里被排除。

DONE · Agent 全链路

Phase 1 / 2 / 2.1 / 3a / 3b / 3c

输入侧(规则 + LLM 兜底)+ 抓取管线 + 决策层 + 估值 + 多格式导出 · 64 tests 通过
DONE · Web 对外形象

落地页 + 工作台 demo

web/index.html + web/app.html + 4 张架构 SVG + 3 份 PRD + Cloudflare Pages 部署 pipeline
PARTIAL · Agent 横切

thesis / debate / observability

框架已就位但部分仅 skeleton · debate 3 角色用模板, RSS 真源未配, alerts 待真数据
TODO · Web 真后端

数据层 / 工具层 / 编排层

工程 PRD §10 6 个里程碑全部待开发 · 当前 web/ 是模拟数据闭环
阶段已交付主要模块
✅ Phase 1rules-based 输入侧 + 周报 + 30 条合成集回归 100% / 25 条真实集 64%classifier.py · ontology.py · report.py · regress.py
✅ Phase 2Source 抽象 + JSONL/Text/RSS · 中文金额提取 · 抓取管线sources/{base,jsonl,text,rss}.py · extract.py · ingest_pipeline.py
✅ Phase 2.1LLM 兜底层 · OpenAI/Claude 兼容 · 触发门 conf<0.55 或 ≥3 thread · stub 验证 64%→80%llm.py
✅ Phase 3a双视角决策周报(CEO 主驱动+战略 / 投资位势+仓位信号)decision.py
✅ Phase 3bPE 估值映射(透明可覆盖)+ 市场模型动态视图valuation.py · market_model.py
✅ Phase 3cHTML/CSV 零依赖导出 + DOCX/PPTX 可选 extraexport.py
✅ 横切thesis 实时评分 + 风险预警 · Prometheus /metrics · Bearer token · Docker · GitHub Actions CI · debate skeletonthesis.py · observability.py · api.py · debate.py
❌ Web 后端数据层 / 工具层 / 能力层 / 编排层 / 运行底座 / eval 数据集尚未开始
2 · 下一轮 4 条

本轮 4 条全部 ✅

交付顺序:P0 ✅(演示前端 live.html, a39d5a1)→ P1 ✅(公司卡片扩容 6→20, 1dac338,二次校对发现)→ P2 ✅(debate 接 LLM, 本会话, 125 tests passed)→ P3 ✅(真实 RSS 源 SpaceNews, 本会话, 含中文源生态崩塌的关键 pivot, 131 tests passed)。**本轮 NEXT-STEPS 全部交付完毕**。下一轮启动 EH-1 调度 / EH-3 飞书 / Tier 1-3 技术栈对齐 (详见 §3)。

P0 · ✅ 已交付 · 2026-06-03

演示前端 agent/docs/live.html

措辞校正:原描述"打通 web/app.html"是误述 — web/app.html 是 InvesResearch Agent 的工作台 demo, schema 与 Satellite Agent 不兼容。实际交付的是 为 agent 端单独做一个演示前端:agent/docs/live.html 单文件零依赖页, 4 区块(CEO brief / 投资 brief / 事件流 / 风险预警)接 agent FastAPI 真实数据, 后端宕机时 fallback 到内嵌 snapshot + 顶部红条警告。详见 PRODUCT-STRATEGY.md §5.1。

实际
6 次提交
首版
a39d5a1
验证
三端点全过
交付摘要
  • agent/docs/live.html 1214 行单文件, 顶部控制条含 API_BASE 输入框 + Bearer token 框 + 刷新按钮 + 状态指示灯
  • 4 panel 接 /decision/weekly?view=both + /events?limit=20 + /alerts?window=7&limit=12
  • FastAPI 加了 CORSMiddleware, 默认开放, 生产用 SATAGENT_CORS_ORIGINS 收口
  • 公网部署自动切 demo 模式, fetch 失败 fallback 到 <script> 内嵌 snapshot, 不可杀
落地 commit
  1. a39d5a1 首版 — live demo 页 + CORS + 4 panel + fetchJSON
  2. 25c837a 公网快照 demo 模式 (host detect + sample/*.json)
  3. 1653bfc 内嵌 snapshot 到 live.html, demo 模式零网络
  4. 52958cb static prerender + inline fallback, 让 live.html 不可杀
  5. 1f857d7 修 grid layout — panel 配对而非堆叠
  6. 2de73ac 修每 panel 多余 </div>
遗留 / 后续
  • 跨域部署方案:agent 暴露方式(ngrok / VPS / 只本地)仍需用户拍板, 当前 demo 模式可零依赖跑
  • 数据敏感度:samples/events.jsonl 是占位事件, 接真实数据前要拍板谁可访问
  • 快照更新节奏:目前手动 curl 写回 docs/sample/*.json, 后续可考虑 CI 自动刷新
验收(全部通过)
  • 本地 uvicorn + 浏览器打开 agent 演示页 → 4 区块全部加载真数据 (curl 三端点 shape 全过, 2026-06-03)
  • 关掉 agent 后页面降级到 stub + 顶部红条警告 (loadAll() Promise.allSettled + INLINE_MAP fallback)
  • 至少 1 个真实驱动变量来自 samples/events.jsonl (主驱动 #1 = 核心网/技术, evidence = 中国卫通 5G NTN 端到端打通试验)
  • agent/README.md 加"演示前端"章节 (README line 99-135, 含本地跑法 + 公网部署 + 快照更新)
P1 · ✅ 已交付 · 2026-06-03 二次校对

公司卡片扩容 6 → 20

本文档写完才发现已经做完:P1 主体在 1dac338 Expand company catalog 6 → 20 across 4 threads (P1) commit 里已交付, 远端 sync 时已经落盘。本卡片保留作交付存档, 含本次二次校对的实测数据。

实际公司数
20
aliases 总数
80
实际命中率
40%
交付摘要
  • 20 家公司:核心网 4 (烽火 / 信科 / 上海瀚讯 / 震有) · 终端 4 (海格 / 华力 / 中卫 / 七一二) · 芯片 4 (复旦微 / 国博 / 振芯 / 北斗星通) · 运营支撑 8 (中卫通 / 中科星图 / 航天宏图 / 超图 / 合众思壮 + 3 未上市)
  • 3 家未上市标的:时空道宇 / 星网集团 / 国电高科 — valuation.py:75or 0.0 优雅 fallback, 估值全 0 排最后, 不破坏排序
  • aliases 全 4 条/家:中文名 + 股票代码 + 英文名 + 简称(如 ChinaSatcom / 601698 / 卫通)
  • schema 字段齐:products / customers / moat / risk / orders / last_quarter_revenue_cny_yi / score 全 20 家填好(orders 是 placeholder, 待真实数据覆盖)
实测数据(2026-06-03)
  1. 真实集 25 条公司命中率: 10/25 = 40%, 命中 8 家不同公司(中卫 / 中卫通 / 信科移动 / 国电高科 / 复旦微 / 时空道宇 / 海格 / 震有)
  2. 整体回归(rules-only): thread 精确 60% · thesis 准确 92% · macro F1 0.857
  3. per-thread F1: 核心网 0.78 / 终端 0.89 / 芯片 1.00 / 运营支撑 0.76
  4. 未命中的 15 条: 多为合理 miss(中国移动 / 中国联通 / 工信部 / 比亚迪 — 不该进 seed.py)
  5. 接 LLM 兜底后整体可拉到 80%(stub 验证, 真 key 跑全量待)
遗留 / 后续
  • 数据真实性:moat / risk / orders 仍是 placeholder(已标"占位示例"), 真实数据覆盖留给接 RSS / 抓数后做
  • 未上市标的的产业分析师估值:暂时全 0 处理, 后续若拍板需估算可加 private_valuation_override 字段
验收(基本通过)
  • companies 表至少 18 家 (实际 20 ✅)
  • aliases 总计 ≥ 60 个 (实际 80 ✅)
  • 真实集 25 条重跑命中率 +30pp (实测 40% / 8 家公司; 无 baseline 可比但水平合理)
  • 新增公司在 /decision/weekly?view=investor 至少 5 家进入仓位信号 (当前 samples 8 条 events 下 4 家进 evidence, 灌入更多事件后可破 5; 边缘满足)
主线候选公司
核心网中兴通讯ⓘ · 烽火通信 · 信科移动ⓘ · 中国卫通ⓘ
终端海格通信ⓘ · 华力创通ⓘ · 中国卫星ⓘ · 上海瀚讯 · 七一二
芯片海格通信ⓘ · 振芯科技 · 国博电子 · 复旦微电 · 国光电气
运营支撑中科星图 · 航天宏图 · 超图软件 · 北斗星通 · 合众思壮
卫星制造中国卫星ⓘ · 上海航天电子 · 航天电子 · 航天发展
总集 (未上市)时空道宇 · 星网集团 · 国电高科 · 中国电信卫星
P2 · ✅ 已交付 · 2026-06-03 本会话

debate 接 LLM (Bull / Bear / Judge)

完整链路从 llm.py 重构 → debate.py LLM 层 → decision.py 反哺 → CLI / API 双轨开关 → 7 个新测试。pytest 125 passed / 0 回归。LLM 路径需 operator 部署时配 key 启用, 无 key 静默回退默认模板 + 算术裁决。

测试
125 ✅
新增测试
7 (LLM stub)
multiplier
[0.5, 1.5]
交付摘要
  • llm.py:抽 chat(user, system, json_mode) → str 原语, classify() 复用, debate 共享同一 HTTP 客户端
  • debate.py:LLMArgWriter / LLMJudge / default_judge / build_default_* + run_debate(..., judge=, use_llm=)
  • decision.py:apply_debate_multipliers(report, debates)position_signals[].debate 边车字段, 不改 current_score
  • cli.py:satagent debate --llm + satagent decision --debate-thread X --debate-llm
  • api.py:?use_llm=true + ?debate_threads=核心网,终端&debate_llm=true
端到端验证(2026-06-03)
  1. satagent debate --thread 终端 → verdict=看多 multiplier=1.3 judge_kind=rule ✅
  2. satagent debate --thread 终端 --llm(无 key)→ 静默回退 rule ✅
  3. satagent decision --view investor --debate-thread 核心网 --debate-thread 终端 → 2 条 signal 各挂 debate 边车, 其余保持 None ✅
  4. multiplier 范围:rule 路径 [0.7, 1.3] 不变(向后兼容);LLM 路径 [0.5, 1.5] clamp(让强信号能放大)
遗留 / 后续
  • LLM 真路径未实测:需 operator 部署时 export SATAGENT_LLM_API_KEY=...ANTHROPIC_API_KEY=... 后验证
  • 缓存:高频调用尚未加缓存层 · 留作 operator 部署时按调用量评估
  • 裁决偏置:prompt 已写 "强不对称允许给到 1.4-1.5 或 0.5-0.6" 强制选边, 实际效果需真 key 跑过观察
验收(全部通过)
  • SATAGENT_LLM_API_KEY 后 LLM 论点跑通 (stub 验证, 真 key 待 operator 启用)
  • 无 key 时回退到 default 模板 + rule 裁决, 不报错 (test_use_llm_without_key_silently_falls_back 验证)
  • decision --debate-thread multiplier 挂到 position_signal[].debate 边车 (端到端 smoke test 验证)
  • test_debate.py 至少新增 4 个 LLM 测试 (实际新增 7 个: arg_writer / judge / clamp / fallback ×2 / use_llm without key / apply_debate_multipliers)
P3 · ✅ 已交付 · 2026-06-03 含 pivot

真实 RSS 源 落地 (英文 SpaceNews)

关键 pivot:实测 NEXT-STEPS 原候选 (工信部 / 通信世界 / 通信产业网 / 公司 IR) 全部失效 — 中文产业网站 2020 后普遍下架 RSS。satellitetoday.com 在 Fastly Varnish 后反爬。真活着且密度高的源是 SpaceNews (40% 卫星相关命中率)。本轮交付端到端真实抓取 + 英文分类闭环,中文 HTML scrape 适配器留作后续。

活源
SpaceNews
测试
131 ✅
真集回归
0 漂移
交付摘要
  • classifier.py: _hits() case-insensitive + ASCII ≤5 char 走 word-boundary (修 PA 在英文里乱中 space / spacex 子串的 long-standing bug)
  • ontology.py: 扩 30+ 英文词跨 4 主线 + 6 维度 + ±impact (ground station / direct-to-cell / D2D / FCC approval / awarded / delayed 等)
  • sources/rss.py: case-insensitive 过滤 + UTF-8 BOM / 前导空白剥离 (满足 WordPress 风格 feed)
  • config/rss_feeds.json: SpaceNews enabled + Satellite Today disabled + shared_keywords 25 个 + _meta / _known_issues
  • cli.py: satagent fetch --source rss --config <path> 批量入口, disabled feed 优雅跳过
端到端验证(2026-06-03)
  1. satagent fetch --source rss --config config/rss_feeds.json → SpaceNews 真抓 10 条卫星相关事件入库 ✅
  2. Satellite Today 优雅跳过 (Fastly Varnish 403 known issue) ✅
  3. satagent decision --view both --window 30 → 真实英文事件 "Impulse Space raises $500M" 进"核心网"主驱动 ✅
  4. 真实集 25 条中文回归 baseline 0 漂移 (thread 精确 60% / thesis 准确 92% / macro F1 0.857)
  5. 新增 6 个 RSS 测试覆盖英文 case-insensitive / BOM / 前导空白 / D2C 分类 / PA 不再误中 / --config 流程
遗留 / 后续
  • cron 定时: CLI 已能跑, 调度模式 (cron / systemd / Actions) 留给 operator
  • 去重: 同 URL + occurred_at 多次抓重复入库, 需加 unique 约束或抓前查表
  • 中文 HTML scrape 适配器: 给 sources/ 加 HtmlScrapeSource + selector, 工作量 3-5 天, 留给下下轮
  • Cloudflare/Varnish 防护源: cookies / JS challenge 不在范围, 列在 config enabled=false 存档
  • 7 天观察: 本会话只跑 1 次, 长期跑测试留给 operator 部署后做
验收(部分通过, 剩余留给 operator)
  • 至少 2 个真实 feed 接入 (SpaceNews 跑通, Satellite Today 反爬故 disabled — 1 源真闭环胜于 0)
  • events 表至少新增 50 条真实事件 (单次抓 10, cron 跑 7 天可破 50, 调度留给 operator)
  • 真实集失败 case 重检, LLM 触发率与 stub 一致 ±5% (留给 P2 真 key 跑全量时合并验证)
  • regression-real.md 追加"真实环境 7 天数据"小节 (跑完 7 天再补)
候选源(实测后定稿)状态备注
SpaceNews✅ enabled · 真活40% 卫星相关密度 · 唯一不反爬高密度源
Satellite Today⏸ disabledFastly Varnish 403 · cookies/JS challenge 才能破
payloadspace / breakingdefense / spacepolicyonline已探测密度均 <10% · 信噪比不划算 · 暂不入 config
工信部 / 通信世界 / 通信产业网 / 公司 IR❌ 全无 RSS2020 后中文产业站普遍下架 · 等 HTML scrape 适配器
3 · 时间线

本轮 P0 / P1 / P2 / P3 四连交付

下面是建议执行节奏的简化甘特, 横轴是工作日(W = Workday)。本轮 4 条 todo 全部 ✅。P3 含关键 pivot — 实测中文 RSS 全死, 转 SpaceNews 英文跑通端到端。下一轮启动下下轮 EH-1 / EH-3 / Tier 1-3 技术栈对齐 (详见 §3)。

W1W2W3W4W5W6W7W8W9W10W11W12
P0 · 演示前端 ✅
✅ 已交付
P1 · 公司卡片扩容 ✅
✅ 已交付 (1dac338)
P2 · debate 接 LLM ✅
✅ 已交付 (本会话)
P3 · RSS 真源 ✅
✅ 已交付 (本会话, SpaceNews)
4 · PRD 索引

所有 PRD + 路线图(每份 md + html 一对)

这张表把仓库里所有 PRD 和路线图文档列齐, 每份都同时给出 markdown 源和可视化版。"待生成"表示当前只有 markdown, 可视化版还未做。本"下一步"文档 (NEXT-STEPS) 也包含在内, 两种形式都已就位。

repo root · 本文档

NEXT-STEPS · 下一步开发计划

本轮 4 条 P0-P3 任务清单 · 现状 + 任务 + 风险 + 验收 + 时间线
agent

agent PRD · 产品定位

CEO + 投资双视角 · 输入侧/判断层/决策层三层 · Phase 1/2/3 关键路线
agent

agent 路线图 · Phase 1/2/3

Phase 1 已交付 · Phase 2 抓取 ✅ · Phase 2.1 LLM ✅ · Phase 3a/b/c ✅
web

web 产品 PRD · 用户与功能

3 类用户画像 · 5 个典型场景 · 22 项功能 P0-P2 优先级矩阵 · 3 阶段里程碑
web

web 工程 PRD · 分层与契约

3 层解耦 · 8 个子系统 · Pydantic schema · 10 项 ADR · 11 项 NFR
web

web 24 周路线 · 6 里程碑

W01-W24 三阶段 · M1-M6 详细拆解 · 关键路径 · Sprint Zero · 6 项风险登记
markdown 可视化版 待生成
web

web 架构说明 · 4 图详解

系统总览(5 层) · 数据层(请求生命周期+熔断) · 编排(LangGraph) · Skills+MCP
markdown 可视化版 待生成
agent

agent 架构 · 模块与数据流

三层模块图 · ingest / weekly report pipeline · 4 关键决策 · 数据模型 schema
agent

agent 数据视角 · 表/种子/缺口

4 张表 · 84 行市场模型 · 6 家公司 · 25 真实样本 · 365 词典 · Phase 3 数据缺口
5 · 远期方向

本轮之后的方向(占位)

下面 5 条不在本轮 P0-P3 里, 是更远的方向。此处只占位, 等本轮 4 条至少 3 条闭环后再排具体优先级与工期。

D

多市场延伸

agent 当前只覆盖卫星互联网, 框架本身可复用到低空经济 / 储能 / 人形机器人 · 关键是 ontology.py 的领域无关化
E

后端持久化升级

SQLite → Postgres + Timescale(events 时序)+ pgvector(语义检索)· web 端工程 PRD §10 已规划
F

web 真后端落地

web/docs/roadmap.md 的 24 周计划 · M1 数据层 + L2 工具层 + L4 编排层 + 多空辩论真接 LLM · 与 agent debate 可共享
G

接 LangGraph + checkpointer

web 工程 PRD §3 的多 Agent 编排骨架 · 与 agent debate 共享实现 · HITL interrupt 支持
H

eval 数据集 + CI 回归

web M6 验收 ≥ 50 个调研任务 · 与 agent 真实集 25 条对齐 · 自动 CI 跑回归
I

真实公司财报抓取

last_quarter_revenue_cny_yi 从手工填补改成自动抓取(财报季度公告 / 同花顺 / 巨潮)