# 外部评估建议 · 集成方案(PRD 改进)

> 制定日期 **2026-06-03 晚晚** · 时间锚:本仓库 `InvesResearch` HEAD 在 commit `c31b637`(262 tests / 2 skipped),刚完成 Tier 1.2 LiteLLM + FE Round 1 全闭环 + 文档同步。
>
> **来源**:`new/advice.md`(2026-06-03 第三方外部评估,**给智坊团队整体写的**,本仓库 `agent/` 是其中工程部分;`new/` 在 `.gitignore` 中,本地参考不入 git)。
>
> **本文档目的**:把建议中**可吸收到本仓库代码层**的项,沉淀成可直接开干的 PRD 改进方案。范围严格限定在 `agent/`(Satellite Agent Infra Analyst)代码与文档可承载的部分;团队 / MWC / 商业化等仓库外议题不纳入。
>
> **不构成投资建议**。

---

## 0. 一句话定位

**评估的核心论点**:

> 投研产品价值不在管道,而在判断是否**可信、可验证**。工程团队的精力天然集中在最左侧的"能跑通吗"——但价值与壁垒住在"判断对吗 / 被信任吗 / 有护城河吗"。

**本会话刚结束时的状态映射**:

> 本会话 **10 commits**(7 个工程改动:Tier 1.2 LiteLLM + FE Round 1 三件套 + A v2 + 5 色 + gitignore;3 个文档同步:docs sync + 本 ADVICE-INTEGRATION.md + 网页版)**全部属于工程纪律层与文档沉淀**。证据纪律(`evidence.llm` 审计 / `quality_checks` self-audit / 5 步语法 / 24h cooldown / hard-coded 免责声明)做得不错,但缺一份"**判断 vs 真实结果**"的对照证据。

**最高杠杆的下一步**:**D · 验证回路 V1**(产出"吻合度对照表")。

---

## 1. 评估的四问框架 vs 本仓库位置

| 四问 | 它在问什么 | 价值/壁垒 | 本仓库当前位置 | 自评 |
|---|---|:---:|---|:---:|
| ① 能跑通吗(工程闭环) | 管道是否稳定结构化输入 → 出报告 | 低 | 引入 + 3 source 适配器 + 抓取 + 分类 + LLM 兜底 + 决策双视角 + EH-1 调度 + EH-3 飞书 + Tier 1.2 LiteLLM + FE Round 1 五步语法 + 5 色渲染 | ✅ **基本达成** |
| ② 判断得对吗(可验证) | 输出是否准确,能否证明 | **高** | `samples/labeled_real.jsonl` 25 条只测**分类**(threads/dimensions/impact),没测**判断/影响传导**对错 | ❌ **尚未建立** |
| ③ 被信任、被使用吗(harness 受众) | CEO/投资人是否敢用 | **高** | 5 步语法 + 5 层 layer + Quality Check 自查 + 飞书卡片免责声明 落地了"分析师纪律"层 | △ **半步** |
| ④ 有护城河、能变现吗(数据 + skill + 行业层) | 商业可防御性 | **最高** | RSS 走 SpaceNews(公网,无壁垒);中文 RSS 生态已死;judgment 启发式偏简单 | ❌ **未建** |

**关键洞察(精力与价值的倒挂)**:本会话 **10 commits**(7 工程 + 3 文档同步)几乎全部住在 ①,只是把 ① 的纪律做到了 FE 框架推荐的程度,**没动 ②③④**。这正是评估指出的精力错配 — 直到本文档把 D 验证回路 V1 排进下一步,才开始向 ② 倾斜。

---

## 2. 评估的 5 条工作主线 vs 本仓库现状

| 工作主线 | 评估"做好"的样子 | 本仓库现状 | 仓库可做? |
|---|---|---|:---:|
| **A 严谨引擎** | 可溯源 / 护栏 / 失败可分类 | ✅ `evidence.llm.applied` 审计 / `quality_checks` 5 实施 6 stub / `triggers` 24h cooldown / `_layers` 元数据 / 5 步语法 / 飞书 hard-coded 免责 | 已成型,持续打磨 |
| **B 判断库(skills)** | 把分析师 know-how 沉淀成可复用 skill | △ `ontology.py` 是分类层;`decision._strategy_recommendations` 启发式 5 档(进入/加速/等待/退出/观察);wyhtb operator 录入 — 但**没沉淀成命名 skill 文档** | 可做 |
| **C 数据层(护城河)** | 一两类别人难复刻的一手数据 | ❌ SpaceNews 公网;中文 RSS 全死(工信部/通信世界/通信产业网/IR 实测 404 或返 HTML);satellitetoday Fastly 反爬 | **难做** — 需团队 + 反爬资源,代码层只能搭框架 |
| **D 验证回路** | "吻合度对照表":N 个历史事件上判断 vs 研报/实际走势 | ❌ 完全没建 — 这是评估最高杠杆建议 | **强烈可做** |
| **E 产品落地(MWC + 亚信)** | 窄而深、可验证、可审计的纵切片 | △ live.html 仍是"4 主线全场景仪表盘" | 部分可做(demo 数据 + 切换) |

---

## 3. 评估的 5 条风险 vs 本仓库映射

| 风险 | 评估描述 | 本仓库相关性 | 本会话状态 |
|---|---|---|---|
| **验证缺口**(存在性风险) | 投研工具错判 > 没判;在拿出吻合度证据前"判断很准"都还只是假设 | ⚠️ **直接命中** | 本会话 5 大 feature 都是"让纪律更严"不是"证明判断对" |
| **范围蔓延** | agent 拆 7-9 子 agent,MWC 只 3 周 | △ 本仓库相对克制,但本会话也是 5 大 feature 连推 | 需警惕下一轮 |
| **数据无壁垒** | 公网爬人人可做 | ⚠️ **直接命中** | SpaceNews + 中文死 = 无壁垒 |
| **难易倒挂** | 报告/前端是最简单也最易被复制的层 | ⚠️ **本会话直接对应** | 5 色渲染 / 飞书卡片 / 5 步语法都是 ① + ③ 半步,**完全没碰 ② ④** |
| **关键人 + 上下文疲劳** | 单点 + context 频繁耗尽 | △ 我们用 `NEXT-STEPS.md` / `FE-SKILLS-INTEGRATION.md` / `MEMORY.md` 已经在缓解 | 这一项做得相对好 |
| **受众错配** | CEO 要决策依据,不是仪表盘 | △ 半命中:`investor.position_signals` 接近,`ceo.strategy_recommendations` 偏分析师视角 | 5 步语法已部分对齐"how it breaks / contradiction" |

---

## 4. 高 ROI 可吸收项详细方案

### 4.1 ⭐⭐⭐ D · 验证回路 V1 — "吻合度对照表"(3-5 天)

**为什么是最高优先级**:直接回应评估核心论点;产出物本身就是 MWC 上最有说服力的一张图;反推出 thesis 规则的盲点,自动指向下一轮要改的代码。

#### Schema

新建样本文件 `samples/labeled_validation.jsonl`(每行一个历史事件 + ground truth 标签),不动 DB schema(纯文件,跟 `labeled_real.jsonl` 同处):

```jsonl
{
  "id": "v001",
  "title": "中国卫通完成 5G NTN 端到端试验",
  "content": "...",
  "occurred_at": "2025-Q1",
  "source": "工信部新闻 / 现实事件",
  "ground_truth": {
    "threads_actual": ["核心网", "运营支撑"],
    "thesis_impact_actual": "增强",
    "market_reaction_5d": {"sector": "+3.2%", "top_movers": ["中国卫通", "信科移动"]},
    "research_consensus": "看多核心网设备 + 服务,周期约 6-12 月",
    "verified_by": ["xx 卖方研报 2025-Q1", "市场数据 2025-Q1+5d"]
  },
  "agent_judgment": null
}
```

**ground truth 字段约定**:
- `threads_actual` / `thesis_impact_actual` — 与本体一致,跟 `classify()` 输出可直接对比
- `market_reaction_5d` — 事件后 5 个交易日的板块/标的反应(可选,有则比对)
- `research_consensus` — 卖方研报或行业共识(可选)
- `verified_by` — 数据出处,审计用

V1 范围:**5-10 条历史事件**,人工标 ground truth,字段不强求全填。

#### 新模块 `agent/satellite_agent/validation.py`

```python
"""判断验证回路 (PRD 改进 · D V1) — 输入历史事件 + ground truth, 跑 agent 判断, 输出
吻合度对照表。

直接回应外部评估 (new/advice.md) 的核心论点: 投研工具的价值在"判断是否准",
而不是"管道是否跑通"。

V1 不上"agent 判断 vs 真实市场反应"的回归 (那需要时序数据接入), 先做"agent
判断 vs 人工标注 ground truth"的吻合度。
"""

def load_validation_set(path: Path) -> list[dict]:
    """读 labeled_validation.jsonl, 返回 [{event, ground_truth}, ...]"""

def run_judgment(conn, event: dict, *, llm=None) -> dict:
    """跑 agent 对单事件的判断: classify + decide 维度 + impact_sign"""

def compare(judgment: dict, ground_truth: dict) -> dict:
    """逐字段对比, 返回每条 {field, agent_value, gt_value, match_kind}
    match_kind ∈ {exact, partial, mismatch, n/a}"""

def run_validation(conn, *, samples_path, llm=None) -> dict:
    """端到端: 跑全 set + 汇总 metrics {n, exact_rate, partial_rate, mismatch_rate, by_field}"""

def render_validation_table(result: dict) -> str:
    """markdown 表格: id | 事件 | 判断 vs 真值 (4 字段) | match_kind | 备注"""
```

#### CLI

```bash
satagent validate --samples samples/labeled_validation.jsonl [--llm] [--format md|json]
```

输出 markdown 表格 + 总览指标(exact / partial / mismatch / n/a 比例),以及"反推 thesis 盲点"的 top-3 建议(基于 mismatch 模式)。

#### 与 EH-1 调度集成(可选)

新加 jobs action `validate-baseline`,operator 可注册 `satagent job add --action validate-baseline --schedule "0 1 1 * *"` 每月跑一次,记入 `job_runs.result`。

#### 验收

- 10 条 sample 跑完,产出 markdown 吻合度对照表(完整 4 字段对比 + 总览)
- exact_rate ≥ 50%(V1 baseline,后续打磨提升)
- 至少识别出 2 条 mismatch 模式 → 写进 follow-up
- 测试 `tests/test_validation.py`:`compare` 4 种 match_kind 各一例 + `run_validation` 端到端 + render 表格非空

#### 工期 + Commit 规划

- D1 数据集准备(5-10 条历史事件人工标注):0.5-1 天
- D2 `validation.py` 模块 + `compare` 4 种 match_kind 逻辑:1 天
- D3 CLI + jobs action:0.5 天
- D4 render 表格 + 反推盲点逻辑:0.5 天
- D5 测试 + 真实集跑通 + 文档:0.5-1 天

**总计 3-4 天,1 commit**:`feat(validation): D V1 · 判断吻合度对照表 + CLI + 5 sample baseline`

#### 后续 follow-up(D V2/V3)

- D V2:接入时序数据(板块涨跌幅 / 公司价格),对比 `market_reaction_5d`
- D V3:跑 `agent` 判断 vs **多份卖方研报**的语义对比(需要 LLM 推断研报立场)
- D V4:把对照表挂到 live.html 做交互查看
- D V5:把 mismatch 模式自动汇总 → `quality_checks.py` 加新 flag(`E_LOW_VALIDATION_FIT`)

---

### 4.2 ⭐⭐ B · skill 沉淀(2-3 天)

**为什么做**:评估指出 "agent ≠ skill 分层"是产品分层关键;本仓库已经有 agent(管道)、有部分 skill(`ontology` / `decision._strategy_recommendations` 启发式),但**没显式沉淀成命名 skill 文档**。沉淀后让"判断 know-how"成为产品可见价值。

#### 新增目录与文件

```
agent/skills/
  ├── satellite_internet_research.md     # 总览 skill: 4 主线分类 + 决策启发式
  ├── thesis_impact_judgment.md          # 单事件 → 主线影响传导深度
  ├── strategy_recommendation_5_levels.md # 进入/加速/等待/退出/观察 5 档触发条件
  ├── wyhtb_writing_guide.md             # operator 怎么写好 bull/bear 条件清单
  └── trigger_design_patterns.md         # 3 内置 check 的典型 params + 阈值参考
```

每个 skill 文档结构(参考 FE Skills 风格):
```markdown
# Skill: Thesis Impact Judgment

## 目的
把单事件映射到"对哪条主线的 thesis 是增强 / 削弱 / 中性"。

## 决策启发式 (decision._top_drivers + classifier 合并提炼)
1. **直接主线** (one-hop): 事件文本直接含主线核心词 → 直接挂
2. **应用场景过滤**: "手机直连卫星"等应用场景不应单独挂"终端"主线 (over-fire 防护)
3. **政策长文列举**: 政策文里被列举的"核心网"不代表事件属于该主线
4. **对冲句**: 同时含利好和利空 → 判主从, 给净方向

## 错误模式 (FE C E_INVALID_DIMENSION / E_CASTLE_IN_AIR)
...

## 与代码对应
- `classifier.classify(text)` 实现规则版
- `llm.LiteLLMClient.classify` LLM 兜底, 当 rules 触发门 (conf < 0.55 或 ≥ 3 thread)
- `decision._top_drivers(events, top_n=3)` 聚合到主线-维度强度
```

#### 与 `agent/PRD.md` 的关系

- `agent/PRD.md` 是**产品 PRD** — 说"产品是什么 / 给谁用 / MVP 范围"
- `agent/skills/*.md` 是**分析师 skill** — 说"分析这件事的 know-how 是什么"
- 类比 FE Skills:他们的 7 skill 跟 PRD 是分层关系

#### 验收

- 5 个 skill 文档落地,每个 ≥ 200 字,含"决策启发式 + 错误模式 + 与代码对应"3 段
- `agent/README.md` 加"skill 入口"章节链到 `agent/skills/`
- `agent/docs/architecture.md` 加分层说明(agent 严谨引擎 vs skill 判断库)

#### 工期

- B1 收集启发式与错误模式(已在 `classifier.py` / `decision.py` / `quality_checks.py` docstring 里散落):0.5 天
- B2 写 5 个 skill 文档:1.5 天
- B3 README + architecture 同步:0.5 天

**总计 2-3 天,1 commit**:`docs(skills): 沉淀 5 个 satellite-internet skill (PRD 改进 B)`

---

### 4.3 ⭐ E · 窄而深 demo(半天)

**为什么做**:评估指出"宽而浅是陷阱,窄而深才是出路"。现 `live.html` demo 是 4 主线全场景,该加一个"专题模式"。

#### 范围

选 1 条主线(推荐 **运营支撑**,对齐评估里"亚信本命主线",我们 seed 已有中国卫通 / 中科星图 / 航天宏图 / 国电高科 / 合众思壮 / 时空道宇 / 星网集团 / 国电高科 8 家),准备 8-10 条该主线的历史 + 当下事件灌库,跑 `decide()` 出**专题版决策报告**。

#### 实现

- 新建 `samples/scenario_operations_focus.jsonl`(8-10 条运营支撑相关事件)
- CLI 已有 `satagent fetch --source jsonl --path ...`(零改动)
- `live.html` URL 参数加 `?focus=运营支撑`,前端只显示该主线 column / signals(简单 CSS hide 其他主线)
- `?demo=1&focus=运营支撑` 走专题 INLINE_SNAPSHOT

#### 验收

- 灌库 → 运营支撑专题报告 markdown 每条结论可点开看 evidence
- live.html `?focus=运营支撑` 只渲染该主线,其他主线浅灰/隐藏
- 配套写一份 `agent/docs/scenario-operations.md` 说"这一专题怎么读"

#### 工期

**0.5-1 天,1 commit**:`feat(demo): 运营支撑专题纵切片 demo (PRD 改进 E)`

---

## 5. 中/长 ROI(推后)

### 5.1 C · 数据壁垒(中长期 · 推后)

评估指出"C 是商业可防御性最关键的一环",但**代码层只能搭框架,真正的难度在数据获取 / 反爬 / 法务**:

| 数据源 | 难度 | 现状 |
|---|---|---|
| 工信部许可 / 政策 | ⚠️ 高(反爬 + 法律红线 + 结构化难) | 之前实测 RSS / API 全死 |
| 地方招标网 | ⚠️ 高(各省格式不一,需要 site-specific scraper) | 完全没接入 |
| 上市公司 IR 公告 | △ 中(交易所有公开数据但要 license / 抓取) | 完全没接入 |
| RSS / 公开新闻 | ✅ 低 | SpaceNews 已接,中文已死 |

**短期不该当主线推**,理由:
- 工期不可控(单个 site-specific scraper 1-2 天,N 个就是 N×1-2 天)
- 反爬可能让代码层做的事白做
- 评估也指出这一项是"长期方向"

**短期能做的是搭框架**:
- `agent/satellite_agent/sources/base.py` 已有 publisher-agnostic Source 抽象
- 加一两个 stub source(`bidtree.py` / `cninfo.py`)+ 测试用 fixture,留接口
- 真实数据接入留作 NEXT-STEPS Tier 2-3

### 5.2 受众错配缓解(B 子项,~1 天)

`ceo.strategy_recommendations` 当前是"进入 / 加速 / 等待 / 退出 / 观察" 5 档,文案偏分析师视角。评估指出 CEO 要"决策依据"。可以加:
- **决策模板字段**:每个 strategy 加 `decision_template` 字段,如 `"如果你是产业 CEO: 立即启动 X 立项 / 调拨 Y 预算 / 冻结 Z"`(规则版,V1 不上 LLM)
- 加入 `agent/skills/strategy_recommendation_5_levels.md` 一并沉淀

---

## 6. 不采用 / 仓库外

**评估中明确不在本仓库范围**(给团队/MWC/商业化的建议,不是给代码的):

1. **MWC 落地(三周内)** — 团队工程组织 / 演示设计 / 客户拜访,代码不承担
2. **关键人风险** — Lawrence context 疲劳,需要团队协作 / 流程,代码层 NEXT-STEPS / FE-SKILLS-INTEGRATION.md / MEMORY.md 已经在缓解
3. **商业化 / pricing / pitch** — 仓库外
4. **亚信落地 / 田总 / 欧阳博士** — 客户开发,仓库外

**评估中本仓库代码也不该照做的**:

5. **agent 拆 7-9 子 agent** — 评估提到这是"范围蔓延"的体现,本仓库当前是单 agent + 模块化,不该跟进拆分
6. **"全网最全"数据覆盖** — 评估明示"一两类做不好的数据 > 全网最全",我们对齐
7. **"MBA 学生水平"研报输出** — 我们的 5 步语法 + Quality Check + WYHTB 已经主动避免,不再放大

---

## 7. 推荐执行顺序 + 与现有规划的关系

### 与 NEXT-STEPS.md / FE-SKILLS-INTEGRATION.md 的关系

```
当前已完成 (2026-06-03 晚晚):
  Tier 1.2 LiteLLM + FE Round 1 (C/A V1/B/A v2 + live.html 5 色) + 文档套件
  ─────────────────────────────────────────
✅ 全部住在评估 ①工程闭环 + ③半步 harness

下一轮候选 (排序按 ADVICE ROI 重整):
  ⭐⭐⭐ D · 验证回路 V1               3-5 天   1 commit   ← 评估最高杠杆
  ⭐⭐  B · skill 沉淀 5 文档            2-3 天   1 commit   ← agent ≠ skill 分层
  ⭐   E · 运营支撑专题 demo           0.5-1 天 1 commit   ← 窄而深纵切片
  ─────────────────────────────────────────
  v3 看多 WYHTB 单独段                  ~半天    (FE follow-up)
  wyhtb met 自动联动 trigger metrics    ~1 天    (FE follow-up)
  真实 sample/decision.json 重生成      ~半天    (FE follow-up)
  EH-1 token budget                     ~1 天    (LiteLLM follow-up)
  ─────────────────────────────────────────
  P1 公司卡片 20→30 + segment schema    7-10 天  (FE Round 2 D 合并)
  Tier 2 Postgres + Timescale           ~1 周    (NEXT-STEPS §3.2)
  FE Round 2 E (3 层叙事 / 敏感度)      3-4 天
  FE Round 2 F (数据来源 Ledger)        3-4 天
  ─────────────────────────────────────────
  C · 数据壁垒 (长期 / 团队 + 反爬)     不在仓库主线
```

**关键路径决策**:**D V1 优先于 FE Round 2**(D/E/F)。理由:
- 评估明确指出 D 是最高杠杆,且产出物("吻合度对照表")就是 MWC 上的素材
- FE Round 2 D(公司分部 segments)是结构性扩展,没有 D 验证回路就是"在没验证的判断上再加一层结构"
- B skill 沉淀是 D 的并行收尾(skill 文档可以参考 D 出的 mismatch 模式做经验沉淀)

### 推荐 next 三轮

| 轮次 | 内容 | 总工期 |
|---|---|---|
| **下一轮** | D V1(3-4 天)+ B skill 沉淀(2-3 天)= 1-2 个 PR | 5-7 天 |
| **下下轮** | E 运营支撑专题 demo + FE follow-up 小活 + EH-1 token budget | 3-4 天 |
| **下下下轮** | P1 扩 30 + FE Round 2 D(合并 schema)+ Tier 2 Postgres 评估 | 1.5-2 周 |

---

## 8. 时间锚与下一步

- **本文档时间锚**:2026-06-03 晚晚,基于:
  - 本仓库 commit `c31b637`(Tier 1.2 LiteLLM + FE Round 1 + 文档套件,262 tests / 2 skipped)
  - `new/advice.md`(2026-06-03 第三方评估)
- **更新触发**:
  - D V1 启动 / 完成 / 阻塞
  - 评估 follow-up(若智坊团队 / advice.md 作者后续有新建议)
  - 任一 "采用" 项的 schema / 模块改动
- **下次盘点**:建议 D V1 + B skill 完成后(预计本会话后 1 周内)

**等用户拍板**:
- 直接进 D V1(3-4 天 1 commit)?
- 还是 D V1 + B skill 双轨(5-7 天 1-2 commit)?
- 还是先做 E 窄而深 demo 拿"MWC 素材"赶进度?
- 还是把本文档当排期文档不立即开干?

---

## 9. 免责声明

本文档与 `new/advice.md`(2026-06-03 第三方外部评估)均为**方法论研究与开发规划用途**,**不构成投资建议**。

- `new/advice.md` 作者及评估对象是智坊团队整体,本仓库 `InvesResearch` 是其中工程部分,本文档只吸收"代码可落地"的部分
- 文档中提到的具体上市公司(中国卫通 / 中科星图 / 航天宏图 / 国电高科 / 等)均为本仓库 `agent/satellite_agent/seed.py` 的方法学示范种子,真实使用前需独立核实
- 评估指出的"判断对不对"决定产品价值 — 本文档建议的 D 验证回路 V1 是**回应这一缺口的第一步**,V1 baseline ≥ 50% exact 是工程目标,**不代表代理的判断在真实投资场景中可靠**
