LLM-powered geopolitical and macro news forecasting system with task-container-first F-G+ calibration. Predicts event trajectories using multi-round intelligence gathering plus a lightweight mathematical constraint layer anchored on base rates, decomposition, counter-evidence, and prior-aware recalibration. Trigger when user asks to predict, forecast, or analyze future developments of geopolitical events, wars, elections, policy shifts, market-moving news, regime changes, trade disputes, sanctions, diplomatic crises, or any current-affairs scenario where what happens next is the core question. Not for: historical analysis without forward prediction, pure opinion polling. Keywords: 预测 走向 接下来 会怎样 forecast predict scenario 态势 推演 局势.
Geo Sentinel 是一个 task-container-first 的预测流水线。它保留原来的 F-G 双函数精神,但把约束层升级为 F-G+:
F: 多场景自然语言推理G: 基准率锚定、驱动拆解、反证校准、先验感知再校准、轻量不确定性边界核心流程:
task 容器启动
→ 多轮情报搜索(shared wrapper + SEARCH_RUNTIME)
→ reference class / driver decomposition
→ F(场景生成 + 可选 inner-crowd)
→ G(基准率与先验感知校准)
→ task 内落盘
→ 报告 + Feishu Delivery
复杂预测任务必须先进入 task 容器。推荐命令:
bash workspace/scripts/code-debugger-task-bootstrap.sh "<task-slug>" "<title>" "geo-sentinel-forecast"至少需要以下 task-local 目录:
input/raw/input/normalized/sources/raw/sources/digests/scripts/scratch/results/reports/handoff/所有输入情报、搜索回包、计算脚本、计算结果、预测报告都必须只留在当前 task 内,不要外溢到 workspace/report/、workspace/memory/ 或仓库根目录。
Load SEARCH_RUNTIME.md before any search step../SEARCH_RUNTIME.md 以及 gateway wrapper 的共享交规。open-websearch;后续是否升级到 zhipu、metaso、tavily、brave,由 wrapper 和 gateway guard 决定。web_search 作为起手动作;这在当前 runtime 下属于 routing violation。sources/raw/,把 digest 落到 sources/digests/,并记下真实使用的 lane / provider。3-5 轮具有关联扩词的关键词检索组。5-10 轮具有关联扩词的关键词检索组。每轮检索都要覆盖至少以下一个维度,且轮次之间必须有扩词或约束递进:
每轮结束时至少落盘:
sources/raw/round-XX-search.mdsources/digests/round-XX-digest.mddigest 至少包含:
完成搜索后,整理为 task-local intel_packet,推荐路径:
input/normalized/intel-packet.json建议包含字段:
{
"topic": "...",
"time_horizon_days": 30,
"timeline": [],
"actors": [],
"constraints": [],
"signals": {
"supporting": [],
"contradicting": []
},
"historical": {
"event_category": "diplomatic_negotiations",
"base_rate": 0.24,
"reference_class_size": 12
},
"scenarios": [
{
"id": "S1",
"title": "...",
"llm_probability": 0.42,
"base_rate": 0.25,
"supporting_signals": [],
"contradicting_signals": [],
"analogues": []
}
]
}
F-G+ 不是完全抛弃双函数,而是对旧版做低成本升级。
Agent 必须:
若 token 允许,推荐做一个低成本 inner-crowd:
reference-class viewactor / incentive viewcontrarian view把多个概率估计写入 llm_probabilities,交给约束引擎聚合。
约束层默认执行以下几步:
Base-rate anchor
Decomposition-recomposition
Counter-evidence discipline
Prior-aware recalibration
0.5 做极值化。Tail discipline
运行 Python 约束引擎:
python3 scripts/forecast_engine.py --input INPUT.json --output OUTPUT.json推荐 task-local 路径:
input/normalized/intel-packet.jsonresults/forecast-engine.json引擎输出示例:
{
"topic": "...",
"analysis_date": "2026-04-07T00:00:00Z",
"time_horizon_days": 30,
"scenarios": [
{
"id": "S1",
"title": "...",
"probability": 0.43,
"ci_lower": 0.31,
"ci_upper": 0.55,
"drivers": [],
"disruptors": [],
"watch_signals": [],
"calibration": {
"base_rate": 0.25,
"anchor": 0.25,
"llm_center": 0.41,
"llm_dispersion": 0.06,
"signal_score": 0.33,
"analogue_score": 0.21,
"gamma": 1.08
}
}
],
"iterations": 2,
"convergence": true,
"confidence_level": "moderate"
}
最终报告必须落在 task 内,推荐路径:
reports/<task-slug>-forecast.md最少包含以下章节:
Executive SummaryScenario TreeKey Drivers & Counter-DriversWatch IndicatorsCalibration NotesSearch Coverage & GapsFeishu DeliveryFeishu Delivery 必须显式包含:
REPORT_PATH: ./tasks/.../reports/...TASK_PATH: ./tasks/...COPY_SOURCE: 从 REPORT_PATH 或 deliver-report.sh 返回的 FILEPATH 复制后发送给飞书用户正式交付前,优先执行:
bash workspace/scripts/deliver-report.sh --path "<task-dir>/reports/<final-report>.md"并把输出存到:
handoff/delivery.txt约束模型的公式和参数见:
references/constraint-model.mdSEARCH_RUNTIME.mdpython3 scripts/forecast_engine.py --input INPUT.json --output OUTPUT.jsonbash workspace/scripts/deliver-report.sh --path "<task-dir>/reports/<final-report>.md"