Documentation Index
Fetch the complete documentation index at: https://openclawhub.vn/llms.txt
Use this file to discover all available pages before exploring further.
TypeBox là nguồn duy nhất cho giao thức
Cập nhật lần cuối: 2026-01-10 TypeBox là thư viện schema ưu tiên TypeScript. Chúng tôi sử dụng nó để định nghĩa giao thức Gateway WebSocket (handshake, request/response, sự kiện server). Các schema này điều khiển xác thực runtime, xuất JSON Schema, và Swift codegen cho ứng dụng macOS. Một nguồn duy nhất; mọi thứ khác được tạo ra từ đây. Nếu bạn muốn tìm hiểu thêm về giao thức ở mức cao hơn, hãy bắt đầu với Kiến trúc Gateway.Mô hình tư duy (30 giây)
Mỗi thông điệp Gateway WS là một trong ba khung:- Request:
{ type: "req", id, method, params } - Response:
{ type: "res", id, ok, payload | error } - Event:
{ type: "event", event, payload, seq?, stateVersion? }
connect. Sau đó, client có thể gọi các phương thức (ví dụ: health, send, chat.send) và đăng ký sự kiện (ví dụ: presence, tick, agent).
Luồng kết nối (tối thiểu):
| Danh mục | Ví dụ | Ghi chú |
|---|---|---|
| Core | connect, health, status | connect phải là đầu tiên |
| Messaging | send, poll, agent, agent.wait | tác động phụ cần idempotencyKey |
| Chat | chat.history, chat.send, chat.abort, chat.inject | WebChat sử dụng các phương thức này |
| Sessions | sessions.list, sessions.patch, sessions.delete | quản lý phiên |
| Nodes | node.list, node.invoke, node.pair.* | Gateway WS + hành động node |
| Events | tick, presence, agent, chat, health, shutdown | server push |
src/gateway/server.ts (METHODS, EVENTS).
Nơi lưu trữ các schema
- Nguồn:
src/gateway/protocol/schema.ts - Trình xác thực runtime (AJV):
src/gateway/protocol/index.ts - Handshake server + phân phối phương thức:
src/gateway/server.ts - Client node:
src/gateway/client.ts - JSON Schema được tạo:
dist/protocol.schema.json - Mô hình Swift được tạo:
apps/macos/Sources/OpenClawProtocol/GatewayModels.swift
Quy trình hiện tại
pnpm protocol:gen- ghi JSON Schema (draft‑07) vào
dist/protocol.schema.json
- ghi JSON Schema (draft‑07) vào
pnpm protocol:gen:swift- tạo mô hình Swift gateway
pnpm protocol:check- chạy cả hai trình tạo và xác minh đầu ra đã được commit
Cách sử dụng schema tại runtime
- Phía server: mỗi khung inbound được xác thực với AJV. Handshake chỉ chấp nhận yêu cầu
connectcó params khớp vớiConnectParams. - Phía client: client JS xác thực khung sự kiện và phản hồi trước khi sử dụng.
- Bề mặt phương thức: Gateway quảng cáo các
methodsvàeventsđược hỗ trợ tronghello-ok.
Ví dụ về khung
Kết nối (thông điệp đầu tiên):Client tối thiểu (Node.js)
Luồng nhỏ nhất hữu ích: kết nối + health.Ví dụ thực tế: thêm một phương thức từ đầu đến cuối
Ví dụ: thêm yêu cầusystem.echo mới trả về { ok: true, text }.
- Schema (nguồn duy nhất)
src/gateway/protocol/schema.ts:
ProtocolSchemas và xuất các kiểu:
- Xác thực
src/gateway/protocol/index.ts, xuất một trình xác thực AJV:
- Hành vi server
src/gateway/server-methods/system.ts:
src/gateway/server-methods.ts (đã gộp systemHandlers), sau đó thêm "system.echo" vào METHODS trong src/gateway/server.ts.
- Tái tạo
- Kiểm tra + tài liệu
src/gateway/server.*.test.ts và ghi chú phương thức trong tài liệu.
Hành vi codegen Swift
Trình tạo Swift phát ra:- Enum
GatewayFramevới các trường hợpreq,res,event, vàunknown - Các struct/enum payload kiểu mạnh
- Giá trị
ErrorCodevàGATEWAY_PROTOCOL_VERSION
Phiên bản + khả năng tương thích
PROTOCOL_VERSIONnằm trongsrc/gateway/protocol/schema.ts.- Client gửi
minProtocol+maxProtocol; server từ chối nếu không khớp. - Các mô hình Swift giữ lại các loại khung không xác định để tránh làm hỏng các client cũ hơn.
Mẫu và quy ước schema
- Hầu hết các đối tượng sử dụng
additionalProperties: falseđể đảm bảo payload chặt chẽ. NonEmptyStringlà mặc định cho ID và tên phương thức/sự kiện.GatewayFramecấp cao nhất sử dụng discriminator trêntype.- Các phương thức có tác động phụ thường yêu cầu
idempotencyKeytrong params (ví dụ:send,poll,agent,chat.send). agentchấp nhậninternalEventstùy chọn cho ngữ cảnh điều phối được tạo runtime (ví dụ: hoàn thành nhiệm vụ subagent/cron); coi đây là bề mặt API nội bộ.
JSON schema trực tiếp
JSON Schema được tạo nằm trong repo tạidist/protocol.schema.json. Tệp thô đã xuất bản thường có sẵn tại:
Khi bạn thay đổi schema
- Cập nhật các schema TypeBox.
- Chạy
pnpm protocol:check. - Commit schema đã tái tạo + mô hình Swift.