Skip to content

magicnight/chaos-engine

中文 | English

C.H.A.O.S.

Connected Human-Augmented OSINT Suite

混沌中见秩序,冲击前获洞察

   ██████╗ ██╗  ██╗  █████╗   ██████╗  ███████╗
  ██╔════╝ ██║  ██║ ██╔══██╗ ██╔═══██╗ ██╔════╝
  ██║      ███████║ ███████║ ██║   ██║ ███████╗
  ██║      ██╔══██║ ██╔══██║ ██║   ██║ ╚════██║
  ╚██████╗ ██║  ██║ ██║  ██║ ╚██████╔╝ ███████║
   ╚═════╝ ╚═╝  ╚═╝ ╚═╝  ╚═╝  ╚═════╝  ╚══════╝

Rust License: AGPL v3 Sources LLM Docker


什么是 CHAOS?

CHAOS 并行采集 46 个开源情报数据源 — 卫星火灾检测、航班追踪、核辐射监测、地震数据、经济指标、武装冲突事件、网络安全漏洞、制裁名单、疾病爆发、社交舆情等 — 每 15 分钟自动合成为一幅可操作的全局情报画面。

接入 LLM 后,它成为一个多语言情报分析师,生成英文/中文/日文/西班牙文结构化简报,具备跨域关联检测和异常标记。告警推送到 Telegram 和 Discord 机器人,支持三级严重度分类(FLASH / PRIORITY / ROUTINE),机器人还接受命令 — 按需扫描、请求简报、检查状态,全在手机上完成。

一切都渲染在一个自包含的 Jarvis 风格仪表板上,包含 3D 地球、可拖拽 GridStack 面板、15 路新闻直播、实时 SSE 更新和完整 API。单一二进制。内嵌 SQLite。零云依赖。零遥测。零订阅。

配套的 NewsPredict 预测市场提供通知中心、成就徽章、跟单交易、市场情绪分析等社交化功能,并集成 Sentry 错误监控和 API 速率限制。


快速开始

git clone https://github.com/magicnight/chaos-engine.git && cd chaos-engine
cargo build --release
cp .env.example .env          # 编辑 API 密钥(可选)
./target/release/chaos serve

仪表板地址 http://localhost:3117,首次扫描约 30 秒完成。

容器部署(推荐)

Windows(Podman):

.\scripts\dev-start.ps1              # 一键启动(自动配置 .env、数据库迁移、市场种子)
.\scripts\dev-start.ps1 -Rebuild     # 重新构建并启动

Linux / Mac(Docker):

./scripts/dev-start.sh               # 一键启动
./scripts/dev-start.sh --rebuild     # 重新构建并启动

访问 http://localhost:8080


功能特性

情报采集(46 个数据源)

所有数据源通过 tokio::join_all 并行运行,按 Tier 差异化超时(T1: 30s, T2: 24s, T3: 15s)。20+ 个数据源无需任何 API 密钥即可运行。

层级 方向 数量 数据源
T1 核心 OSINT 冲突、灾害、卫生、交通 16 ACLED, ADS-B, FIRMS, GDACS, GDELT, OpenSky, ProMED, ReliefWeb, Safecast, Sanctions, Ships, SWPC, Telegram, Tsunami, USGS, WHO
T2 经济金融 市场、贸易、财政 11 BLS, CoinGecko, Comtrade, ECB, EIA, ExchangeRates, FRED, GSCPI, Treasury, USAspending, WorldNews
T3 补充数据 网络、环境、社交、科技 16 Bluesky, CISA-KEV, Cloudflare Radar, Copernicus, CVE/NVD, EPA RadNet, EU Sanctions, Google Trends, ISC/SANS, KiwiSDR, NASA NEO, NOAA, NTSB, Patents, Reddit, RIPE Atlas, TechStatus
T4 太空 轨道追踪 1 CelesTrak
T5 市场 实时行情 1 Yahoo Finance

AI 分析

  • LLM 降级链:主供应商 → 备用供应商 → 本地 Ollama(自动故障转移,60s 超时保护)
  • 10 个供应商后端:OpenAI、Anthropic、Gemini、Ollama、DeepSeek、Moonshot、OpenRouter、Mistral、MiniMax、智谱AI
  • 4 语言分析--lang en|zh|ja|es — 完整军事风格简报模板
  • 结构化输出:态势概览、关键发展、风险矩阵、可操作情报、跨域关联
  • 预测市场种子:17 条规则 + LLM 生成 + 7 个模板兜底,保证每次扫描 ≥5 个种子

CHAOS MONITOR 仪表板

  • 22 个可拖拽面板,分 9 个类别,全部可在设置中开关
  • GridStack.js 面板系统,支持拖拽、调整大小、布局持久化
  • 3D 地球,实时事件标注(地震、火灾、冲突、天气)
  • 15 路新闻直播:Bloomberg、Al Jazeera、France 24、DW、Sky News、CNBC、NHK、CCTV4、凤凰卫视等 YouTube 直播嵌入
  • Server-Sent Events 实时数据流
  • 公共 API 模式,支持 API Key 认证和速率限制
  • tower-http 静态文件服务:独立 static/ 目录,支持 ServeDir 动态加载
类别 面板
态势 态势地图、运输与空域
金融 市场数据、风险仪表、能源与宏观、全球经济
安全 冲突事件、OSINT 信息流、制裁监控
新闻 新闻聚合、趋势与创新
自然 地震监控、核辐射监控、气候与环境
网络 网络威胁、网络情报
太空 太空监控、近地天体追踪
系统 数据源健康、变化检测
AI AI 情报简报、跨源关联信号

NewsPredict 预测市场

  • 通知中心:交易确认、市场结算、成就解锁、跟单通知,可在个人页面查看
  • 成就徽章:根据交易行为自动解锁成就(首次交易、连胜、跟单等),激励用户参与
  • 跟单交易:关注优秀交易者,自动复制其交易操作,可设置每笔上限
  • 市场情绪分析:基于评论自动计算看涨/看跌/中性情绪,显示情绪徽章和置信度
  • SSE 实时推送:通过 CHAOS Engine SSE 接口实时更新价格和市场数据
  • API 速率限制:评论、交易等接口均有速率限制保护
  • Sentry 错误监控:集成 @sentry/nextjs 进行生产环境错误追踪

多级告警

级别 标签 触发条件 冷却 每小时上限
FLASH 立即行动 2+ 关键信号或 5+ 关键变化 5 分钟 6
PRIORITY 数小时内处理 1 关键或 2+ 高严重度信号 30 分钟 4
ROUTINE 信息通报 3+ 总变化或 2+ 新信号 60 分钟 2
  • Telegram 机器人:双向 — 接收命令(/status, /sweep, /brief, /mute, /help),发送分级告警
  • Discord 机器人:Webhook 模式或完整 Bot Token 模式,支持富嵌入和颜色分级
  • 桌面通知:Windows、macOS、Linux 原生提示
  • Webhook:兼容 Slack / Discord / 飞书

历史分析

  • Delta 引擎:25 个追踪指标(14 数值 + 11 计数),严重度评分
  • 6 条关联规则:自然灾害级联、地缘政治风险汇聚、网络威胁汇聚、基础设施压力、市场恐慌、人道主义危机
  • 异常检测:对历史扫描数据做 z-score 分析,标记偏差 > 2σ
  • 风险方向:自动分类(risk-on / risk-off / 混合)

CLI 命令

命令 说明
chaos status 引擎状态、配置、数据源可用性、LLM 连接
chaos sweep 对所有 46 个数据源执行完整情报扫描
chaos sweep --json JSON 输出,可管道传输到其他工具
chaos sweep --lang zh 中文 LLM 分析
chaos sweep --no-llm 跳过 LLM 分析
chaos serve 启动 Web 仪表板 (localhost:3117)
chaos serve --public --api-key KEY 公共 API 模式(绑定 0.0.0.0,限速)
chaos source <name> 测试单个数据源
chaos test-llm 测试 LLM 连接
chaos history 查看扫描历史
chaos trends 所有追踪指标的 ASCII 迷你图
chaos trends --anomalies 标记统计异常值
chaos report 生成 Markdown 情报报告
chaos export --format csv 导出趋势数据为 CSV

为什么选择 Rust?

CHAOS Engine 的核心完全用 Rust 编写。对于一个需要并行采集 46 个数据源、实时分析流式数据、长期稳定运行的情报系统,Rust 是唯一同时满足以下要求的语言:

优势 对 CHAOS 的意义
零成本并发 tokio 异步运行时 + join_all 并行采集 46 个源,单线程即可处理数千并发连接,无 GC 停顿
内存安全无 GC 所有权系统在编译期消除数据竞争和内存泄漏,7x24 运行零崩溃,无需担心 Go 式 GC 延迟或 Python 式内存膨胀
单一二进制 cargo build --release 生成一个 ~15MB 静态二进制,包含 Web 服务器、仪表板、SQLite、全部 46 个数据源解析器。无运行时依赖,容器镜像仅 ~30MB
C/C++ 级性能 JSON 解析(serde)、正则匹配、数据聚合速度与 C 相当,LLM 等待期间 CPU 几乎为零
类型系统即文档 每个数据源的响应结构在编译期强类型约束,enum + match 穷举确保不会遗漏分支
Cargo 生态 axum(Web)、rusqlite(SQLite)、reqwest(HTTP)、tokio(异步)— 成熟的生产级库,无左 pad 式供应链风险
跨平台 同一份代码编译到 Linux / macOS / Windows / ARM,树莓派上也能跑

对比其他选择:

  • Python:开发快但运行慢,GIL 限制并发,内存占用大,部署需要虚拟环境
  • Go:并发好但 GC 不可预测,泛型能力弱,错误处理冗长
  • Node.js:单线程事件循环适合 I/O,但 CPU 密集分析时阻塞,类型安全弱
  • Java/C#:JVM/CLR 启动慢、内存重,不适合边缘设备和轻量容器

Rust 的代价是学习曲线和编译时间,但对于一个需要可靠、高效、长期运行的情报引擎,这个投入完全值得。


架构

                        ┌─────────────────────────────────┐
                        │         CLI (clap v4)           │
                        │  status│sweep│serve│watch│...   │
                        └──────────────┬──────────────────┘
                                       │
              ┌────────────────────────┼────────────────────────┐
              │                        │                        │
     ┌────────▼────────┐    ┌─────────▼─────────┐   ┌─────────▼─────────┐
     │   46 数据源       │    │   LLM 降级链       │   │   仪表板            │
     │  (异步并行)       │    │                    │   │  (Axum + tower-http)│
     │                  │    │  OpenAI 兼容        │   │                   │
     │  T1: 核心 OSINT  │    │  Anthropic         │   │  GridStack 面板    │
     │  T2: 经济金融     │    │  Gemini            │   │  3D 地球           │
     │  T3: 补充数据     │    │  Ollama (本地)      │   │  实时 SSE          │
     └────────┬────────┘    └─────────┬─────────┘   │  ServeDir 静态文件  │
              │                        │              └─────────┬─────────┘
              └────────────────────────┼────────────────────────┘
                                       │
                        ┌──────────────▼──────────────────┐
                        │           核心引擎                │
                        │  简报 ─ Delta ─ 关联 ─ 异常检测   │
                        │  SQLite 存储 ─ 关注列表           │
                        └──────────────┬──────────────────┘
                                       │
              ┌────────────────────────┼────────────────────────┐
              │                        │                        │
     ┌────────▼────────┐    ┌─────────▼─────────┐   ┌─────────▼─────────┐
     │  Telegram 机器人  │    │  Discord 机器人    │   │   通知推送          │
     │  (双向交互)       │    │  (Webhook/Bot)    │   │  桌面/Slack/飞书    │
     └─────────────────┘    └───────────────────┘   └───────────────────┘

              ┌─────────────────────────────────────────────────┐
              │           NewsPredict 预测市场 (Next.js)         │
              │  LMSR 做市 ─ 通知中心 ─ 成就徽章 ─ 跟单交易      │
              │  情绪分析 ─ SSE 实时 ─ Sentry ─ Web3 (BSC)      │
              │  PostgreSQL 18 ─ Drizzle ORM ─ 速率限制          │
              └─────────────────────────────────────────────────┘

部署

生产部署(Linux 服务器)

全栈部署:CHAOS 引擎 + NewsPredict 预测市场 + PostgreSQL 18。Caddy/Nginx 反向代理需单独配置(不在容器内)。

git clone https://github.com/magicnight/chaos-engine.git && cd chaos-engine
cp .env.example .env              # 配置生产值(见下方必填项)
./scripts/deploy.sh               # 一键部署(构建、迁移、健康检查、种子)
./scripts/deploy.sh --rebuild     # 重新构建并部署

必填配置项.env):

DOMAIN=chaos.yourdomain.com           # 有域名则填写,Caddy 自动 HTTPS
NEXTAUTH_URL=https://chaos.yourdomain.com
NEXTAUTH_SECRET=$(openssl rand -hex 32)
CRON_SECRET=$(openssl rand -hex 16)
POSTGRES_PASSWORD=$(openssl rand -hex 16)

启动 3 个容器服务(Caddy 在容器外部独立运行):

互联网 → Caddy(外部,:80/:443,自动 HTTPS)
            ├─ /api/v1/*  → CHAOS 引擎 (:3117)
            └─ /*         → NewsPredict (:3000)
                               └─ PostgreSQL 18 (:5432)

无域名(仅 HTTP):.envDOMAIN 留空 — 通过 http://服务器IP 访问。

运维脚本

脚本 说明
scripts/deploy.sh 生产一键部署(构建、迁移、健康检查、种子)
scripts/dev-start.sh / dev-start.ps1 开发环境一键启动
scripts/backup.sh 数据库备份
scripts/update-live-ids.sh 更新 YouTube 直播流 ID(15 个新闻频道)

开发环境

平台 命令 运行时
Windows .\scripts\dev-start.ps1 Podman
Linux / Mac ./scripts/dev-start.sh Docker

开发环境使用端口 8080(HTTP),自动生成随机 secrets,自动运行数据库迁移。

仅部署 CHAOS 引擎(不含前端)

cargo build --release
./target/release/chaos serve --public --api-key YOUR_SECRET --port 3117

配置说明

复制 .env.example.env 并配置。所有变量均为可选(除特别标注外)。

核心配置

变量 默认值 说明
DOMAIN (空) 域名,用于自动 HTTPS
POSTGRES_PASSWORD chaos_secret PostgreSQL 密码 — 生产环境必须修改
REFRESH_INTERVAL_MINUTES 15 OSINT 扫描间隔(分钟)
SOURCE_TIMEOUT_SECS 30 数据源超时(T1: 100%, T2: 80%, T3: 50%)

LLM 配置(可选 — 启用 AI 分析和更丰富的预测市场种子)

变量 示例 说明
LLM_PROVIDER openai 主供应商:openai, anthropic, gemini, ollama, deepseek, zhipuai, openrouter, mistral, minimax
LLM_API_KEY 主供应商 API 密钥
DEFAULT_MODEL gpt-4o 模型名称
SWEEP_LANG en 简报语言:en, zh, ja, es
FALLBACK_PROVIDER gemini 备用供应商(自动故障转移)
OLLAMA_URL http://localhost:11434 本地 Ollama 地址(零云端降级)

数据源 API 密钥(可选 — 每多一个密钥,解锁更多数据)

变量 数据源 免费?
FRED_API_KEY 美联储经济数据
FIRMS_MAP_KEY NASA 火灾检测
EIA_API_KEY 美国能源信息
WORLDNEWS_API_KEY 全球新闻 API
ACLED_EMAIL + ACLED_PASSWORD 武装冲突数据

20+ 个数据源零 API 密钥即可运行。

NewsPredict 配置

变量 说明
NEXTAUTH_SECRET 必填 — 会话签名随机密钥
CRON_SECRET 自动种子/解决 API 调用密钥
NEXT_PUBLIC_CHAOS_URL 公共 CHAOS API 地址(客户端 SSE 用)

机器人(可选)

变量 说明
TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID Telegram 告警 + 命令
DISCORD_BOT_TOKEN + DISCORD_CHANNEL_ID Discord Bot 模式
DISCORD_WEBHOOK_URL Discord Webhook 模式(更简单)
WEBHOOK_URL 通用 Webhook(Slack/飞书)

API

仪表板提供 RESTful API + SSE 流式推送。公共模式(--public --api-key KEY)下所有扩展端点需要认证。

端点 方法 认证 说明
/api/v1/data GET 最新扫描数据(所有源、delta、关联、分析)
/api/v1/health GET 健康检查(运行时间、LLM、数据库、降级源)
/api/v1/trends GET 历史扫描数据(最近 50 次)
/api/v1/analysis GET 最新 LLM 情报简报
/api/v1/sources GET 数据源列表(层级、描述、可靠性)
/api/v1/sse GET Server-Sent Events(实时更新)
/api/v1/events GET 公共 结构化事件(分类 + 地理标签)
/api/v1/correlations GET 公共 跨源关联信号
/api/v1/market-seeds GET 公共 预测市场种子问题
/api/v1/query POST 公共 查询历史数据
/api/v1/resolve-check POST 公共 检查条件是否满足

完整 OpenAPI 规格:docs/api/chaos-engine-openapi.yaml | docs/api/newspredict-openapi.yaml


NewsPredict 预测市场

配套的预测市场 PWA,位于 newspredict/。基于 Next.js 构建,使用 LMSR 评分、Web3 钱包集成(BSC)和 Drizzle ORM。从 CHAOS 公共 API 消费实时情报数据,自动生成和解决预测市场。

BSC 主网合约地址

合约 地址
ChaosToken 0xcE3fbb08D72BEd7F645F59FE0f031659b5B298c4
ChaosPredictionMarket 0xAa7208Cf64078756fB58698fbE748DC3c9b4Cb88

添加自定义数据源

CHAOS 使用插件化数据源架构。每个数据源实现 IntelSource trait:

#[async_trait]
pub trait IntelSource: Send + Sync {
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn tier(&self) -> u8;           // 1-5
    async fn sweep(&self) -> Result<Value>;
}

添加步骤:

  1. src/sources/ 创建新文件,实现 IntelSource
  2. src/sources/mod.rsbuild_sources() 中注册
  3. 完成 — 简报引擎、CLI、仪表板、Delta 引擎全部自动适配

模板文件:src/sources/_template.rs。详见 docs/source-plugin-guide.md


许可证

AGPL v3


Copyright (c) 2026 ChaosDevOps@BKK&Estonia. All rights reserved.

About

C.H.A.O.S. -- Connected Human-Augmented OSINT Suite

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors