"History doesn't repeat itself, but it rhymes." — Mark Twain
Rhyme 是一个事件结构推演引擎。 它将历史事件编码为可计算的结构样本,对当前事件做结构匹配,输出分支概率和监控信号。
不是预测系统,不是报告生成器。是分析系统和 AI Agent 缺失的结构计算中间层。
| 主题 | 位置 | 内容 |
|---|---|---|
| 设计哲学 | design/philosophy.md | 核心定位、设计原则、与 LLM 平台的差异 |
| 引擎边界 | design/engine-boundary.md | 三层架构(编码/引擎/消费)边界定义 |
| 领域插件架构 | design/domain-as-plugin.md | Domain-as-plugin 设计、目录结构 |
| 押韵度评分 | rhymeness/README.md | 三层评分总览 |
| 三层事件结构 | rhymeness/event-structure-spec.md | Tag Vector / Mechanism / Trajectory |
| 评分算法 | rhymeness/rhymeness-scoring-spec.md | IDF-weighted Jaccard、槽位匹配 |
| 伪类比检测 | rhymeness/break-rules-spec.md | Hard break + soft break 规则 |
| IDF 加权 | rhymeness/idf-weighting.md | 自动降权高频 tag |
| 数据模型 | rhymeness/data-models.md | EventCard / EngineResult schema |
| 领域规划 | domains-spec.md | 领域全景与扩展规划 |
编码层(领域相关,事件无关) 引擎层(领域无关,事件无关) 消费层(应用相关)
domains/<domain>/ rhyme/core.py web/api.py
├── tags.yaml ├── match.py (三层评分) ├── index.html
├── mechanism_enums.yaml ├── filter.py (break rules) ├── 对话
├── trajectory_enums.yaml ├── reason.py (统计聚合) └── 研判报告
├── break_rules.yaml └── 0 LLM 依赖
└── events/*.yaml
铁律:引擎代码不包含领域特定的 tag 名、phase 名或解释性文本。所有领域知识在 domains/*/ YAML 配置中。
from rhyme import RhymeEngine
engine = RhymeEngine(domain="geopolitical") # 加载领域配置 + 事件库
result = engine.match(event_card, top_k=10) # 纯计算,~40ms输出 EngineResult:
ranking— 排序后的匹配列表(含 F/M/T 分解)dangerous— 伪类比(被 break rules 标记)blind_spots— 历史盲区(当前 >> 历史均值)cluster— 主类比群(按机制侧面最佳匹配)shared_mechanisms— 共性机制统计break_frequency— break rule 触发频率
rhymeness = 0.50 × feature_score + 0.30 × mechanism_score + 0.20 × trajectory_score − soft_penalty
- feature_score: IDF-weighted Jaccard per layer
- mechanism_score: 槽位匹配 + 语义距离组
- trajectory_score: 有序距离(phase, escalation)
- soft_penalty: 领域 break_rules.yaml 配置的扣分
| 领域 | 事件 | Tags | Break Rules |
|---|---|---|---|
| geopolitical | 81 | 61 | 3 hard + 9 soft |
| trade_sanctions | 55 | 34 | 2 hard + 8 soft |
| asset_bubbles | 44 | 44 | 2 hard + 8 soft |
| 总计 | 180 |
新增领域只需添加 domains/<name>/ 目录,引擎代码 0 改动。
| 组件 | 选型 |
|---|---|
| 语言 | Python 3.9+ |
| 数据模型 | Pydantic v2 |
| 事件库 | YAML 文件 + 内存加载 |
| 引擎核心 | 纯 Python,0 外部依赖(除 pydantic/pyyaml) |
| LLM 编码 | OpenAI-compatible API(adapter 层,可选) |
| Web UI | FastAPI + 单页 HTML(消费层,可选) |
- OutcomePattern + 二次匹配(差异条件 → 结果模式)
- 概率预测 + Brier Score 校准
- 多事件关联分析
- GDELT/ACLED 自动事件发现
- MCP tool / function call 接口
| 风险 | 缓解 |
|---|---|
| 事件库 LLM 生成质量不稳定 | 专家校验 + 校准飞轮 |
| 编码稳定性(LLM 边界摇摆) | seed + top_p 控制,0.3/0.7 边界已可接受 |
| LLM 平台原生能力追赶 | Rhyme 的价值在可复现+可审计,不在文本质量 |
| 市场极窄 | 定位为中间件/开源方法论,不做终端产品 |