Dapatkan AX Code · GratisDokumentasi

Halaman ini diterjemahkan dari dokumentasi bahasa Inggris. Perintah, pengenal, dan contoh tidak diubah. Runtime 7.24.4 · SDK 2.6.7. Sumber bahasa Inggris

Jembatan peramban WebMCP

Status: Eksperimental Cakupan: publik, kondisi terkini Terakhir ditinjau: 2026-10-10 Pemilik: pengelola AX Code

Jembatan WebMCP memungkinkan agen membuka halaman di jendela Chrome yang terisolasi, membacanya, dan (opsional) bertindak padanya. Fitur ini eksperimental, mati secara bawaan, dan membutuhkan Chrome 150 atau yang lebih baru.

WebMCP adalah standar web yang diusulkan. Sebuah halaman dapat mendaftarkan alat terstruktur — nama, deskripsi, dan skema masukan — agar agen dapat memanggil tindakan itu secara langsung. AX Code memakai alat yang didaftarkan halaman, dan juga dapat membaca serta bertindak pada halaman itu sendiri.

Codex dan ChatGPT Work mendokumentasikan versi bawaan peramban mereka untuk standar yang sama sebagai alat situs. Halaman itu menunjukkan cara aplikasi desktop mereka mengaktifkan WebMCP, cara pengunjung memeriksa alat yang ditawarkan situs, dan cara penulis situs mendaftarkan alat. Langkah di bawah ini adalah milik AX Code.

Aktifkan dengan Chrome

  1. Pasang Google Chrome 150 atau yang lebih baru. Chromium pada versi mayor yang sama juga berfungsi. AX Code memulai jendela Chrome sendiri pada profil baru dan membiarkan jendela Chrome yang sudah terbuka tidak tersentuh.
  2. Mulai antarmuka terminal dengan ax-code.
  3. Klik chip WebMCP di kaki bilah samping, atau chip yang sama di kaki prompt Beranda, atau jalankan /webmcp. Klik atau perintah itu adalah persetujuan. Tidak ada peramban yang dimulai sebelumnya. AX Code mula-mula memeriksa, tanpa memulai peramban, apakah Chrome 150 atau yang lebih baru terpasang di lokasi biasa dan memperingatkan Anda jika tidak; pemeriksaan itu bersifat saran dan tidak pernah memblokir percobaan. Pilihan Anda disimpan ke konfigurasi pengguna, jadi jembatan aktif kembali pada mulai berikutnya tanpa klik lain.
  4. AX Code membuka jendela terisolasi itu dengan fitur WebMCP diaktifkan (--enable-features=WebMCP). Jendela itu tidak menyimpan login sampai Anda masuk di sana secara manual.
  5. Minta agen membuka sebuah halaman. Dengan bawaan produk, navigasi tidak dibatasi. Daftar origin yang dikonfigurasi atau dikelola mempersempitnya.
  6. Klik chip lagi untuk mematikan jembatan. Itu mengakhiri pemberian sesi sementara; persetujuan tersimpan tetap ada sampai Anda mencabutnya di pengaturan MCP.

Chip menampilkan [act] saat tingkat interaksi menyala. Bawaan produk mencakup tingkat itu. Untuk mematikannya, setel interact ke false pada profil webmcp entri. Entri yang Anda simpan lebih awal mempertahankan tingkat yang dimilikinya.

ax-code mcp webmcp mencetak cuplikan konfigurasi. Perintah itu tidak memasang paket, menghubungkan server, atau menulis berkas. Tambahkan --interact untuk mencetak entri dengan tingkat interaksi menyala, atau --executable-path /absolute/path/to/chrome untuk menamai biner Chrome 150+ tertentu. Saat jalur itu disetel, AX Code memeriksa versi mayor biner sebelum peluncuran.

Alat di jendela Chrome yang Anda buka sendiri

Jendela terisolasi di atas sudah mengaktifkan WebMCP. Untuk mencoba alat halaman di profil Chrome yang Anda pakai saat membangun situs, ikuti panduan WebMCP Chrome:

  1. Buka chrome://flags/#enable-webmcp-testing.
  2. Setel bendera ke Diaktifkan.
  3. Luncurkan ulang Chrome.

Bendera itu berlaku untuk profil Chrome yang Anda buka. Jembatan AX Code tetap dimulai dari chip.

Petunjuk prompt

Saat jembatan mati, prompt yang menyebut URL atau server lokal (misalnya localhost:3000) menampilkan penunjuk satu baris ke chip dan /webmcp. Penunjuk muncul paling banyak sekali per sesi dan tiga kali secara total, dan tidak pernah mengubah apa yang dikirim ke agen.

Yang dapat dilakukan agen

Tingkat Alat Persetujuan
Halaman daftar, buka, navigasi, tutup halaman; jalankan alat yang didaftarkan halaman melalui WebMCP setiap panggilan kecuali cakupan yang didukung sudah disimpan
Baca cuplikan halaman, tangkapan layar, konsol, metadata permintaan satu pemberian per origin per sesi, atau persetujuan baca yang disimpan
Interaksi klik, arahkan kursor, tunggu, isi, isi formulir, tekan tombol, jawab dialog lihat di bawah

Konten halaman tidak tepercaya: sebuah halaman dapat mencoba mengarahkan agen. Keluaran diberi label asal dan dibatasi ukurannya.

Simpan persetujuan

Prompt yang memenuhi syarat menawarkan Tambahkan ke daftar izin WebMCP dengan latar merah. Pilih itu, tinjau cakupannya, lalu pilih Tambahkan dan izinkan. Persetujuan tersimpan berlaku untuk proyek ini di mesin ini dan bertahan saat peramban tersambung kembali serta saat AX Code dimulai ulang.

  • Daftar halaman menyetujui list_pages untuk peramban AX Code, termasuk judul dan URL dari semua origin yang terbuka. Itu tidak menyetujui konten halaman.
  • Navigasi menyetujui pembukaan atau navigasi ke satu origin yang persis.
  • Baca menyetujui cuplikan, tangkapan layar, konsol, dan metadata jaringan pada satu origin yang persis. Origin dan port lain membutuhkan persetujuan sendiri.
  • Tutup menyetujui penutupan halaman mana pun yang saat ini berada pada satu origin yang persis, termasuk halaman dengan pekerjaan yang belum disimpan. Ini pilihan terpisah: persetujuan navigasi dan baca tidak memberikannya. Origin target diperiksa lagi sebelum penutupan.

Setelah persetujuan baca pertama, AX Code melanjutkan pembacaan itu dalam panggilan yang sama setelah memeriksa halaman lagi. Perubahan halaman atau jembatan menghentikan panggilan dan memerlukan pembacaan baru. Operasi peramban yang gagal tidak diputar ulang.

Pembatasan navigasi dan kebijakan administrator tetap berlaku. Menyimpan persetujuan tidak menyunting allowedOrigins. Pengetikan, klik yang berkonsekuensi, dialog, dan alat yang didaftarkan halaman mempertahankan persetujuan yang sudah ada. Izinkan sekali tetap bersifat sementara; hitungan mundur tidak pernah menyimpan persetujuan menetap.

Pilih tautan Daftar izin WebMCP di samping chip WebMCP (kaki bilah samping sesi dan kaki prompt Beranda), jalankan /webmcp-allowlist, atau buka /mcp, pilih jembatan, lalu tekan Ctrl+G. Klik ganda sebuah entri (atau tekan Enter dua kali) untuk mencabutnya; aktivasi pertama menandai baris dan aktivasi kedua dalam beberapa detik mengonfirmasi, jadi satu klik tidak pernah mencabut. Baris bersihkan mencabut semua persetujuan tersimpan untuk jembatan itu di proyek ini dengan cara yang sama. Daftar panjang dapat digulir. Tekan Escape atau klik di luar panel untuk menutupnya.

Kotak pencarian juga menambahkan persetujuan. Ketik origin https:// yang persis (atau http://localhost), lalu pilih baris navigasi, baca, atau tutup untuk menyimpannya; baris daftar halaman ditawarkan sampai tersimpan. Jembatan harus tersambung: persetujuan eksplisit terikat pada identitas jembatan yang berjalan dan diperiksa pada setiap panggilan persis seperti yang disimpan dari prompt, jadi daftar origin terkelola, sakelar tingkat baca, dan kebijakan administrator tetap berlaku. Mematikan chip WebMCP memutus peramban dan mempertahankan pilihan tersimpan.

Penyimpanan lokal adalah ~/.local/share/ax-code/webmcp-approvals.json secara bawaan (penggantian direktori data XDG berlaku). Persetujuan terikat pada identitas jembatan; mengubah peluncuran atau profil perambannya memerlukan persetujuan baru.

Kesalahan navigasi dapat terjadi setelah halaman terbuka atau berubah. Kesalahan melaporkan kategori waktu habis, jaringan, atau halaman hilang yang dikenali jika tersedia, tanpa menggemakan teks kesalahan jembatan mentah. Periksa list_pages sebelum memutuskan apakah akan menavigasi lagi. Kesalahan navigasi tidak menghapus persetujuan tersimpan.

Tingkat interaksi

Mengarahkan kursor dan klik biasa berjalan di bawah satu pemberian per origin, berlaku untuk 20 tindakan, lalu prompt yang sama kembali.

  • Pengetikan, penekanan tombol, dialog, tautan, klik ganda, dan klik yang namanya terdengar berkonsekuensi (kirim, bayar, hapus, otorisasi, …) bertanya setiap kali, menampilkan target dan nilai lengkap.
  • Bidang yang namanya tampak seperti kredensial diberi label dan disamarkan. Nilai yang berbentuk seperti kunci API atau kunci privat ditolak: ketik kredensial sendiri.
  • Tindakan membutuhkan cuplikan baru dari halaman yang sama; halaman yang berpindah atau elemen yang tidak dikenal ditolak. Tiga penolakan dalam satu giliran menghentikan tindakan selanjutnya.

Pemeriksaan berbasis nama adalah heuristik, bukan jaminan. Prompt adalah kendali, jadi bacalah.

Bekerja dengan halaman yang sudah ada

Minta AX Code memeriksa kemampuan halaman, mengembangkan alat bawaannya, atau mendiagnosis perilaku tertentu. Alat browser_workflow mengelompokkan tugas ini tanpa mengharuskan Anda memulai server uji untuk pengamatan biasa. Aktifkan jembatan terlebih dahulu dan identifikasi halaman yang dimaksud; tidak satu pun tindakan ini membuka halaman, masuk, mengubah profil peramban, atau menjadwalkan pekerjaan mendatang.

Misalnya: “Periksa alat pada aplikasi lokal saya dan tunjukkan fungsi aplikasi mana yang sesuai dengannya,” atau “Ambil halaman ini sebelum saya mereproduksi hasil kosong, lalu bandingkan kesalahannya dan arahkan saya ke berkas sumber kandidat.”

Periksa alat bawaan dan sumbernya

Panggil status dengan server, pageId, dan origin yang persis untuk melihat alat yang benar-benar diterima serta ketersediaan bawaan/cuplikan. Daftar kosong tidak membuktikan bahwa bingkai yang tidak dapat diakses tidak memiliki alat. Konektor yang sudah ada mungkin lebih cocok untuk tugas yang tidak membutuhkan konteks halaman.

{
  "action": "inventory",
  "server": "webmcp",
  "pageId": 1,
  "origin": "http://localhost:3000",
  "sourceFiles": ["src/tools.ts", "public/search.html"]
}

Simpan inventoryId yang dikembalikan. Berikan sebagai baselineId pada panggilan inventaris berikutnya untuk melihat alat yang ditambah/dihapus dan bidang skema yang berubah. Berkas diperiksa izinnya secara eksplisit, berada di dalam repositori, dan dibatasi. Pendaftaran imperatif statis dan atribut formulir HTML yang dikutip menghasilkan kandidat sumber; nama terhitung, definisi duplikat, dan templat yang tidak didukung tetap belum terselesaikan atau ambigu. Nama dan skema yang cocok menguatkan kandidat, tetapi tidak membuktikan bahwa peramban memuat revisi sumber itu.

Hasilkan integrasi aplikasi

Gunakan author untuk mengembalikan kode integrasi yang dapat ditinjau:

{
  "action": "author",
  "name": "find_products",
  "description": "Find products matching a query in the current catalog.",
  "module": "./src/catalog.js",
  "exportName": "findProducts",
  "schema": {
    "type": "object",
    "properties": { "query": { "type": "string" } },
    "required": ["query"]
  },
  "format": "imperative",
  "effect": "read"
}

Fungsi yang dinamai harus berupa ekspor langsung. Pendaftaran yang dihasilkan menerima AbortSignal untuk pembersihan komponen/rute. Setel acceptsSignal: true hanya ketika fungsi aplikasi menerima argumen {signal} kedua dan menghormatinya. format: "declarative" mengembalikan formulir plus pengikatan modul untuk pengiriman manusia; hubungkan peristiwa webmcp-result ke UI aplikasi. Bidang primitif didukung; batasan skema yang tidak didukung ditolak alih-alih dibuang diam-diam. Tinjau validasi aplikasi, otorisasi, dan efek aktual sebelum menerapkan salah satu templat. Suntingan bidang dapat memicu simpan otomatis bahkan ketika formulir membutuhkan pengiriman manusia.

Periksa eksekusi dan pemilihan model secara terpisah

Langkah contract yang sudah ada memverifikasi masukan tetap dan hasil yang diharapkan. Tambahkan {"action":"tool_presence","name":"admin_reset","present":false} setelah perubahan rute atau peran untuk memeriksa bahwa operasi yang tidak tersedia sudah tidak terdaftar. present: true juga dapat menyematkan descriptorHash. Ini adalah titik pemeriksaan siklus hidup, bukan jejak peristiwa. Regresi yang diekspor mencakup pemeriksaan yang sama.

Gunakan evaluasi pemilihan terpisah untuk mengetahui apakah sebuah model memilih alat dan argumen yang tepat:

{
  "action": "selection_eval",
  "inventoryId": "<returned inventory UUID>",
  "cases": [
    { "task": "Find AX products", "expected": { "name": "find_products", "arguments": { "query": "AX" } } },
    { "task": "Delete every product", "expected": { "name": null, "arguments": {} } }
  ],
  "repeats": 2
}

Model API yang dipilih hanya menerima tugas dan katalog yang ditangkap, tanpa alat eksekusi atau jawaban yang diharapkan. Panggilan disetujui dan dibatasi pada 12 kasus, tiga pengulangan, dan batas waktu evaluasi dua menit. Laporan mencatat identitas model, hash rangkaian, jumlah pilihan/argumen persis yang terpisah, ketepatan gabungan, dan hasil yang tidak diketahui. Kegagalan tetap berada di penyebut. Model CLI tidak tersedia untuk evaluasi ini karena dapat menjalankan alatnya sendiri. Skor pemilihan tidak membuktikan kebenaran alat atau memenuhi syarat Arena.

Diagnosis sebelum dan sesudah tindakan

Panggil observe dengan target halaman yang sama, sourceFiles opsional, dan assertions eksplisit memakai skema peran/nama serta count/value/checked/disabled yang sudah ada. Lakukan tindakan yang diminta sekali melalui alat yang disetujui atau secara manual. Lalu panggil {"action":"diagnose","observationId":"<returned UUID>"}. Hasilnya membandingkan hasil asersi, hash cuplikan, delta konsol dan metadata permintaan yang dibatasi, perubahan inventaris semantik, dan kandidat sumber. Korelasi adalah bukti untuk diselidiki, bukan akar penyebab yang terbukti. Tanpa asersi statusnya adalah observed, bukan pass.

Garis dasar hanya disimpan dalam sesi runtime saat ini, kedaluwarsa setelah 30 menit, dan dibatasi 16 per sesi. Perubahan koneksi/lokasi halaman membatalkan pemakaian ulang. Jembatan yang disematkan tidak dapat mengenali pemuatan ulang URL yang sama, jadi perbandingan ini tetap bersifat nasihat. Hanya hash lokasi halaman dan cuplikan yang dipertahankan; teks diagnostik terbatas dan deskriptor alat adalah bukti yang tidak tepercaya.

Untuk masalah localhost yang dapat direproduksi, promote mengambil ID pengamatan dan manifest normal yang eksplisit berisi perintah server uji lokal dan langkah-langkahnya. Ia membekukan skenario terkendali yang baru. Hasil pengamatan tidak pernah disalin ke penerimaan: jalankan kontrol yang gagal sebelum menyunting dan kualifikasikan jalankan yang sudah diperbaiki melalui alur kerja yang sudah ada.

Ulangi tugas pengamatan harian

Resep sesuai permintaan memeriksa halaman yang sudah ada tanpa navigasi atau penjadwalan:

{
  "action": "recipe",
  "server": "webmcp",
  "pageId": 1,
  "definition": {
    "version": 1,
    "name": "Preview health",
    "origin": "http://localhost:3000",
    "assertions": [{ "locator": { "role": "status", "name": "Ready" }, "property": "count", "equals": 1 }]
  }
}

Bawaannya hanya cuplikan. queries opsional berisi name alat yang persis, descriptorHash, objek input, resultPath, dan equals. Mereka memanggil alat aplikasi sungguhan di bawah persetujuan per panggilan yang sudah ada; petunjuk hanya-baca tidak menyatakan efek. Hasil secara eksplisit membedakan pengamatan cuplikan dari panggilan aplikasi dengan efek yang belum diverifikasi, dan memeriksa ulang cuplikan setelah kueri. Simpan definisi yang sudah ditinjau, bukan konten atau kredensial yang ditangkap. Definisi tidak membawa izin dan tidak pernah menjadi tanda terima Arena. Lulus hanya berarti pengamatan yang dinyatakan cocok; data yang hilang tidak dapat memenuhi pemeriksaan.

Daftarkan alat secara manual

Minta agen menambahkan alat yang memakai ulang logika yang sudah dimiliki halaman, atau daftarkan satu dari JavaScript halaman. Panduan Chrome mencakup API imperatif dan API formulir deklaratif. Alat hanya-baca minimal tampak seperti ini:

if (typeof document.modelContext?.registerTool === "function") {
  await document.modelContext.registerTool({
    name: "read_heading",
    description: "Read the main heading of the current page.",
    inputSchema: {
      type: "object",
      properties: {},
      additionalProperties: false,
    },
    annotations: { readOnlyHint: true },
    execute: async () => ({
      heading: document.querySelector("h1")?.textContent ?? "",
    }),
  })
}

Agen yang kompatibel kemudian dapat menemukan read_heading pada halaman itu. Halaman alat situs OpenAI menelusuri gagasan yang sama dari sisi Codex dan ChatGPT Work, termasuk cara peramban bawaan mereka mencantumkan alat yang disediakan situs.

Batasan

Tidak ada skrip, unggahan, unduhan, cookie, isi permintaan, koordinat, atau penyeretan. Administrator dapat menonaktifkan jembatan atau salah satu tingkat dengan persyaratan webmcp yang dikelola (allow, allowRead, allowInteract, allowedOrigins); konfigurasi proyek dan pengguna tidak dapat melonggarkannya.

Server yang Anda tambahkan dengan ax-code mcp add adalah jalur kepercayaan yang berbeda. Lihat Integrasi MCP.

Menelusuri kesalahan halaman localhost dalam lima langkah

Untuk halaman yang tampil salah, kontrol yang tidak melakukan apa pun, atau permintaan yang gagal:

  1. Navigasi ke halaman dan ambil cuplikan — pohon a11y adalah garis dasar struktural. Navigasi dan pembacaan memakai persetujuan yang sudah ada.
  2. Lakukan tindakan yang gagal sekali, di bawah persetujuan interaksi yang sudah ada.
  3. Baca delta: kesalahan konsol dan metadata jaringan (metode, URL, status, jenis — isi permintaan dan respons tetap di luar cakupan) di sekitar tindakan. Untuk keadaan asinkron, tunggu; jangan pernah mengulangi tindakan pemicu.
  4. Putusan: PASS, FAIL, atau BLOCKED dengan kemampuan yang hilang disebutkan. Pengakuan alat bukan bukti keberhasilan aplikasi.
  5. Jika kegagalan localhost dapat dinyatakan sebagai asersi terstruktur, bekukan sebagai skenario browser_workflow (di bawah), catat kontrol yang gagal, dan jalankan hash yang sama dua kali setelah perbaikan.

Lampirkan bukti pada laporan bug

Untuk kegagalan localhost yang diselidiki melalui skenario beku, bundel bukti membuat laporan dapat ditinjau: nama dan hash skenario, hasil asersi yang gagal (tanpa konten halaman yang ditangkap), ID tanda terima dari browser_workflow inspect, hash cuplikan, delta kesalahan konsol dan metadata jaringan yang dibatasi, tautan sumber dengan label explicit/local_map/unresolved, dan origin. Sertakan hanya keluaran yang dibatasi runtime dan disunting runtime — jangan pernah isi permintaan atau respons, header, cookie, penyimpanan, konten halaman, atau nilai berbentuk kredensial. ID tanda terima dan data tanda terima yang disalin hanyalah referensi; keadaan tanda terima yang otoritatif tetap dimiliki runtime.

Reproduksi dan verifikasi perubahan pengembangan

Alat browser_workflow membekukan langkah penerimaan sebelum Anda menyunting aplikasi web, menjalankannya melalui jembatan WebMCP yang tersambung, dan mencatat asersi terstruktur. Aktifkan jembatan terlebih dahulu. Lingkungan pertama yang didukung adalah server HTTP sekali pakai pada 127.0.0.1; setiap jalankan mengalokasikan port berbeda dan direktori data sementara, plus konteks peramban terisolasi yang baru. Profil peramban menetap ditolak. Konteks kosong dipertahankan oleh jembatan hulu sampai terputus; setelah 32 jalankan pada satu koneksi, sambungkan kembali jembatan sebelum melanjutkan. Alur kerja tidak pernah memakai ulang cookie atau penyimpanan mereka.

Minta agen membekukan skenario dengan action: "freeze". Misalnya, test/browser-server.mjs milik proyek yang menerima argumen port dapat memakai:

{
  "action": "freeze",
  "manifest": {
    "version": 1,
    "name": "Search returns a matching result",
    "server": "node test/browser-server.mjs {port}",
    "path": "/",
    "setup": [],
    "reset": [],
    "cleanup": [],
    "steps": [
      { "action": "fill", "locator": { "role": "textbox", "name": "Search" }, "value": "example" },
      {
        "action": "assert",
        "assertion": {
          "locator": { "role": "status", "name": "One result" },
          "property": "count",
          "equals": 1
        }
      }
    ]
  }
}

Simpan hash yang dikembalikan. Jalankan dengan {"action":"run","hash":"<hash>","server":"webmcp"} (pakai nama jembatan yang tersambung). Reproduksi kegagalan, buat perubahan, dan jalankan hash yang sama dua kali. Setiap jalankan memulai server yang dinyatakan, membuka halamannya sendiri, memeriksa langkah, menutup halaman, dan menghentikan servernya. Perintah siklus hidup berjalan di akar repositori melalui izin shell biasa. {port} mengembang menjadi port yang dialokasikan; {data} mengembang menjadi direktori sementara yang dikutip. Perintah penyiapan, reset, dan pembersihan harus berakhir dalam 15 detik; kesiapan memiliki batas 15 detik dan jalankan peramban memiliki batas 120 detik. Tindakan peramban mempertahankan izin dan anggaran interaksi yang sudah ada.

Langkah yang didukung adalah klik, arahkan kursor, isi, asersi terstruktur, dan pemeriksaan kontrak alat halaman. Penunjuk memakai peran persis dan nama yang dapat diakses. Tindakan dengan nol atau beberapa kecocokan berhenti sebagai unknown; tidak ada UID tebakan atau cadangan CSS/skrip. Asersi membandingkan jumlah, nilai, keadaan tercentang, atau keadaan nonaktif. Properti keadaan yang tidak ada dianggap tidak diketahui. Untuk rendering asinkron, tambahkan timeoutMs (0-10000, bawaan 0) ke langkah assert. Pelari melakukan polling cuplikan terstruktur yang baru sampai asersi cocok atau batas waktu habis; ia tidak pernah mengulangi klik atau pengisian sebelumnya. Batas waktu dibekukan bersama skenario dan dipertahankan dalam uji yang diekspor. Skenario dibatasi pada 32 langkah dan 32 KiB.

inspect mengembalikan manifes beku dan tanda terima runtime. Tanda terima mengikat skenario ke revisi/konten repositori, hasil operasi, hash cuplikan, dan metadata konsol/jaringan yang dibatasi. Sumber yang berubah, operasi yang ditolak, bukti yang hilang, waktu habis, dan pembersihan yang tidak lengkap tidak dapat lulus. Hasil ini memvalidasi asersi yang dinyatakan; mereka tidak membuktikan setiap perilaku aplikasi. Keadaan beku dan tanda terima otoritatif hidup dalam sesi runtime saat ini. Setelah dimulai ulang, bekukan dan kualifikasikan lagi; tanda terima JSON yang disalin tidak diterima sebagai otoritas runtime.

Ekspor uji regresi

{"action":"export","hash":"<hash>"} mengembalikan modul Node mandiri yang memakai playwright-core. Simpan kode yang dikembalikan sebagai uji proyek dan jalankan dengan AX_TEST_WEBMCP_CHROME yang menunjuk ke Chrome. Uji itu memulai fixture yang sama dan memakai konteks peramban baru, penunjuk peran/nama yang stabil, dan asersi beku. Benar-benar jalankan uji yang diekspor sebelum menyebutnya tervalidasi. Uji yang diekspor adalah artefak regresi independen; keluarannya bukan tanda terima Arena. Langkah kontrak alat halaman memakai protokol WebMCP bawaan Chrome dengan hash deskriptor persis dan keluaran yang diharapkan, tanpa mengevaluasi skrip halaman sembarang. Chrome harus mendukung protokol eksperimental itu untuk ekspor kontrak.

Kembangkan kontrak alat halaman dan selidiki kegagalan

Dengan halaman terbuka, {"action":"contracts","server":"webmcp","pageId":1} mengembalikan deskriptor terdaftar dan hash deskriptor yang persis. Bekukan langkah contract yang berisi name, descriptorHash, input, resultPath, dan equals. Perubahan hash menggagalkan pemeriksaan. Setel expectError: true untuk masukan negatif: hanya kesalahan eksekusi alat halaman yang terkonfirmasi yang memenuhinya; panggilan yang dibatalkan, penolakan izin, dan penyelesaian yang hilang adalah tidak diketahui. Tambahkan asersi setelah mutasi untuk memeriksa keadaan halaman yang dihasilkan sekaligus nilai kembali.

Tindakan template menerima name, module aplikasi relatif, exportName eksplisit, dan schema. Ia memverifikasi ekspor lokal ada dan mengembalikan kerangka pendaftaran. Tinjau terhadap validasi masukan aplikasi, otorisasi, dan logika bisnis sebelum mengaktifkannya; alat tidak dapat menetapkan jaminan itu dari nama fungsi yang diekspor.

Daftar sources opsional menamai berkas lokal repositori dengan line berbasis satu dan column berbasis nol, serta opsional berkas map lokal. Jalankan yang gagal mengembalikan diagnostik terbatas dan tautan sumber berlabel explicit, local_map, atau unresolved. Pemetaan bersifat nasihat, bukan bukti akar penyebab atau asersi yang lulus. Peta jarak jauh, jalur di luar repositori, dan berkas di atas 1 MiB tidak dibaca. Bukti jaringan peramban tetap hanya metadata.

Wajibkan bukti peramban di Arena implementasi

Berikan browserScenario: "<hash>" dengan mode: "implement". Bekukan skenario dan catat asersi gagal yang nyata pada basis bersih saat ini sebelum memulai Arena. Setiap kandidat menerima kontrak beku itu di pohon kerja terisolasinya dan harus menjalankannya dua kali dengan sukses melalui jembatan terisolasi yang tersambung. Aktivasi peramban dan izin tetap diawasi. Akses jembatan yang hilang, konten basi, hasil tidak diketahui, atau tanda terima yang hilang mencegah promosi, bahkan jika pemeriksaan repositori lulus. Verifikasi kode biasa dan pemeriksaan mutasi tetap berjalan, dan tidak ada kandidat yang digabung secara otomatis.

Pilih bukti secara efisien

Alat WebMCP bawaan menggambarkan operasi aplikasi; Chrome DevTools MCP menyediakan pemeriksaan dan otomasi peramban. Utamakan alat terdaftar halaman untuk operasi aplikasi yang eksplisit, lalu verifikasi hasilnya dan keadaan halaman yang dihasilkan. Pakai cuplikan aksesibilitas untuk teks dan penunjuk elemen yang stabil. Untuk tata letak, kanvas, atau konten yang hanya gambar, ambil tangkapan layar: pangkas ke uid cuplikan baru atau pakai JPEG dengan kualitas yang dikurangi agar tetap dalam batas sebaris. Menafsirkan piksel membutuhkan model yang mampu melihat. Baik WebMCP maupun daftar alat DevTools MCP yang didokumentasikan tidak menyediakan alat OCR khusus; teks gambar yang disimpulkan bersifat nasihat dan tidak dapat memenuhi asersi penerimaan terstruktur.

Persempit pembacaan konsol dengan types dan pageSize; persempit metadata jaringan dengan resourceTypes dan pageSize. Tanda terima alur kerja mempertahankan garis dasar pra-tindakan dan delta terbatas agar kesalahan yang muncul dari reproduksi lebih mudah ditemukan. Isi jaringan dan evaluasi sembarang tetap di luar permukaan yang diberikan jembatan. Jejak kinerja, emulasi, Lighthouse, rekaman layar, memori, dan alat ekstensi di DevTools MCP hulu adalah kemampuan terpisah dan tidak diekspos oleh profil ini.

Lihat panduan penelusuran kesalahan WebMCP Chrome dan referensi alat DevTools MCP hulu. Cabang main hulu dapat berbeda dari jembatan yang disematkan AX Code; hanya skema alat lokal yang menggambarkan argumen yang didukung.