RPC and API
อะแดปเตอร์ RPC
OpenClaw ผสานรวม CLI ภายนอกผ่าน JSON-RPC ปัจจุบันใช้สองรูปแบบ
รูปแบบ A: ดีมอน HTTP (signal-cli)
signal-cliทำงานเป็นดีมอนด้วย JSON-RPC ผ่าน HTTP- สตรีมเหตุการณ์คือ SSE (
/api/v1/events) - โพรบสุขภาพ:
/api/v1/check - OpenClaw จัดการวงจรชีวิตเมื่อ
channels.signal.autoStart=true
ดู Signal สำหรับการตั้งค่าและปลายทาง
รูปแบบ B: โปรเซสลูก stdio (เดิม: imsg)
หมายเหตุ: สำหรับการตั้งค่า iMessage ใหม่ ให้ใช้ BlueBubbles แทน
- OpenClaw สร้าง
imsg rpcเป็นโปรเซสลูก (การผสานรวม iMessage แบบเดิม) - JSON-RPC ถูกคั่นตามบรรทัดผ่าน stdin/stdout (หนึ่งออบเจ็กต์ JSON ต่อหนึ่งบรรทัด)
- ไม่มีพอร์ต TCP และไม่จำเป็นต้องมีดีมอน
เมธอดหลักที่ใช้:
watch.subscribe→ การแจ้งเตือน (method: "message")watch.unsubscribesendchats.list(โพรบ/การวินิจฉัย)
ดู iMessage สำหรับการตั้งค่าแบบเดิมและการระบุที่อยู่ (แนะนำให้ใช้ chat_id)
แนวทางสำหรับอะแดปเตอร์
- Gateway เป็นเจ้าของโปรเซส (เริ่ม/หยุดผูกกับวงจรชีวิตของผู้ให้บริการ)
- ทำให้ไคลเอนต์ RPC ทนทานอยู่เสมอ: หมดเวลา, เริ่มใหม่เมื่อออก
- ควรใช้ ID ที่เสถียร (เช่น
chat_id) แทนสตริงที่ใช้แสดงผล