OpenClaw “presence” là một chế độ xem nhẹ, theo kiểu nỗ lực tối đa về:Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- chính Gateway, và
- các máy khách được kết nối với Gateway (ứng dụng mac, WebChat, CLI, v.v.)
Các trường presence (những gì hiển thị)
Các mục presence là các đối tượng có cấu trúc với những trường như:instanceId(không bắt buộc nhưng rất được khuyến nghị): danh tính máy khách ổn định (thường làconnect.client.instanceId)host: tên máy chủ thân thiện với con ngườiip: địa chỉ IP theo nỗ lực tối đaversion: chuỗi phiên bản máy kháchdeviceFamily/modelIdentifier: gợi ý phần cứngmode:ui,webchat,cli,backend,probe,test,node, …lastInputSeconds: “số giây kể từ lần nhập cuối của người dùng” (nếu biết)reason:self,connect,node-connected,periodic, …ts: dấu thời gian cập nhật gần nhất (ms kể từ epoch)
Nguồn tạo (presence đến từ đâu)
Các mục presence được tạo từ nhiều nguồn và được hợp nhất.1) Mục tự thân của Gateway
Gateway luôn khởi tạo một mục “self” khi khởi động để UI hiển thị máy chủ gateway ngay cả trước khi có bất kỳ máy khách nào kết nối.2) Kết nối WebSocket
Mỗi máy khách WS bắt đầu bằng một yêu cầuconnect. Khi bắt tay thành công,
Gateway upsert một mục presence cho kết nối đó.
Vì sao các lệnh CLI dùng một lần không hiển thị
CLI thường kết nối cho các lệnh ngắn, dùng một lần. Để tránh làm rối danh sách Instances,client.mode === "cli" không được chuyển thành một mục presence.
3) Beacon system-event
Máy khách có thể gửi các beacon định kỳ giàu thông tin hơn qua phương thức system-event. Ứng dụng mac
dùng cơ chế này để báo cáo tên máy chủ, IP và lastInputSeconds.
4) Node kết nối (role: node)
Khi một node kết nối qua WebSocket của Gateway vớirole: node, Gateway
upsert một mục presence cho node đó (cùng luồng như các máy khách WS khác).
Quy tắc hợp nhất + khử trùng lặp (vì sao instanceId quan trọng)
Các mục presence được lưu trong một map duy nhất trong bộ nhớ:
- Các mục được khóa theo một khóa presence.
- Khóa tốt nhất là một
instanceIdổn định (từconnect.client.instanceId) có thể tồn tại qua các lần khởi động lại. - Khóa không phân biệt chữ hoa chữ thường.
instanceId ổn định, nó có thể hiển thị thành một
hàng trùng lặp.
TTL và kích thước giới hạn
Presence được thiết kế là tạm thời:- TTL: các mục cũ hơn 5 phút sẽ bị cắt bỏ
- Số mục tối đa: 200 (mục cũ nhất bị loại trước)
Lưu ý về từ xa/tunnel (IP loopback)
Khi một máy khách kết nối qua tunnel SSH / chuyển tiếp cổng cục bộ, Gateway có thể thấy địa chỉ từ xa là127.0.0.1. Để tránh ghi đè một IP do máy khách báo cáo
đang tốt, các địa chỉ từ xa loopback sẽ bị bỏ qua.
Bên tiêu thụ
Thẻ Instances trên macOS
Ứng dụng macOS hiển thị đầu ra củasystem-presence và áp dụng một chỉ báo trạng thái nhỏ
(Đang hoạt động/Không hoạt động/Cũ) dựa trên độ tuổi của lần cập nhật cuối.
Mẹo gỡ lỗi
- Để xem danh sách thô, hãy gọi
system-presencetới Gateway. - Nếu bạn thấy các mục trùng lặp:
- xác nhận máy khách gửi một
client.instanceIdổn định trong bắt tay - xác nhận các beacon định kỳ dùng cùng
instanceId - kiểm tra xem mục bắt nguồn từ kết nối có thiếu
instanceIdhay không (các mục trùng lặp là điều được kỳ vọng)
- xác nhận máy khách gửi một
Liên quan
Chỉ báo đang nhập
Khi nào chỉ báo đang nhập được gửi và cách tinh chỉnh chúng.
Truyền phát và chia đoạn
Truyền phát đi, chia đoạn, và định dạng theo từng kênh.
Kiến trúc Gateway
Các thành phần Gateway và giao thức WebSocket điều khiển các bản cập nhật presence.
Giao thức Gateway
Giao thức truyền dẫn cho
connect, system-event, và system-presence.