上周五晚上,我在公司用 Claude Code 调了一个小时的部署脚本,Agent 帮我定位了问题、改了三个文件、跑通了测试。周六早上我打开家里的笔记本,想继续收尾——打开终端,Claude Code 启动,干干净净,什么都不记得。
我得重新描述问题、重新贴日志、重新解释上下文。那种感觉,就像你跟一个同事讨论了一下午方案,第二天他失忆了。
这不是某个工具的 bug。这是当前所有 AI Agent 的共同困境:Agent 的记忆被钉死在了设备上。
桌面和云端,为什么是割裂的
先看一个事实:桌面 Agent 和云端 Agent 各自有明确的能力边界。
| 能力 | 桌面 Agent | 云端 Agent |
|---|---|---|
| 读写本地文件 | 原生支持 | 需要额外桥接 |
| 操作 IDE / 终端 | 直接控制 | 无法触及 |
| 联网搜索 / API 调用 | 受限 | 原生支持 |
| 长时间后台运行 | 受设备限制 | 天然擅长 |
| 多步骤复杂编排 | 依赖本地资源 | 弹性扩展 |
这个分工本身没问题。问题在于:当你在桌面和云端之间切换时,上下文断了。
你在 Cursor 里让 Agent 理解了项目架构,切到 ChatGPT 问一个相关问题,得从头说起。你在 Manus 上跑了一个调研任务,想把结果交给本地 Claude Code 继续执行,只能复制粘贴。
本质上,每个 Agent 都是一座孤岛。
核心观点:这不是调度问题,是上下文漫游问题
很多人讨论桌面 Agent 和云端 Agent 的协同时,思路是"任务调度"——系统自动判断哪些子任务在本地跑、哪些上云。
我认为这搞反了。
用户真正需要的不是一个智能调度器,而是 上下文的连续性。无论我在哪台设备、用哪个 Agent,它都知道:
- 我是谁,我的习惯和偏好
- 我正在做什么,做到了哪一步
- 它能用什么工具,有什么权限
这就是我说的 Agent Context Roaming(Agent 上下文漫游)。
就像手机的漫游——你从北京飞到上海,不需要换号码、不需要重新注册,网络自动切换,通话不中断。Agent 也应该如此:换设备、换 Agent,上下文自动跟随。
三层漫游模型
要实现上下文漫游,需要把 Agent 的上下文拆成三层,每一层都与设备解耦:
┌─────────────────────────────────────────────┐
│ 用户 (User Identity) │
├─────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ 记忆层 │ 我是谁、偏好、历史决策 │
│ │ Memory │ → 跨设备持久化 │
│ └──────┬──────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ 任务层 │ 当前任务、进度、中间产物 │
│ │ Task │ → 可恢复、可迁移 │
│ └──────┬──────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ 能力层 │ 工具集、权限、配置 │
│ │ Capability │ → 按环境自动适配 │
│ └─────────────┘ │
│ │
├──────────┬──────────┬───────────────────────┤
│ 笔记本A │ 手机 │ 云端 Agent │
│ 桌面Agent │ 对话Agent │ 后台 Agent │
└──────────┴──────────┴───────────────────────┘
记忆层:Agent 认识你
记忆层存储的是用户画像和长期偏好:你的代码风格、常用技术栈、项目背景、沟通习惯。
现状:Claude Code 用 CLAUDE.md 和 memory/ 目录做了本地持久化;Cursor 有 .cursor/rules;ChatGPT 有 Memory 功能。但这些记忆都各自为政,不互通。
理想状态:记忆层应该是一个跟着用户身份走的独立服务。你登录任何 Agent,它自动加载你的记忆。不是每个工具各存一份,而是一份记忆、多端同步。
任务层:Agent 知道你在做什么
任务层是最痛的一环。一个任务往往跨越多个会话、多个设备、多个工具。但目前大多数 Agent 的任务状态和会话生命周期绑定——关掉窗口,任务状态就没了。
现状:部分工具开始探索任务持久化。Claude Code 有 task list 但仅限单会话;Manus 的云端任务可以后台运行但无法交接给本地工具。
理想状态:任务状态独立于会话存在。你在公司电脑上开始的任务,回家打开笔记本能继续。Agent 不只是"记得你问过什么",而是"知道你正在做什么、做到了哪一步、中间产物在哪"。
实现边界:体验上是漫游,机制上其实是 checkpoint/restore + 能力协商。任务能否在目标端恢复,取决于该端是否支持当前所需的原子执行能力。不是所有任务都能无缝接续,不支持时只能降级或暂停。
能力层:Agent 知道它能做什么
能力层定义了 Agent 在当前环境中可以调用的工具和拥有的权限。
现状:MCP(Model Context Protocol)正在标准化工具层。一个 Agent 通过 MCP 可以声明和发现工具能力。但 MCP 目前主要解决的是"单个 Agent 连接多个工具",还没有解决"多个 Agent 共享能力描述"的问题。
理想状态:能力层按环境自动适配。同一个用户的同一个任务,在桌面环境自动获得文件读写能力,在云端环境自动获得联网和长时运行能力。Agent 不需要用户手动配置——它知道自己在哪个环境里,能做什么。
技术思路:现有工具走到了哪一步
各家工具在三层漫游上的进展并不均匀:
| 工具 | 记忆层 | 任务层 | 能力层 |
|---|---|---|---|
| Claude Code | 本地 memory 文件 | 会话内 task list | MCP 支持 |
| Cursor | .cursor/rules | 无持久化 | 内置工具 |
| ChatGPT | 云端 Memory | 会话可恢复 | Plugins / GPTs |
| Manus | 无 | 云端任务持久 | 云端沙箱 |
| Devin | 项目级上下文 | 云端任务持久 | 云端全栈环境 |
可以看到,没有一个工具在三层上都做到了"漫游"。有的记忆在云端但任务不跨设备,有的任务能持久但记忆不互通。
要真正实现上下文漫游,有几个技术方向值得关注:
1. 记忆层标准化
需要一个开放的、与具体 Agent 无关的记忆格式。不是每个工具自己定义 memory schema,而是像 vCard 对于通讯录一样,有一个通用的 Agent Memory 规范。用户的偏好、项目上下文、历史决策,可以在不同 Agent 之间导入导出。
2. 任务状态协议
任务需要一个独立的生命周期管理。一个可能的思路是:任务状态存在一个中间层(Gateway),桌面 Agent 和云端 Agent 都通过这个中间层读写任务状态。任务不再属于某个会话,而是属于用户。
3. MCP 的进化
MCP 已经解决了"一个 Agent 连接多个工具"的问题。下一步是"多个 Agent 共享同一个能力注册表"——当任务从桌面迁移到云端时,Agent 能自动发现新环境中可用的工具,并无缝衔接。
最终的理想状态
想象一个场景:
你在公司用桌面 Agent 写了半个功能,下班前说"剩下的测试用例帮我在云端跑完"。云端 Agent 接手,知道你改了哪些文件、为什么这么改、测试要覆盖什么场景。晚上你在手机上收到通知:“测试全部通过,有两个 edge case 我额外补了,你明天看一下。“第二天到公司,打开电脑,Agent 已经准备好了 diff 和说明。
在这个场景里,你没有复制粘贴过一次上下文。你没有重新解释过一次背景。你只是在不同设备上继续工作,就像同一个同事一直在你身边。
这才是桌面 Agent 和云端 Agent 协同的理想方式——不是谁调度谁,而是上下文跟着人走。
我们离这个理想还有距离。但记忆层的持久化、任务状态的独立化、能力层的标准化,这三条路已经有人在走了。谁先把三层打通,谁就定义了下一代 Agent 体验。
你在多设备使用 AI Agent 时遇到过什么割裂的体验?欢迎留言讨论。