Gateway - Neotask by Neotask Documentation | Neotask

Gateway

Gateway คืออะไร?

Gateway คือหัวใจของ Open Claw — บริการที่รันระยะยาวตัวเดียวที่จัดการเซสชันเอเจนต์ทั้งหมด ช่องทางการส่งข้อความ การรันเครื่องมือ และการเชื่อมต่ออุปกรณ์ ทุกอย่างไหลผ่าน Gateway

มันคือ WebSocket server ที่รับฟังการเชื่อมต่อจาก client (แอปเดสก์ท็อป แอปมือถือ web dashboard) และจัดการวงจรชีวิตของผู้ช่วย AI ทั้งหมด

สถาปัตยกรรม

ส่วนประกอบ

  • WebSocket Server — รับการเชื่อมต่อ client (พอร์ตเริ่มต้น 18789)
  • HTTP Server — ให้บริการ Control UI, canvas host และ health endpoint
  • Channel Adapter — รักษาการเชื่อมต่อกับแพลตฟอร์มการส่งข้อความ (WhatsApp, Telegram, Discord เป็นต้น)
  • Session Manager — คงและจัดการสถานะการสนทนาของเอเจนต์
  • Cron Scheduler — รันงานตามกำหนดการและ heartbeat wakeup
  • Plugin Runtime — โหลดและจัดการวงจรชีวิต plugin
  • Browser Service — ควบคุม Chromium instance สำหรับการทำงานอัตโนมัติของเว็บ
  • โหมด Binding

    | โหมด | คำอธิบาย | |------|-------------| | Loopback | ค่าเริ่มต้น เข้าถึงได้เฉพาะจาก localhost (127.0.0.1) | | LAN | เข้าถึงได้บนเครือข่ายท้องถิ่น ค้นพบได้อัตโนมัติผ่าน Bonjour/mDNS | | Tailnet | เข้าถึงได้ผ่าน Tailscale VPN พร้อม MagicDNS | | Custom | Bind กับที่อยู่เฉพาะ |

    การตรวจสอบสิทธิ์

    | วิธีการ | คำอธิบาย | |--------|-------------| | Token | WebSocket bearer token (UUID หรือ string กำหนดเอง) | | Password | การตรวจสอบสิทธิ์ด้วยรหัสผ่าน (bcrypt hashed) | | Trusted Proxy | สำหรับ reverse proxy ที่มี pre-auth header | | Local Trust | การเชื่อมต่อ loopback ได้รับการอนุมัติอัตโนมัติ |

    การกำหนดค่า

    Gateway กำหนดค่าผ่าน openclaw.json (รูปแบบ JSON5) ส่วนสำคัญ:

    | ส่วน | ควบคุม | |---------|----------| | agents | รายการเอเจนต์ ค่าเริ่มต้น workspace | | gateway | พอร์ต bind mode, auth, พฤติกรรมโหลดซ้ำ | | channels | การกำหนดค่าและข้อมูลประจำตัวต่อช่องทาง | | tools | สิทธิ์เครื่องมือ profile ความปลอดภัย | | plugins | การโหลด plugin การเปิดใช้งาน การกำหนดค่าต่อ plugin | | models | auth ผู้ให้บริการ fallback การตั้งค่าผู้ให้บริการ | | skills | ไดเรกทอรีทักษะ การกำหนดค่าต่อทักษะ | | browser | Browser profile, พอร์ต โหมด headless | | cron | การกำหนดค่า scheduler | | session | กฎการรีเซ็ต เกณฑ์การบีบอัด | | messages | การตั้งค่า TTS นโยบายสื่อ | | memory | การกำหนดค่าการ index หน่วยความจำ | | security | การ sandbox โหมดยกระดับ การอนุมัติ |

    Hot Reload

    การเปลี่ยนแปลงการกำหนดค่าสามารถใช้งานได้โดยไม่ต้องรีสตาร์ท:

    | โหมด | พฤติกรรม | |------|----------| | Hybrid (ค่าเริ่มต้น) | ใช้การเปลี่ยนแปลงที่ปลอดภัยแบบ hot-apply รีสตาร์ทสำหรับอื่น ๆ | | Hot | ใช้เฉพาะการเปลี่ยนแปลงที่ปลอดภัยแบบ hot เพิกเฉยต่ออื่น ๆ | | Restart | รีสตาร์ทเมื่อมีการเปลี่ยนแปลงที่ต้องโหลดซ้ำ | | Off | ไม่มีการโหลดซ้ำอัตโนมัติ |

    การเข้าถึงระยะไกล

    Tailscale (แนะนำ)

    Tailscale ให้การเข้าถึงระยะไกลที่ปลอดภัยและ zero-config:

  • Bind Gateway กับ Tailnet ของคุณ
  • เข้าถึงได้จากอุปกรณ์ใด ๆ ในเครือข่าย Tailscale เดียวกัน
  • DNS อัตโนมัติผ่าน MagicDNS
  • Tailscale Serve สามารถเปิดเผยแดชบอร์ดด้วย HTTPS
  • SSH Tunnel

    ส่งต่อพอร์ต Gateway ผ่าน SSH:

  • ง่าย ปลอดภัย ไม่ต้องเปลี่ยนแปลงการกำหนดค่า
  • ทำงานกับเครื่องใด ๆ ที่ใช้ SSH ได้
  • รองรับ WebSocket protocol เต็มรูปแบบและ Control UI
  • กฎความปลอดภัย

  • Loopback + SSH/Tailscale คือการรวมกันที่ปลอดภัยที่สุด
  • การ binding ที่ไม่ใช่ loopback ต้องการการกำหนดค่า auth token
  • การ pin fingerprint TLS มีให้สำหรับความปลอดภัยเพิ่มเติม
  • การควบคุมเบราว์เซอร์ถูกปิดใช้งานสำหรับการเชื่อมต่อระยะไกลโดยค่าเริ่มต้น
  • การตรวจสอบสุขภาพ

    Health Endpoint

    HTTP endpoint /health ส่งคืน:

  • สถานะ Gateway
  • liveness ของ RPC
  • สุขภาพต่อช่องทาง (เชื่อมต่อ สถานะ auth จำนวนบัญชี)
  • ความพร้อมของเบราว์เซอร์
  • เอเจนต์ที่ทำงานอยู่และ node ที่เชื่อมต่อ
  • Uptime
  • Probe

  • RPC liveness — WebSocket connect + echo test
  • Channel health — Auth check + API ping ต่อช่องทาง
  • Browser readiness — Port check, process check
  • Node connectivity — Timestamp heartbeat ล่าสุด
  • การค้นพบ

    Bonjour/mDNS

    เมื่อ bind กับ LAN, Gateway โฆษณาตัวเองผ่าน multicast DNS:

  • ประเภทบริการ: _openclaw-gw._tcp
  • รวมถึงพอร์ต transport สถานะ TLS และข้อมูล Tailscale DNS
  • แอปคู่หูค้นพบ Gateway โดยอัตโนมัติ
  • Wide-Area Discovery

    ค้นพบ gateway ข้ามเครือข่ายของคุณพร้อม timeout ที่กำหนดค่าได้ รองรับทั้ง Bonjour ในเครื่องและการค้นพบ DNS ของ Tailscale

    Gateway หลายตัว

    คุณสามารถรัน Gateway หลาย instance บนเครื่องเดียวกันโดยใช้ profile:

  • แต่ละ profile มี config, workspace, เซสชัน และ state แยกกัน
  • พอร์ตที่แตกต่างกันสำหรับแต่ละ Gateway
  • มีประโยชน์สำหรับการแยกตัว (ส่วนตัว vs งาน) หรือการทดสอบ
  • การวินิจฉัย

    Doctor

    เครื่องมือวินิจฉัยในตัวตรวจสอบ:

  • ความถูกต้องของการกำหนดค่า
  • สิทธิ์ไฟล์
  • การเชื่อมต่อช่องทาง
  • สถานะ auth ของ model
  • ความเข้ากันได้กับเวอร์ชัน Node.js
  • การกำหนดค่าที่ผิดปกติทั่วไป
  • มันสามารถแก้ไขปัญหาหลาย ๆ อย่างโดยอัตโนมัติเมื่อได้รับอนุญาต

    Logging

    Gateway log ถูกเขียนลงในไฟล์ JSONL รายวัน:

  • การติดตามการใช้โทเค็นต่อการ completion
  • Channel event log
  • การบันทึกข้อผิดพลาดพร้อม context ที่มีโครงสร้าง
  • ระดับ log ที่กำหนดค่าได้
  • View full documentation