---
title: "AI 预测"
description: "AI 预测面板生成跨冲突升级、金融市场走势、全球供应链、政治选举、军事部署、网络攻击与关键基础设施等多领域的概率校准预测，以主流预测市场锚点作为对齐基准，支持按宏观区域灵活筛选并附置信区间、时间视野与关键假设说明，帮助情报分析师与风险管理者量化未来事件的可能性与传导影响。"
---

**AI Forecasts** 面板（内部 id `forecast`）展示 WorldMonitor 预测管道产出的预测。每条预测是一个结构化的预言，包含概率、领域分类、时间范围和支持信号；面板提供两个筛选维度（领域和宏观区域），让你聚焦于关心的切片。

## 面板显示内容

一个活动预测列表，通过两行标签筛选：

### 领域筛选

`All` / `Conflict` / `Market` / `Supply Chain` / `Political` / `Military` / `Cyber` / `Infra`

### 区域筛选

`All Regions` / `MENA` / `East Asia` / `Europe` / `South Asia` / `Africa` / `LatAm` / `N. America`

区域无法归类（未知或 `global`）的预测仅出现在 **All Regions** 下。面板的最低概率阈值为 `0.1`（10%）— 低于该阈值的预测不在面板视图中显示。

每条预测行显示预测文本、事件概率、领域（颜色编码）、时间范围和精简的来源溯源链。深度模拟路径置信度单独显示为置信度，而非事件概率。

## 校准与投射说明

预测概率来自 `scripts/seed-forecasts.mjs` 中确定性的、基于规则的信号检测器，并在存在匹配的市场锚点时可选地与预测市场混合。LLM 调用不设定数值概率。它们在已评分的预测周围生成叙事场景、案例文件、分支和视角文本。种子器中默认由源支持的 LLM 路由为 OpenRouter `deepseek/deepseek-v4-flash`（主，推理已禁用）和 Groq `llama-3.3-70b-versatile`（回退）。一个被跟踪的例外：关键信号提取阶段向状态派生（市场/供应链）预测的确定性评分贡献信号强度/置信度，因此在校准问题解决之前，该阶段保持锁定在其旧有模型上（见 issue #4963）。

仅当种子器能将预测匹配到预测市场锚点时，预测概率才经过市场校准。在那些情况下，`calibration` 对象包含市场标题、市场价格、漂移和来源，显示的概率与该市场锚点混合。`calibration: null` 的预测是源自 WorldMonitor 信号规则的内部/旧有估计，而非外部市场校准的概率。

种子器还从 `scripts/seed-forecasts.mjs` 中领域专属的投射曲线发布时间范围投射（`24h`、`7d`、`30d`）。市场预测在展开三个时间范围之前，会针对其领域曲线中的最强乘数进行归一化，因此 30 天的市场发射不会夸大 24 小时的投射。其他领域将发射的时间范围保留为语义锚点。投射概率随后被钳制到 1% 下限和 95% 上限（`0.01` / `0.95`）作为展示启发式，因此投射端点应被解读为有界的场景路径，而非无约束的校准概率。

`GET /api/forecast/v1/get-forecasts` 响应包含 `degraded`、`stale` 和 `error` 字段，以便客户端区分后端/缓存中断与健康的空预测集。

面板 id 为 `forecast`；规范组件为 `src/components/ForecastPanel.ts`。

## 如何访问

- **Cmd+K**：输入 *forecast*、*ai forecast* 或 *predictions ai*。命令面板标签为 "AI Forecasts"，尽管内部面板 id 为 `forecast`。
- **按变体的可用性**：仅在 **full/geopolitical** 变体中注册并默认启用。在 tech、finance、commodity 或 happy 变体中不存在。来源：`src/config/panels.ts` 中的 `FULL_PANELS`。

## 数据来源

主要 RPC：`GET /api/forecast/v1/get-forecasts`。面板还消费相邻 RPC 以支持更丰富的深度模拟界面：

- `GET /api/forecast/v1/get-simulation-package` — 最近的模拟输入包。
- `GET /api/forecast/v1/get-simulation-outcome` — 最近的模拟结果。
- `POST /api/forecast/v1/trigger-simulation` — 在缓存的 cron 输出之外启动一次新的模拟运行。

预测管道作为 Railway cron 运行，拉取最近的冲突、情报、市场和供应链信号，通过预测模型运行，并将聚合结果写入 Redis 中的 `forecast:predictions:v2`。宏观区域分类来自 `shared/forecast-macro-regions.js`。

## 评分与校准

已发布的预测在到达面板之前会被封顶和去重：

| 规则 | 上限 |
| --- | --- |
| 每个情境的预测数 | 3 |
| 每个情境/领域对的预测数 | 2 |
| 每个族的预测数 | 4 |
| 每个族/领域对的预测数 | 2 |
| 目标发布数量 | 10-14 |
| 冲突基线检测器概率上限（速度尖峰之前） | 0.90 |
| UCDP 冲突区在 10 事件时的门槛下限（速度尖峰之前） | 0.35 |
| UCDP 冲突区基线概率上限（速度尖峰之前） | 0.85 |
| 冲突速度尖峰覆盖上限 | 0.99 |
| 市场概率上限 | 0.85 |
| 供应链 / 海事概率上限 | 0.85 |
| GPS 供应链检测器概率上限 | 0.60 |
| 政治概率上限 | 0.80 |
| 军事概率上限 | 0.90 |
| 基础设施概率上限 | 0.85 |
| 网络概率上限 | 0.72 |

当一条预测可匹配到地缘政治预测市场时，种子器记录市场标题、市场价格、相对内部概率的漂移以及市场来源。最终概率随后混合为 `0.4 * market_probability + 0.6 * internal_probability`。

市场分桶场景校准是 `scripts/seed-forecasts.mjs` 中的一个编辑校准层，而非学习到的市场模型。它偏置市场上下文模拟状态如何贡献到预测压力和置信度，使得直接的能源/运费传导获得更多抬升，宽泛的宏观分桶保持适度，而国防重新定价除非证据充分否则被抑制。

| 分桶 | 模拟偏置：confirmation / pressure / edge / contradiction | 状态校准：edgeLift / macroLift / confidenceLift / dampener | 依据 |
| --- | --- | --- | --- |
| 能源 | `0.20 / 0.12 / 0.10 / 0.14` | `0.08 / 0.14 / 0.05 / -` | 强劲的直接路线、大宗商品和宏观传导。 |
| 运费 | `0.18 / 0.12 / 0.10 / 0.14` | `0.09 / 0.12 / 0.04 / -` | 航运成本冲击被视为高信号供应链压力。 |
| 主权风险 | `0.17 / 0.11 / 0.09 / 0.15` | `0.07 / 0.10 / 0.04 / -` | 宏观压力很重要，但确认仍需国家/市场证据。 |
| 利率 / 通胀 | `0.16 / 0.10 / 0.08 / 0.16` | `0.06 / 0.12 / 0.05 / -` | 政策和通胀传导宽泛但事件针对性较弱。 |
| 外汇压力 | `0.15 / 0.09 / 0.08 / 0.14` | `0.05 / 0.10 / 0.04 / -` | 货币压力被允许抬升风险，置信度适中。 |
| 半导体 | `0.13 / 0.08 / 0.09 / 0.12` | `0.04 / 0.04 / 0.02 / -` | 半导体冲击需要针对性的基础设施或航运证据。 |
| 加密货币 / 稳定币 | `0.11 / 0.07 / 0.08 / 0.12` | `0.03 / 0.05 / 0.02 / -` | 数字资产压力是有用的上下文，但获得较轻的宏观抬升。 |
| 国防 | `0.08 / 0.04 / 0.05 / 0.10` | `-0.03 / 0 / -0.03 / 0.12` | 国防信号被有意抑制，以避免对嘈杂的安全头条过度反应。 |

冲突和 UCDP 冲突区行是基线检测器上限。UCDP 冲突区计数从 10 事件发布门槛开始，基线概率为 `0.35`，并在 100 事件时升至 `0.85` 基线上限。当匹配的 EMA 风险评分具有 `velocitySpike` 时，种子器在基线上限之后添加 `+0.08` 概率覆盖，并将结果钳制到 `0.99`。

国防状态校准在表格之外有额外的直接确认项：每单位直接 `defense_repricing` 确认添加 `+0.12` 压力和 `+0.08` 置信度。当该直接国防确认缺失时，压力减去表格驱动的 `dampener`（`0.12`），置信度减去单独的 `0.04` 缺失惩罚。

概率投射通过领域曲线扩展到 24h、7d 和 30d。市场投射使用曲线的峰值乘数作为锚点；其他领域使用预测发射的时间范围：

| 领域 | 24h | 7d | 30d |
| --- | ---: | ---: | ---: |
| 冲突 | 0.91 | 1.00 | 0.78 |
| 市场 | 1.00 | 0.58 | 0.42 |
| 供应链 | 0.91 | 1.00 | 0.64 |
| 政治 | 0.83 | 0.87 | 1.00 |
| 军事 | 1.00 | 0.91 | 0.65 |
| 网络 | 1.00 | 0.78 | 0.40 |
| 基础设施 | 1.00 | 0.50 | 0.25 |

趋势被序列化为字符串，而非枚举。当前值为 `rising`、`falling` 和 `stable`，基于相对前一个预测快照的 +/- `0.05` 概率 delta。

## 结算规范

每条已发布的预测都带有一个**结算规范** — 一份机器可校验的合约，定义在结算时点“应验”的含义。该规范要么是 `hard`（可通过比较检测器评分所用的同一 WorldMonitor 源中的一个指标来自动结算），要么是 `judged`（留给后续 LLM 裁判的一个结算问题，仍有硬性截止日期）。截止日期始终存在，以纪元毫秒编码：发射时间加上预测所声明的时间范围 — 预测市场预测除外，后者在市场自身有结束日期时按市场结束日期结算。

**硬性规范**适用于具有干净指标支撑的预测：

- **冲突**：预测区域内的 UCDP 冲突事件计数。
- **UCDP 区域**：UCDP 冲突区事件计数。
- **市场**：自发射时基线衡量的商品期货价格变动。
- **预测市场**：市场自身的结算；截止日期为市场结束日期，若市场无结算日期则回退到时间范围截止日期。
- **供应链**：咽喉要道中断评分。
- **GPS 干扰**：某区域内的干扰活动计数。
- **基础设施**：预测所在国家的已报告中断事件。

**裁判规范**适用于信号到结果映射为编辑性或复合性的领域的预测：

- **政治**：政权稳定、谈判、政策转向。
- **军事**：姿态转换、部署模式。
- **网络**：归因和影响严重性。
- 所有**状态派生**预测，它们混合多个信号源并携带复合来源溯源（若信号单独产生了干净指标，来源优先级仍会将其路由到裁判而非硬性）。
- 硬性族中无法导出有限阈值的预测，尽管其领域如此（例如，没有可交易锚点的市场预测）。

结算规范不改变哪些预测被发布或其顺序 — 它只为每条预测*添加*机器可校验的基准事实，这是未来公开成绩单的基底，用于对照实际发生的情况为预测评分。

## 刷新频率

种子器大约每小时运行一次。该键在 `api/health.js` 中允许最多 **90 分钟**（`maxStaleMin: 90`）后健康面才会升级告警。

## 结算与成绩单

已发布的预测携带机器可校验的结算规范。一个每日结算器将这些规范预注册到 `forecast:resolutions:v1`，在截止日期前采样硬源指标，然后带着证据将每条已发布预测结算为 YES、NO 或 VOID。派生的 `forecast:scorecard:v1` 报告 Brier 评分、对数评分、校准分桶、VOID 率、发布覆盖率和市场锚点技能。裁判规范被跟踪为待处理，留给快速跟进的裁判，并在结算之前从首个硬源成绩单中排除。

## 层级与门控

在 **Web** 端，AI Forecasts 目前处于 **试用** 阶段 — 对所有人免费，包括未认证读者。在 **桌面** 端，同一面板在 `src/config/panels.ts` 中以 `premium: 'locked'` 发布，因此在那里是门控的。此拆分反映了产品当前的试用定位；预计 Web 端门控将随时间收紧。

## API 参考

- [Forecast service](/api/ForecastService.openapi.yaml) — 涵盖 `get-forecasts`、`get-forecast-scorecard`、`get-simulation-outcome`、`get-simulation-package` 和 `trigger-simulation`。
- 关于**程序化预测生成**（在缓存的 cron 输出之外生成新概率），请参见 [MCP `generate_forecasts` 工具](/zh/mcp-overview#ai-intelligence-live-llm)。
