Gateway là máy chủ WebSocket của OpenClaw (kênh, nút, phiên, hook). Các lệnh con trong trang này nằm dướiDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw gateway ….
Bonjour discovery
Thiết lập mDNS cục bộ + DNS-SD diện rộng.
Discovery overview
Cách OpenClaw quảng bá và tìm Gateway.
Configuration
Các khóa cấu hình Gateway cấp cao nhất.
Chạy Gateway
Chạy một tiến trình Gateway cục bộ:Startup behavior
Startup behavior
- Theo mặc định, Gateway từ chối khởi động trừ khi
gateway.mode=localđược đặt trong~/.openclaw/openclaw.json. Dùng--allow-unconfiguredcho các lần chạy tạm thời/phát triển. openclaw onboard --mode localvàopenclaw setupđược kỳ vọng sẽ ghigateway.mode=local. Nếu tệp tồn tại nhưng thiếugateway.mode, hãy xem đó là cấu hình bị hỏng hoặc bị ghi đè và sửa chữa thay vì ngầm giả định chế độ cục bộ.- Nếu tệp tồn tại và thiếu
gateway.mode, Gateway xem đó là hư hại cấu hình đáng ngờ và từ chối “đoán local” thay bạn. - Việc bind ra ngoài loopback mà không có xác thực sẽ bị chặn (rào chắn an toàn).
SIGUSR1kích hoạt khởi động lại trong tiến trình khi được cho phép (commands.restartđược bật theo mặc định; đặtcommands.restart: falseđể chặn khởi động lại thủ công, trong khi gateway tool/config apply/update vẫn được phép).- Các handler
SIGINT/SIGTERMdừng tiến trình gateway, nhưng chúng không khôi phục bất kỳ trạng thái terminal tùy chỉnh nào. Nếu bạn bọc CLI bằng TUI hoặc đầu vào raw-mode, hãy khôi phục terminal trước khi thoát.
Tùy chọn
Cổng WebSocket (mặc định lấy từ config/env; thường là
18789).Chế độ bind listener.
Ghi đè chế độ xác thực.
Ghi đè token (cũng đặt
OPENCLAW_GATEWAY_TOKEN cho tiến trình).Ghi đè mật khẩu.
Đọc mật khẩu gateway từ một tệp.
Công khai Gateway qua Tailscale.
Đặt lại cấu hình serve/funnel của Tailscale khi tắt.
Cho phép gateway khởi động khi không có
gateway.mode=local trong cấu hình. Chỉ bỏ qua kiểm tra bảo vệ khởi động cho bootstrap tạm thời/phát triển; không ghi hoặc sửa tệp cấu hình.Tạo cấu hình + workspace phát triển nếu thiếu (bỏ qua BOOTSTRAP.md).
Đặt lại cấu hình phát triển + thông tin xác thực + phiên + workspace (yêu cầu
--dev).Kill mọi listener hiện có trên cổng đã chọn trước khi khởi động.
Nhật ký chi tiết.
Chỉ hiển thị nhật ký backend CLI trong console (và bật stdout/stderr).
Kiểu nhật ký WebSocket.
Bí danh cho
--ws-log compact.Ghi sự kiện stream mô hình thô vào jsonl.
Đường dẫn jsonl của stream thô.
Hồ sơ hóa khởi động
- Đặt
OPENCLAW_GATEWAY_STARTUP_TRACE=1để ghi thời gian từng pha trong quá trình khởi động Gateway, bao gồm độ trễeventLoopMaxtheo từng pha và thời gian bảng tra cứu Plugin cho installed-index, manifest registry, startup planning, và owner-map. - Đặt
OPENCLAW_DIAGNOSTICS=timelinevớiOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>để ghi một timeline chẩn đoán khởi động JSONL best-effort cho các bộ kiểm thử QA bên ngoài. Bạn cũng có thể bật cờ bằngdiagnostics.flags: ["timeline"]trong cấu hình; đường dẫn vẫn được cung cấp qua env. ThêmOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1để bao gồm các mẫu event-loop. - Chạy
pnpm test:startup:gateway -- --runs 5 --warmup 1để benchmark quá trình khởi động Gateway. Benchmark ghi lại output đầu tiên của tiến trình,/healthz,/readyz, thời gian startup trace, độ trễ event-loop, và chi tiết thời gian bảng tra cứu Plugin.
Truy vấn Gateway đang chạy
Tất cả lệnh truy vấn đều dùng WebSocket RPC.- Output modes
- Mặc định: dễ đọc cho người dùng (có màu trong TTY).
--json: JSON cho máy đọc (không styling/spinner).--no-color(hoặcNO_COLOR=1): tắt ANSI trong khi vẫn giữ bố cục cho người đọc.
Khi bạn đặt
--url, CLI không fallback về thông tin xác thực trong cấu hình hoặc môi trường. Truyền rõ ràng --token hoặc --password. Thiếu thông tin xác thực tường minh là lỗi.gateway health
/healthz là probe liveness: nó trả về khi máy chủ có thể trả lời HTTP. Endpoint HTTP /readyz nghiêm ngặt hơn và vẫn đỏ trong khi các sidecar khởi động, kênh, hoặc hook đã cấu hình vẫn đang ổn định. Các phản hồi readiness chi tiết cục bộ hoặc đã xác thực bao gồm một khối chẩn đoán eventLoop với độ trễ event-loop, mức sử dụng event-loop, tỷ lệ lõi CPU, và cờ degraded.
gateway usage-cost
Lấy tóm tắt usage-cost từ nhật ký phiên.
Số ngày cần đưa vào.
gateway stability
Lấy trình ghi ổn định chẩn đoán gần đây từ Gateway đang chạy.
Số lượng sự kiện gần đây tối đa cần đưa vào (tối đa
1000).Lọc theo loại sự kiện chẩn đoán, chẳng hạn như
payload.large hoặc diagnostic.memory.pressure.Chỉ bao gồm các sự kiện sau một số thứ tự chẩn đoán.
Đọc một bundle ổn định đã lưu thay vì gọi Gateway đang chạy. Dùng
--bundle latest (hoặc chỉ --bundle) cho bundle mới nhất trong thư mục trạng thái, hoặc truyền trực tiếp đường dẫn JSON của bundle.Ghi một tệp zip chẩn đoán hỗ trợ có thể chia sẻ thay vì in chi tiết ổn định.
Đường dẫn output cho
--export.Privacy and bundle behavior
Privacy and bundle behavior
- Bản ghi giữ metadata vận hành: tên sự kiện, số đếm, kích thước byte, chỉ số bộ nhớ, trạng thái hàng đợi/phiên, tên kênh/Plugin, và tóm tắt phiên đã biên tập. Chúng không giữ văn bản chat, nội dung webhook, output công cụ, nội dung request hoặc response thô, token, cookie, giá trị bí mật, hostname, hoặc id phiên thô. Đặt
diagnostics.enabled: falseđể tắt hoàn toàn trình ghi. - Khi Gateway thoát nghiêm trọng, timeout khi tắt, và lỗi khởi động sau restart, OpenClaw ghi cùng snapshot chẩn đoán vào
~/.openclaw/logs/stability/openclaw-stability-*.jsonkhi trình ghi có sự kiện. Kiểm tra bundle mới nhất bằngopenclaw gateway stability --bundle latest;--limit,--type, và--since-seqcũng áp dụng cho output bundle.
gateway diagnostics export
Ghi một tệp zip chẩn đoán cục bộ được thiết kế để đính kèm vào báo cáo lỗi. Để xem mô hình quyền riêng tư và nội dung bundle, xem Diagnostics Export.
Đường dẫn zip output. Mặc định là một bản export hỗ trợ trong thư mục trạng thái.
Số dòng nhật ký đã làm sạch tối đa cần đưa vào.
Số byte nhật ký tối đa cần kiểm tra.
URL WebSocket của Gateway cho snapshot health.
Token Gateway cho snapshot health.
Mật khẩu Gateway cho snapshot health.
Timeout cho snapshot trạng thái/health.
Bỏ qua tra cứu bundle ổn định đã lưu.
In đường dẫn đã ghi, kích thước, và manifest dưới dạng JSON.
gateway status
gateway status hiển thị dịch vụ Gateway (launchd/systemd/schtasks) cùng với probe tùy chọn về khả năng kết nối/xác thực.
Thêm một mục tiêu probe tường minh. Remote đã cấu hình + localhost vẫn được probe.
Xác thực token cho probe.
Xác thực mật khẩu cho probe.
Timeout probe.
Bỏ qua probe kết nối (chỉ xem dịch vụ).
Quét cả các dịch vụ cấp hệ thống.
Nâng cấp probe kết nối mặc định thành probe đọc và thoát khác không khi probe đọc đó thất bại. Không thể kết hợp với
--no-probe.Ngữ nghĩa trạng thái
Ngữ nghĩa trạng thái
gateway statusvẫn khả dụng để chẩn đoán ngay cả khi cấu hình CLI cục bộ bị thiếu hoặc không hợp lệ.gateway statusmặc định chứng minh trạng thái dịch vụ, kết nối WebSocket và khả năng xác thực hiển thị tại thời điểm bắt tay. Nó không chứng minh các thao tác đọc/ghi/quản trị.- Các phép thăm dò chẩn đoán không làm thay đổi xác thực thiết bị lần đầu: chúng tái sử dụng mã thông báo thiết bị đã lưu trong bộ nhớ đệm khi có, nhưng không tạo danh tính thiết bị CLI mới hoặc bản ghi ghép đôi thiết bị chỉ đọc mới chỉ để kiểm tra trạng thái.
gateway statusphân giải các SecretRef xác thực đã cấu hình để xác thực thăm dò khi có thể.- Nếu một SecretRef xác thực bắt buộc không được phân giải trong đường dẫn lệnh này,
gateway status --jsonbáo cáorpc.authWarningkhi kết nối/xác thực thăm dò thất bại; truyền rõ ràng--token/--passwordhoặc phân giải nguồn bí mật trước. - Nếu phép thăm dò thành công, cảnh báo auth-ref chưa phân giải sẽ bị ẩn để tránh báo động sai.
- Dùng
--require-rpctrong script và tự động hóa khi một dịch vụ đang lắng nghe là chưa đủ và bạn cũng cần các lệnh gọi RPC phạm vi đọc hoạt động tốt. --deepthêm một lần quét nỗ lực tối đa để tìm các bản cài đặt launchd/systemd/schtasks bổ sung. Khi phát hiện nhiều dịch vụ giống gateway, đầu ra cho người đọc in gợi ý dọn dẹp và cảnh báo rằng hầu hết thiết lập chỉ nên chạy một gateway trên mỗi máy.- Đầu ra cho người đọc bao gồm đường dẫn nhật ký tệp đã phân giải cùng ảnh chụp nhanh đường dẫn/tính hợp lệ cấu hình CLI so với dịch vụ để giúp chẩn đoán sai lệch hồ sơ hoặc thư mục trạng thái.
Kiểm tra sai lệch xác thực Linux systemd
Kiểm tra sai lệch xác thực Linux systemd
- Trên các bản cài đặt Linux systemd, kiểm tra sai lệch xác thực dịch vụ đọc cả giá trị
Environment=vàEnvironmentFile=từ unit (bao gồm%h, đường dẫn có dấu ngoặc kép, nhiều tệp và tệp tùy chọn có tiền tố-). - Kiểm tra sai lệch phân giải SecretRef
gateway.auth.tokenbằng env runtime đã hợp nhất (env lệnh dịch vụ trước, rồi env tiến trình làm dự phòng). - Nếu xác thực bằng mã thông báo không thực sự đang hoạt động (
gateway.auth.moderõ ràng làpassword/none/trusted-proxy, hoặc chưa đặt chế độ trong đó mật khẩu có thể thắng và không có ứng viên mã thông báo nào có thể thắng), kiểm tra sai lệch mã thông báo sẽ bỏ qua phân giải mã thông báo cấu hình.
gateway probe
gateway probe là lệnh “gỡ lỗi mọi thứ”. Nó luôn thăm dò:
- gateway từ xa đã cấu hình của bạn (nếu đã đặt), và
- localhost (loopback) ngay cả khi đã cấu hình từ xa.
--url, mục tiêu rõ ràng đó được thêm trước cả hai. Đầu ra cho người đọc gắn nhãn các mục tiêu là:
URL (explicit)Remote (configured)hoặcRemote (configured, inactive)Local loopback
Nếu nhiều gateway có thể truy cập, lệnh sẽ in tất cả. Nhiều gateway được hỗ trợ khi bạn dùng hồ sơ/cổng tách biệt (ví dụ: bot cứu hộ), nhưng hầu hết bản cài đặt vẫn chạy một gateway duy nhất.
Cách diễn giải
Cách diễn giải
Reachable: yesnghĩa là ít nhất một mục tiêu đã chấp nhận kết nối WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlybáo cáo điều phép thăm dò có thể chứng minh về xác thực. Nó tách biệt với khả năng truy cập.Read probe: oknghĩa là các lệnh gọi RPC chi tiết phạm vi đọc (health/status/system-presence/config.get) cũng thành công.Read probe: limited - missing scope: operator.readnghĩa là kết nối thành công nhưng RPC phạm vi đọc bị giới hạn. Trường hợp này được báo cáo là khả năng truy cập suy giảm, không phải thất bại hoàn toàn.Read probe: failedsauConnect: oknghĩa là Gateway đã chấp nhận kết nối WebSocket, nhưng chẩn đoán đọc tiếp theo đã hết thời gian chờ hoặc thất bại. Trường hợp này cũng là khả năng truy cập suy giảm, không phải Gateway không thể truy cập.- Giống
gateway status, probe tái sử dụng xác thực thiết bị đã lưu trong bộ nhớ đệm nhưng không tạo danh tính thiết bị lần đầu hoặc trạng thái ghép đôi. - Mã thoát chỉ khác không khi không có mục tiêu nào được thăm dò có thể truy cập.
Đầu ra JSON
Đầu ra JSON
Cấp cao nhất:
ok: ít nhất một mục tiêu có thể truy cập.degraded: ít nhất một mục tiêu đã chấp nhận kết nối nhưng không hoàn tất toàn bộ chẩn đoán RPC chi tiết.capability: khả năng tốt nhất thấy được trên các mục tiêu có thể truy cập (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scope, hoặcunknown).primaryTargetId: mục tiêu tốt nhất để xem là mục tiêu thắng đang hoạt động theo thứ tự này: URL rõ ràng, đường hầm SSH, từ xa đã cấu hình, rồi local loopback.warnings[]: bản ghi cảnh báo nỗ lực tối đa vớicode,messagevàtargetIdstùy chọn.network: gợi ý URL local loopback/tailnet suy ra từ cấu hình hiện tại và mạng của máy chủ.discovery.timeoutMsvàdiscovery.count: ngân sách khám phá/số lượng kết quả thực tế được dùng cho lượt thăm dò này.
targets[].connect):ok: khả năng truy cập sau phân loại kết nối + suy giảm.rpcOk: RPC chi tiết đầy đủ thành công.scopeLimited: RPC chi tiết thất bại do thiếu phạm vi operator.
targets[].auth):role: vai trò xác thực được báo cáo tronghello-okkhi có.scopes: các phạm vi được cấp được báo cáo tronghello-okkhi có.capability: phân loại khả năng xác thực được hiển thị cho mục tiêu đó.
Mã cảnh báo thường gặp
Mã cảnh báo thường gặp
ssh_tunnel_failed: thiết lập đường hầm SSH thất bại; lệnh đã quay về thăm dò trực tiếp.multiple_gateways: có thể truy cập nhiều hơn một mục tiêu; điều này bất thường trừ khi bạn cố ý chạy các hồ sơ tách biệt, chẳng hạn như bot cứu hộ.auth_secretref_unresolved: SecretRef xác thực đã cấu hình không thể được phân giải cho một mục tiêu thất bại.probe_scope_limited: kết nối WebSocket thành công, nhưng phép thăm dò đọc bị giới hạn do thiếuoperator.read.
Từ xa qua SSH (tương đương ứng dụng Mac)
Chế độ “Từ xa qua SSH” của ứng dụng macOS dùng chuyển tiếp cổng cục bộ để gateway từ xa (có thể chỉ liên kết với loopback) có thể truy cập tạiws://127.0.0.1:<port>.
Tương đương trên CLI:
user@host hoặc user@host:port (cổng mặc định là 22).Tệp danh tính.
Chọn máy chủ gateway đầu tiên được phát hiện làm mục tiêu SSH từ endpoint khám phá đã phân giải (
local. cộng với miền diện rộng đã cấu hình, nếu có). Gợi ý chỉ TXT sẽ bị bỏ qua.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Trình trợ giúp RPC cấp thấp.
Chuỗi đối tượng JSON cho tham số.
URL WebSocket của Gateway.
Mã thông báo Gateway.
Mật khẩu Gateway.
Ngân sách thời gian chờ.
Chủ yếu dành cho RPC kiểu agent phát trực tuyến các sự kiện trung gian trước payload cuối cùng.
Đầu ra JSON có thể đọc bằng máy.
--params phải là JSON hợp lệ.Quản lý dịch vụ Gateway
Cài đặt với wrapper
Dùng--wrapper khi dịch vụ được quản lý phải khởi động thông qua một tệp thực thi khác, ví dụ một
shim trình quản lý bí mật hoặc trình trợ giúp chạy dưới tư cách người dùng khác. Wrapper nhận các đối số Gateway thông thường và
chịu trách nhiệm cuối cùng exec openclaw hoặc Node với các đối số đó.
gateway install xác thực rằng đường dẫn là
một tệp thực thi, ghi wrapper vào ProgramArguments của dịch vụ và lưu bền
OPENCLAW_WRAPPER trong môi trường dịch vụ cho các lần cài đặt lại bắt buộc, cập nhật và sửa chữa bằng doctor sau này.
OPENCLAW_WRAPPER trong khi cài đặt lại:
Tùy chọn lệnh
Tùy chọn lệnh
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway uninstall|start|stop|restart:--json
Hành vi vòng đời
Hành vi vòng đời
- Dùng
gateway restartđể khởi động lại một dịch vụ được quản lý. Không nối chuỗigateway stopvàgateway startđể thay thế khởi động lại; trên macOS,gateway stopcố ý vô hiệu hóa LaunchAgent trước khi dừng nó. - Các lệnh vòng đời chấp nhận
--jsonđể viết script.
Xác thực và SecretRefs tại thời điểm cài đặt
Xác thực và SecretRefs tại thời điểm cài đặt
- Khi xác thực bằng mã thông báo yêu cầu một mã thông báo và
gateway.auth.tokenđược quản lý bằng SecretRef,gateway installxác thực rằng SecretRef có thể được phân giải nhưng không lưu bền mã thông báo đã phân giải vào metadata môi trường dịch vụ. - Nếu xác thực bằng mã thông báo yêu cầu một mã thông báo và SecretRef mã thông báo đã cấu hình chưa được phân giải, cài đặt thất bại đóng thay vì lưu bền văn bản thuần dự phòng.
- Với xác thực bằng mật khẩu trên
gateway run, ưu tiênOPENCLAW_GATEWAY_PASSWORD,--password-file, hoặcgateway.auth.passwordđược hỗ trợ bằng SecretRef thay vì--passwordnội tuyến. - Trong chế độ xác thực suy luận,
OPENCLAW_GATEWAY_PASSWORDchỉ trong shell không nới lỏng yêu cầu mã thông báo khi cài đặt; hãy dùng cấu hình bền vững (gateway.auth.passwordhoặcenvcấu hình) khi cài đặt dịch vụ được quản lý. - Nếu cả
gateway.auth.tokenvàgateway.auth.passwordđều được cấu hình vàgateway.auth.modechưa được đặt, cài đặt sẽ bị chặn cho đến khi chế độ được đặt rõ ràng.
Khám phá gateway (Bonjour)
gateway discover quét beacon Gateway (_openclaw-gw._tcp).
- DNS-SD multicast:
local. - DNS-SD unicast (Bonjour diện rộng): chọn một miền (ví dụ:
openclaw.internal.) và thiết lập split DNS + máy chủ DNS; xem Bonjour.
role(gợi ý vai trò gateway)transport(gợi ý truyền tải, ví dụgateway)gatewayPort(cổng WebSocket, thường là18789)sshPort(tùy chọn; client mặc định mục tiêu SSH là22khi không có)tailnetDns(tên máy chủ MagicDNS, khi có)gatewayTls/gatewayTlsSha256(TLS đã bật + vân tay chứng chỉ)cliPath(gợi ý cài đặt từ xa được ghi vào vùng diện rộng)
gateway discover
Thời gian chờ theo từng lệnh (duyệt/phân giải).
Đầu ra có thể đọc bằng máy (cũng tắt kiểu hiển thị/spinner).
- CLI quét
local.cùng với miền diện rộng đã cấu hình khi miền này được bật. wsUrltrong đầu ra JSON được dẫn xuất từ điểm cuối dịch vụ đã phân giải, không phải từ các gợi ý chỉ có TXT nhưlanHosthoặctailnetDns.- Trên mDNS
local.,sshPortvàcliPathchỉ được phát quảng bá khidiscovery.mdns.modelàfull. DNS-SD diện rộng vẫn ghicliPath;sshPortcũng vẫn là tùy chọn ở đó.