Trang này được dịch từ tài liệu tiếng Anh. Lệnh, định danh và ví dụ giữ nguyên. Runtime 7.24.4 · SDK 2.6.7. Bản tiếng Anh
Cầu nối trình duyệt WebMCP
Trạng thái: Thử nghiệm Phạm vi: công khai, trạng thái hiện tại Xem xét lần cuối: 2026-10-10 Chủ sở hữu: người bảo trì AX Code
Cầu nối WebMCP cho phép tác nhân mở trang trong một cửa sổ Chrome tách biệt, đọc các trang đó và (tùy chọn) thao tác trên chúng. Tính năng này đang thử nghiệm, tắt theo mặc định, và cần Chrome 150 trở lên.
WebMCP là một chuẩn web được đề xuất. Một trang có thể đăng ký các công cụ có cấu trúc — tên, mô tả và lược đồ đầu vào — để tác nhân gọi trực tiếp các hành động đó. AX Code dùng các công cụ mà trang đăng ký, đồng thời cũng có thể đọc và thao tác trên chính trang.
Codex và ChatGPT Work ghi lại phiên bản chuẩn này trên trình duyệt tích hợp của họ dưới tên công cụ trang. Trang đó cho thấy ứng dụng máy tính của họ bật WebMCP thế nào, khách truy cập kiểm tra các công cụ một trang cung cấp ra sao, và tác giả trang đăng ký một công cụ như thế nào. Các bước bên dưới là của AX Code.
Bật bằng Chrome
- Cài Google Chrome 150 trở lên. Chromium cùng phiên bản chính cũng dùng được. AX Code mở cửa sổ Chrome riêng trên một hồ sơ mới và không đụng tới cửa sổ Chrome đang mở.
- Khởi động giao diện terminal bằng
ax-code. - Nhấp chip WebMCP ở chân thanh bên, hoặc chip tương tự ở
chân lời nhắc Trang chủ, hoặc chạy
/webmcp. Nhấp chuột hoặc lệnh đó chính là sự đồng ý. Không trình duyệt nào khởi động trước bước này. AX Code kiểm tra trước, mà không mở trình duyệt, xem Chrome 150 trở lên đã được cài ở các vị trí thông thường chưa và cảnh báo nếu chưa có; việc kiểm tra chỉ là lời khuyên và không bao giờ chặn lần thử. Lựa chọn được lưu vào cấu hình người dùng, nên cầu nối sẽ bật lại ở lần khởi động sau mà không cần nhấp thêm. - AX Code mở cửa sổ tách biệt đó với tính năng WebMCP đã bật
(
--enable-features=WebMCP). Cửa sổ chưa có phiên đăng nhập cho đến khi bạn tự đăng nhập tại đó. - Yêu cầu tác nhân mở một trang. Với mặc định của sản phẩm, điều hướng không bị hạn chế. Danh sách origin đã cấu hình hoặc được quản lý sẽ thu hẹp phạm vi.
- Nhấp chip lần nữa để tắt cầu nối. Việc này kết thúc các quyền tạm của phiên; các phê duyệt đã lưu vẫn còn cho đến khi bạn thu hồi chúng trong cài đặt MCP.
Chip hiển thị [act] khi tầng tương tác đang bật. Mặc định của sản phẩm
gồm tầng đó. Để tắt, đặt interact thành false trong hồ sơ
webmcp của mục. Một mục đã lưu trước đó giữ các tầng mà nó đã có.
ax-code mcp webmcp in một đoạn cấu hình. Lệnh này không cài gói,
không kết nối máy chủ và không ghi tệp. Thêm --interact để in một mục với
tầng tương tác bật, hoặc --executable-path /absolute/path/to/chrome để chỉ định
một tệp nhị phân Chrome 150 trở lên. Khi đường dẫn đó được đặt, AX Code kiểm tra
phiên bản chính của tệp nhị phân trước khi khởi chạy.
Công cụ trong cửa sổ Chrome do bạn tự mở
Cửa sổ tách biệt ở trên đã bật WebMCP. Để thử công cụ trang trong hồ sơ Chrome bạn dùng khi xây dựng một trang, hãy làm theo hướng dẫn WebMCP của Chrome:
- Mở
chrome://flags/#enable-webmcp-testing. - Đặt cờ thành Enabled.
- Khởi động lại Chrome.
Cờ đó áp dụng cho hồ sơ Chrome bạn đã mở. Cầu nối AX Code vẫn khởi động từ chip.
Gợi ý lời nhắc
Khi cầu nối đang tắt, một lời nhắc nêu URL hoặc máy chủ cục bộ (ví dụ
localhost:3000) hiện một dòng chỉ tới chip và /webmcp.
Dòng này xuất hiện nhiều nhất một lần mỗi phiên và tổng cộng ba lần, và không bao giờ
đổi nội dung gửi tới tác nhân.
Tác nhân có thể làm gì
| Tầng | Công cụ | Phê duyệt |
|---|---|---|
| Trang | liệt kê, mở, điều hướng, đóng trang; chạy công cụ mà trang đăng ký qua WebMCP | mỗi lần gọi, trừ khi một phạm vi được hỗ trợ đã được lưu |
| Đọc | snapshot trang, ảnh chụp màn hình, console, siêu dữ liệu yêu cầu | một quyền cho mỗi origin mỗi phiên, hoặc một phê duyệt đọc đã lưu |
| Tương tác | nhấp, rê chuột, chờ, điền, điền biểu mẫu, nhấn phím, trả lời hộp thoại | xem bên dưới |
Nội dung trang không đáng tin: một trang có thể tìm cách điều hướng tác nhân. Đầu ra được gắn nhãn origin và bị giới hạn kích thước.
Lưu một phê duyệt
Các lời nhắc đủ điều kiện đưa ra Thêm vào danh sách cho phép WebMCP với nền đỏ. Hãy chọn mục đó, xem lại phạm vi, rồi chọn Thêm và cho phép. Các phê duyệt đã lưu áp dụng cho dự án này trên máy này và vẫn còn sau khi trình duyệt kết nối lại cũng như khi AX Code khởi động lại.
- Liệt kê trang phê duyệt
list_pagescho trình duyệt AX Code, gồm tiêu đề và URL từ mọi origin đang mở. Việc này không phê duyệt nội dung trang. - Điều hướng phê duyệt việc mở hoặc điều hướng tới đúng một origin.
- Đọc phê duyệt snapshot, ảnh chụp màn hình, console và siêu dữ liệu mạng trên đúng một origin. Các origin và cổng khác cần phê duyệt riêng.
- Đóng phê duyệt việc đóng mọi trang hiện đang ở đúng một origin, kể cả trang có công việc chưa lưu. Đây là lựa chọn riêng: phê duyệt điều hướng và đọc không cấp quyền này. Origin đích được kiểm tra lại trước khi đóng.
Sau phê duyệt đọc đầu tiên, AX Code tiếp tục lần đọc đó trong cùng một lời gọi sau khi kiểm tra lại trang. Thay đổi trang hoặc cầu nối sẽ dừng lời gọi và đòi hỏi một lần đọc mới. Hệ thống không phát lại thao tác trình duyệt đã thất bại.
Hạn chế điều hướng và chính sách quản trị vẫn áp dụng. Lưu một
phê duyệt không sửa allowedOrigins. Việc gõ, các cú nhấp có hệ quả,
hộp thoại và công cụ do trang đăng ký giữ các
phê duyệt sẵn có. Cho phép một lần vẫn là tạm thời; bộ đếm ngược không bao giờ lưu một
phê duyệt bền vững.
Chọn liên kết Danh sách cho phép WebMCP cạnh chip WebMCP (chân thanh bên
phiên và chân lời nhắc Trang chủ), chạy /webmcp-allowlist, hoặc mở
/mcp, chọn cầu nối, rồi nhấn Ctrl+G. Nhấp đúp một mục (hoặc
nhấn Enter hai lần) để thu hồi; lần kích hoạt đầu đánh dấu hàng và lần
thứ hai trong vài giây xác nhận, nên một cú nhấp đơn không bao giờ thu hồi.
Hàng xóa thu hồi mọi phê duyệt đã lưu của cầu nối đó trong dự án này
theo cùng cách. Danh sách dài sẽ cuộn. Nhấn Escape hoặc nhấp bên ngoài bảng để
đóng.
Hộp tìm kiếm cũng thêm phê duyệt. Gõ đúng một origin https:// (hoặc
http://localhost), rồi chọn hàng điều hướng, đọc hoặc đóng để lưu;
hàng liệt kê trang được đưa ra cho đến khi được lưu. Cầu nối phải đang
kết nối: một phê duyệt tường minh gắn với danh tính cầu nối đang chạy và được
kiểm tra ở mỗi lời gọi đúng như phê duyệt lưu từ lời nhắc, nên danh sách origin được quản lý,
công tắc tầng đọc và chính sách quản trị vẫn áp dụng.
Tắt chip WebMCP ngắt trình duyệt và giữ các lựa chọn đã lưu.
Kho cục bộ mặc định là ~/.local/share/ax-code/webmcp-approvals.json
(các ghi đè thư mục dữ liệu XDG vẫn áp dụng). Phê duyệt gắn với danh tính cầu nối;
đổi cách khởi chạy hoặc hồ sơ trình duyệt đòi hỏi phê duyệt mới.
Lỗi điều hướng
Lỗi điều hướng có thể xảy ra sau khi trang mở hoặc thay đổi. Lỗi báo
một nhóm đã nhận dạng là hết thời gian, mạng hoặc thiếu trang khi có thông tin, mà không
lặp lại nguyên văn lỗi cầu nối. Hãy xem list_pages trước khi quyết định có
điều hướng lại hay không. Lỗi điều hướng không xóa phê duyệt đã lưu.
Tầng tương tác
Rê chuột và các cú nhấp thông thường chạy dưới một quyền cho mỗi origin, đủ cho 20 hành động, rồi cùng lời nhắc đó quay lại.
- Việc gõ, nhấn phím, hộp thoại, liên kết, nhấp đúp và các cú nhấp có tên nghe có hệ quả (gửi, thanh toán, xóa, ủy quyền, …) hỏi mỗi lần, hiển thị đích và toàn bộ giá trị.
- Các trường có tên giống thông tin xác thực được gắn nhãn và che. Giá trị có dạng khóa API hoặc khóa riêng bị từ chối: hãy tự gõ thông tin xác thực.
- Hành động cần một snapshot mới của cùng trang; trang đã dịch chuyển hoặc phần tử không xác định bị từ chối. Ba lần từ chối trong một lượt sẽ dừng các hành động tiếp theo.
Các kiểm tra dựa trên tên chỉ là suy đoán, không phải bảo đảm. Lời nhắc mới là chỗ kiểm soát, nên hãy đọc nó.
Làm việc với trang sẵn có
Hãy yêu cầu AX Code kiểm tra khả năng của trang, phát triển công cụ gốc của trang, hoặc
chẩn đoán một hành vi cụ thể. Công cụ browser_workflow gom các tác vụ này
mà không bắt bạn khởi động máy chủ thử cho các quan sát thông thường. Hãy bật
cầu nối trước và xác định trang dự định; không hành động nào trong số này mở
trang, đăng nhập, đổi hồ sơ trình duyệt hoặc lên lịch công việc sau.
Ví dụ: “Hãy kiểm tra các công cụ trên ứng dụng cục bộ của tôi và cho thấy chúng tương ứng với hàm ứng dụng nào,” hoặc “Hãy ghi lại trang này trước khi tôi tái hiện kết quả trống, rồi so sánh các lỗi và chỉ tôi tới các tệp nguồn ứng viên.”
Kiểm tra công cụ gốc và mã nguồn của chúng
Gọi status với server, pageId và đúng origin để xem các công cụ
thực sự được nhận cùng khả năng dùng công cụ gốc hoặc snapshot. Một danh sách trống không
chứng minh rằng các khung không truy cập được là không có công cụ. Các bộ kết nối sẵn có có thể
phù hợp hơn với tác vụ không cần ngữ cảnh trang.
{
"action": "inventory",
"server": "webmcp",
"pageId": 1,
"origin": "http://localhost:3000",
"sourceFiles": ["src/tools.ts", "public/search.html"]
}
Giữ inventoryId được trả về. Truyền nó làm baselineId ở lần kiểm kê
sau để thấy công cụ được thêm hoặc gỡ và các trường lược đồ đã đổi. Tệp được kiểm tra quyền
một cách tường minh, nằm trong kho và bị giới hạn. Các đăng ký mệnh lệnh tĩnh
và thuộc tính biểu mẫu HTML được trích dẫn tạo ra ứng viên nguồn;
tên được tính, định nghĩa trùng và mẫu không được hỗ trợ vẫn
chưa giải quyết hoặc còn mơ hồ. Tên và lược đồ khớp củng cố một ứng viên,
nhưng không chứng minh trình duyệt đã tải bản sửa nguồn đó.
Tạo một tích hợp ứng dụng
Dùng author để nhận mã tích hợp có thể xem lại:
{
"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"
}
Hàm được nêu phải là một export trực tiếp. Bản đăng ký sinh ra nhận
một AbortSignal để dọn thành phần hoặc tuyến. Chỉ đặt acceptsSignal: true khi
hàm ứng dụng chấp nhận đối số {signal} thứ hai và tôn trọng đối số đó.
format: "declarative" trả về một biểu mẫu cùng một ràng buộc mô-đun để người dùng
gửi; hãy nối sự kiện webmcp-result của nó với giao diện ứng dụng. Các trường
nguyên thủy được hỗ trợ; ràng buộc lược đồ không được hỗ trợ bị từ chối thay vì
bị bỏ âm thầm. Hãy xem lại kiểm tra hợp lệ, phân quyền và hiệu ứng thực
của ứng dụng trước khi áp dụng một trong hai mẫu. Sửa trường có thể kích hoạt tự động lưu ngay cả
khi biểu mẫu yêu cầu người dùng gửi.
Kiểm tra thực thi và lựa chọn mô hình riêng biệt
Các bước contract sẵn có xác minh đầu vào cố định và kết quả kỳ vọng. Thêm
{"action":"tool_presence","name":"admin_reset","present":false}
sau khi đổi tuyến hoặc vai trò để kiểm tra rằng một thao tác không còn dùng được đã được
hủy đăng ký. present: true cũng có thể ghim descriptorHash. Đây là các điểm kiểm tra
vòng đời, không phải vết sự kiện. Các hồi quy được xuất gồm cùng những kiểm tra đó.
Dùng một đánh giá lựa chọn riêng để xem mô hình có chọn đúng công cụ và đối số hay không:
{
"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
}
Mô hình API được chọn chỉ nhận tác vụ và danh mục đã ghi, không có công cụ thực thi hay đáp án kỳ vọng. Các lời gọi được phê duyệt và giới hạn ở 12 ca, ba lần lặp và hạn đánh giá hai phút. Báo cáo ghi danh tính mô hình, hash của bộ, số lựa chọn và đối số đúng riêng biệt, độ đúng kết hợp và các kết quả không xác định. Các lần thất bại vẫn nằm ở mẫu số. Mô hình CLI không dùng được cho đánh giá này vì chúng có thể tự chạy công cụ. Điểm lựa chọn không chứng minh công cụ đúng, cũng không đủ điều kiện cho Arena.
Chẩn đoán trước và sau một hành động
Gọi observe với cùng đích trang, sourceFiles tùy chọn, và
assertions tường minh dùng lược đồ vai trò/tên cùng count/value/checked/disabled
sẵn có. Thực hiện hành động được yêu cầu đúng một lần qua công cụ đã phê duyệt hoặc bằng tay.
Sau đó gọi {"action":"diagnose","observationId":"<returned UUID>"}.
Kết quả so sánh kết cục khẳng định, hash snapshot, chênh lệch console và
siêu dữ liệu yêu cầu có giới hạn, thay đổi kiểm kê ngữ nghĩa và các ứng viên nguồn.
Tương quan là bằng chứng để điều tra, không phải nguyên nhân gốc đã chứng minh. Khi không có
khẳng định, trạng thái là observed, không phải pass.
Đường cơ sở chỉ được giữ trong phiên môi trường chạy hiện tại, hết hạn sau 30 phút và giới hạn 16 mục mỗi phiên. Thay đổi kết nối hoặc vị trí trang làm lần dùng lại mất hiệu lực. Cầu nối đã ghim không nhận ra lần tải lại cùng URL, nên các so sánh này vẫn mang tính tham khảo. Chỉ hash của vị trí trang và snapshot được giữ lại; văn bản chẩn đoán có giới hạn và bộ mô tả công cụ là bằng chứng không đáng tin.
Với một vấn đề localhost tái hiện được, promote nhận ID quan sát và
một manifest bình thường, tường minh, chứa lệnh máy chủ thử cục bộ cùng
các bước. Công cụ đóng băng một kịch bản có kiểm soát mới. Kết quả quan sát không bao giờ
được sao vào nghiệm thu: hãy chạy một kiểm soát thất bại trước khi sửa và đánh giá các
lần chạy đã sửa qua quy trình sẵn có.
Lặp lại một tác vụ quan sát hằng ngày
Một công thức theo yêu cầu kiểm tra trang sẵn có mà không điều hướng hay lên lịch:
{
"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 }]
}
}
Mặc định chỉ dùng snapshot. queries tùy chọn chứa đúng một công cụ name,
descriptorHash, đối tượng input, resultPath và equals. Chúng gọi công cụ
ứng dụng thật dưới phê duyệt theo từng lời gọi sẵn có; gợi ý chỉ đọc không
chứng nhận hiệu ứng. Kết quả phân biệt rõ quan sát snapshot với
các lời gọi ứng dụng có hiệu ứng chưa xác minh, và kiểm tra lại snapshot sau truy vấn.
Hãy lưu các định nghĩa đã xem lại, không lưu nội dung đã thu hay thông tin xác thực. Định nghĩa
không mang quyền và không bao giờ trở thành biên nhận Arena. Một lần đạt chỉ có nghĩa
các quan sát đã khai báo khớp; dữ liệu thiếu không thể thỏa một kiểm tra.
Đăng ký công cụ thủ công
Hãy yêu cầu tác nhân thêm một công cụ tái sử dụng logic mà trang đã có, hoặc đăng ký một công cụ từ JavaScript của trang. Hướng dẫn của Chrome trình bày API mệnh lệnh và API biểu mẫu khai báo. Một công cụ chỉ đọc tối thiểu trông như sau:
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 ?? "",
}),
})
}
Một tác nhân tương thích khi đó có thể phát hiện read_heading trên trang đó. Trang
công cụ trang của OpenAI đi qua
cùng ý tưởng từ phía Codex và ChatGPT Work, gồm cách trình duyệt tích hợp
của họ liệt kê công cụ mà một trang cung cấp.
Giới hạn
Không có tập lệnh, tải lên, tải xuống, cookie, thân yêu cầu, tọa độ hay
kéo thả. Quản trị viên có thể tắt cầu nối hoặc một trong hai tầng bằng
yêu cầu webmcp được quản lý (allow, allowRead, allowInteract,
allowedOrigins); cấu hình dự án và người dùng không thể nới lỏng yêu cầu đó.
Các máy chủ bạn thêm bằng ax-code mcp add là một đường tin cậy khác. Xem
Tích hợp MCP.
Gỡ lỗi một trang localhost trong năm bước
Với một trang hiển thị sai, một điều khiển không làm gì, hoặc một yêu cầu thất bại:
- Điều hướng tới trang và lấy một snapshot — cây a11y là đường cơ sở cấu trúc. Điều hướng và đọc dùng các phê duyệt sẵn có.
- Thực hiện hành động thất bại đúng một lần, dưới các phê duyệt tương tác sẵn có.
- Đọc phần chênh lệch: lỗi console và siêu dữ liệu mạng (phương thức, URL, trạng thái, loại — thân yêu cầu và phản hồi nằm ngoài phạm vi) quanh hành động. Với trạng thái bất đồng bộ, hãy chờ; đừng lặp lại hành động kích hoạt.
- Kết luận: PASS, FAIL hoặc BLOCKED, kèm tên khả năng còn thiếu. Một xác nhận của công cụ không phải bằng chứng ứng dụng đã thành công.
- Nếu lỗi localhost diễn đạt được thành một khẳng định có cấu trúc, hãy đóng băng
nó thành kịch bản
browser_workflow(bên dưới), ghi lại kiểm soát thất bại, và chạy cùng hash hai lần sau khi sửa.
Đính kèm bằng chứng vào báo cáo lỗi
Với một lỗi localhost được điều tra qua kịch bản đã đóng băng, một gói bằng chứng
giúp báo cáo có thể xem lại: tên và hash kịch bản, kết quả
khẳng định thất bại (không kèm nội dung trang đã thu), các ID biên nhận từ
browser_workflow inspect, hash snapshot, chênh lệch lỗi console và
siêu dữ liệu mạng có giới hạn, liên kết nguồn với nhãn
explicit/local_map/unresolved, và origin. Chỉ đưa
đầu ra bị môi trường chạy giới hạn và biên tập — không bao giờ đưa thân yêu cầu hoặc phản hồi,
tiêu đề, cookie, bộ nhớ lưu trữ, nội dung trang, hay giá trị có dạng thông tin xác thực. ID
biên nhận và dữ liệu biên nhận đã sao chỉ là tham chiếu; trạng thái biên nhận có thẩm quyền
vẫn thuộc môi trường chạy.
Tái hiện và xác minh một thay đổi khi phát triển
Công cụ browser_workflow đóng băng các bước nghiệm thu trước khi bạn sửa một ứng dụng
web, chạy chúng qua cầu nối WebMCP đã kết nối, và ghi
các khẳng định có cấu trúc. Hãy bật cầu nối trước. Môi trường được hỗ trợ đầu tiên
là một máy chủ HTTP dùng một lần trên 127.0.0.1; mỗi lần chạy cấp một cổng khác
và một thư mục dữ liệu tạm, cùng một ngữ cảnh trình duyệt tách biệt mới. Hồ sơ
trình duyệt bền vững bị từ chối. Các ngữ cảnh trống được cầu nối thượng nguồn giữ
đến khi ngắt kết nối; sau 32 lần chạy trên một kết nối, hãy kết nối lại cầu nối trước khi
tiếp tục. Quy trình không bao giờ dùng lại cookie hoặc bộ nhớ lưu trữ của chúng.
Hãy yêu cầu tác nhân đóng băng một kịch bản bằng action: "freeze". Ví dụ, một
test/browser-server.mjs thuộc dự án nhận đối số cổng có thể dùng:
{
"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
}
}
]
}
}
Giữ hash được trả về. Chạy bằng {"action":"run","hash":"<hash>","server":"webmcp"}
(dùng tên cầu nối đã kết nối của bạn). Tái hiện lỗi, thực hiện thay đổi,
và chạy cùng hash hai lần. Mỗi lần chạy khởi động máy chủ đã khai báo, mở
trang riêng, kiểm tra các bước, đóng trang và dừng máy chủ của nó. Lệnh vòng đời
chạy ở gốc kho qua quyền shell thông thường.
{port} nở thành cổng đã cấp; {data} nở thành thư mục tạm đã được trích dẫn.
Lệnh thiết lập, đặt lại và dọn dẹp phải kết thúc trong 15 giây;
sẵn sàng có hạn 15 giây và lần chạy trình duyệt có hạn 120 giây.
Hành động trình duyệt giữ quyền và ngân sách tương tác sẵn có.
Các bước được hỗ trợ là nhấp, rê chuột, điền, khẳng định có cấu trúc và kiểm tra
hợp đồng công cụ trang. Bộ định vị dùng đúng vai trò và tên truy cập được. Hành động khớp
không mục hoặc nhiều mục dừng với unknown; không có UID đoán hay phương án dự phòng CSS/script.
Khẳng định so sánh số lượng, giá trị, trạng thái được chọn hoặc bị vô hiệu. Thuộc tính
trạng thái vắng mặt là không xác định. Với kết xuất bất đồng bộ, thêm timeoutMs (0-10000,
mặc định 0) vào bước assert. Bộ chạy thăm dò các snapshot có cấu trúc mới
cho đến khi khẳng định khớp hoặc hết hạn; nó không bao giờ lặp lại
cú nhấp hoặc lần điền ngay trước. Thời gian chờ được đóng băng cùng kịch bản và được giữ
trong kiểm thử đã xuất. Kịch bản giới hạn 32 bước và 32 KiB.
inspect trả về bản kê đã đóng băng và các biên nhận của môi trường chạy. Biên nhận gắn
kịch bản với bản sửa hoặc nội dung kho, kết cục thao tác, hash
snapshot và siêu dữ liệu console/mạng có giới hạn. Nguồn đã đổi, thao tác bị từ chối,
bằng chứng thiếu, hết thời gian và dọn dẹp chưa xong không thể đạt. Các kết quả này
xác nhận các khẳng định đã khai báo; chúng không chứng minh mọi hành vi của ứng dụng.
Trạng thái đóng băng và biên nhận có thẩm quyền nằm trong phiên môi trường chạy hiện tại.
Sau khi khởi động lại, hãy đóng băng và đánh giá lại; biên nhận JSON đã sao không
được chấp nhận làm thẩm quyền của môi trường chạy.
Xuất một kiểm thử hồi quy
{"action":"export","hash":"<hash>"} trả về một mô-đun Node độc lập dùng
playwright-core. Lưu mã được trả về thành một kiểm thử dự án và chạy nó với
AX_TEST_WEBMCP_CHROME trỏ tới Chrome. Kiểm thử khởi động cùng bộ thử và dùng
ngữ cảnh trình duyệt mới, bộ định vị vai trò/tên ổn định cùng các khẳng định đã đóng băng.
Hãy thực sự chạy kiểm thử đã xuất trước khi gọi nó là đã xác nhận. Kiểm thử đã xuất là
một tạo tác hồi quy độc lập; đầu ra của chúng không phải biên nhận Arena.
Các bước hợp đồng công cụ trang dùng giao thức WebMCP gốc của Chrome với hash bộ mô tả
chính xác và đầu ra kỳ vọng, mà không đánh giá tập lệnh trang tùy ý. Chrome
phải hỗ trợ giao thức thử nghiệm đó để xuất hợp đồng.
Xây hợp đồng công cụ trang và điều tra lỗi
Khi một trang đang mở, {"action":"contracts","server":"webmcp","pageId":1}
trả về các bộ mô tả đã đăng ký và hash bộ mô tả chính xác. Đóng băng một
bước contract chứa name, descriptorHash, input, resultPath và
equals. Hash thay đổi sẽ làm kiểm tra thất bại. Đặt expectError: true cho đầu vào
phủ định: chỉ một lỗi thực thi công cụ trang đã xác nhận mới thỏa điều kiện; lời gọi bị hủy,
từ chối quyền và thiếu hoàn tất đều là không xác định. Thêm khẳng định
sau các đột biến để kiểm tra trạng thái trang kết quả cũng như giá trị trả về.
Hành động template nhận name, một module ứng dụng tương đối, một
exportName tường minh, và schema. Hành động xác minh export cục bộ tồn tại và trả về một
khung đăng ký. Hãy đối chiếu khung đó với kiểm tra đầu vào, phân quyền
và logic nghiệp vụ của ứng dụng trước khi bật; công cụ không thể thiết lập
những bảo đảm đó chỉ từ tên hàm được xuất.
Một danh sách sources tùy chọn nêu các tệp trong kho với line bắt đầu từ một
và column bắt đầu từ không, cùng tùy chọn một tệp map cục bộ. Các lần chạy thất bại trả về
chẩn đoán có giới hạn và liên kết nguồn được gắn nhãn explicit, local_map hoặc
unresolved. Ánh xạ mang tính tham khảo, không bao giờ là bằng chứng nguyên nhân gốc hay một khẳng định
đạt. Bản đồ từ xa, đường dẫn ngoài kho và tệp trên 1 MiB
không được đọc. Bằng chứng mạng của trình duyệt vẫn chỉ là siêu dữ liệu.
Yêu cầu bằng chứng trình duyệt trong Arena triển khai
Cung cấp browserScenario: "<hash>" với mode: "implement". Đóng băng kịch bản
và ghi một khẳng định thất bại thật trên nền sạch hiện tại trước khi bắt đầu
Arena. Mỗi ứng viên nhận hợp đồng đã đóng băng đó trong worktree tách biệt
của mình và phải chạy thành công hai lần qua cầu nối tách biệt đã kết nối.
Việc kích hoạt trình duyệt và quyền vẫn được giám sát. Thiếu quyền cầu nối,
nội dung cũ, kết quả không xác định hoặc thiếu biên nhận sẽ ngăn thăng cấp,
kể cả khi các kiểm tra kho đạt. Xác minh mã thông thường và kiểm tra
đột biến vẫn chạy, và không ứng viên nào được hợp nhất tự động.
Chọn bằng chứng một cách hiệu quả
Công cụ WebMCP gốc mô tả các thao tác ứng dụng; Chrome DevTools MCP cung cấp
kiểm tra và tự động hóa trình duyệt. Hãy ưu tiên công cụ đã đăng ký của trang cho một
thao tác ứng dụng tường minh, rồi xác minh kết quả và trạng thái trang thu được.
Dùng snapshot trợ năng cho văn bản và bộ định vị phần tử ổn định. Với bố cục,
canvas hoặc nội dung chỉ có ảnh, hãy chụp màn hình: cắt theo uid của một snapshot mới
hoặc dùng JPEG chất lượng giảm để nằm trong giới hạn nội tuyến. Diễn giải
điểm ảnh cần một mô hình có khả năng nhìn. Cả WebMCP lẫn danh sách công cụ
DevTools MCP được ghi lại đều không cung cấp công cụ OCR riêng; chữ suy ra từ ảnh chỉ
mang tính tham khảo và không thể thỏa một khẳng định nghiệm thu có cấu trúc.
Thu hẹp lần đọc console bằng types và pageSize; thu hẹp siêu dữ liệu mạng bằng
resourceTypes và pageSize. Biên nhận quy trình giữ đường cơ sở trước hành động
và các chênh lệch có giới hạn để lỗi do lần tái hiện đưa vào dễ tìm hơn.
Thân mạng và đánh giá tùy ý vẫn nằm ngoài bề mặt được cấp
của cầu nối. Vết hiệu năng, giả lập, Lighthouse, screencast, bộ nhớ và
công cụ tiện ích mở rộng trong DevTools MCP thượng nguồn là các khả năng riêng và không
được hồ sơ này phơi bày.
Xem hướng dẫn gỡ lỗi WebMCP của Chrome và tham chiếu công cụ DevTools MCP thượng nguồn. Nhánh main thượng nguồn có thể khác cầu nối mà AX Code đã ghim; chỉ các lược đồ công cụ cục bộ mô tả đối số được hỗ trợ.