Phase 1 · 合成集 30/30 · 真实集 64% 三项全过 · rules v1

事件判断
卫星互联网产业决策辅助 Agent

双视角决策辅助,不是自动化研报。CEO 视角识别当前周期主驱动变量与战略策略;投资视角量化市场体量、公司相对位势与二级市场仓位调节信号。基于核心网 / 终端 / 芯片 / 运营支撑四条主线展开。

本体维度4 主线 / 6 场景 / 6 维度 词典~150 条关键词 测试18 / 18 ✓ 合成回归30 / 30 ✓ 真实新闻64% · macro F1 0.88
设计哲学

四个取舍,决定了 MVP 的样子

每一个选择都是「现在不做什么」与「未来留给 Phase 几接」的明确边界。

分类逻辑

关键词规则 · 是 LLM

LLM 在 MVP 阶段引入会带来非确定性与延迟成本,且没有现成的产业本体监督信号。规则可解释、可回归、可被产业专家直接审阅。等真实数据回归暴露长尾时再考虑兜底。

存储

SQLite 落盘 · 用 Postgres

单机即可跑,无运维负担。schema 集中在 db.py,事件量到 10⁵ 再迁库不迟。所有 SQL 都走 repository 一层,迁移工作量可控。

接口

CLI + FastAPI 双轨

CLI 用于本地灌数据与脚本化回测;API 用于前端 / 别的 Agent 调用。同一套 repository 层支撑,行为一致。一处分类,两处调用。

本体

显式 Enum · 用自由 tag

显式 Enum 让聚合(周报分桶)、回归(expected 可序列化)、词典挂载(THREAD_KEYWORDS[Thread.CHIP])三件事都直接成立。代价是新增主线要改代码,而 PRD 已经把四主线定死了。

架构

三层分离 · 接口 / 领域 / 持久化

每个模块只做一件事。ontology 是唯一真实来源;classifier 是纯函数;repository 是 CRUD;cli / api 是薄薄一层组合。

INTERFACE DOMAIN PERSISTENCE cli.py argparse · 9 子命令 api.py FastAPI · 8 端点 classifier.py rules · negation pairs · risk fallback ontology.py 4 主线 / 场景 / 维度 · 关键词词典 report.py 周报聚合 + markdown 渲染 regress.py 回归评测 · P/R/F1 repository.py CRUD · 公司主线反哺 db.py SQLite schema · 4 表
ontology.py 是核心
所有分类规则的唯一真实来源。修改主线归属只动这一个文件,classifier 自动消费。
classifier 是纯函数
无 DB 依赖,无副作用。pytest 直接传字符串验证,regress 批量跑 30 条 <1ms。
公司反哺在 pipeline
classifier 不懂"公司"。enrich_with_company_threads 是 ingest 后处理步骤。
路线图

三阶段,按 PRD §5 推进

边界严格不蔓延。Phase 1 已交付,Phase 2 / 3 的入口与完成定义都已 lock。

P1
DONE

Research Agent

从原始事件 → 结构化分类 → 周报聚合。本地可跑,rules-based,无 LLM 依赖。
  • ontology + classifier
  • SQLite 落盘 + CRUD
  • CLI + FastAPI 双接口
  • 周报 markdown / JSON 渲染
  • 30 条回归 + 18 个 pytest
P2
NEXT

Tracking Agent

让 agent 自己抓数据,从被动入库 → 主动巡检。引入 LLM 兜底分类。
  • LLM 兜底(confidence < 0.55)
  • events 表加 numeric_fields(订单 / capex)
  • 公司卡片加 orders / peer_rank
  • RSS / 公告抓取 + 金额解析
  • Thesis impact 实时评分 + 风险告警
P3
LATER

Decision Agent · 决策辅助

看清楚 → 判清楚。CEO 战略 + 投资仓位双视角输出, DOCX/Excel/PPT 只是分发载体。
  • 3a · CEO:主驱动变量 + 战略建议
  • 3b · 投资:仓位信号(加/减/持)
  • 市场模型用真实 capex/订单滚动修正
  • 公司相对位势矩阵
  • 分发载体:DOCX / Excel / PPT 双版本
当前进展

Phase 1 详细 checklist

每个 PRD §3.1-3.4 的子功能都有对应模块,左侧是已交付,右侧是 Phase 2 / 3 计划做的。

已完成 P1 · 10 / 10

2026-06-01 · rules-based MVP
  • 本体建模(Enum + 词典 ~120 条)ontology.py
  • 事件分类(rules + 反义对 + RISK fallback)classifier.py
  • SQLite 4 表 schema + 索引db.py
  • 事件 / 公司 CRUD + 公司反哺repository.py
  • 种子数据 84 + 6seed.py
  • 周报 markdown + JSON 渲染report.py
  • 分类器回归 + 失败 case 复盘regress.py
  • CLI 9 子命令cli.py
  • FastAPI 8 端点 + lifespanapi.py
  • 18 个 pytest + 30 条回归样本tests/
Phase 1 进度100%

待办 P2 + P3

按关键路径排序,5 是 Phase 3 的前置依赖
  • 真实新闻盲测 25 条(40% → v1 64%)done 06-02
  • 词典扩展 rules v1(macro F1 0.88)done 06-02
  • PRD / 路线图双视角对齐done 06-02
  • LLM 兜底分类(conf<0.55 或 thread≥3)P2.1
  • events / companies schema 扩(numeric_fields / orders / peer_rank)P2 ※ 关键路径
  • 抓取最小化 + 金额解析P2
  • 主驱动变量识别(CEO 视角)P3a
  • 战略建议生成(进入/等待/退出/加速)P3a
  • 仓位调节信号(主线 加/减/持)P3b
  • 公司相对位势矩阵P3b
  • 市场模型动态更新 + 估值映射P3b
  • 分发载体:DOCX / Excel / PPTP3c 附属
Phase 2 + 3 进度15%
回归基线

30 条 labeled regression · round 1 修复后

规则与样本是一起调出来的,100% 不代表上线表现。真实数据接进来时会先掉下来,这是设计预期。

100%
thread 集合精确匹配率
100%
thesis 影响准确率
1.000
per-thread macro F1
18/18
pytest 通过
主线TPFPFNPRF1
核心网9001.001.001.00
终端16001.001.001.00
芯片8001.001.001.00
运营支撑8001.001.001.00
构建时间线

从空目录到可跑通的 7 个里程碑

每一步都跟着一次回归与一次复盘,改动可被任意时刻 revert。

M1
最小骨架
ontology · db · classifier · seed
4 主线 Enum 与第一版关键词词典定下来,SQLite schema 4 表落盘,classifier 走通分类。
M2
闭环 ingest
repository · cli ingest · ingest-file
CRUD 写好,CLI 可单条录入或批量 JSONL 灌入,公司 alias 反向匹配跑通。
M3
周报聚合
report · render_markdown
按时间窗口聚合 4 主线评分、关键事件、风险预警、下周跟踪清单,markdown / JSON 双格式输出。
M4
FastAPI
api · lifespan startup
8 个业务端点 + /health,startup 自动 init + seed,与 CLI 共用 repository 层。
M5
扩词典 + 公司反哺
ontology v2 · enrich_with_company_threads
POS/NEG 各扩 ~20 词,主线词典各加 10+,负向反义对处理"未中标"类幻觉,公司主线反哺让"中国卫通核心网试验"同时进入运营支撑。
M6
30 条回归集 + runner
regress · test_regression · 30 labeled samples
合成 30 条带 ground-truth 的样本,覆盖 6 类边角(未中标/RISK fallback/低信号噪音/多主线交叉/标注争议/公司反哺),回归 runner 输出 P/R/F1。
M7
文档体系 · 当前
docs/*.md · dashboard.html
6 份 MD 文档(architecture / ontology / api / regression / roadmap / index)+ 这份视觉化首页。文档作为代码评审与未来重构的锚点。
P2
真实数据 · 抓取层
sources/ · scheduler · /alerts
下一步:接 RSS / 交易所公告,真实新闻盲测,看准确率落到哪,再决定要不要加 LLM 兜底。
文档

按主题深读

所有文档都对应到具体代码模块。改代码时同步改文档。