为什么切换编码智能体会丢失您的上下文
Copilot 的记忆比感觉上要浅薄得多
在使用数月后,Copilot 感觉就像了解您的项目。但实际上,它在每个会话中拥有的只是您打开的文件、它可以从仓库中检索的内容以及您的指令文件。仓库级别的自定义指令——.github/copilot-instructions.md 以及与之并存的每个范围的指令和提示文件——是真实、可移植且受版本控制的。其他一切都是重新进行的推理,外加一个只是记录而非知识库的聊天历史。开发人员经常会遇到这种局限性;其机制在为什么 GitHub Copilot 会忘记您的代码库上下文中有所涵盖。
有价值的部分从未被写下来
昂贵的知识是您只在对话中产生的那些:为什么支付模块容忍重复写入、哪个测试套件在说谎、之前提取身份验证服务的尝试为什么失败以及原因。您在聊天中向 Copilot 解释了这些事情。没有可以复制的文件,即使有,也没有可以捕获它们的导出格式。
Claude Code 也是无状态的
这是大多数迁移指南都会忽略的部分。Claude Code 在每个会话开始时都是一张白纸。它会读取项目根目录下的 CLAUDE.md 和用户级别的 ~/.claude/CLAUDE.md,并且可以访问您通过 MCP 连接的任何工具——但会话本身不会积累任何能够留存下来的内容。如果您在不改变上下文存储方式的情况下切换工具,您将面临同样的问题,只是界面不同,正如Claude Code 忘记项目上下文中所详细描述的那样。
切换工具只是改变了界面。只有改变上下文存放的地方,才能改变现状。
手动迁移
步骤 1:收集 Copilot 实际持有的内容
梳理您的仓库并收集可移植的部分:
.github/copilot-instructions.md—— 您的仓库级指令- 您积累的任何特定范围的指令文件和可重用的提示文件
- 编码规范的编辑器设置,例如 lint 和格式化程序配置
- 您在 wiki、ADR 文件夹或入职文档中固定的任何内容
然后进行更难的盘点。打开您过去两周的 Copilot 聊天记录,写下您不得不解释不止一次的每一处上下文。这种重复就是您的记忆审计:您不断重复输入的内容,恰恰是从未被存储的内容。
步骤 2:在 Claude Code 会读取的地方重建它
Claude Code 会读取 CLAUDE.md,所以从这里开始。移植指令内容,然后对其进行结构化,以便在项目增长时保持其有用性:
- 项目形态:有哪些服务、它们之间如何通信、哪些已被弃用
- 规范:命名、错误处理、测试预期、提交和评审规范
- 带有原因的决策:不是“使用 Postgres”,而是“使用 Postgres,因为队列模式的工作线程破坏了进程内状态”
- 陷阱:不稳定的测试套件、具有隐藏耦合的模块、必须按顺序运行的迁移
将用户级别的偏好保留在 ~/.claude/CLAUDE.md 中,将项目事实保留在仓库文件中,这样团队成员就可以继承项目部分,而不会混入您的个人偏好。
这可以为您提供一个可运行的 Claude Code 设置,这确实比从零开始要好。但它也有上限:单个 markdown 文件只是一个简报文档,而不是记忆。它不会自己增长,在经历了一次艰难的调试会话后没有人会去更新它,而且其中的任何内容都无法触及您用于事件审查的助手,或者您下个月路由到更便宜模型的智能体。六个月后,CLAUDE.md 要么过时,要么变得庞大无比。
更好的方法:统一的记忆层,适用于任何工具
避免重复这种迁移的解决方法是,停止将项目知识存储在您碰巧使用的任何智能体内部。MemoryLake 独立于您的工具之外:您的架构说明、决策和仓库上下文都存在于一个记忆层中,而 Claude Code 通过 MCP 从中读取。如果您以后添加 Codex、保留 Copilot 用于自动补全,或者将工作交给第二个智能体,它们都会读取相同的源,而不是各自重建私有副本。
步骤 1:创建 API 密钥
生成密钥并在大约 30 秒内发出您的第一次请求。

步骤 2:上传您的第一批记忆
放入承载您项目真实上下文的文档、图像和文件——您刚刚编写的 CLAUDE.md、架构图、ADR、操作手册、事件总结、API 规范。这些是以前只存在于聊天中的材料。

步骤 3:连接您的 AI 和智能体
让 Claude、Codex、OpenClaw 以及您的其他智能体通过 MCP 或 API 访问该记忆。有关 Claude Code 的具体细节,请参阅如何为 Claude Code 添加记忆。从那时起,新会话启动时您的项目就已经加载完毕,下一次工具更换只是配置修改,而不是迁移。

这次迁移的实际成本与节省
诚实地评估手动路径的成本。移植指令文件:不到一小时。将隐性知识重构到 CLAUDE.md 中:如果您做得彻底,需要半天时间。然后是经常性成本:假设您固定的项目上下文是 2,000 个 token,并且每天在不同的会话和智能体之间被重复陈述 20 次。这相当于每月花费大约 120 万个 token 来重复您自己,并且每次打开会话时都要花费四五分钟重新进行简报。
一次性写入共享记忆层可以取代这其中经常性的那一半成本。它还改变了您下一次评估工具时的情况:在今天,尝试 Codex 或新的智能体意味着要再次支付重建上下文的成本,这正是团队坚持使用已经无法满足需求的工具的原因。当记忆是外部的时,评估一个工具只需要一个下午,而不是一个月。
切换的最佳实践
迁移决策,而不是聊天记录
不要将聊天日志直接倾倒到您的新设置中。提取结论——选择、原因、日期——并存储这些内容。结论很容易检索;而聊天记录会掩盖关键信号,并且读取它们会消耗 token。
同时运行这两个工具两周
在 Claude Code 承担智能体工作的同时,保留 Copilot 的自动补全。重叠使用会暴露您忘记移植的上下文,因为您会注意到自己将某些事情解释了两次。
一次写入记忆,随处读取
每当您向智能体解释一些您以后还会需要的事情时——规范、约束、事后分析结果——请将其放入共享层,而不是会话中。这种习惯正是让第三次迁移变得微不足道的关键。这与从 Cursor 迁移到 Claude Code以及摆脱 Codex而无需重新开始背后的原理相同。
结论
从 GitHub Copilot 迁移到 Claude Code 是冠以同一个名字的两次迁移。第一次是机械性的:将指令文件转换为 CLAUDE.md,一小时内即可完成。第二次是让人痛苦的——您在聊天中解释了数月的上下文,由于从未被存储,它没有导出路径。
您可以手动重建它,而且您应该重建一次。但如果您在 Claude Code 内部重建它,您就是将其存储在您未来将会离开的下一个工具中。将您的项目记忆保留在您的智能体可以读取的图层中,问题就不再是“我如何将我的上下文迁移到 Claude Code”,而是“今天应该由哪个智能体来读取它”。