Skip to content

Automasi Pelayar

Triggerfish menyediakan kawalan pelayar yang mendalam melalui contoh Chromium yang diurus menggunakan CDP (Chrome DevTools Protocol). Ejen boleh menavigasi web, berinteraksi dengan halaman, mengisi borang, mengambil tangkapan skrin, dan mengautomasikan aliran kerja web -- semuanya di bawah penguatkuasaan dasar.

Seni Bina

Automasi pelayar dibina di atas puppeteer-core, menyambung ke contoh Chromium yang diurus melalui CDP. Setiap tindakan pelayar melalui lapisan dasar sebelum mencapai pelayar.

Triggerfish mengesan pelayar berasaskan Chromium secara automatik termasuk Google Chrome, Chromium, dan Brave. Pengesanan merangkumi laluan pemasangan standard pada Linux, macOS, Windows, dan persekitaran Flatpak.

Alat browser_navigate memerlukan URL http:// atau https://. Skema dalaman pelayar (seperti chrome://, brave://, about:) tidak disokong dan akan mengembalikan ralat dengan panduan untuk menggunakan URL web. :::

Aliran automasi pelayar: Ejen → Alat Pelayar → Lapisan Dasar → CDP → Chromium yang Diurus

Profil pelayar diasingkan per-ejen. Contoh Chromium yang diurus tidak berkongsi kuki, sesi, atau penyimpanan tempatan dengan pelayar peribadi anda. Pengisian automatik kelayakan dilumpuhkan secara lalai.

Tindakan yang Tersedia

TindakanKeteranganContoh Penggunaan
navigatePergi ke URL (tertakluk pada dasar domain)Buka halaman web untuk penyelidikan
snapshotTangkap tangkapan skrin halamanDokumentasikan keadaan UI, ekstrak maklumat visual
clickKlik elemen pada halamanHantar borang, aktifkan butang
typeTaip teks ke dalam medan inputIsi kotak carian, lengkapkan borang
selectPilih pilihan dari menu lungsurPilih dari menu
uploadMuat naik fail ke borangLampirkan dokumen
evaluateJalankan JavaScript dalam konteks halaman (dalam kotak pasir)Ekstrak data, manipulasi DOM
waitTunggu elemen atau syaratPastikan halaman telah dimuat sebelum berinteraksi

Penguatkuasaan Dasar Domain

Setiap URL yang dinavigasi oleh ejen diperiksa terhadap senarai benarkan dan senarai tolak domain sebelum pelayar bertindak.

Konfigurasi

yaml
browser:
  domain_policy:
    allow:
      - "*.example.com"
      - "github.com"
      - "docs.google.com"
      - "*.notion.so"
    deny:
      - "*.malware-site.com"
    classification:
      "*.internal.company.com": INTERNAL
      "github.com": INTERNAL
      "*.google.com": INTERNAL

Cara Dasar Domain Berfungsi

  1. Ejen memanggil browser.navigate("https://github.com/org/repo")
  2. Hook PRE_TOOL_CALL diaktifkan dengan URL sebagai konteks
  3. Enjin dasar memeriksa domain terhadap senarai benarkan/tolak
  4. Jika ditolak atau tidak dalam senarai benarkan, navigasi disekat
  5. Jika dibenarkan, pengkelasan domain dicari
  6. Taint sesi ditingkatkan agar sepadan dengan pengkelasan domain
  7. Navigasi diteruskan

KESELAMATAN Jika domain tidak berada dalam senarai benarkan, navigasi disekat secara lalai. LLM tidak boleh menindih dasar domain. Ini menghalang ejen dari melawat tapak web sewenang-wenangnya yang boleh mendedahkan data sensitif atau mencetuskan tindakan yang tidak diingini. :::

Tangkapan Skrin dan Pengkelasan

Tangkapan skrin yang diambil melalui browser.snapshot mewarisi tahap taint semasa sesi. Jika sesi ditaint pada CONFIDENTIAL, semua tangkapan skrin dari sesi tersebut diklasifikasikan sebagai CONFIDENTIAL.

Ini penting untuk dasar output. Tangkapan skrin yang diklasifikasikan pada CONFIDENTIAL tidak boleh dihantar ke saluran PUBLIC. Hook PRE_OUTPUT menguatkuasakan ini di sempadan.

Kandungan yang Dikikis dan Keturunan

Apabila ejen mengekstrak kandungan dari halaman web (melalui evaluate, membaca teks, atau menghurai elemen), data yang diekstrak:

  • Diklasifikasikan berdasarkan tahap pengkelasan yang ditetapkan untuk domain
  • Mencipta rekod keturunan yang menjejaki URL sumber, masa pengekstrakan, dan pengkelasan
  • Menyumbang kepada taint sesi (taint meningkat agar sepadan dengan pengkelasan kandungan)

Penjejakan keturunan ini bermakna anda sentiasa boleh mengesan asal-usul data, walaupun jika ia dikikis dari halaman web minggu yang lalu.

Kawalan Keselamatan

Pengasingan Pelayar Per-Ejen

Setiap ejen mendapat profil pelayarnya sendiri. Ini bermakna:

  • Tiada kuki dikongsi antara ejen
  • Tiada penyimpanan tempatan atau penyimpanan sesi yang dikongsi
  • Tiada akses ke kuki atau sesi pelayar hos
  • Pengisian automatik kelayakan dilumpuhkan secara lalai
  • Sambungan pelayar tidak dimuatkan

Integrasi Hook Dasar

Semua tindakan pelayar melalui hook dasar standard:

HookBila Ia DiaktifkanApa yang Diperiksa
PRE_TOOL_CALLSebelum setiap tindakan pelayarSenarai benarkan domain, dasar URL, kebenaran tindakan
POST_TOOL_RESPONSESelepas pelayar mengembalikan dataKelaskan respons, kemas kini taint sesi, cipta keturunan
PRE_OUTPUTApabila kandungan pelayar meninggalkan sistemSemakan pengkelasan terhadap destinasi

Had Sumber

  • Tamat masa navigasi menghalang pelayar dari tergantung tanpa batas waktu
  • Had saiz muat halaman menghalang penggunaan memori yang berlebihan
  • Had tab serentak dikuatkuasakan per-ejen

Kawalan Perusahaan

Penerapan perusahaan mempunyai kawalan automasi pelayar tambahan:

KawalanKeterangan
Pengkelasan peringkat domainDomain intranet diklasifikasikan secara automatik sebagai INTERNAL
Senarai domain yang disekatSenarai domain yang dilarang yang diurus oleh pentadbir
Dasar pengekalan tangkapan skrinBerapa lama tangkapan skrin yang diambil disimpan
Pengelogan audit sesi pelayarPengelogan penuh semua tindakan pelayar untuk pematuhan
Lumpuhkan automasi pelayarPentadbir boleh melumpuhkan alat pelayar sepenuhnya untuk ejen atau peranan tertentu

Contoh: Aliran Kerja Penyelidikan Web

Aliran kerja ejen tipikal menggunakan automasi pelayar:

1. Pengguna: "Selidiki harga pesaing di example-competitor.com"

2. Ejen: browser.navigate("https://example-competitor.com/pricing")
         -> PRE_TOOL_CALL: domain "example-competitor.com" diperiksa terhadap senarai benarkan
         -> Dibenarkan, diklasifikasikan sebagai PUBLIC
         -> Navigasi diteruskan

3. Ejen: browser.snapshot()
         -> Tangkapan skrin diambil, diklasifikasikan pada tahap taint sesi (PUBLIC)

4. Ejen: browser.evaluate("document.querySelector('.pricing-table').innerText")
         -> Teks diekstrak, diklasifikasikan sebagai PUBLIC
         -> Rekod keturunan dicipta: sumber=example-competitor.com/pricing

5. Ejen: Meringkaskan maklumat harga dan mengembalikan kepada pengguna
         -> PRE_OUTPUT: Data PUBLIC ke saluran pengguna -- DIBENARKAN

Setiap langkah direkodkan, diklasifikasikan, dan boleh diaudit.