需求:在 AI 编程会话中让用户与 Agent 共享同一浏览器页面,并查看控制台与网络信息。 实现:新增沙箱浏览器内核、Host API/渲染器面板、OpenCode 工具接入及安全边界测试。
36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
---
|
||
name: agent-browser
|
||
description: 当需要打开、查看或调试当前 Makelore 项目的本地或公网网页,读取 Console、Network、DOM、样式、性能信息,执行页面脚本或刷新验证修改时使用。
|
||
---
|
||
|
||
# Makelore 开发浏览器
|
||
|
||
开发浏览器是用户和智能体共享的项目调试界面。它只用于开发过程,不代表作品已经发布。
|
||
|
||
## 基本流程
|
||
|
||
1. 确认项目的开发服务已经启动,并取得本地网页地址。
|
||
2. 调用 `browser_context` 的 `open` 打开该地址。
|
||
3. 调用 `browser_cdp` 的 `read_events` 读取 Console 与 Network 事件。
|
||
4. 需要主动检查页面时,使用 `browser_cdp` 的 `send` 调用标准 CDP 方法。
|
||
5. 修改代码后调用 `browser_navigate` 的 `reload`,再读取新事件验证结果。
|
||
|
||
## 工具选择
|
||
|
||
- `browser_context`:打开、查看状态、关闭浏览器或清空当前项目的浏览器数据。
|
||
- `browser_navigate`:跳转、后退、前进或刷新共享页面。
|
||
- `browser_cdp`:
|
||
- `send` 原样执行当前项目页面的 CDP 命令;
|
||
- `read_events` 按游标读取原始事件,不会消费其他读取者的数据;
|
||
- `read_payload` 分块读取响应体、截图等大型结果。
|
||
|
||
## 约束
|
||
|
||
- 不要传递或猜测 `projectId`、`tabId`、`targetId`、`webContentsId`;项目身份由当前会话目录自动绑定。
|
||
- 不要通过远程调试端口、`curl` 或另一个浏览器绕过这些工具。
|
||
- 页面刷新或调试器重连后,旧的 DOM node、RemoteObject 和子 Target 引用可能失效,应重新获取。
|
||
- 开发浏览器面板收起或被模态框遮挡时,智能体调试会暂停;等待用户重新显示页面后再继续。
|
||
- `CDP_TIMEOUT` 表示结果未知,客户端会关闭该浏览器以清理悬挂命令;不要盲目重复可能产生副作用的命令,先重新打开页面并核对状态。
|
||
- 原生 DevTools 与智能体调试冲突时,请用户关闭该页面的原生 DevTools 后再继续。
|
||
- Console、请求头、响应体、Cookie 和页面内容可能包含敏感信息,只在完成当前调试所必需时读取和展示。
|