发布时间:2026 年 6 月 18 日
若要有效地调试现代 Web 应用,AI 智能体不仅需要您的源代码,还需要了解应用在运行时如何运行。
我们很高兴能为 Chrome DevTools for agents 引入第三方开发者工具。现在,应用和框架可以直接向 AI 智能体展示其内部状态。这有助于客服人员将屏幕上发生的情况与后台运行的逻辑联系起来。
目标:超越静态分析
现代 Web 开发基于抽象概念构建,例如 Angular、React 或 Vue 等框架;WordPress 或 Shopify 等 CMS 平台;以及 CSS、3D 图形或动画库。虽然开发者工具可以直接访问最终呈现的 DOM,但应用的“实际情况”通常存在于框架的内部状态中:组件层次结构、JavaScript 信号或后端状态。
我们推出第三方开发者工具的目标是,为任何库提供一种与 AI 智能体分享丰富、可操作的上下文的途径。这样一来,客服人员就可以调试之前对他们来说“不可见”的问题,例如:
- 组件层次结构:将网页上的 DOM 元素直接映射到其对应的框架组件和内部状态。
- 内部状态检查:直接在调试会话中访问服务器端状态或数据库内容。
工作原理:Discovery API
第三方开发者工具使用基于事件的 JavaScript API。Chrome 开发者工具 MCP 服务器通过在全局 window 对象上调度 devtoolstooldiscovery 事件来发现这些工具。devtoolstooldiscovery 事件会在每次网页导航时或所选网页发生更改时自动调度,也可以使用 list_3p_developer_tools MCP 工具显式调度。
实现您自己的工具
如需公开库或应用中的工具,您需要监听此发现事件并使用 ToolGroup 进行响应。
window.addEventListener('devtoolstooldiscovery', (event) => {
event.respondWith({
name: "My Library Tools",
description: "Tools for inspecting internal library state",
tools: [
{
name: "getInternalState",
description: "Returns the current internal state of the framework.",
inputSchema: {
type: "object",
properties: {
componentId: { type: "string" }
}
},
execute: async (input) => {
// Access your framework's internal registry
return myFramework.getState(input.componentId);
}
}
]
});
});
实现方法如下:
- 定义架构:使用 JSON 架构定义工具所需的输入。
- 处理逻辑:实现一个在网页上下文中运行并返回可序列化数据的
execute函数。 - DOM 元素:不可序列化的对象无法在网页和代理的开发者工具之间发送。DOM 元素除外。当您的工具返回 DOM 元素时,代理的开发者工具会自动将这些元素映射到
take_snapshot工具使用的相同 UID。这样,代理就可以以相同的方式与所有页面元素(无论它们来自框架还是页面快照)进行互动。
使用 MCP 与工具互动
注册工具后,编码智能体可以通过面向智能体的开发者工具与这些工具互动。list_3p_developer_tools MCP 工具会返回页面上可用的第三方工具的说明。此外,当所选页面发生变化时(例如在导航后),开发者工具会将可用工具列表附加到 MCP 工具响应中。
如需使用这些工具,智能体需要调用 execute_3p_developer_tool。开发者工具会自动验证输入参数,以确保它们与工具的定义相符。
您还可以使用 evaluate_script MCP 工具调用工具。您的代理提供了一个 JavaScript 代码段,开发者工具会在网页上执行该代码段。此代码段可以调用第三方开发者工具,并立即使用其输出进行进一步计算。
使用 evaluate_script 可进行复杂的调试,因为该标志可让代理执行以下操作:
- 组合操作:将多个步骤合并为一次执行。
- 处理不可序列化的值:直接在网页上下文中处理特定于框架的对象或信号。
- 优化性能:尽量减少序列化开销,避免在代理和浏览器之间进行多次往返。
早期成功:Angular 集成
我们一直在与 Angular 团队合作,他们实现了两款第三方开发者工具:
- 信号图工具:使代理能够直观呈现状态与视图之间的关系,帮助他们识别导致无限循环或更新失败的依赖项。
- 依赖注入 (DI) 图工具:公开元素注入器,使代理能够准确了解服务提供的位置或缺失的位置。由于 Angular 的 DI 图是仅在运行时构建的,因此仅靠静态分析无法调试提供程序错误。
React 团队也已开始试验第三方开发者工具。
与我们一起打造智能体调试的未来
此实验性功能适用于版本 0.25.0 及更高版本的代理,可在 Chrome 开发者工具中使用。如需启用该功能,请使用 --categoryExperimentalThirdParty 命令行标志。
如果您维护框架、库或工具,并希望改善编码代理的调试体验,我们非常乐意与您合作:
- 浏览文档: GitHub 上的技术指南。
- 联系我们:我们正在寻找合作伙伴来迭代这些 API,并帮助定义 AI 赋能的 Web 调试的未来。您可以在 GitHub 代码库中创建问题来与我们联系。
快来加入我们,携手打造智能体 Web 开发的未来!