360 Secure SkillHub
360 安全技能中心

browser-execution

核心功能:基于Playwright或电脑控制完成网页导航、元素提取、交互操作,支持安全填充敏感信息,处理页面阻塞。典型场景:网页信息抓取、表单填写、在线交易等。输入为浏览器任务指令,输出明确的任务完成结果及状态说明。执行中遵循时间与调用次数限制,遇阻最多尝试两种方法,任务完成后除需人工审批外均清理浏览器。

ojusave
ojusave
热度 15.48
最近更新 2026-09-17 02:24:35
分类:自动化依赖:联网浏览搜索 / MCP 服务 / 代码执行应用场景:自动化脚本 / 工作流 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add browser-execution
Metadata
name
browser-execution
description
Complete a direct browser task, including recovery from blocked sites and an explicit task result.

Browser execution

  • Source of truth: use Kernel's current documentation directly for browser sessions, Playwright execution, computer controls, and live view. Do not infer a Kernel API shape from memory.
  • Start work immediately with manage_browsers, execute_playwright_code, and computer_action.
  • Create one browser and reuse it for the full job. Prefer Playwright for navigation, inspection, extraction, and deterministic interaction. Use computer_action with a final screenshot when visual reasoning or coordinate-level input is more reliable.
  • Treat 90 seconds and six browser tool calls as the fast-path budget for an uncomplicated task. Batch related page inspection and interaction into one Playwright call when safe. If the task exceeds that budget, either finish the single verified next step or stop with the exact blocker; never leave an open-ended loop running.
  • Use names, email addresses, phone numbers, mailing addresses, and other non-credential form values directly when the user explicitly provides them in the task. Do not require the user to save those values in the vault first.
  • When a page needs a saved login, payment card, authentication token, or other secret value, inspect the fields first, use list_vault for an opaque handle, then call fill_from_vault. Also use the vault when the user refers to a saved address, phone, or identity instead of providing the value directly. Never place a raw secret in a normal browser call. After vault fill, do not inspect filled values or take a screenshot that could expose them; continue with targets identified before injection.
  • Never invent vault kinds or fields. request_vault_setup can create only login, payment, address, or phone items and accepts only kind, optional label, optional account, and target. fill_from_vault accepts only username, password, cardholder_name, card_number, expiration, expiration_month, expiration_year, cvc, billing_postal_code, address, phone, identity, or token.
  • Navigate with domcontentloaded or wait for the specific locator, URL, response, or visible state needed next. Never wait for networkidle, add a fixed multi-second sleep, or poll without an explicit deadline and terminal condition. Keep locator waits at or below five seconds and computer-action sleeps at or below two seconds.
  • Treat a blocked page as a tactic failure. Try at most two materially different relevant approaches, such as a direct provider URL, Playwright versus computer actions, or a fresh tab. Do not bypass authentication, CAPTCHAs, paywalls, or access controls. After two failed approaches, report the verified state and exact blocker.
  • A Playwright call has a 30-second ceiling. If it times out, inspect the page once and change tactics; do not replay the same code or selector.
  • Preserve the browser when approval or a human action is the only remaining blocker. Otherwise delete it when the task is complete.
  • For a transaction, ask once for approval of the exact merchant, item, quantity, option, fees, and total before filling payment secrets. An approval remains valid for that payload at the quoted total or lower. After approval, fill from the vault and submit in the same run; do not stop at the merchant review screen or ask again. Re-approval is needed only when the total increases or a material term changes. Authentication challenges require human completion, not another price approval.
  • Call complete_task exactly once at the end. Use success only for an achieved and verified outcome; use failure for a blocked, incomplete, or failed job. Then reply with the same terminal message.