Developer and self-hosted
Raft
Hỗ trợ Raft kết nối một tác nhân OpenClaw với Raft External Agent thông qua Raft CLI cục bộ. Raft gửi các gợi ý đánh thức đã xác thực đến Gateway. Sau đó tác nhân dùng Raft CLI để kiểm tra và gửi tin nhắn.
Cài đặt
Raft là một Plugin bên ngoài chính thức. Cài đặt trên máy chủ Gateway:
openclaw plugins install @openclaw/raftopenclaw gateway restartChi tiết: Plugin
Điều kiện tiên quyết
- Một không gian làm việc Raft có External Agent.
- Raft CLI được cài đặt trên cùng máy chủ với OpenClaw Gateway.
- Một hồ sơ Raft CLI đã đăng nhập và được liên kết với External Agent đó.
Plugin không lưu trữ thông tin xác thực Raft. Raft CLI giữ xác thực đó trong hồ sơ riêng của nó.
Cấu hình
Đặt hồ sơ trong cấu hình:
{ channels: { raft: { enabled: true, profile: "openclaw", }, },}Với tài khoản mặc định, bạn cũng có thể đặt RAFT_PROFILE trong môi trường
Gateway:
RAFT_PROFILE=openclawDùng tài khoản có tên khi một Gateway kết nối với nhiều Raft External Agent:
{ channels: { raft: { accounts: { support: { profile: "support-agent", }, engineering: { profile: "engineering-agent", }, }, }, },}Luồng thiết lập tương tác ghi lại cùng hồ sơ:
openclaw channels setup raftCách hoạt động
Khi Gateway khởi động, Plugin:
- Mở một điểm cuối HTTP đánh thức chỉ cho loopback trên một cổng tạm thời.
- Khởi động
raft --profile <profile> agent bridgevới điểm cuối đó và một token riêng cho từng tiến trình. - Chỉ chấp nhận các gợi ý đánh thức đã xác thực, không có nội dung, có định danh chống phát lại từ cầu nối cục bộ.
- Yêu cầu một trong các giá trị
eventId,attemptId,messageId,delivery_id,wake_id, hoặcid. - Khử trùng lặp các lượt phân phối đánh thức được thử lại gần đây theo id sự kiện cầu nối, bao gồm cả sau khi Gateway khởi động lại.
- Trả về một phiên thời gian chạy ổn định cho cầu nối hiện tại và một lô rút hoạt động trống cho giao thức Raft CLI.
- Khởi động một lượt tác nhân OpenClaw được tuần tự hóa cho mỗi lần đánh thức được chấp nhận.
Cầu nối sở hữu việc thử lại và kết nối lại phân phối của Raft. Lượt OpenClaw chỉ nhận một thông báo đánh thức, không phải nội dung tin nhắn Raft được sao chép. Nó dùng CLI để đọc các tin nhắn đang chờ và gửi phản hồi:
raft --profile openclaw message checkraft --profile openclaw message sendXác minh
Kiểm tra rằng OpenClaw có thể tìm thấy CLI và có hồ sơ đã cấu hình:
openclaw channels status --probeopenclaw plugins inspect raft --runtime --jsonSau đó gửi một tin nhắn đến Raft External Agent. Nhật ký Gateway sẽ hiển thị cầu nối Raft khởi động, tiếp theo là một lần đánh thức đến. Tác nhân nên dùng hồ sơ Raft đã cấu hình để kiểm tra các tin nhắn đang chờ.
Khắc phục sự cố
Raft CLI is missing
Cài đặt Raft CLI trên máy chủ Gateway và làm cho raft khả dụng trên
PATH của dịch vụ. Xác minh bằng raft --help, rồi khởi động lại Gateway.
The bridge exits immediately
Xác minh hồ sơ đã cấu hình đã đăng nhập và thuộc về Raft External Agent dự kiến.
Chạy trực tiếp raft --profile <profile> agent bridge
để xem chẩn đoán của CLI.
A wake arrives but no Raft response is sent
Điều này là dự kiến khi tác nhân không gọi Raft CLI. Cầu nối đánh thức
không mang nội dung tin nhắn hoặc phản hồi cuối tự động. Kiểm tra chính sách công cụ
của tác nhân và đảm bảo nó có thể chạy raft --profile <profile> message check và message send.