OMate 世界书关键词触发机制 —— 设定只在需要时出现
世界书(World Info / Lorebook)是 OMate 从酒馆继承并原生实现的核心机制。一句话理解:当对话中出现某个关键词时,对应的背景设定自动注入 AI 的上下文——不占固定篇幅,只在需要时出现。
世界书 vs 知识书
| 特性 | 世界书 | 知识书(知识库) |
|---|---|---|
| 触发方式 | 关键词精确匹配 | 语义向量检索 |
| 适用场景 | 人名、地名、组织名等确定性设定 | 大段资料、文档片段 |
| 性能 | 关键词扫描,快 | 需要向量嵌入和检索,较慢 |
| 典型内容 | 「提到"王城"时注入王城的地理描述」 | 「把小说全集交给 AI 按语义取回片段」 |
入口
| 操作 | 路径 |
|---|---|
| 管理世界书 | 设置 → 高级设置 → 世界书 |
| 绑定角色 | 角色编辑页 → 世界书区块(勾选后随角色生效) |
| 对话内临时启停 | 对话管理 → Prompt 标签 → 世界书区块 |
获取世界书
三种方式:
- 导入文件:世界书页右上角「导入」,支持酒馆独立世界书 JSON 和角色卡内嵌世界书两种格式,可多选批量
- 随角色卡导入:导入带内嵌世界书的角色卡时,会询问是否「导入为世界书」并自动绑定角色
- 手动新建:世界书页右上角加号 → 输入名字 → 进入详情页逐条添加
条目触发流程
每次发送消息时,OMate 按固定流程扫描世界书条目:
- 扫描窗口 = 参与本次请求的历史消息 + 你正要发送的这条
- 常驻条目自动激活(无视关键词)
- 普通条目按关键词匹配
- 应用触发逻辑判定
- 概率过滤(如果设置了)
- 时效过滤(sticky / cooldown / delay)
- 递归:已激活条目的内容里如果出现新关键词,继续下一轮
- 按 order 排序 + 预算裁剪
- 分到三个桶:角色前 / 角色后 / 按深度插入聊天记录
绑定不追溯旧对话
对话保存的是角色快照。给角色新绑定世界书后,已有对话不会自动获得——这是一个容易踩的坑。需要新建对话才能让新绑定生效。