Trong ghép đôi do Gateway sở hữu, Gateway là nguồn xác thực cho việc Node nào được phép tham gia. UI (ứng dụng macOS, các client trong tương lai) chỉ là frontend phê duyệt hoặc từ chối các yêu cầu đang chờ. Quan trọng: Các Node WS dùng ghép đôi thiết bị (roleDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
node) trong quá trình connect.
node.pair.* là một kho ghép đôi riêng và không kiểm soát bắt tay WS.
Chỉ các client gọi tường minh node.pair.* mới dùng luồng này.
Khái niệm
- Yêu cầu đang chờ: một Node đã yêu cầu tham gia; cần phê duyệt.
- Node đã ghép đôi: Node đã được phê duyệt với auth token đã cấp.
- Transport: endpoint WS của Gateway chuyển tiếp yêu cầu nhưng không quyết định tư cách thành viên. (Hỗ trợ cầu nối TCP cũ đã bị gỡ bỏ.)
Cách ghép đôi hoạt động
- Một Node kết nối tới WS của Gateway và yêu cầu ghép đôi.
- Gateway lưu một yêu cầu đang chờ và phát
node.pair.requested. - Bạn phê duyệt hoặc từ chối yêu cầu (CLI hoặc UI).
- Khi phê duyệt, Gateway cấp một token mới (token được xoay vòng khi ghép đôi lại).
- Node kết nối lại bằng token và lúc này đã “được ghép đôi”.
Quy trình CLI (phù hợp cho môi trường không giao diện)
nodes status hiển thị các Node đã ghép đôi/đang kết nối và capability của chúng.
Bề mặt API (giao thức Gateway)
Sự kiện:node.pair.requested— được phát khi một yêu cầu đang chờ mới được tạo.node.pair.resolved— được phát khi một yêu cầu được phê duyệt/từ chối/hết hạn.
node.pair.request— tạo hoặc tái sử dụng một yêu cầu đang chờ.node.pair.list— liệt kê các Node đang chờ + đã ghép đôi (operator.pairing).node.pair.approve— phê duyệt một yêu cầu đang chờ (cấp token).node.pair.reject— từ chối một yêu cầu đang chờ.node.pair.remove— xóa một mục Node đã ghép đôi cũ.node.pair.verify— xác minh{ nodeId, token }.
node.pair.requestlà idempotent theo từng Node: các lần gọi lặp lại trả về cùng một yêu cầu đang chờ.- Các yêu cầu lặp lại cho cùng một Node đang chờ cũng làm mới metadata Node đã lưu và ảnh chụp declared command mới nhất trong allowlist để operator có thể quan sát.
- Phê duyệt luôn tạo một token mới; không token nào từng được trả về từ
node.pair.request. - Yêu cầu có thể bao gồm
silent: truenhư một gợi ý cho các luồng tự động phê duyệt. node.pair.approvedùng các command đã khai báo của yêu cầu đang chờ để áp dụng các scope phê duyệt bổ sung:- yêu cầu không có command:
operator.pairing - yêu cầu command không phải exec:
operator.pairing+operator.write - yêu cầu
system.run/system.run.prepare/system.which:operator.pairing+operator.admin
- yêu cầu không có command:
Kiểm soát command Node (2026.3.31+)
Khi một Node kết nối lần đầu, ghép đôi được yêu cầu tự động. Cho đến khi yêu cầu ghép đôi được phê duyệt, mọi command Node đang chờ từ Node đó đều bị lọc và sẽ không thực thi. Khi tin cậy được thiết lập thông qua phê duyệt ghép đôi, các command đã khai báo của Node sẽ khả dụng theo chính sách command thông thường. Điều này có nghĩa là:- Các Node trước đây chỉ dựa vào ghép đôi thiết bị để lộ command giờ phải hoàn tất ghép đôi Node.
- Các command được xếp hàng trước khi phê duyệt ghép đôi sẽ bị loại bỏ, không được trì hoãn.
Ranh giới tin cậy sự kiện Node (2026.3.31+)
Các bản tóm tắt bắt nguồn từ Node và những sự kiện session liên quan bị giới hạn trong bề mặt tin cậy dự kiến. Các luồng do thông báo điều khiển hoặc do Node kích hoạt trước đây dựa vào quyền truy cập công cụ host hoặc session rộng hơn có thể cần điều chỉnh. Việc gia cố này đảm bảo sự kiện Node không thể nâng cấp thành quyền truy cập công cụ cấp host vượt quá những gì ranh giới tin cậy của Node cho phép. Các cập nhật hiện diện Node bền vững tuân theo cùng ranh giới định danh. Sự kiệnnode.presence.alive chỉ được
chấp nhận từ các session thiết bị Node đã xác thực và chỉ cập nhật metadata ghép đôi khi
định danh thiết bị/Node đã được ghép đôi. Các giá trị client.id tự khai báo không đủ để ghi
trạng thái last-seen.
Tự động phê duyệt (ứng dụng macOS)
Ứng dụng macOS có thể tùy chọn thử phê duyệt im lặng khi:- yêu cầu được đánh dấu
silent, và - ứng dụng có thể xác minh kết nối SSH tới host gateway bằng cùng người dùng.
Tự động phê duyệt thiết bị theo CIDR đáng tin cậy
Ghép đôi thiết bị WS chorole: node mặc định vẫn là thủ công. Với các mạng
Node riêng tư nơi Gateway đã tin cậy đường mạng, operator có thể
chọn tham gia bằng CIDR tường minh hoặc IP chính xác:
- Bị tắt khi
gateway.nodes.pairing.autoApproveCidrschưa được đặt. - Không có chế độ tự động phê duyệt toàn bộ LAN hoặc mạng riêng tư.
- Chỉ ghép đôi thiết bị
role: nodemới không có scope được yêu cầu mới đủ điều kiện. - Các client operator, trình duyệt, Control UI và WebChat vẫn là thủ công.
- Nâng cấp role, scope, metadata và public key vẫn là thủ công.
- Các đường dẫn header trusted-proxy local loopback cùng host không đủ điều kiện vì đường dẫn đó có thể bị giả mạo bởi caller cục bộ.
Tự động phê duyệt nâng cấp metadata
Khi một thiết bị đã ghép đôi kết nối lại chỉ với các thay đổi metadata không nhạy cảm (ví dụ: tên hiển thị hoặc gợi ý nền tảng client), OpenClaw xem đó làmetadata-upgrade. Tự động phê duyệt im lặng có phạm vi hẹp: chỉ áp dụng
cho các lần kết nối lại cục bộ không phải trình duyệt, đáng tin cậy, đã chứng minh sở hữu thông tin xác thực cục bộ
hoặc dùng chung, bao gồm các lần kết nối lại ứng dụng native cùng host sau thay đổi metadata
phiên bản OS. Client trình duyệt/Control UI và client từ xa vẫn
dùng luồng tái phê duyệt tường minh. Nâng cấp scope (read lên write/admin) và
thay đổi public key không đủ điều kiện cho tự động phê duyệt metadata-upgrade —
chúng vẫn là các yêu cầu tái phê duyệt tường minh.
Trình trợ giúp ghép đôi QR
/pair qr render payload ghép đôi dưới dạng media có cấu trúc để client di động và
trình duyệt có thể quét trực tiếp.
Xóa một thiết bị cũng quét dọn mọi yêu cầu ghép đôi đang chờ cũ cho
device id đó, vì vậy nodes pending không hiển thị các hàng mồ côi sau khi thu hồi.
Tính cục bộ và header được chuyển tiếp
Ghép đôi Gateway xem một kết nối là loopback chỉ khi cả socket thô và mọi bằng chứng proxy upstream đều đồng thuận. Nếu một yêu cầu đi vào trên loopback nhưng mang các headerX-Forwarded-For / X-Forwarded-Host / X-Forwarded-Proto
trỏ tới một nguồn gốc không cục bộ, bằng chứng forwarded-header đó làm mất hiệu lực
tuyên bố locality loopback. Khi đó đường ghép đôi yêu cầu phê duyệt tường minh
thay vì âm thầm xem yêu cầu là kết nối cùng host. Xem
Trusted Proxy Auth để biết quy tắc tương đương về
xác thực operator.
Lưu trữ (cục bộ, riêng tư)
Trạng thái ghép đôi được lưu dưới thư mục trạng thái Gateway (mặc định~/.openclaw):
~/.openclaw/nodes/paired.json~/.openclaw/nodes/pending.json
OPENCLAW_STATE_DIR, thư mục nodes/ sẽ di chuyển theo.
Ghi chú bảo mật:
- Token là bí mật; hãy xem
paired.jsonlà nhạy cảm. - Xoay vòng token yêu cầu tái phê duyệt (hoặc xóa mục Node).
Hành vi transport
- Transport là stateless; nó không lưu tư cách thành viên.
- Nếu Gateway offline hoặc ghép đôi bị tắt, các Node không thể ghép đôi.
- Nếu Gateway ở chế độ từ xa, ghép đôi vẫn diễn ra với kho của Gateway từ xa.