中文 | English
Connected Human-Augmented OSINT Suite
混沌中见秩序,冲击前获洞察
██████╗ ██╗ ██╗ █████╗ ██████╗ ███████╗
██╔════╝ ██║ ██║ ██╔══██╗ ██╔═══██╗ ██╔════╝
██║ ███████║ ███████║ ██║ ██║ ███████╗
██║ ██╔══██║ ██╔══██║ ██║ ██║ ╚════██║
╚██████╗ ██║ ██║ ██║ ██║ ╚██████╔╝ ███████║
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
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
所有数据源通过 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 |
- LLM 降级链:主供应商 → 备用供应商 → 本地 Ollama(自动故障转移,60s 超时保护)
- 10 个供应商后端:OpenAI、Anthropic、Gemini、Ollama、DeepSeek、Moonshot、OpenRouter、Mistral、MiniMax、智谱AI
- 4 语言分析:
--lang en|zh|ja|es— 完整军事风格简报模板 - 结构化输出:态势概览、关键发展、风险矩阵、可操作情报、跨域关联
- 预测市场种子:17 条规则 + LLM 生成 + 7 个模板兜底,保证每次扫描 ≥5 个种子
- 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 情报简报、跨源关联信号 |
- 通知中心:交易确认、市场结算、成就解锁、跟单通知,可在个人页面查看
- 成就徽章:根据交易行为自动解锁成就(首次交易、连胜、跟单等),激励用户参与
- 跟单交易:关注优秀交易者,自动复制其交易操作,可设置每笔上限
- 市场情绪分析:基于评论自动计算看涨/看跌/中性情绪,显示情绪徽章和置信度
- 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 / 混合)
| 命令 | 说明 |
|---|---|
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 |
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 ─ 速率限制 │
└─────────────────────────────────────────────────┘
全栈部署: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):.env 中 DOMAIN 留空 — 通过 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,自动运行数据库迁移。
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_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 地址(零云端降级) |
| 变量 | 数据源 | 免费? |
|---|---|---|
FRED_API_KEY |
美联储经济数据 | 是 |
FIRMS_MAP_KEY |
NASA 火灾检测 | 是 |
EIA_API_KEY |
美国能源信息 | 是 |
WORLDNEWS_API_KEY |
全球新闻 API | 是 |
ACLED_EMAIL + ACLED_PASSWORD |
武装冲突数据 | 是 |
20+ 个数据源零 API 密钥即可运行。
| 变量 | 说明 |
|---|---|
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/飞书) |
仪表板提供 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
配套的预测市场 PWA,位于 newspredict/。基于 Next.js 构建,使用 LMSR 评分、Web3 钱包集成(BSC)和 Drizzle ORM。从 CHAOS 公共 API 消费实时情报数据,自动生成和解决预测市场。
- 经济模型:
docs/economics-zh.md|docs/economics.md - 智能合约:ChaosToken (C.H.A.O.S.) + ChaosPredictionMarket — 已部署在 BSC 主网和测试网,源码在 BscScan 已验证
- 产品使用说明:
newspredict/docs/usage-guide.md
| 合约 | 地址 |
|---|---|
| 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>;
}添加步骤:
- 在
src/sources/创建新文件,实现IntelSource - 在
src/sources/mod.rs的build_sources()中注册 - 完成 — 简报引擎、CLI、仪表板、Delta 引擎全部自动适配
模板文件:src/sources/_template.rs。详见 docs/source-plugin-guide.md。
Copyright (c) 2026 ChaosDevOps@BKK&Estonia. All rights reserved.