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
- 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.
- Mulai antarmuka terminal dengan
ax-code. - 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. - 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. - Minta agen membuka sebuah halaman. Dengan bawaan produk, navigasi tidak dibatasi. Daftar origin yang dikonfigurasi atau dikelola mempersempitnya.
- 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:
- Buka
chrome://flags/#enable-webmcp-testing. - Setel bendera ke Diaktifkan.
- 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_pagesuntuk 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.
Kegagalan navigasi
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:
- Navigasi ke halaman dan ambil cuplikan — pohon a11y adalah garis dasar struktural. Navigasi dan pembacaan memakai persetujuan yang sudah ada.
- Lakukan tindakan yang gagal sekali, di bawah persetujuan interaksi yang sudah ada.
- 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.
- Putusan: PASS, FAIL, atau BLOCKED dengan kemampuan yang hilang disebutkan. Pengakuan alat bukan bukti keberhasilan aplikasi.
- 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.