实际能迁移的内容
首先来看什么是 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 密钥。这是你的助手用来读取同一组条目的凭证,因此只需创建一次,并将其保存在你使用的每个编写工具都可以访问的地方。

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

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

这在实践中带来了什么改变
第一个区别是,你的世界不再是一项订阅功能。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。