Skip to main content
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 调用不设定数值概率。它们在已评分的预测周围生成叙事场景、案例文件、分支和视角文本。种子器中的默认路由为 OpenRouter deepseek/deepseek-v4-flash(主,推理已禁用)、固定的免费 OpenRouter 回退 google/gemma-4-26b-a4b-it:freeopenai/gpt-oss-20b:free,然后是 Groq openai/gpt-oss-20b。一个被跟踪的例外:关键信号提取阶段向状态派生(市场/供应链)预测的确定性评分贡献信号强度/置信度,因此该阶段保留现有的提供商顺序,但将已停用的 Groq 模型迁移到 openai/gpt-oss-20b(见 issue #4963)。 仅当种子器能将预测匹配到预测市场锚点时,预测概率才经过市场校准。在那些情况下,calibration 对象包含市场标题、市场价格、漂移和来源,显示的概率与该市场锚点混合。calibration: null 的预测是源自 WorldMonitor 信号规则的内部/旧有估计,而非外部市场校准的概率。 种子器还从 scripts/seed-forecasts.mjs 中领域专属的投射曲线发布时间范围投射(24h7d30d)。市场预测在展开三个时间范围之前,会针对其领域曲线中的最强乘数进行归一化,因此 30 天的市场发射不会夸大 24 小时的投射。其他领域将发射的时间范围保留为语义锚点。投射概率随后被钳制到 1% 下限和 95% 上限(0.01 / 0.95)作为展示启发式,因此投射端点应被解读为有界的场景路径,而非无约束的校准概率。 GET /api/forecast/v1/get-forecasts 响应包含 degradedstaleerror 字段,以便客户端区分后端/缓存中断与健康的空预测集。 面板 id 为 forecast;规范组件为 src/components/ForecastPanel.ts

如何访问

  • Cmd+K:输入 forecastai forecastpredictions 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

评分与校准

已发布的预测在到达面板之前会被封顶和去重: 当一条预测可匹配到地缘政治预测市场时,种子器记录市场标题、市场价格、相对内部概率的漂移以及市场来源。最终概率随后混合为 0.4 * market_probability + 0.6 * internal_probability 市场分桶场景校准是 scripts/seed-forecasts.mjs 中的一个编辑校准层,而非学习到的市场模型。它偏置市场上下文模拟状态如何贡献到预测压力和置信度,使得直接的能源/运费传导获得更多抬升,宽泛的宏观分桶保持适度,而国防重新定价除非证据充分否则被抑制。 冲突和 UCDP 冲突区行是基线检测器上限。UCDP 冲突区计数从 10 事件发布门槛开始,基线概率为 0.35,并在 100 事件时升至 0.85 基线上限。当匹配的 EMA 风险评分具有 velocitySpike 时,种子器在基线上限之后添加 +0.08 概率覆盖,并将结果钳制到 0.99 国防状态校准在表格之外有额外的直接确认项:每单位直接 defense_repricing 确认添加 +0.12 压力和 +0.08 置信度。当该直接国防确认缺失时,压力减去表格驱动的 dampener0.12),置信度减去单独的 0.04 缺失惩罚。 概率投射通过领域曲线扩展到 24h、7d 和 30d。市场投射使用曲线的峰值乘数作为锚点;其他领域使用预测发射的时间范围: 趋势被序列化为字符串,而非枚举。当前值为 risingfallingstable,基于相对前一个预测快照的 +/- 0.05 概率 delta。

影子 Bet Engine 评估通道

World Monitor 还会在 forecast:bets:history:v1 运行一个仅影子评估的预测通道。它从不写入 forecast:predictions:v2,因此这些 bet 不会出现在 AI Forecasts 面板。其目的,是先用真实结算结果衡量候选生成方法,再决定是否允许它们进入用户可见的预测流。 该通道现已包含一个专门的地缘政治预测市场家族:
  • 选择结算时间在 2–210 天后的高流动性地缘政治市场;通用市场家族继续保留较短的 2–45 天窗口。
  • 两个家族按市场 slug 构成互斥分区,因此同一个交易场所市场不会生成两份 bet。
  • 地缘政治候选在可选 ensemble 阶段中优先排序,但尝试预算仍为更快结算的能源、大宗商品、通用市场与宏观家族保留空间。
  • 身份与结算使用交易场所 slug,而不是可能变化的标题。硬结算规范在市场截止时间读取结算 feed,并判断 YES 价格是否越过 50%。
  • 结果始终带有 generationOrigin: "bet_engine",使成绩单能够将该通道与规范预测生成器比较,而不是混合两类记录。
每条影子 bet 都会保留其经验基线或薄历史先验 baselineProbability。只有显式启用 FORECAST_BETS_ENSEMBLE=1 时,受预算约束的三轮 LLM ensemble 才可能替换最高优先级新尝试的工作概率,同时继续保留基线以进行 Brier 分数比较。Ensemble 默认关闭;部分完成会标记为 ensemble_partial,之后仍可升级,不会被当作完整 ensemble。 这种隔离是有意设计:预测市场流动性是有用的校准证据,但如果在积累结算历史之前就把新家族直接发布到面板,会把“实现完成”误当成“预测能力已得到证明”。

结算规范

每条已发布的预测都带有一个结算规范 — 一份机器可校验的合约,定义在结算时点“应验”的含义。该规范要么是 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 — 涵盖 get-forecastsget-forecast-scorecardget-simulation-outcomeget-simulation-packagetrigger-simulation
  • 关于程序化预测生成(在缓存的 cron 输出之外生成新概率),请参见 MCP generate_forecasts 工具