技术博客

← 全部文章

· Invest AI + Decision Engine

两个仓库、一份分数契约:Decision Engine ADR-011 与 Invest AI ADR-026

Invest AI 交付带宏观共识的生产 dashboard。Decision Engine 拥有多周期技术打分与回测。两个仓库是刻意设计 — Decision Engine ADR-002、Invest AI 项目对比。

集成需要双方可执行的契约。契约即 daily_scores.v1.json。

Layer 1 与 Layer 2

层负责方职责
Layer 1 — 技术Decision EngineM/W/D/K 综合分、硬门控、StockType 上限、regime 块
Layer 2 — 宏观 overlayInvest AIFRED、事件日历、combo 修正、叙事

Decision Engine 不导入 FRED 或 LLM 解释层。导入启用后 Invest AI 不重写打分公式(ADR-026)。

导出契约(Decision Engine ADR-011)

规范产物:daily_scores.v1.json

关键字段:

  • version、rules_version、as_of_date(T 日报告用 ≤ T−1)
  • regime.level — 技术 regime
  • scores[] — 每 ticker 综合分、setup、action、confidence

生产门控: 在 ADR-009 四 regime 回测通过前,导出不得进入 Invest AI 生产 cache。

导入管道(Invest AI ADR-026)

Decision Engine
  → daily_scores.v1.json
       ↓
stock-ai-worker (decision_engine_importer.py)
  → 校验 schema + rules_version + as_of_date
  → 合并进 build_payload()
  → macro_radar overlay(仅 cap/折扣)
  → SQLite v2:dashboard:today
       ↓
FastAPI(只读 — ADR-012 不变)

硬规则:

  1. FastAPI 请求时不拉 Decision Engine。
  2. 导入开启后 worker 不用原始 OHLCV 重算 composite。
  3. 导入失败 → 保留上次好 cache;设 decision_engine_import.status: degraded。

Regime 映射

Decision Engine regime.levelInvest AI macro_radar.regime_gate
RISK_ONrisk_on
NORMALneutral
CAUTIONcaution
DEFENSIVEdefensive

技术 regime 在 decision_engine.regime 中仅供参考。宏观 gate 仍权威决定 combo 修正。

Phase 2 边界(Decision Engine ADR-012)

编码 indicators/scoring 前:

  • engine/ 写导出;scheduler/ 跑美东 4:30pm 任务。
  • api/ 只读 — HTTP 不按需算分。
  • 见 ADR-012。

为何不合并仓库?

  • 发布节奏不同(量化规则 vs 产品 UX)。
  • 回测门控在用户看到前拦住坏数学。
  • Invest AI 缓存边界(ADR-012)保持不变。

现状: Decision Engine Phase 1 数据层已建;ADR 与 schema 已定;worker 导入路径在 ADR-026 实现清单中。