Agent Context Roaming:桌面Agent与云端Agent协同的理想方式

问题不是谁来跑任务,而是上下文能不能跟着人走

上周五晚上,我在公司用 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.mdmemory/ 目录做了本地持久化;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 listMCP 支持
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 时遇到过什么割裂的体验?欢迎留言讨论。


See also