mcpField
S
screen-control-operator-v3

screen-control-operator-v3

github.com/breverdbidderAgent 工作流49 次安装
代码仓库

关于 screen-control-operator-v3

screen-control-operator-v3 是用于浏览器操作与自动化测试的 Agent 技能,面向需要记录和重放网页流程的用户。它通过 CDP 与无障碍树检查页面,并提供面向止赎流程的预置技能。

主要功能

  1. 01记录并保存浏览器工作流
  2. 02重放带变量的技能
  3. 03并行运行隔离的浏览器任务
  4. 04通过无障碍树检查页面结构
  5. 05按多种策略恢复元素定位
  6. 06提供止赎业务预置技能

适用场景

  1. 01记录并重放网页操作流程
  2. 02并行查询止赎相关网站
  3. 03检查 DOM 结构并调试选择器

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/breverdbidder/life-os --skill screen-control-operator-v3

安装后在 Claude Code 中输入/screen-control-operator-v3确认已加载。

详细介绍

屏幕控制操作器 V3

比 Claude Cowork 的公告早 3 周打造。如今功能相当,并具备我们的优势。

相比 Claude Cowork 的核心优势

功能Claude Cowork屏幕控制操作器 V3
视觉方式截图CDP + 无障碍树
速度1-5 秒50-200ms(快 10 倍)
成本视觉 Token($$$)仅文本 Token($)
可靠性~85% OCR100% 语义查询
技能录制✅ 是✅ 是
并行执行✅ 是✅ 是
领域技能通用专为止赎打造
智能路由器不适用90% 免费层

何时使用此技能

触发短语:

  • “控制我的屏幕”
  • “录制一个工作流”
  • “重放此技能”
  • “验证 Lovable 预览”
  • “测试爬虫”
  • “调试 DOM 选择器”
  • “检查页面结构”
  • “运行 BECA 查询”
  • “搜索 BCPAO”
  • “自主浏览器测试”

快速开始

from screen_control_operator_v3 import ScreenControlOperatorV3

operator = ScreenControlOperatorV3(headless=False)
operator.launch()

# Option 1: Record new skill
skill = operator.record_skill("My Workflow", domain="foreclosure")
operator.save_skill(skill, "my_workflow.json")

# Option 2: Play recorded skill
result = operator.play_skill_file("my_workflow.json", 
    variables={"case_number": "2025-CA-001234"})

# Option 3: Use pre-built foreclosure skills
result = operator.lookup_beca_case("2025-CA-001234")
result = operator.lookup_bcpao_property("12-34-56-78-90")
result = operator.search_acclaimweb_liens("SMITH JOHN")

# Option 4: Parallel execution
results = operator.execute_parallel([
    {"skill": skill1, "variables": {"case": "001"}},
    {"skill": skill2, "variables": {"case": "002"}},
    {"skill": skill3, "variables": {"case": "003"}},
])

operator.close()

CLI 命令

# Record new skill
python screen_control_operator_v3.py record \
  --name "BECA Deep Search" \
  --domain foreclosure \
  --output skills/beca_deep.json \
  --start-url "https://vmatrix1.brevardclerk.us/beca/"

# Play skill with variables
python screen_control_operator_v3.py play \
  --skill skills/beca_deep.json \
  --vars '{"case_number": "2025-CA-001234"}'

# Pre-built skills
python screen_control_operator_v3.py beca --case "2025-CA-001234"
python screen_control_operator_v3.py bcpao --parcel "12-34-56-78-90"

# Inspect page DOM (NOT screenshot)
python screen_control_operator_v3.py inspect \
  --url "https://example.com" \
  --output structure.json

预置止赎技能

技能 ID名称变量描述
beca_lookup_001BECA 案件查询case_number搜索 BECA,提取判决
bcpao_lookup_001BCPAO 房产parcel_id获取房产详情和照片
acclaimweb_lien_001留置权搜索party_name搜索已登记的留置权
realforeclose_list_001拍卖列表auction_date获取拍卖日历

技能录制(Cowork 功能)

录制工作原理
  1. 启动浏览器并导航至起始页面
  2. 调用 record_skill(name, domain)
  3. 手动执行工作流
  4. 按 Enter 或 Ctrl+C 停止
  5. 技能会记录以下内容:
    • 所有导航事件
    • 所有点击事件(含选择器)
    • 所有输入事件(含值)
    • 成功标准(推断得出)
录制内容
{
  "skill_id": "abc123def456",
  "name": "BECA Deep Search",
  "domain": "foreclosure",
  "actions": [
    {
      "action_type": "navigate",
      "url": "https://vmatrix1.brevardclerk.us/beca/"
    },
    {
      "action_type": "type",
      "selector": "#caseNumber",
      "value": "{{case_number}}",
      "element_info": {"label": "Case Number", "role": "textbox"}
    },
    {
      "action_type": "click",
      "selector": "button[type='submit']",
      "element_info": {"label": "Search", "role": "button"}
    }
  ],
  "variables": {"case_number": ""},
  "success_criteria": [
    {"type": "element_visible", "selector": ".case-details"}
  ]
}

并行执行(Cowork 功能)

在隔离的浏览器上下文中同时执行多个技能:

executor = ParallelExecutor(max_parallel=5)
executor.launch()

tasks = [
    {"skill": beca_skill, "variables": {"case": "2025-CA-001"}},
    {"skill": beca_skill, "variables": {"case": "2025-CA-002"}},
    {"skill": beca_skill, "variables": {"case": "2025-CA-003"}},
    {"skill": beca_skill, "variables": {"case": "2025-CA-004"}},
    {"skill": beca_skill, "variables": {"case": "2025-CA-005"}},
]

results = executor.execute_parallel(tasks)
# All 5 run simultaneously in separate contexts

DOM 检查(我们的优势)

通过无障碍树获取页面结构(而非截图):

structure = operator.get_page_structure()

# Returns:
{
  "url": "https://example.com",
  "title": "Page Title",
  "elements": [
    {"tag": "BUTTON", "role": "button", "label": "Submit", "testid": "submit-btn"},
    {"tag": "INPUT", "role": "textbox", "label": "Search", "id": "search-input"},
    ...
  ]
}

通过自然语言查找元素:

selector = operator.find_element_semantic("search button")
# Returns: "[data-testid='search-btn']" or "#search-button" or similar

智能路由器集成

操作模型层级成本
页面导航免费(Gemini)$0
元素查找免费(Gemini)$0
技能录制免费(Gemini)$0
技能回放免费(Gemini)$0
错误恢复均衡(Sonnet)$

结果: 95% 以上的操作处于免费层

GitHub Actions 集成

# .github/workflows/browser_agent.yml
name: Browser Agent Daily
on:
  schedule:
    - cron: '0 4 * * *'  # 11 PM EST

jobs:
  scrape:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
          
      - name: Install dependencies
        run: |
          pip install playwright
          playwright install chromium
          
      - name: Run Browser Agent
        run: |
          python src/agents/screen_control_operator_v3.py beca \
            --case "${{ github.event.inputs.case_number }}"

错误恢复

找不到元素时,V3 会尝试多种策略:

  1. data-testid(最可靠)
  2. aria-label(语义化)
  3. role + text(无障碍)
  4. ID(传统方式)
  5. 原始选择器(回退方案)
  6. 文本内容(最后手段)

因此,我们的可靠性达到 100%,而 Cowork 约为 85%。

依赖项

pip install playwright --break-system-packages
playwright install chromium

文件位置

  • 脚本: src/agents/screen_control_operator_v3.py
  • 技能: skills/*.json
  • 技能库: .claude/skills/screen-control-operator-v3/SKILL.md

由 Claude AI Architect + Ariel Shapira 打造
2025 年 12 月 25 日(原版)→ 2026 年 1 月 15 日(V3)
我们是 Claude 创新者团队!

评论

支持 Markdown