





















接触浏览器自动化、AI Agent、沙箱环境时,经常会看到一个词:CDP。
第一次看到它,很多人会觉得很陌生:这是什么协议?是不是很复杂?是不是必须懂很多底层技术才能用?
其实不用想得太难。站在小白角度,可以先这样理解:
CDP 就是 Chrome 浏览器提供的一套“远程控制接口”。
换句话说,它像是 Chrome 浏览器的一个“遥控器”。有了它,程序就可以控制浏览器完成一些操作,比如打开网页、点击按钮、截图、获取网页内容等。
正常情况下,我们打开 Chrome 浏览器,都是人手动操作:
用鼠标点击网页
用键盘输入网址
点击按钮
登录网站
截图保存
复制网页内容
这个过程是:
人 → 鼠标键盘 → Chrome 浏览器
也就是说,浏览器是被人操作的。
但是在一些自动化场景里,我们希望程序来操作浏览器,比如:
自动打开某个网页
自动填写表单
自动截图
自动读取网页内容
自动测试网页功能
自动下载文件
这时候就需要一种方式,让程序能够“指挥”浏览器。
CDP 就是用来做这件事的。
CDP 的英文全称是 Chrome DevTools Protocol,中文可以理解为:
Chrome 开发者工具协议。
这个名字听起来有点技术化,但不用纠结。简单理解就是:
Chrome 浏览器对外提供了一套控制能力,程序可以通过这套能力远程操作浏览器。
就像电视有遥控器一样:
遥控器 → 电视
CDP 对 Chrome 来说就是:
程序 → CDP → Chrome 浏览器
程序通过 CDP,可以告诉 Chrome:
打开这个网址
点击这个按钮
输入这段文字
截一张图
把网页内容给我
看看网页发了哪些请求
所以,CDP 本质上就是让程序能够控制浏览器的一种方式。
CDP 能做的事情很多,常见的有:
打开网页
刷新页面
点击页面元素
输入文字
获取网页 HTML
截图
生成 PDF
获取 Cookie
查看网络请求
读取浏览器控制台日志
比如我们平时手动打开一个网站,然后截图保存。
用 CDP 后,程序也可以自动完成:
程序告诉浏览器:打开网页
程序等待网页加载完成
程序告诉浏览器:截图
浏览器返回截图结果
这就是浏览器自动化的基础。
你平时在 Chrome 里按 F12,或者右键选择“检查”,会打开开发者工具。
开发者工具里可以看到:
页面结构
网络请求
控制台日志
页面样式
性能信息
CDP 和开发者工具关系很近。
你可以简单理解:
开发者工具是给人看的界面,CDP 是给程序用的接口。
也就是说:
开发者工具:人通过界面查看和调试网页
CDP:程序通过接口查看和控制网页
它们背后很多能力是相通的。
很多人接触 CDP,是因为看到了 Playwright 里的代码:
connect_over_cdp
Playwright 是一个浏览器自动化工具。它可以控制浏览器打开网页、点击、输入、截图。
普通情况下,Playwright 可以自己启动一个新浏览器。
但有些时候,浏览器已经提前启动好了,比如浏览器运行在一个远程服务器、沙箱容器或者自动化环境里。
这时候 Playwright 不需要再新启动浏览器,而是通过 CDP 连接到这个已经存在的浏览器。
这就是:
Playwright → 通过 CDP → 连接已有 Chrome 浏览器
所以 connect_over_cdp 可以理解成:
通过 CDP 地址连接一个已经启动好的 Chrome 浏览器。
在沙箱环境里,经常会同时看到两个概念:VNC 和 CDP。
它们都和浏览器有关,但作用不一样。
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 理解任务
Agent 通过 CDP 控制 Chrome 打开网页
Chrome 完成截图
Agent 把截图结果返回给用户
这就是 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 可以自动打开网页、截图、读取网页内容,甚至在沙箱环境里远程操作浏览器。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。