Claude for Chrome 是如何工作的

2025 年 12 月 31 日
 ropzislaw

Claude in Chrome 是如何工作的?

Claude in Chrome 有两种工作模式, 一种是独立的 AI 对话模式, 用户可以在插件里直接下发任务。 另一种是与 Claude Code 配合, 用户在 Claude Code 可以使用插件暴露的浏览器能力,使用用户的浏览器完成额外任务。

我们先从第一种模式开始介绍其原理

独立对话模式

逆向插件的工作方式很简单。打开 Claude Chrome 插件,右击 inspect 监控插件的网络请求,如图。

我们发现,任务执行过程中会通过不断请求 Claude 的/v1/messages 接口,这是 Claude 的官方大模型接口(类比 ChatGPT 的/chat/completions 接口), 从请求体中我们可以拿到 system prompt 、tools 定义。 我已经开源整理在 https://github.com/AIPexStudio/system-prompts-of-claude-chrome

具体的 system prompt 比较多(40+kb),我在这里不多做介绍,主要包含:

(1)安全防护

(2) 行为规范

(3) 操作分类

(4) 版权保护

(5) 工具使用要求

(6) 运行环境相关

(7) 多标签页管理

(8) 响应流程控制

其中 tools 包含以下工具,按功能分类如下:

1. 页面读取与导航( Page Reading & Navigation )

工具名称 功能描述
read_page 获取页面元素的无障碍树( Accessibility Tree )表示
find 使用自然语言查询查找页面元素
get_page_text 从页面提取原始文本内容
navigate 导航到指定 URL 或浏览器历史记录

2. 交互与自动化( Interaction & Automation )

工具名称 功能描述
computer 鼠标和键盘交互,以及截图功能
form_input 在表单元素中设置值
javascript_tool 在页面上下文中执行 JavaScript 代码

3. 标签页管理( Tab Management )

工具名称 功能描述
tabs_create 创建新的浏览器标签页
tabs_context 获取标签页的上下文信息

4. 媒体与文件( Media & Files )

工具名称 功能描述
upload_image 上传图片到文件输入框或拖放目标
gif_creator 录制并导出浏览器操作为动画 GIF

5. 调试与监控( Debugging & Monitoring )

工具名称 功能描述
read_console_messages 读取浏览器控制台消息
read_network_requests 读取 HTTP 网络请求信息

6. 实用工具( Utilities )

工具名称 功能描述
resize_window 调整浏览器窗口尺寸

7. 自定义工具( Custom Tools )

工具名称 功能描述
update_plan 更新并向用户展示计划以获取批准
turn_answer_start 标记一轮响应的开始

claude chrome 插件组合这些负责页面的理解、点击、填写表单、截图、调试的工具,就能完成复杂的人物。 其中 update_plan 和 turn_answer_start 是自定义工具,会在插件里有独特的 UI 展示。update_plan 会请求用户 Approve Plan 或者 Make Changes, turn_answer_start 会请求用户二次确认任务开始。图为 update_plan 的 UI 展示。

与 Claude Code 配合模式

Claude Chrome 请求了 nativeMessaging 的权限,这个权限允许扩展与本地应用程序进行双向通信。通过这个权限,Claude Chrome 可以与安装在用户电脑上的 Claude Code (或其他支持 Native Messaging 的应用程序)建立连接。

Native Messaging 的工作原理

  1. 权限申请:扩展在 manifest.json 中声明 nativeMessaging 权限
  2. 本地应用注册:Claude Code 在系统中注册为 Native Messaging Host
  3. 建立连接:扩展通过标准输入输出( stdin/stdout )与本地应用通信
  4. 消息传递:使用 JSON 格式的消息进行双向数据交换

与 Claude Code 的协作流程

┌─────────────────┐         ┌──────────────────┐         ┌──────────────┐
│  Claude Code    │ ◄─────► │  Native Messaging │ ◄─────► │ Claude Chrome│
│  (本地应用)      │   JSON   │  Host (桥接层)    │   JSON   │  (浏览器扩展) │
└─────────────────┘         └──────────────────┘         └──────────────┘

工作流程:

  1. Claude Code 发起请求:用户在 Claude Code 中请求执行浏览器操作
  2. 消息传递:Claude Code 通过 Native Messaging 将请求发送给 Claude Chrome 扩展
  3. 扩展执行:Claude Chrome 扩展在浏览器中执行相应的操作(如点击、填写表单等)
  4. 结果返回:操作结果通过 Native Messaging 返回给 Claude Code
  5. 展示结果:Claude Code 将结果展示给用户

此时,Claude Chrome 扩展就不再是个 Agent ,而只是作为 MCP server 将浏览器工具暴露给 Claude Code , 由 Claude Code 去进行使用。

上下文效率

我尝试使用 Claude in Chrome 跑了官方给的样例

Navigate to Zillow and find me a 2-bedroom apartment in San Francisco under $4000/month. Filter for places available within the next 30 days and show me the top 3 options with photos.

我发现他运行了 10 分钟才执行完成,于是我就看了下这个过程中哪里出了问题。发现 claude chrome 插件主要用两种模式去理解页面, 一种是使用页面的无障碍树,在无障碍达成不了目标时会使用截图。

很多人可能对无障碍树没有概念,我稍微介绍一下。

无障碍树( Accessibility Tree )是浏览器为了支持辅助技术(如屏幕阅读器)而构建的页面结构表示。它包含了页面上所有可交互元素的语义信息,比如:

相比直接解析 DOM 树,无障碍树提供了更简洁、更语义化的页面表示。对于 AI 来说,无障碍树比原始 HTML 更容易理解,因为它已经过滤掉了大量样式和布局相关的信息,只保留了功能性的语义信息。 但无障碍树是有局限性的,依赖于网站的无障碍树构建是否完善,如果网站的无障碍树构建不完善,可能会导致无障碍树的表示不准确,从而影响 AI 的理解。

这里我发现 claude chrome 的一个问题是对于同一个页面的多次快照,都保存在了上下文中,但其实过去的快照是无意义的,可以丢弃的。并且,claude in chrome 会将整个页面的无障碍树 放进上下文,在对长页面进行任务时,上下文会迅速爆炸。

另一个问题是 claude in chrome 在无障碍树失败时会使用截图,然而一次截图多大呢,100kb-500kb 不等,我这次任务截图是 335kb 。 这样的一张截图信息会一直存在于后续的上下文中,上下文的爆炸从而引起任务的慢、无效以及贵。 其实大可不必把截图信息原封不动放进上下文,为了理解页面其实可以先降低清晰度,处理之后放进上下文。AIPex 的经验是可以压缩 10-20 倍。

当然了,claude 是首个提出上下文工程的,我相信不久之后插件的上下文优化算法也会上线,敬请期待。

交互体验

claude in chrome 的 UI 让人非常舒服,用户可以记录 workflow 并进行编辑,下一次直接用命令唤起。Claude in Chrome 的一个卖点是说自己支持后台运行, 但其实 claude in chrome 的操作都依赖于 debugger 权限,而 debugger 权限在被使用时,浏览器一定会获取用户焦点,强制展示在最前端,这就使得“后台运行”成为无稽之谈。 有个做法是不使用 debugger ,但这样的话需要自己抛弃无障碍树、以及用其他方式完成点击、输入等操作。

为什么我推荐你尝试 AIPex ?

本来是抱着学习的心态使用并逆向了 Claude in Chrome 插件,但在跑完第一个用例之后,我就明白了这个插件目前的上下文效率是存在很大问题的,那会导致任务的慢和低效。 AIPex 已经走过这些坑,并在上下文工程上做了很多工作,同一个任务 AIPex 能比 claude in chrome 至少快 2 倍以上,任务越复杂越明显。AIPex 的上下文核心实践已整理在了 https://www.claudechrome.com/zh/blog/ai-browser-automation-challenges. 同时 AIPex 支持 BYOK ,你可以用自己的大模型密钥免费尝试。

References

  1. https://x.com/pk_iv/status/2005694082627297735
  2. https://www.claudechrome.com/zh/blog/how-claude-chrome-works
3436 次点击
所在节点    分享创造
9 条回复
lovestudykid
2025 年 12 月 31 日
弄个虚拟机平台托管下,然后再给一堆大 V 发邀请码试用,再安排点人上闲鱼炒作邀请码
ropzislaw
2025 年 12 月 31 日
@lovestudykid 不错 可以用 AIPex 搭配 deepseek key 试一下
haoxuexiaoyao
2025 年 12 月 31 日
不能使用第三方中转的 API 啊 Claude 的
ropzislaw
2025 年 12 月 31 日
@haoxuexiaoyao 是哪个中转方,麻烦你告诉我一下,然后中转方应该用 custom provider 尝试下
haoxuexiaoyao
2025 年 12 月 31 日
闲鱼买的 别人搭建的中转 API 试了不行 本地 Claude code 里面正常使用
ropzislaw
2025 年 12 月 31 日
@haoxuexiaoyao got ,如果你想用 claude chrome 插件的话,如果后面的 path 都是/v1/messages 。你可以通过写 etc/host 将 claude.ai 指向你的中转站试试
bolasblack
1 月 11 日
@ropzislaw 请问一下,AIPex 可以作为 mcp 服务器,或者一个 API 服务器(这样就可以包装成 Skill )给本地的 AI 使用吗?
ropzislaw
1 月 12 日
@bolasblack 目前还不支持,这方面已经在开发计划了,等好了通知你哈
bolasblack
1 月 13 日
@ropzislaw 好的,期待一下,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1182284

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX