Skip to content

元 / 视觉工具

跨 tab、书签、历史、下载、截图、视觉高亮、征询用户。用于任务编排。

createPageIndex 🔴 dangerous

[PAGE-INDEX][FIRST·READ] 在内容脚本本地构建/刷新页面索引,返回小型页面地图、blockId、kinds、truncation 元数据。 用于普通网页理解、商品/文章/表格字段提取、采集前定位。不要先读取 body;先建索引,再用 extractPageFields/searchPageIndex。

参数:

字段类型说明必填
maxBlocksinteger最多索引多少个页面块;超出返回 index_budget truncation
refreshbooleantrue=忽略缓存重新扫描当前页面
summaryLimitinteger返回给模型的页面地图条数
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

searchPageIndex 🔴 dangerous

[PAGE-INDEX] 在本地页面索引中搜索关键词/字段,返回小证据片段、blockId、complete/availableChars、truncation 元数据。 适合定位排名、价格、评论数、日期等证据;不要用 extractText({selector:'body'}) 来搜索大页面。

参数:

字段类型说明必填
querystring要搜索的关键词/短语
fieldsarray也可给字段名数组辅助匹配
limitinteger
maxBlocksinteger
refreshboolean
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

readPageBlock 🔴 dangerous

[PAGE-INDEX] 按 blockId 读取局部内容;长内容按 offset/maxChars 分页,返回 hasMore、nextOffset、recommendedNext 和 truncation 日志。 只在 searchPageIndex/extractPageFields 证据不足或需要核对邻近上下文时使用。

参数:

字段类型说明必填
blockIdstringcreatePageIndex/searchPageIndex/extractPageFields 返回的稳定 blockId
indexIdstring可选:绑定到产生该 blockId 的索引,避免 refresh 后误读同名 blockId
offsetinteger
maxCharsinteger
includeNeighborsboolean
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

extractPageFields 🔴 dangerous

[PAGE-INDEX][FIELD-FIRST] 通用字段候选提取:输入字段名数组,返回 value candidates、confidence、evidence、blockId、truncation。 适合商品信息、文章元信息、表格详情、表单字段等结构化提取;证据不足再用 readPageBlock 定向读取。

参数:

字段类型说明必填
fieldsarray用户要提取的字段名,例如 价格、排名、ASIN、作者、发布日期
maxCandidatesPerFieldinteger
maxBlocksinteger
refreshboolean
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

listTabs 🟡 caution

[META] 列出所有窗口的可访问 tab;返回 [{tabId, windowId, url, title, attached, isCurrent}]。 在你需要识别 / 找新 tab 时调用。

参数:

字段类型说明必填
windowIdinteger仅返回此窗口的 tab;省略=全部窗口

openTab 🟡 caution

[META] 打开新 tab,成功后自动加入会话 attachedTabs(source=ai-open)。返回 {tabId, url, title}。

参数:

字段类型说明必填
urlstring
activebooleantrue=切到该 tab

attachTab 🟡 caution

[META] 请求把已打开的 tab 纳入会话 attachedTabs;未预批准时会向用户索取审批。

参数:

字段类型说明必填
tabIdinteger
reasonstring向用户解释为何需要访问该 tab

detachTab 🟢 safe

[META] 从会话 attachedTabs 移除 tab;不关闭该 tab。

参数:

字段类型说明必填
tabIdinteger

closeTab 🟢 safe

[META] 真正关闭一个 tab。只能关 attachedTabs 里的 tab(防止误关用户其它窗口)。

参数:

字段类型说明必填
tabIdinteger

switchToTab 🟢 safe

[META] 把 Chrome 前台切到目标 tab。tabId 必须已在 attachedTabs 或当前 tab。

参数:

字段类型说明必填
tabIdinteger

screenshot 🟢 safe

[VISION] 截当前 tab 可见区域为 PNG(自动作为 image block 注入下轮)。用于视觉调试、看图回答、核对 page-index 证据。 如果已有 searchPageIndex/extractPageFields 返回的 blockId/indexId,优先传 {blockId,indexId};工具会滚动并高亮该局部区域后截图。也可传 selector。

参数:

字段类型说明必填
selectorstring可选:CSS selector;截图前会滚动并高亮目标
blockIdstring可选:page-index 返回的 blockId,用于局部视觉证据
indexIdstring可选:产生 blockId 的 indexId,避免 refresh 后误读
highlightMsinteger截图前目标高亮持续时间,250-5000ms
fullPageboolean滚动分段截图后拼接整页
formatstring
scalenumber0.1–1,缩小可省 token
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

askUser 🟢 safe

[ASK] 向用户主动征询(不是执行操作)。任务有多个候选 / 二次确认 / 缺关键信息时调用。返回 {choice} / {value} / {cancelled:true}。 仅在你确实卡住时才用——别用它做闲聊。

参数:

字段类型说明必填
promptstring向用户展示的问题文本
kindstringselect=用户从 options 选一项;confirm=是/否;text=自由文本
optionsarraykind=select 时必填,每项

searchBookmarks 🟢 safe

[META] 搜索浏览器书签(chrome.bookmarks.search)。返回 [{id, title, url}]。

示例:

参数:

字段类型说明必填
querystring
limitinteger

searchHistory 🟢 safe

[META] 搜索浏览器历史。daysBack 默认 7。返回 [{url, title, lastVisitTime, visitCount}]。

参数:

字段类型说明必填
querystring
daysBackinteger
limitinteger

downloadImage 🟡 caution

[ACT] 把一个 URL 下载到本地(Chrome Downloads)。返回 {downloadId, filename}。caution 级。

参数:

字段类型说明必填
urlstring
filenamestring可选:建议的文件名(含后缀)

downloadSpreadsheet 🔴 dangerous

[ACT] 生成并下载真正的 .xlsx Excel 文件(Chrome Downloads)。适合把采集/抽取结果导出为表格。支持多个 sheet;rows 可以是二维数组,也可以是对象数组。对象数组可配 columns 控制列顺序和表头。返回 {downloadId, filename, sheets, rows, bytes}。caution 级。

参数:

字段类型说明必填
filenamestring建议文件名;可不带 .xlsx 后缀
sheetsarray

highlightElement 🟢 safe

[VISUAL] 给页面某元素加红色虚线框(默认 3s 自动消失),让用户看清你说的是哪个。仅视觉,不改 DOM。 可用 selector 或 uid 任一种。

参数:

字段类型说明必填
selectorstring
uidstring或 takeSnapshot 返回的 uid
msinteger
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

highlightText 🟢 safe

[VISUAL] 在页面文本里高亮某段文字(黄色背景,3s 后还原)。仅找到第一次出现的位置。

参数:

字段类型说明必填
textstring
msinteger
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

consoleMessages 🔴 dangerous

[OBSERVE] 读取本页 console 日志与未捕获错误。返回里带 backend 字段:main-world 档看不到脚本注入之前的消息和浏览器级 CORS/CSP 报错,cdp 档能看到。 示例:只看报错 { level: 'error', limit: 50 };增量轮询

参数:

字段类型说明必填
levelstring
limitinteger
sinceIdinteger只返回 id 大于此值的消息,用于增量读取
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

networkRequests 🔴 dangerous

[OBSERVE] 列出本页发出的网络请求摘要(method / url / status / 耗时)。默认隐藏 PerformanceObserver 观测到的静态资源,includeStatic:true 才带上。 要看 headers 或 body 用 networkRequestDetail。

参数:

字段类型说明必填
urlPatternstring子串匹配;用 /re/ 或 /re/i 包起来则按正则
methodstring
statusinteger
includeStaticboolean
limitinteger
sinceIdinteger
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

networkRequestDetail 🔴 dangerous

[OBSERVE] 读取单条请求的 headers 与 body。dangerous:响应头里可能有 Authorization / Set-Cookie / token。 main-world 档需先 recorderConfig({bodies:true}) 才会记录 body,且只记 256KB 以内的文本类响应;cdp 档直接可取。

参数:

字段类型说明必填
idintegernetworkRequests 返回的条目 id
partstring只取其中一部分;省略则全给
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

handleDialog 🔴 dangerous

[OBSERVE] 设定 alert / confirm / prompt 的应答策略,并返回已记录的弹窗。 main-world 档下弹窗是同步的,无法挂起等你决定,所以这里设的是预先策略:调用之后发生的弹窗按此处理。cdp 档下弹窗真挂起,本调用会立即应答当前挂起的弹窗。 未调用过本工具时弹窗保持原生行为(passthrough),页面表现与没装扩展一致。

参数:

字段类型说明必填
acceptbooleantrue=确定,false=取消
promptTextstringprompt 弹窗填入的文本
scopestring
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

recorderConfig 🔴 dangerous

[OBSERVE] 开关页面事件录制。bodies:true 打开请求/响应 body 捕获(默认关,有内存代价);dialog:true 让弹窗走策略而不是原生行为;clear 清空缓冲。省略的字段保持原样。

参数:

字段类型说明必填
consoleboolean
networkboolean
bodiesboolean
dialogboolean
cleararray
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

[FLOW] 后退一页。已在历史起点时返回 { ok:false, reason },不抛错。

参数:

字段类型说明必填
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

[FLOW] 前进一页。已在历史末尾时返回 { ok:false, reason },不抛错。

参数:

字段类型说明必填
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

resize 🔴 dangerous

[FLOW] 把视口调整到指定尺寸。main-world 档量取 outerWidth-innerWidth 反推浏览器边框后改窗口外框,视口精确但用户的窗口会真的变大小;cdp 档用 Emulation 覆盖设备尺寸,不动真实窗口。

参数:

字段类型说明必填
widthinteger
heightinteger
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

drag 🔴 dangerous

[ACT] 把一个元素拖到另一个元素上。同时发 pointer 序列和 HTML5 DragEvent(共用一个 DataTransfer),兼容原生拖放和自定义 pointer 拖放。 返回 { consumed: { pointer, html5 } } 说明目标实际消费了哪一类事件——都为 false 说明这个拖放实现两条路都不吃。

参数:

字段类型说明必填
fromSelectorstring
fromUidstringtakeSnapshot / findElements 返回的 uid
toSelectorstring
toUidstring
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

drop 🔴 dangerous

[ACT] 模拟从浏览器外部把文件或数据拖放到页面元素上。带 files 时等同上传(dangerous)。 示例:{ selector:'#dropzone', files:[{ name:'a.csv', mimeType:'text/csv', base64:'...' }] }

参数:

字段类型说明必填
selectorstring
uidstring
filesarray
dataobjectMIME → 字符串,例如
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

findElements 🔴 dangerous

[READ] 按文本或正则在可交互元素里找目标,返回 uid / role / name / bounds。不需要先 createPageIndex。 拿到 uid 后用 clickByUid / fillByUid 操作最稳。

参数:

字段类型说明必填
textstring大小写不敏感子串
regexstring与 text 二选一
limitinteger
tabIdinteger目标 tab。要操作主会话 tab 时整个字段不要带(不要 0 / null);要操作其它 tab 时它必须先在 attachedTabs(用 attachTab 申请)

MIT License