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

如何在不丢失研究成果的情况下,将 Perplexity Spaces 迁移至 Claude Code (2026)

研究是在 Perplexity 中完成的。一个 Space 里有 40 个对话线程,每个线程都是你追问并附带来源的问题,加上你上传的 PDF 以及让回答变得有用的自定义指令。现在你正在构建这个项目,并且是在 Claude Code 中构建——而它对此一无所知。

以下是直接的答案:Perplexity Space 不支持批量导出,且 Claude Code 端也没有导入工具。Perplexity 只能通过线程的分享菜单每次导出一个线程为 PDF、Markdown 或 DOCX。Claude Code 会读取它在项目中找到的 Markdown 文件。因此,迁移步骤是:将仍然重要的线程导出为 Markdown,将它们浓缩为陈述结论(而不是重放搜索过程)的仓库文档,并将 CLAUDE.md 指向它们。如果操作得当,对于一个内容丰富的 Space 来说,这只需要一个下午的时间,而这个下午的大部分时间都花在决定留下什么、舍弃什么上。

做决定才是真正的工作,因此本指南将花大量时间在这上面。

实际迁移了什么

一个 Space 包含四样东西,它们在迁移到另一端时的处理方式大不相同。

对话线程作为文档逐个迁移。 打开一个线程,使用分享或更多选项菜单,然后导出为 PDF、Markdown 或 DOCX。Markdown 是你需要的格式——导出内容包含你的提示词、回答、格式以及带有来源列表的引用块,这是让研究在以后可重复利用的关键部分。目前没有官方的方法可以一键导出整个 Space。虽然存在可以批量导出 Space 甚至将其推送到 Notion 的浏览器扩展,并且它们确实有效;但它们需要授权访问你的 Perplexity 账户,这是一个需要深思熟虑而不是随意做出的决定。

上传的文件不会迁移——你已经拥有它们了。 你附加到 Space 的任何 PDF 和文档应该仍在你的磁盘上。直接将它们重新上传或复制到仓库中,而不是尝试从 Perplexity 中重新提取它们。

自定义指令几乎可以直接迁移。 Space 的指令已经写成了关于语气、深度和优先考虑事项的指示。其中大部分内容只需轻微编辑即可映射到 CLAUDE.md 中;关于引用样式和回答长度的部分通常无法保留,因为你不再是要求获取回答,而是要求编写代码。

探索过程不会迁移,也不应该迁移。 在你的 40 个线程中,有 30 个是你在摸索正确的问题是什么。它们的价值在于产出了另外 10 个线程。如果将 40 个线程全部导出,会给 Claude Code 留下一堆已被取代的推理过程,其中一些甚至与你的最终结论相矛盾,并且所有这些都会争夺上下文。这就是迁移容易出错的地方:不是因为丢失了信息,而是因为携带了太多信息。

需要提前说明的一个不对称性。Perplexity 的记忆是围绕线程组织的——每个对话都是它自己的容器,这就是为什么 Space 内部的内容不会自动通知你的其他线程。而 Claude Code 的记忆是围绕文件系统组织的——它读取项目中的内容。你不仅仅是在工具之间移动文本,你是在将对话形式的知识转化为文件形式的知识。以下的所有内容都是关于这种转化的。

手动迁移

步骤 1:导出仍然重要的线程

在导出任何内容之前,先浏览 Space 并进行筛选。对于每个线程,问自己一个问题:这是否包含一个我会坚持的结论,还是一个我已经完成的搜索? 导出第一种,跳过第二种。

具体来说,保留确定了决策的线程(例如“因为许可证原因,我们使用这个库”)、收集了你以后想再次引用的对比证据的线程、包含限制构建的领域事实的线程(速率限制、格式、监管要求),以及你犯了错并找出原因的线程。最后一类是最有价值的,也是最常被丢弃的。

对于每个要保留的线程:打开线程,使用分享或更多选项菜单,选择 Markdown。你将获得提示词、回答、格式以及带有来源列表的引用。保留引用——迁移研究而不是重新做一遍的全部原因就在于来源也随之迁移了。

如果一个 Space 有几十个需要保留的线程,这就是第三方批量导出工具发挥作用的地方。请诚实地权衡:它们需要账户访问权限,这意味着你赋予了一个浏览器扩展读取你 Perplexity 账户中所有内容的权限。对于个人研究 Space,这可能没问题。但对于任何签署了客户保密协议(NDA)的内容,请手动导出线程,不要再考虑其他方式。

不要因为存在批量导出就跳过筛选。筛选的目的不是为了节省导出的点击次数,而是因为你带过来的所有内容以后都会争夺 Claude Code 的注意力。

步骤 2:将导出的内容转化为 Claude Code 真正会加载的文件

原始的线程导出并不是有用的项目文档。一个线程就是一个记录:你未成形的问题、一个长回答、一个纠正它的后续问题、另一个回答。Claude Code 会读取所有这些内容,并对错误的部分赋予权重。

因此需要进行浓缩。对于每组相关的线程,在仓库中编写一个 Markdown 文件(docs/research/ 是一个合理的存放位置),结构如下:

  • 结论优先,用一两句话陈述,作为关于项目的既定事实。
  • 排除了什么(如果有的话)。“我们评估了 X 并因 Y 拒绝了它”可以防止智能体在三周后兴高采烈地重新提议使用 X。
  • 证据,经过浓缩,并附带导出引用块中的来源链接。
  • 日期以及来源工具。研究会过时,带日期的文件能让你辨别其时效性。

然后让 Claude Code 感知到它。项目根目录下的 CLAUDE.md 是它自动加载的文件——那是放置指针(指向)的地方,而不是放置具体内容的地方:

## Research context
Decisions and their evidence live in `docs/research/`. Read
`docs/research/auth-approach.md` before touching anything under `src/auth/`.
Do not re-open decisions recorded there without flagging it.

两点原因使得这种做法比直接将研究内容倾倒在行内更好。首先,CLAUDE.md 在每次会话中都会被加载,因此将其保持为指针和规则几乎不会消耗你每个任务的成本,而一个 4000 字的研究内容倾倒则会在每一次请求中都消耗你的成本。其次,@path 导入允许你在实际相关时才引入特定文件,而不是一直引入。

将个人偏好放在 ~/.claude/CLAUDE.md 中,而不是项目文件中,并提交项目文件,以便你的团队继承相同的上下文。如果你更希望让 Claude Code 起草该文件的第一个版本,/init 将从仓库中构建其框架,而 /memory 则可以直接打开记忆文件进行编辑。

然后正确设定预期:这只是让知识可用,而不是让它被记住。Claude Code 在每次会话开始时仍然是全新的,并且在长会话中仍然会压缩上下文,这就是为什么即使有好的文件存在,它也会在会话之间遗忘项目上下文。文件是底线,而不是上限。

更好的方法:统一的记忆层,连接研究与代码

看看步骤 2 实际上做了什么:你手动将研究成果从一种工具的格式转换为另一种工具的格式,并将结果存储在只有第二种工具才能读取的地方。

现在考虑接下来的六个月。你还会再次进行研究——在 Perplexity 中,或者在任何替代它的工具中——并且你会在 Claude Code、Codex 或 10 月份发布的某种新工具中进行构建。每种组合都需要自己的转换。知识是稳定的,而围绕它的工具却不是。

将知识保存在双方都能访问的层中可以省去转换步骤。MemoryLake 是一个位于工具之下的记忆层:研究笔记、决策和源文档只需输入一次,Claude Code 就可以通过 MCP 读取它们,而你使用的任何其他工具都可以通过 API 读取相同的存储。你的研究不再是需要迁移的 Perplexity 产物,而是变成了你的工具可以查询的东西。

客观地权衡一下:docs/ 加上 CLAUDE.md 确实有其优点。它是纯文本,处于版本控制中,会在拉取请求(PR)中被审查,并且无需任何设置即可工作。对于属于代码库的任何内容,请保留这种方式。而记忆层则适用于非仓库形态的知识——跨项目研究、客户上下文、跨越三个仓库的决策——以及让这些知识可以被你尚未选择的工具读取。

步骤 1:创建 API 密钥

生成密钥并在大约 30 秒内发出你的第一次请求。将其存储在你的环境变量或机密管理器中,而不是内联在会被提交或同步的配置文件中。

创建 MemoryLake API 密钥
创建 MemoryLake API 密钥

步骤 2:上传你的第一批记忆

放入你研究实际依赖的文档、图像和文件——导出的线程、你上传到 Space 的 PDF、决策文档。尽可能上传来源,而不仅仅是它们的摘要。摘要往往会漏掉至关重要的限制条件。

上传你的第一批记忆到 MemoryLake
上传你的第一批记忆到 MemoryLake

步骤 3:连接你的 AI 和智能体

通过 MCP 或 API 赋予 Claude、Codex、OpenClaw 和其他 AI 智能体访问记忆的权限。Claude Code 支持 MCP 服务器,因此这只是一个配置项,而不是重写。对于没有 MCP 客户端的研究工具(其中包括 Perplexity),通过 API 提取你所需的内容并将其注入到提示词或工作流中,这样双向流动都可以实现。

通过 MCP 连接你的 AI 和智能体
通过 MCP 连接你的 AI 和智能体

这在实践中改变了什么

第一个改变是,在编写代码的工具中,“我们对身份验证(auth)做出了什么决定?”会得到一个附带来源的回答。而不是一个指向另一个产品中你必须去阅读的线程链接。

第二个改变是,被拒绝的选项会保持被拒绝状态。在从研究到构建的交接之后,最常见的一个失败案例就是智能体自信地推荐了你花了一周时间排除掉的库,因为排除的过程存在于 Perplexity 线程中,而代码存在于这里。一旦决策及其推理过程进入存储库,这种情况就会停止。

第三个是大多数人没有预料到的方向:它也反向起作用。一旦实现决策处于同一层中,你的下一次研究就可以从代码库实际在做什么开始,而不是从你记忆中它在做什么开始。

并且在实际操作中,它在下一次工具切换时依然有效。无论你最终使用的是 Cursor 还是回到了聊天产品,知识都在同一个地方,而工具只是一个客户端。

迁移的最佳实践

在导入之前进行浓缩,而不是在导入之后

本能反应是移动所有内容,让智能体去整理。它不会整理——它会给一个已被取代的回答与你的最终回答赋予相同的权重,因为导出内容中没有任何标记能区分它们。十个写得很好的结论文档胜过四十个对话记录,而撰写过程正是迫使你注意到哪些结论你实际上无法辩护的关键。

保留引用

迁移研究优于重新做一遍的原因在于来源也随之迁移了。为了整洁而从导出内容中剥离引用块,意味着你保留了主张却丢弃了证据——这意味着当有人第一次质疑某个主张时,你又得回到搜索框。Markdown 导出包含来源列表。请保留它。

为所有内容标注日期,并说明什么是过时的

关于快速变化的 API 的研究只是一个快照。在文件中写上日期,当你得知某些内容发生变化时,编辑该文件,而不是在旁边添加一个更新的文档。两份没有日期且相互矛盾的文档,比一份诚实标注了日期的文档更糟糕。

将指令和知识保存在不同的地方

CLAUDE.md 用于规则和指针,在每次会话中加载,应该保持简短。研究是知识——篇幅长、偶尔相关、无条件加载的成本很高。将它们混在一起会给你带来一个臃肿的文件,你必须为每次请求付费,而且仍然无法容纳所有内容。

结论

Perplexity 每次只能将一个线程导出为 PDF、Markdown 或 DOCX,并且没有官方的批量 Space 导出功能;Claude Code 也没有导入工具。因此,最实在的途径是手动且简短的:筛选 Space 以获取结论而不是搜索过程,将这些结论连同其引用一起导出为 Markdown,将每个集群浓缩为以决策开头的带日期文档,并将 CLAUDE.md 指向该文件夹,而不是直接粘贴在行内。

值得深思熟虑的选择是知识此后保存在哪里。在仓库中,它在此工具中为该项目服务。在双方都能读取的记忆层中,它也为下一个项目和下一个工具服务——这比听起来更重要,因为研究花了你一周的时间,而工具的选择会在研究失效之前发生改变。

常见问题

我可以一次性导出整个 Perplexity Space 吗?

原生不支持。Perplexity 的导出是按线程进行的——打开它,使用分享或更多选项菜单,然后选择 PDF、Markdown 或 DOCX。Space 和共享线程的导出方式与单个线程相同。第三方浏览器扩展确实提供批量导出功能,包括直接导出到 Notion,但它们需要访问你的 Perplexity 账户,因此对于任何机密内容,请将其视为一个需要慎重做出的决定。

对于编码智能体,我应该选择哪种导出格式?

Markdown。它以 Claude Code 原生读取且你可以编辑的形式携带了提示词、回答、格式和引用块。PDF 用于存档,DOCX 用于发送给他人;在智能体能够很好地使用它们之前,这两者都需要进行转换。

Claude Code 会自动读取我导出的文件吗?

只有它被指向的内容。项目根目录下的 CLAUDE.md 会自动加载,而 ~/.claude/CLAUDE.md 保存你的个人偏好。docs/ 中的文件在被引用时会被读取——要么通过 @path 导入,要么因为 CLAUDE.md 告诉智能体在进行特定工作时读取它们。仅仅把 Markdown 丢进仓库并寄希望于它能被读取并不是一个好策略。

我会在迁移中丢失我上传到 Perplexity 的文件吗?

Space 会保留它们,它们只是不会随之迁移。将原始文件复制到仓库或你的记忆层中,而不是尝试从 Perplexity 中检索它们——并注意,上传的文件脱离上下文也是该工具端一个众所周知的痛点,这也是保留你自己的副本很重要的部分原因。

在此之后,我应该继续使用 Perplexity 进行研究吗?

通常是的——这并不是一个要放弃它的情况。Perplexity 擅长进行有来源的搜索工作,而 Claude Code 擅长编写代码工作,摩擦从来不在于你同时使用了两者,而在于两者都无法看到对方的上下文。解决交接问题比二选一是一个更好的结果。

这与直接将研究内容粘贴到提示词中有什么不同?

粘贴只对一次会话有效,然后就消失了,明天你还得重新粘贴。将其写入文件可以使其在会话结束后依然存在。将其放入记忆层可以使其在工具更换后依然存在。如果你想直接跳到这一部分,为 Claude Code 添加记忆层介绍了具体机制。