MemoryLake
返回全部文章
Tutorial2026 年 9 月 11 日·10 分钟阅读

如何将 Character AI 的 Lorebook 迁移至 ChatGPT 且不丢失上下文 (2026)

Lorebook(世界书)是大多数人写过的最结构化的记忆。数十个条目,每个都带有关键词,只有当对话触及这些关键词时才会触发。然而,当你尝试将这个世界带入 ChatGPT 时,你会发现问题不在于内容本身,而在于你构建了一个包含两列的存储库——“始终相关”和“有时相关”——而你即将迁入的新平台只支持第一列。

Character.AI 自己也指出了这一点,这是所有厂商在这一主题上发布的最清晰的分类规则:“经验法则:始终相关的内容放入 Definition(定义),有时相关的内容放入 Lorebook。”这句简单的话就是整个迁移的核心。以下的所有内容,都围绕着如何处理后半部分展开。

实际能迁移的内容

首先来看什么是 Lorebook。用 Character.AI 的话来说:“Lorebook 是一个可重复使用的世界条目集合——包括配角、地点、规则——当它们的关键词在聊天中出现时就会激活。将一个 Lorebook 链接到多个 Character,可以保持共享世界的一致性。”目前 Lorebook 仍处于 Beta 阶段,创建或编辑它们需要订阅 c.ai+。

每个条目包含三个部分,其中一个部分的迁移方式并不像人们想象的那样:

  • Content(内容) 是条目激活时 Character 学习到的信息。
  • Keywords(关键词) 是激活条目的触发词。Character.AI 允许每个条目最多设置 8 个关键词。
  • Title(标题) 只是一个标签。Character.AI 对此非常直白:“标题仅供你和浏览你的 Lorebook 的人查看——Character 永远看不到它们。”

因此,如果你一直在标题中塞入重要信息——例如“角落咖啡馆(火灾后废弃)”——那么括号里的内容其实从未传递给模型,同样也不会传递给 ChatGPT,除非你先把它移到 content(内容)中。在迁移任何内容之前,这非常值得检查。

Lorebook 存在的原因是 Character.AI 直接指出的一个“预算”问题:“你的 Character 一次只能容纳有限的上下文。写在 Character Definition 中的细节在每次回复中都会占用空间,无论它们是否相关。”而 Lorebook 条目则“在聊天中出现其关键词之前一直保持静默,然后帮助塑造 Character 的下一次回复。”

现在来看看目的地。ChatGPT 官方提供的个性化功能包括 Custom Instructions(自定义指令)、记忆摘要(memory summary)以及旧版的已保存记忆(saved memories)系统。OpenAI 描述了它们的各自用途:“对于明确的信息或指令,你可以将其添加到 Custom Instructions 中。对于通过对话共享的信息,ChatGPT 可以为你记住相关细节。”对于旧版系统,它明确指出了时效性——“除非你删除它们,否则已保存的记忆在未来的回复中将始终被考虑”——而对于当前的系统,它警告说可见列表是不完整的:“虽然记忆摘要应该捕捉到最重要的细节,但它不会包含 ChatGPT 根据你的聊天所记住的所有内容。”

将这两者并排对比,迁移的轮廓就变得清晰了。

可以干净迁移的内容: 每个条目的内容、Character Definition 的核心身份材料、任何你认为“始终相关”的内容,以及以散文形式呈现的世界结构。

迁移后行为会发生变化的内容: 所有受关键词限制的条目。在 Character.AI 中,它等待触发词。而在 ChatGPT 的官方功能中,它要么始终处于启用状态,要么由模型从过去的聊天中选择。文本得以保留,但触发门槛不复存在。

无法作为机制迁移的内容: 关键词列表本身、最多 8 个的限制、Full Details(完整细节)与 Hint Only(仅提示)的条目可见性设置、草稿与发布状态,以及 Character.AI 在聊天时用链接的 Character 和当前 Persona 替换的 {{char}} and {{user}} 占位符。这些是 Character.AI 引擎的功能,而不是可移植的内容。Pinned Memories(置顶记忆)也无法迁移——它们在每个聊天中上限为 5 条消息,且仅存在于该聊天内部。

这与 Character AI 为什么会忘记你的人设 中讨论的人设问题类似,只是高了一个层级:这里是世界,而不是角色。在单次聊天中积累的关系历史有其自身的失效模式,这在 Character AI 什么时候会忘记你们的关系历史 中有详细讨论,在假设导出能保留这些历史之前,非常值得一读。

手动迁移步骤

Step 1: 导出你的材料,并按照 Character.AI 给出的规则进行分类

Character.AI 官方说明了导出路径。在网页端:转到你的 Profile(个人资料),打开 Profile Settings(个人资料设置),转到 Account(账户),然后选择 Manage Account & Data(管理账户与数据),并选择 Export data(导出数据)。在移动端 App 上:打开你的 Profile,找到设置图标,然后选择 Export my data(导出我的数据)。帮助文档记录了这些步骤,但并未说明生成文件的具体内容,因此请做好打开并查看文件的准备,而不是凭空猜测里面的内容。

专门针对 Lorebook,你还有第二条更可靠的途径,因为 Character.AI 的导入器定义了它读取的格式——这意味着你已经知道了条目的存储形式。纯文本格式在顶部使用一次 Lorebook Name:Lorebook Description:,然后是重复的 Entry Title:Keywords:Content: 块。JSON 格式将条目嵌套在 entries 对象下,根据 Character.AI 的说明,“comment 变为条目的标题,key 变为其关键词,而 content 变为其内容。”

然后进行分类。使用 Character.AI 自己的测试方法,将每个条目放入两个堆之一——“始终相关”或“有时相关”。核心身份、语气、动机、在每个场景中都适用的世界规则:始终相关。在某个篇章中出现的配角、在三次对话中起作用的地点、带有恩怨的帮派:有时相关。

大多数人会发现这两个堆极不均衡,而“有时相关”的堆里往往凝聚了所有精彩的创作。

Step 2: 重建“始终相关”堆,并为“有时相关”堆设置一个你可控的门槛

“始终相关”堆放入 Custom Instructions 中,OpenAI 将其描述为存放明确信息和指令的地方。保持精简:这是你选择在每次回复中都为之付出上下文成本的材料,这正是 Character.AI 在 Character Definition 中警告过的权衡。

“有时相关”堆才是真正需要花心思的地方。在 ChatGPT 内部,你有三个坦诚的选择,在做出选择之前,了解每个选择的局限性是很有必要的。

你可以将条目提升到“始终相关”堆中。这很简单,但它会在两周内都没人提起的帮派上白白消耗上下文。

你可以将它们放入一个 Project(项目)中,让项目边界充当范围。OpenAI 记录了该边界的行为方式:通过仅限项目的记忆,“聊天可以引用同一项目中的其他对话,但不能引用项目之外的对话,且项目之外的聊天也不能引用其中的对话。”这是一个范围,而不是关键词触发器——如果你的世界按篇章清晰划分,这很有用;如果条目相互交叉,则毫无用处。

你可以在场景开始时粘贴相关的条目。这确实有效,但这正是你最初构建 Lorebook 时想要避免的繁琐操作。

这些方法都不是关键词触发门槛。这与其说是 ChatGPT 的缺陷,不如说是这两个产品定位的不同。这也是为什么即使每个字都迁移了,直接复制粘贴的迁移体验依然不如原版的原因。

更好的方法:将世界的条件性部分保留在不依赖单一关键词的地方

Lorebook 值得保留的部分不是触发机制,而是其中蕴含的判断——即这个细节在这里重要,而不是在所有地方都重要。将这种判断保留在你的助手可以读取的层中,这样触发门槛就变成了你可以在任何地方重新阐述的东西,而不是在退出平台时就会丢失的功能。

这一层正是 MemoryLake 的用武之地。你用自己的语言将条目写入其中,并注明它们的适用范围和存在原因——这是一个任何助手都可以读取的可寻址空间。条目不再被困在单一厂商的激活引擎中,你所做的分类工作在迁移后得以保留。

Step 1: 创建 API 密钥

登录并打开你的工作区设置,生成一个 API 密钥。这是你的助手用来读取同一组条目的凭证,因此只需创建一次,并将其保存在你使用的每个编写工具都可以访问的地方。

MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供智能体使用
MemoryLake 控制台显示 API 密钥屏幕,在此创建并复制新密钥以供智能体使用

Step 2: 上传你的第一批记忆

将分类好的堆迁移过来,并保持 Character.AI 教给你的结构。每个主题一个条目。保留内容,而不是标签。写下一段关于何时适用的简短说明——这是你留下的关键词的人类语言版本。从你已经反复解释过多次的条目开始,因为这些条目已经证明了它们的价值。

已上传首批文档的 MemoryLake 工作区,列出了每个已转换为可搜索记忆的文件
已上传首批文档的 MemoryLake 工作区,列出了每个已转换为可搜索记忆的文件

Step 3: 连接你的 AI 和智能体

连接 ChatGPT 以及你使用的任何其他编写工具。相同的世界会同步到每个工具中,当某个场景需要酒馆的历史时,它就能直接获取,而无需你凭记忆重新构建酒馆。

MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和智能体框架
MemoryLake 集成屏幕,列出了可以连接到记忆层的 AI 客户端和智能体框架

这在实践中带来了什么改变

第一个区别是,你的世界不再是一项订阅功能。Lorebook 处于 Beta 阶段且仅限 c.ai+ 用户使用;无论如何,你编写的条目都属于你,一旦推理逻辑存在于工具之外,工具层级的变化就只是一种不便,而不是损失。

第二个区别是,“有时相关”堆不再会逐渐失效。在关键词系统中,一个关键词选择不当的条目是不可见的,并且会保持静默——Character.AI 坦白地指出:“没人输入的关键词永远不会触发。”当条件被写成人类可读的句子时,你就可以对其进行审计。审计你的 AI 记住了什么是应用于记忆存储库的相同方法。

第三个区别体现在跨工具编写时。保存在一个地方的世界在 ChatGPT 和你接下来使用的任何工具中读取的内容都是相同的,这就是“图书馆”与“存档文件”的区别。在其他平台上遇到过世界观构建问题的读者,会从 Janitor AI 什么时候会忘记你的世界观构建 中认出这种模式。

迁移结构化世界的最佳实践

迁移内容,而不是标题。 Character.AI 的标题从未传递给模型。如果标题承载了意义,请在导出任何内容之前将该意义移入内容中。

永远保持双列分类。 这是一个真正的好主意,而且并不局限于 Character.AI。了解哪些细节始终真实,哪些细节视情况而定,是防止任何记忆存储库膨胀的关键。

将条件写成散文。 “当对话背景设定在港区时适用”在平台更换后依然有效。而关键词列表则不然。

检查没有关键词的导入条目。 Character.AI 指出,某些工具允许没有关键词的常驻条目,而在其系统中“条目仅通过关键词激活”。这些条目目前最有可能在默默地处于无用状态,它们应该属于你的“始终相关”堆。

做好目的地列表不完整的准备。 OpenAI 表示,记忆摘要不会包含 ChatGPT 记住的所有内容,如果你想知道某事是否被保留,应该在聊天中询问。将可见列表视为摘要,而不是清单。ChatGPT 的记忆局限性 介绍了实际的影响。

不要在第一天就重建整个世界。 只迁移在你实际编写的场景中起承重作用的条目。其余的可以在需要时陆续迁移,而且你会发现很多条目其实根本不需要。

结论

Character.AI 构建了一些异常真诚的东西:一个区分“始终真实”和“有时相关”的记忆系统,并准确地告诉了你如何对自己的材料进行分类。迁移之所以会带来阵痛,是因为目的地的官方功能是围绕“始终相关”列构建的——用 OpenAI 的话来说,即始终被考虑的已保存记忆,以及模型自行维护的摘要。

因此,请迁移分类逻辑,而不是触发开关。关键词从来不是最有价值的部分,关于细节何时起作用的决定才是,而一旦你把这个决定写在你的助手可以读取的地方,它就是可移植的。

关于迁出 Character.AI 的另一种视角(侧重于聊天和人设而非 Lorebook),请参阅我们的指南 将 Character AI 迁移至 ChatGPT

常见问题

我可以直接从 Character.AI 导出我的 Lorebook 吗?

Character.AI 官方说明了通用数据导出路径——在网页端依次选择 Profile Settings(个人资料设置)、Account(账户)、Manage Account & Data(管理账户与数据)、Export data(导出数据),或在移动端 App 中选择 Export my data(导出我的数据)。其帮助文档介绍了步骤,但未说明文件的具体内容,因此请打开导出的文件并检查其中的内容。另外,导入文档定义了 Character.AI 读取的纯文本和 JSON 格式,这可以告诉你条目是如何结构化的。

ChatGPT 支持关键词激活的记忆吗?

OpenAI 官方提供的个性化功能包括 Custom Instructions(自定义指令)、记忆摘要(memory summary)和旧版的已保存记忆(saved memories)。它将已保存的记忆描述为在未来的回复中始终被考虑(除非删除),并将记忆摘要描述为对过去聊天上下文的持续更新综合。其文档中并未描述类似于 Lorebook 激活的关键词触发机制。

我的关键词会怎么样?

它们无法作为一种机制迁移。有用的做法是将每个关键词列表重写为一行通俗易懂的条件说明,任何助手都可以根据该说明采取行动,并且在下一次更换平台时它依然有效。

我的 Character Definition 会迁移吗?

内容会迁移。Character.AI 将 Definition 定位为始终相关的材料——核心身份、动机、语气——这与 OpenAI 建议放入 Custom Instructions 中的内容非常契合。请保持简短,因为在这两个产品中,它都会在每次回复中起作用。

Pinned Memories 会跟我一起迁移吗?

不会。Pinned Memories(置顶记忆)是针对每次聊天的功能,在每个聊天中上限为 5 条置顶消息,因此它们与对话绑定,而不是与你的世界绑定。如果置顶消息中包含持久的事实,请在离开前将该事实移入你的条目中。

我可以把在其他工具中构建的 Lorebook 导入到 Character.AI 中吗?

可以,但会伴随着 Character.AI 公开列出的损失。It 接受最大 10 MB 的纯文本或 JSON,并在你的设备上进行本地处理,并表示“在导入过程中,我们简单格式之外的任何内容都会被忽略”。它特别指出了没有关键词的条目、包含超过其允许的 8 个关键词的条目、基于模式的关键词和其他特殊匹配规则,以及排序或位置设置。