Skip to content

记忆与世界书

LLM 默认是完全失忆的:每次新会话都从零开始,不知道你叫什么、做什么工作、有什么偏好。这一页讲 ETOS 怎么解决这个问题——通过两套机制互补:

机制解决什么
记忆(Memory)让 AI 跨所有会话记住"用户偏好""项目背景""长期事实",用向量检索按需召回
世界书(Worldbook)让 AI 在特定会话 / 特定关键词出现时"背景知识就位",按规则注入到提示词里

它们听起来像,但完全是两种东西。下文先把概念讲清,再讲怎么配。

如果想看代码层的设计,去 记忆、摘要与画像世界书与工具治理

概念先讲清

记忆是什么

把"用户喜欢用 Swift""我女朋友叫小明""我的工作是产品经理"这种长期为真的事实,存到一个数据库里。每次发新消息时,ETOS 用向量检索找出几条最相关的记忆,自动塞进提示词。

关键点

  • 全局的,所有会话共用
  • 按相关度召回的,不是每次都全塞(避免上下文爆炸)
  • 永久的,除非你手动删除或归档

世界书是什么

来源是 SillyTavern / TavernAI 角色扮演圈子的 "Lorebook" 概念,但用法已经远远超出角色扮演。

世界书是一本条目集,每个条目有:

  • 关键词:触发条件,比如 ["黛玉", "林黛玉"]
  • 内容:触发后注入到提示词里的文本,比如「林黛玉:贾府四美之一,多愁善感,咳嗽病…」
  • 触发逻辑:什么位置注入、扫描多深、最多注入几条

会话里的最近几条消息会被扫描,匹配到关键词的条目就被注入。

关键点

  • 通常绑定到特定会话(每个角色扮演会话用自己的世界书)
  • 关键词触发的,不会无脑全塞
  • 注入位置可以精确控制(系统提示词前 / 后、最新消息前 / 后)

怎么选

你的需求用谁
AI 跨会话记住你的项目背景记忆
AI 跨会话记住你的写作风格记忆
你的小说角色「李三」每次出现自动注入设定世界书
这个会话是 RPG 跑团,特定 NPC 出现注入设定世界书
你公司内部术语表(每次提到时背景应该就位)世界书
AI 知道你昨天问过 X 这件事记忆

最容易出错的混用

  • 角色扮演设定塞到「记忆」里 → 每次新会话都被无关召回,污染上下文
  • 长期事实塞到「世界书」里 → 关键词不出现就召不回,AI 还是失忆

新手必读:记忆系统

在哪管

设置 → 拓展能力 → 记忆系统

先配嵌入模型

记忆系统依赖嵌入模型做向量检索。第一次进来必看顶部的「嵌入模型」一栏:

  • 这里只列出主用途为嵌入的模型」——你必须先在 [提供商与模型管理] 里加好一个嵌入模型(text-embedding-3-large / text-embedding-3-small / Cohere embed / Gemini embedding 等)
  • 把模型勾选为"启用",并设它的能力类型为"嵌入"

也可以在「提供商与模型管理 → 专用模型」里统一指定全局嵌入模型。

检索设置

字段说明
检索数量 Top K每次召回多少条最相关的记忆。默认 3。填 0 表示完全关闭检索(记忆只保存不召回)。
主动检索关闭时只有用户消息触发检索;开启时 AI 也可以主动请求检索

Top K 不是越大越好

设大(>10)虽然 AI 知道更多事实,但:

  • 上下文 Token 增加,请求贵
  • 缓存命中率掉到几乎为 0(每次召回的不一样)
  • 召回的相关性下降,反而污染上下文

3-5 是合理区间

给 AI 加记忆的两种方式

方式 1:让 AI 主动写

打开 设置 → 工具中心 → 拓展工具 → 「写入记忆」工具

之后聊天时,AI 觉得用户说了重要信息(比如"我下周要去东京"),它会主动调"写入记忆"工具把这条事实存进去。

第一次会弹审批气泡,你按"允许"即可。

方式 2:手动添加

记忆库管理页右上角「+ 添加记忆」按钮,自己写一条。适合:

  • 一次性导入你已知的长期事实("我叫 X""我用 macOS""偏好简洁回答")
  • 修正 AI 写错的记忆

记忆管理

每条记忆可以:

  • 左滑删除:彻底删除(不可恢复)
  • 右滑归档:保留但不参与检索。日后想用可以"恢复"
  • 编辑:改记忆原文

激活的记忆」和「归档的记忆」分两个 Section 展示。

数据维护

页面有「重新生成全部嵌入」按钮(橙色,需要二次确认)。什么时候用

  • 你换了不同的嵌入模型(不同模型生成的向量不互通,必须重算)
  • 你升级了主嵌入模型版本
  • 索引损坏(极少见)

这是不可逆操作

点击后会清空旧 SQLite 向量数据库并重建。期间检索不可用。请在不需要立即使用 AI 时执行。

嵌入补偿

某些情况下少数记忆可能没成功生成嵌入(网络中断时)。系统会自动检测并提示「补偿嵌入」让你重跑。

新手必读:世界书

在哪管

设置 → 拓展能力 → 世界书

导入第一本世界书

ETOS 兼容 SillyTavern / NAI 系世界书格式,导入方式

方式适合
导入酒馆世界书(JSON/PNG)从「文件」选本地 JSON 文件,或角色卡 PNG(带 naidata)
从 URL 导入世界书直接填一个可访问的 JSON 或 PNG URL,比如某个公开角色卡库

支持的格式:

  • PNG naidata:角色卡 PNG,内嵌 chara base64 数据
  • JSON 顶层数组:标准 SillyTavern v1
  • character_book 格式:嵌套在角色卡里的 lorebook 字段

导入后会显示导入摘要:「新增条目 / 跳过条目 / 失败条目」三个数字。

编辑一本世界书

点击世界书条进入「世界书详情」:

基本信息

  • 名称 / 描述 / 条目数量

默认设置

字段说明
扫描深度从聊天最新消息往前数几条参与关键词匹配。典型 4-10
最大递归层级一条注入触发另一条注入的最大层数(防止循环)
最大注入条目一次最多注入几条。-1 不限
最大注入字符一次最多注入多少字符。-1 不限
备用插入位置没法精确插入时的回退位置(系统提示词前 / 后 / 最新消息前 / 后 / 等)

条目

每个条目是一条"按关键词触发的注入内容",可以单独:

  • 启用 / 停用
  • 编辑:关键词、注释、内容、插入位置
  • 删除

绑定世界书到当前会话

世界书默认是全局可用的资源,但只在你显式绑定给某会话时才会真的注入。

在世界书页面顶部「当前会话」Section 有「绑定世界书」按钮,把当前会话和一本(或多本)世界书绑定。绑定后聊天时这些世界书的条目会按规则参与匹配和注入。

隔离发送(关键功能)

绑定世界书时可以开启「已启用隔离发送」。隔离发送意味着:

  • 这个会话只用绑定的世界书 + 角色设定不参与全局工具、记忆等其他自动注入
  • 工具中心里的工具在本会话全部禁用(提示「当前会话因世界书隔离发送而不会实际启用该工具」)

适合:角色扮演场景,你不希望 AI 突然调一个 SQL 查询工具破坏沉浸感。

进阶选项

记忆的"主动检索"

打开后 AI 可以自己决定要不要检索。机制:模型在回答前先看到「你可以调用 search_memory 工具」,需要时主动调。

适合:

  • 长会话里某些话题需要回忆历史
  • AI 怀疑用户的某句话和过去某条事实有关

不适合:

  • 你不想 AI 频繁占用思考预算去回忆
  • 大部分会话都是新主题、回忆没用

世界书条目的"插入位置"是怎么生效的

每条世界书条目可以指定精确的插入位置

  • 系统提示词前 / 后
  • 最新用户消息前 / 后
  • 助手最新回答前
  • 自定义深度(往前数 N 条消息插入)

举例:「角色背景」适合插系统提示词后;「场景设定」适合插最新用户消息前。

世界书的导出

每本世界书可以「导出」回 JSON 格式,与 SillyTavern 互通。

适合:

  • 你在 ETOS 里编辑好了,想拿到其他客户端用
  • 备份你写的角色卡

记忆和会话摘要的关系

ETOS 还有一层「会话摘要」机制(详见 记忆、摘要与画像)。简单说:

  • 记忆:手动 / AI 写入的具体事实
  • 摘要:每个会话自动生成的内容概要
  • 画像:从所有会话和记忆里自动总结出来的"用户特征"

普通用户只用关心记忆即可。摘要和画像在后台自动维护,不需要你做什么。

下一步