惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
C
Check Point Blog
B
Blog RSS Feed
G
Google Developers Blog
H
Help Net Security
博客园 - Franky
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Recent Announcements
Recent Announcements
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
DataBreaches.Net
小众软件
小众软件
T
The Blog of Author Tim Ferriss
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
Y
Y Combinator Blog
T
Tailwind CSS Blog
J
Java Code Geeks
MyScale Blog
MyScale Blog
雷峰网
雷峰网
有赞技术团队
有赞技术团队
博客园 - 聂微东

博客园 - 人艰不拆_zmc

AI 里的“本体”到底是什么?一篇写给技术小白的通俗解释 15000mAh 到底是什么概念?一篇看懂电池容量 go2_ros2_sdk 到底是干什么的?从 Go2、官方 SDK、ROS2 一路讲到 SLAM 和 Nav2 买了宇树 Go2 以后怎么二次开发?写给第一次做机器狗项目的人 买了一块 NVIDIA Jetson,怎么在上面安装 ROS2?从 JetPack 到 ROS2 的完整入门指南 NVIDIA Jetson 到底是什么?写给第一次接触机器人和边缘 AI 的人 ROS / ROS2 到底是什么?写给第一次接触机器人开发的人 大模型到底能同时多少人用?一篇看懂并发、排队与容量估算 大模型为什么有快有慢?一篇看懂响应速度背后的关键因素 技术小白也能看懂:大模型里的量化、蒸馏到底是什么意思? Codex 使用技巧:从“会聊天”到“真正能干活” 我终于搞懂了:Codex 对话中插件和 Skill 到底怎么用 我终于搞懂了 Agent Spec:它其实就是 Agent 的“标准设计图” 我终于搞懂了 Tool:原来不只是 Function Calling 里的函数 Skill 里的 Python 脚本,到底是不是 Tool? 我终于搞懂了 Codex 的 Plugin 和 Skill:顺便把 App、MCP 一次理清 我终于搞懂了 Codex 的“应用”:App 到底是什么,怎么添加和维护? 我终于搞懂了 Tool、Function Calling 和 MCP:大模型到底怎么知道该调哪个接口? 我终于搞懂了 MCP:从 HTTP API 到 ERP MCP Server 的完整入门 我终于搞懂了 Codex 的“记忆”是怎么回事 Codex 用久了越来越慢?我的上下文管理小技巧 我终于搞懂了 Codex 里的 Thread、Turn 和 Session 从 Qwen3.8-27B 到 FP8、NVFP4、MoE:一次搞懂几个常见大模型概念 FPS 是什么意思?简单理解 60 FPS、25 FPS 和视频帧率 DeepSeek Harness 明明像 AI Coding 工具,为什么又能用来构建各种 Agent? 使用 Codex 开发项目,怎么才能节约 Token? 模型里的 32K、128K、256K 是什么意思?简单聊聊上下文限制 Codex 一次对话到底会给模型发送什么?以 Spring Boot 项目为例讲清 Context、代码读取与 Token 消耗 AI Agent 中的 Rule 是什么?以 Codex 为例,小白也能看懂 我终于搞懂了 Harness:它不是论文,也不是标准,更不是 Codex 独有
浏览器“遥控器” CDP 简单介绍
人艰不拆_zmc · 2026-06-22 · via 博客园 - 人艰不拆_zmc

接触浏览器自动化、AI Agent、沙箱环境时,经常会看到一个词:CDP

第一次看到它,很多人会觉得很陌生:这是什么协议?是不是很复杂?是不是必须懂很多底层技术才能用?

其实不用想得太难。站在小白角度,可以先这样理解:

CDP 就是 Chrome 浏览器提供的一套“远程控制接口”。

换句话说,它像是 Chrome 浏览器的一个“遥控器”。有了它,程序就可以控制浏览器完成一些操作,比如打开网页、点击按钮、截图、获取网页内容等。

一、平时我们是怎么操作浏览器的?

正常情况下,我们打开 Chrome 浏览器,都是人手动操作:

  • 用鼠标点击网页

  • 用键盘输入网址

  • 点击按钮

  • 登录网站

  • 截图保存

  • 复制网页内容

这个过程是:

人 → 鼠标键盘 → Chrome 浏览器

也就是说,浏览器是被人操作的。

但是在一些自动化场景里,我们希望程序来操作浏览器,比如:

  • 自动打开某个网页

  • 自动填写表单

  • 自动截图

  • 自动读取网页内容

  • 自动测试网页功能

  • 自动下载文件

这时候就需要一种方式,让程序能够“指挥”浏览器。

CDP 就是用来做这件事的。

二、CDP 可以理解成浏览器的“遥控器”

CDP 的英文全称是 Chrome DevTools Protocol,中文可以理解为:

Chrome 开发者工具协议。

这个名字听起来有点技术化,但不用纠结。简单理解就是:

Chrome 浏览器对外提供了一套控制能力,程序可以通过这套能力远程操作浏览器。

就像电视有遥控器一样:

遥控器 → 电视

CDP 对 Chrome 来说就是:

程序 → CDP → Chrome 浏览器

程序通过 CDP,可以告诉 Chrome:

打开这个网址
点击这个按钮
输入这段文字
截一张图
把网页内容给我
看看网页发了哪些请求

所以,CDP 本质上就是让程序能够控制浏览器的一种方式。

三、CDP 能做哪些事情?

CDP 能做的事情很多,常见的有:

  1. 打开网页

  2. 刷新页面

  3. 点击页面元素

  4. 输入文字

  5. 获取网页 HTML

  6. 截图

  7. 生成 PDF

  8. 获取 Cookie

  9. 查看网络请求

  10. 读取浏览器控制台日志

比如我们平时手动打开一个网站,然后截图保存。
用 CDP 后,程序也可以自动完成:

程序告诉浏览器:打开网页
程序等待网页加载完成
程序告诉浏览器:截图
浏览器返回截图结果

这就是浏览器自动化的基础。

四、CDP 和我们平时打开的开发者工具有什么关系?

你平时在 Chrome 里按 F12,或者右键选择“检查”,会打开开发者工具。

开发者工具里可以看到:

  • 页面结构

  • 网络请求

  • 控制台日志

  • 页面样式

  • 性能信息

CDP 和开发者工具关系很近。

你可以简单理解:

开发者工具是给人看的界面,CDP 是给程序用的接口。

也就是说:

开发者工具:人通过界面查看和调试网页
CDP:程序通过接口查看和控制网页

它们背后很多能力是相通的。

五、CDP 和 Playwright 是什么关系?

很多人接触 CDP,是因为看到了 Playwright 里的代码:

connect_over_cdp

Playwright 是一个浏览器自动化工具。它可以控制浏览器打开网页、点击、输入、截图。

普通情况下,Playwright 可以自己启动一个新浏览器。

但有些时候,浏览器已经提前启动好了,比如浏览器运行在一个远程服务器、沙箱容器或者自动化环境里。

这时候 Playwright 不需要再新启动浏览器,而是通过 CDP 连接到这个已经存在的浏览器。

这就是:

Playwright → 通过 CDP → 连接已有 Chrome 浏览器

所以 connect_over_cdp 可以理解成:

通过 CDP 地址连接一个已经启动好的 Chrome 浏览器。

六、CDP 和 VNC 有什么区别?

在沙箱环境里,经常会同时看到两个概念:VNCCDP

它们都和浏览器有关,但作用不一样。

VNC 是给人看的。

你打开 VNC 页面,就像远程桌面一样,可以看到容器里的 Chrome 浏览器画面,也可以用鼠标键盘手动操作。

CDP 是给程序用的。

程序通过 CDP 控制 Chrome,比如自动打开网页、截图、读取页面内容。

可以这样理解:

VNC = 人看的远程屏幕
CDP = 程序控制浏览器的遥控器

比如一个 AI Agent 要登录某个网站:

1. Agent 通过 CDP 打开网站
2. 页面出现二维码
3. 用户通过 VNC 看到二维码并扫码
4. 登录成功后,Agent 继续通过 CDP 自动操作网页

所以 VNC 和 CDP 可以配合使用。

一个给人看,一个给程序控制。

七、为什么 AI Agent 会用到 CDP?

AI Agent 如果只是在聊天框里回答问题,那不一定需要 CDP。

但如果 AI Agent 要真正“操作网页”,比如:

  • 打开网站

  • 获取网页内容

  • 自动填写表单

  • 下载文件

  • 截图留存

  • 检查页面是否正常

那它就需要一个能控制浏览器的能力。

CDP 就可以作为这个能力的基础。

简单说:

AI Agent 负责思考和决策,CDP 帮它真正控制浏览器执行动作。

比如:

用户说:帮我打开这个网站并截图
AI Agent 理解任务
Agent 通过 CDP 控制 Chrome 打开网页
Chrome 完成截图
Agent 把截图结果返回给用户

这就是 CDP 在智能体场景里的价值。

八、CDP 难不难?

从底层看,CDP 确实有很多细节。

但大多数时候,我们并不需要直接手写 CDP 协议。

实际开发中,通常会用 Playwright、Puppeteer 这类工具来封装 CDP。

也就是说,我们不用直接和 CDP 打交道,只需要调用这些工具提供的方法,比如:

打开网页
点击按钮
截图
读取内容

底层怎么和 Chrome 通信,工具会帮我们处理。

所以对小白来说,理解到这个程度就够了:

CDP 是 Chrome 的远程控制接口,Playwright 等工具可以通过 CDP 控制浏览器。

九、用一句话总结

CDP 可以理解成 Chrome 浏览器的“程序遥控器”。

人操作浏览器靠鼠标键盘,程序操作浏览器可以靠 CDP。

在浏览器自动化、网页测试、AI Agent、沙箱环境里,CDP 经常用来连接并控制一个已经启动好的 Chrome 浏览器。

最简单记法:

VNC:给人看浏览器画面
CDP:给程序控制浏览器
Playwright:调用 CDP 等能力的浏览器自动化工具

理解了 CDP,就能更容易理解为什么 AI Agent 可以自动打开网页、截图、读取网页内容,甚至在沙箱环境里远程操作浏览器。