OpenClaw hiện đã có thể chạy trên Raspberry Pi 5 cùng với SignalK, cho phép chủ tàu nhắn tin cho tàu của họ qua Telegram và nhận dữ liệu đo xa (telemetry) trực tiếp chỉ trong vài giây. Sự kết hợp này hoạt động ngay lập tức, nhưng một vài lỗi cấu hình nhỏ có thể làm treo daemon và lãng phí token.
Tại sao LLM chạy trên Pi lại quan trọng đối với thủy thủ
Các tàu nhỏ thường thiếu băng thông hoặc ngân sách cho các dịch vụ AI dựa trên đám mây. Một chiếc Raspberry Pi 5 cung cấp đủ khả năng tính toán để chạy OpenClaw, một trợ lý dựa trên LLM mã nguồn mở, trong khi SignalK cung cấp một API tiêu chuẩn cho dữ liệu hàng hải. Cùng nhau, chúng tạo ra một giao diện chat trên tàu với chi phí thấp, có thể trả lời các câu hỏi như “Tốc độ của tôi là bao nhiêu?” hoặc “Nước sâu bao nhiêu?” mà không cần rời khỏi tàu.
Các thành phần giúp hệ thống vận hành trơn tru
- OpenClaw chạy trực tiếp trên OS của Pi, sử dụng ngăn xếp mô hình (model stack) cục bộ.
- SignalK chạy trong một Docker container, cung cấp một REST (HTTP) API để công bố các thông số cảm biến dưới dạng JSON.
- Hai chương trình này hoạt động độc lập: OpenClaw gọi các endpoint của SignalK, và SignalK không bao giờ can thiệp vào các tiến trình nội bộ của LLM.
Vì giao tiếp thuần túy qua HTTP, không cần các thủ thuật mạng đặc biệt nào. Chỉ cần một kết nối Ethernet hoặc Wi-Fi duy nhất là đủ để duy trì vòng lặp.
Những cạm bẫy khiến người mới bắt đầu gặp khó khăn
Chế độ gateway phải được xác định – Cấu hình OpenClaw chứa một khóa
gateway.modeđể chỉ dẫn cho daemon cách công bố API của nó. Việc xóa khóa này một cách âm thầm sẽ khiến dịch vụ không thể khởi động. Cách khắc phục an toàn là:openclaw config set gateway.mode localChuyển đổi đơn vị không diễn ra tự động – SignalK tuân theo Hệ thống Đơn vị Quốc tế (SI). Tốc độ được gửi về dưới dạng mét/giây, độ sâu dưới dạng mét. Nếu LLM được hỏi về “knots” hoặc “feet”, nó sẽ lặp lại các con số thô, dẫn đến câu trả lời gây hiểu lầm. Hãy thêm logic chuyển đổi vào prompt của agent hoặc xử lý hậu kỳ (post-process) tệp JSON trước khi gửi lại cho người dùng.
Dữ liệu lịch sử là một plugin riêng biệt – Theo mặc định, OpenClaw chỉ thấy được bản chụp (snapshot) mới nhất. Để hỏi về các xu hướng (“Gió có tăng lên trong một giờ qua không?”), bạn cần plugin InfluxDB history của SignalK. Hãy cài đặt và kích hoạt nó, sau đó công bố endpoint lịch sử cho agent.
Thiếu
jqtrên Raspberry Pi OS – Nhiều hướng dẫn giả định rằng trình xử lý JSON dòng lệnhjqđã có sẵn. Bản image của Pi không đi kèm nó. Thay vì cài đặt thêm các gói bổ sung, hãy để OpenClaw tự phân tích JSON thô; các LLM hiện đại xử lý các cấu trúc lồng nhau đủ tốt cho hầu hết các truy vấn telemetry.Đừng tắt plugin Ollama – Ollama cung cấp môi trường thực thi (runtime) cho các mô hình ngôn ngữ cục bộ. Việc tắt nó sẽ làm mất kết nối với backend mô hình và khiến agent không thể tạo câu trả lời. Hãy giữ plugin luôn bật ngay cả khi bạn không sử dụng các công cụ bổ sung của nó.
Cắt giảm chi phí token mà không làm giảm hiệu quả
Chạy mô hình ngôn ngữ cục bộ vẫn phát sinh chi phí token mỗi khi mô hình xử lý một yêu cầu. Hai tinh chỉnh thực tế đã giúp tôi giảm mức sử dụng xuống khoảng một phần tư:
Thu gọn bộ công cụ – OpenClaw đi kèm với cả một bộ công cụ dành cho nhà phát triển (thực thi mã, duyệt tệp, v.v.). Các trợ lý liên quan đến tàu thuyền hiếm khi cần gì ngoài quyền truy cập runtime và hệ thống tệp. Chuyển sang cấu hình tối giản (minimal profile) sẽ loại bỏ việc tiêu tốn token không cần thiết.
Kéo dài thời gian lưu trữ cache – Cấu hình cho phép bạn giữ system prompt và ngữ cảnh gần đây trong bộ nhớ lâu hơn. Cache dài hơn đồng nghĩa với việc mô hình không phải mã hóa lại cùng một chỉ dẫn trong mỗi tin nhắn Telegram, giúp tiết kiệm token trong mỗi lượt phản hồi.
Đối với những chủ tàu thích giám sát yên tĩnh, tính năng cron tích hợp có thể kiểm tra các cảm biến quan trọng (điện áp pin, báo động độ sâu) theo lịch trình. Agent chỉ gửi cảnh báo Telegram khi một ngưỡng được vượt qua, giúp kênh chat luôn gọn gàng.
Ai được lợi, ai cần lưu ý
- Chủ tàu có được một giao diện hội thoại trên tàu với chi phí rẻ. Không phí đăng ký, không phụ thuộc vào dữ liệu di động.
- Những người duy trì mã nguồn mở thấy được một ứng dụng thực tế giúp kiểm tra cả OpenClaw và SignalK trong một môi trường hạn chế, từ đó phát hiện ra các lỗi mà bình thường sẽ bị ẩn đi.
- Các nhà cung cấp Cloud LLM mất đi một phân khúc thị trường ngách, nhưng họ vẫn giữ lợi thế trong việc suy luận chuyên sâu hoặc xử lý đầu vào đa phương thức (multi-modal) mà một chiếc Pi không thể đảm đương.
Rủi ro chính là độ tin cậy: một sự cố về nguồn điện hoặc lỗi Docker có thể khiến trợ lý ngừng hoạt động. Việc dự phòng (một chiếc Pi thứ hai, bộ lưu điện UPS) sẽ giảm thiểu vấn đề này nhưng làm tăng chi phí. Người dùng cũng nên bảo vệ token của Telegram bot; một token bị lộ sẽ cho phép bất kỳ ai truy vấn các cảm biến của tàu.
Điều cần theo dõi tiếp theo
- Cập nhật mô hình – Khi các mô hình lượng tử hóa mới hơn và hiệu quả hơn xuất hiện, chúng sẽ chạy nhanh hơn trên các lõi ARM của Pi, giúp giảm thêm độ trễ.
- Các tiện ích mở rộng SignalK – Các plugin do cộng đồng xây dựng cho AIS, radar hoặc dự báo thời tiết có thể được kết nối với LLM, giúp mở rộng phạm vi hội thoại.
- Tăng cường bảo mật – Các dự án hiện đang thử nghiệm mã hóa đầu cuối cho SignalK-OpenClaw API, một bước đi hợp lý cho bất kỳ tàu thuyền nào di chuyển trên các vùng nước công cộng.
Điểm mấu chốt
Triển khai OpenClaw trên Raspberry Pi 5 cùng với SignalK biến một con thuyền bình thường thành một nền tảng có khả năng trò chuyện, nhưng thành công phụ thuộc vào việc duy trì chế độ gateway, xử lý chuyển đổi đơn vị, kích hoạt lưu trữ lịch sử và duy trì plugin Ollama hoạt động. Hãy tinh giản bộ công cụ và kéo dài thời gian lưu trữ bộ nhớ đệm để giữ mức sử dụng token thấp, đồng thời sử dụng báo thức cron để giữ trạng thái im lặng cho đến khi có vấn đề quan trọng xảy ra. Kết quả là một trợ lý đo lường từ xa (telemetry) thời gian thực với chi phí thấp, hoạt động hoàn toàn trên tàu, mang lại cho thủy thủ sự tiện lợi của một chatbot mà không phải trả chi phí đắt đỏ cho các dịch vụ đám mây.
