อะแดปเตอร์RPC¶
OpenClawผสานรวมCLIภายนอกผ่านJSON-RPC ปัจจุบันมีการใช้งานอยู่สองแพตเทิร์น เมื่อกำหนดทั้ง daily และ idle ไว้พร้อมกัน ตัวที่หมดอายุก่อนจะเป็นตัวชนะ
แพตเทิร์นA: HTTP daemon (signal-cli)¶
signal-cliทำงานเป็นเดมอนด้วยJSON-RPCผ่านHTTP- สตรีมอีเวนต์เป็นSSE (
/api/v1/events) - Health probe:
/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(probe/การวินิจฉัย)
ดูการตั้งค่าแบบเดิมและการกำหนดที่อยู่ได้ที่iMessage (แนะนำ chat_id)
แนวทางสำหรับอะแดปเตอร์¶
- Gatewayเป็นผู้ดูแลโปรเซส(เริ่ม/หยุดผูกกับวงจรชีวิตของผู้ให้บริการ)
- ทำให้RPC clientมีความทนทาน: ตั้งค่าtimeout และรีสตาร์ตเมื่อโปรเซสออก
- ควรใช้IDที่เสถียร(เช่น
chat_id)มากกว่าสตริงที่ใช้แสดงผล