posts/claude-chrome-cowork-session-runtime.md
Claude in Chrome 带上记忆,权限反而更难管
浏览器侧栏这种东西,过去很像工位旁边临时借来的白板。
你在里面聊了半天,开了几个页面,确认了几个数字。窗口一关,换到桌面端,刚才那段上下文就留在原地。想继续干活,只能重新解释目标、进度和踩过的坑。
8 月 12 日,Anthropic 把 Claude in Chrome 的侧边栏改成了 Claude Cowork 会话。对话会进入历史记录,技能和连接器可以在浏览器里继续用,从标签页开始的任务还能转到 Claude 桌面端、网页端和移动端接着做。
看起来只是同步了聊天记录。
我更在意的是另一件事,浏览器 Agent 的状态,第一次不必死在浏览器入口里了。
好家伙,这个变化比多一个会点按钮的插件重要得多。过去大家比的是谁更会读页面、点链接、填表单。接下来真正拉开差距的,很可能是谁能把目标、权限、工具、执行历史和待确认事项,安全地带过不同入口。
按钮能力决定一个 Agent 能不能做事,状态能力决定它能不能把一件事做完。
侧栏真正多出来的是状态
官方对比说得很直接。此前,Chrome 侧边栏里的会话和 Claude 应用彼此独立,上下文不会跟着走。现在,会话跟着账号,而不是绑在某台设备或某个标签页上。
他们举了一个整理预算表的例子。Claude in Chrome 可以打开几个供应商门户,从发票里收集金额与日期并生成表格。随后,用户转到桌面应用,把电脑里的本地文件加进来,再导入上个月的预算继续比较。
重点不是发票。
重点是任务在中途换了执行环境,却不用把脑子格式化一遍。
很多朋友可能没把这件事当成工程问题。一个长任务真正需要携带的,从来不只是一串聊天文本。至少还包括当前目标、已经读过的材料、执行过的动作、得到的中间产物、用户做过的决定,以及下一步卡在哪个确认点。
可以把它写成一行很朴素的式子。
会话状态 = 目标 + 已读材料 + 已做动作 + 中间产物 + 用户决定 + 待确认事项

少一项,跨端继续都可能变成伪命题。
只同步对话,不同步产物,桌面端会知道你聊过预算,却找不到刚生成的表格。只同步产物,不同步用户决定,移动端会看见两个版本,却不知道你为什么删了其中一列。只同步结果,不同步失败记录,新入口很可能把刚撞过的墙再撞一遍。
这也是我看 Agent 产品时一直盯着的地方。Demo 里点完一个网页不难,难的是任务跑了四十分钟、换了三个入口、遇到一次登录过期之后,还能不能从正确的位置继续。
很多所谓的 Agent 体验,败的不是模型不聪明,而是没有像样的断点。
Claude 这次把 Cowork 会话塞进 Chrome,等于把侧栏从一次性遥控器往持久任务入口推了一步。它还没有解决所有状态问题,但方向很清楚,会话正在变成任务的容器,浏览器只是其中一个执行表面。
浏览器不是万能连接器,它更像收尾一公里
新侧栏还有一个很容易被忽略的变化,技能和连接器也能在浏览器中工作。
Claude 的连接器适合那些愿意提供结构化接口的系统。它们通常更稳定,权限范围也更容易说清楚。可现实里的公司系统没那么整齐。内部仪表盘、老旧后台、供应商门户、只认网页登录的工具,往往没有现成 API,更没有一个干净的连接器等着你接。
浏览器刚好补上这段脏活。
Claude in Chrome可以使用当前登录状态看页面、点链接、输入文字、切换页面和填写表单。连接器负责结构化数据,浏览器负责那些只能从界面进去的角落,桌面端再负责本地文件与其他应用。
这个组合有点子牛逼的地方,不是每个入口都变得全能,而是不同执行表面开始能接同一条任务线。
写过自动化的人对这种分工应该不陌生。API 像稳定的服务接口,浏览器像兼容性很强但容易受页面变化影响的驱动,持久会话则像上层调度器。调度器记得任务走到哪一步,再把合适的动作交给合适的执行面。
别急着把它理解成丝滑无缝。官方也写了当前边界。处理电脑本地文件仍需要 Claude 桌面应用,Chrome 扩展还不能跑在其他 Chromium 浏览器里,移动端也没有这个扩展。跨端连续,不等于每个端都拥有相同能力。
这里有个很实用的判断方式。以后看到某个产品说跨端 Agent,不要只问聊天记录是否同步,要继续追三件事。
它有没有同步任务产物。它有没有标记每个入口能用哪些工具。它在能力缺失时,是明确停住并告诉你换入口,还是假装自己还能继续。
前两项决定效率,后一项决定你会不会在一堆半成品里找半天。
有记忆之后,权限问题反而更难
状态能跨端携带,当然很爽。
但状态活得越久,错误也可能活得越久。
Anthropic 在公告里专门留了一大段讲提示词注入。攻击者可以把恶意指令藏进网页、邮件或文档。用户看不见,它却可能诱导浏览器 Agent 偏离原任务,去点击、填写或发送不该碰的东西。
在一次性侧栏里,最坏情况通常被限制在当前会话。进入持久 Cowork 会话后,一个页面里混进来的错误信息,理论上可能跟着任务走到别的入口。这里是我的工程判断,不是官方结论,但风险链条并不复杂。
浏览器读进了不可信内容,内容影响了后续计划,计划又被保存在持久会话里。用户转到桌面端继续,看到的是一个已经被污染却看起来很连贯的任务状态。
连贯,有时比报错更危险。
报错会逼你停下来,错误的连贯会让人放松警惕。
Anthropic 给出的处理办法是分层检查。用户打开自动批准后,Claude 可以少停几次,但在提交表单、发送消息、下载文件等可能产生后果的动作前,会有独立检查把动作与用户最初的要求做比对。不匹配就拦截。购买商品、共享个人数据等不可逆或成本较高的动作,仍会要求用户确认。
厉害了,自动执行和人工监督终于不再被粗暴地做成一个总开关。
不过确认框也不是护身符。用户连续看十次无害确认,第十一次大概率会条件反射地点下去。真正可靠的控制,应该把风险拆到不同层面。
网页内容属于不可信输入层,不能拿到改写任务目标的权力。技能和连接器属于能力层,要按任务授予最小范围。提交、发送、下载、购买属于动作层,需要单独闸门。跨端历史属于状态层,要能看出哪些结论来自网页,哪些决定来自用户。
这四层如果糊成一团,Agent 记得越多,排查越像在一锅粥里找那粒坏米。

企业版默认关闭 Claude in Chrome,管理员可以启用后再限制到批准域名,这个设计很务实。域名白名单不高级,但它能先把未知网页挡在任务外面。再配合官方安全指南里的可信站点建议,至少能把试用阶段的风险面压小。
我自己的判断是,浏览器 Agent 进入公司流程前,最该争的不是全自动,而是失败能不能被看见,动作能不能被撤回,状态能不能被隔离。
别再用点成功一次判断 Agent 能不能上班
浏览器 Agent 最容易做出漂亮 Demo。打开网页,搜索订单,复制数字,填进表格,整个过程像有人隔着屏幕替你操作。
点成功一次,只能证明页面今天没改版。
要判断它能不能进入真实工作流,我建议把测试重点换一下。
先看交接成本。让任务故意从 Chrome 转到桌面端,再转到网页端,检查目标、产物、用户决定和待办是否都还在。不要帮它补背景。你一补,测到的就是人肉交接能力。
再看恢复能力。执行到一半主动关掉标签页,或者让登录状态过期。重新打开后,它能否指出上一步完成了什么、失败在哪里、哪些动作不该重复。一个只会重头再来的 Agent,自动化越深,浪费越稳定。
然后看权限收缩。只给完成任务必需的域名和动作,不要一上来就开自动批准。熟悉流程后再逐段放权,每放一段,都要能说清楚多出来的收益和最坏损失。
还要看证据链。它从哪个页面读到数字,在哪一步修改了文件,哪个动作由用户确认,最好都能追溯。答案正确固然好,过程能复核才适合反复跑。
Anthropic 的帮助中心还提到一个很贴开发者的用法。Claude Code 在终端里构建,Claude in Chrome 再去浏览器里测试和验证页面,读取控制台错误、网络请求和 DOM 状态。这个场景比让 Agent 漫无目的地逛网页靠谱,因为目标、输入和成功条件都容易写清楚。
假设要让浏览器 Agent 验证一个刚部署的页面,可以把任务约束写成下面这样。
目标
验证登录、搜索和导出三个流程
允许范围
只访问测试环境与官方文档
禁止动作
不发送消息,不购买,不修改账号权限
停止条件
遇到登录失效、页面域名变化或导出内容含个人数据时暂停
输出
记录每一步结果、失败截图、控制台错误与待人工决定项
这段提示词没有花活,却比一句「帮我测一下这个网站」可靠得多。它把目标、边界、停止条件和证据放进同一个任务合同里。模型能力变了,页面结构变了,这份合同依然有用。
说真的,我不确定 Claude 这次能把跨端连续性做到多稳。会话同步是一回事,中间产物是否完整、失败恢复是否可靠、技能权限能否细到任务级,是另外几场硬仗。官方公告还没有给出足够细的答案。
浏览器 Agent 的下一阶段,不会只围着谁更会点击打转。它要开始回答更难的问题,任务放在哪里,能力跟谁走,错误如何隔离,人又该在哪一步接手。
侧栏终于记得你刚才做过什么了。
接下来,请先教它什么必须忘掉,什么绝不能替你决定。