แอปคู่หู
แอปคู่หูคืออะไร?
แอปคู่หูคือแอปพลิเคชันแบบ native สำหรับ iOS, Android และ macOS ที่เชื่อมต่อกับ Gateway ของคุณในฐานะ node Node เปิดเผยความสามารถของอุปกรณ์, กล้อง canvas การบันทึกหน้าจอ ตำแหน่ง เสียง และการรันระบบ, ให้กับเอเจนต์ของคุณ
ลองคิดดูแบบนี้: Gateway คือสมอง และแอปคู่หูคือมือและตาบนอุปกรณ์ของคุณ
วิธีทำงานของ Node
- เชื่อมต่อ, แอปคู่หูเชื่อมต่อกับ Gateway ของคุณผ่าน WebSocket
- จับคู่, อุปกรณ์ใหม่ผ่านกระบวนการอนุมัติการจับคู่
- ลงทะเบียนความสามารถ, แอปบอก Gateway ว่าทำอะไรได้บ้าง (กล้อง canvas ตำแหน่ง เป็นต้น)
- เอเจนต์เรียกใช้, ระหว่างการสนทนา เอเจนต์สามารถขอให้ node ถ่ายรูป บันทึกหน้าจอ เรนเดอร์ canvas และอื่น ๆ
Node ไม่ใช่ gateway, พวกมันไม่รัน AI ของตัวเอง พวกมันคืออุปกรณ์ peripheral ที่ขยายสิ่งที่เอเจนต์ของคุณสามารถทำได้
macOS Companion App
แอป macOS อยู่ในแถบเมนูและทำหน้าที่เป็นทั้ง companion node และตัวจัดการ gateway
ความสามารถ
- Canvas, เรนเดอร์เนื้อหาเว็บแบบโต้ตอบในหน้าต่าง native
- Camera, ถ่ายรูปและวิดีโอ (กล้องหน้า/หลัง)
- Screen Recording, การบันทึกเต็มหน้าจอหรือต่อแอป
- System Execution, รันคำสั่งเชลล์บน Mac (ควบคุมโดยการอนุมัติ exec)
- Notifications, ส่งการแจ้งเตือน macOS แบบ native พร้อมตัวเลือกลำดับความสำคัญ
- Location, GPS เมื่อมี
ฟีเจอร์เพิ่มเติม
- Gateway Management, เริ่ม หยุด และตรวจสอบ Gateway
- Permission Ownership, จัดการ macOS TCC permissions (Notifications, Accessibility, Screen Recording, Microphone, Speech Recognition, AppleScript)
- Deep Links, รูปแบบ URL
neotask://สำหรับเปิดใช้งานเอเจนต์พร้อมพารามิเตอร์ - CLI Install, ติดตั้งเครื่องมือ command-line
neotask
iOS App
แอป iOS เชื่อมต่อเป็น node กับ Gateway ของคุณ นำความสามารถมือถือมาสู่เอเจนต์ของคุณ
ความสามารถ
- Canvas, การเรนเดอร์เนื้อหาแบบโต้ตอบบน SwiftUI
- Camera, รูปภาพและวิดีโอ (กล้องหน้า/หลัง)
- Audio Recording, การจับเสียงจากไมโครโฟน
- Location, GPS พร้อมการเลือกความแม่นยำ
- Notifications, การแจ้งเตือน push iOS แบบ native
ฟีเจอร์
- Discovery, ค้นหา Gateway ผ่าน Bonjour (LAN), Tailscale (VPN) หรือการป้อนด้วยตนเอง
- Pairing, การจับคู่อุปกรณ์ที่ปลอดภัยพร้อมการอนุมัติจาก Gateway
- Voice Wake, การเปิดใช้งาน wake word สำหรับการโต้ตอบแบบ hands-free
- Talk Mode, การสนทนาด้วยเสียงอย่างต่อเนื่อง
- Share Extension, แชร์เนื้อหาจากแอปอื่นโดยตรงไปยังเอเจนต์ของคุณ
- A2UI, การเรนเดอร์ UI ที่ขับเคลื่อนโดยเอเจนต์บน canvas ของอุปกรณ์
ข้อจำกัด
- การออกแบบที่ foreground เป็นหลัก (iOS ระงับการเชื่อมต่อ WebSocket ในพื้นหลัง)
- ข้อจำกัดคำสั่งพื้นหลังที่เข้มงวด
- ปัจจุบันอยู่ใน internal preview
Android App
แอป Android เชื่อมต่อเป็น node พร้อมความสามารถที่คล้ายกับ iOS
ความสามารถ
- Canvas, การเรนเดอร์ UI บน Jetpack Compose
- Camera, รูปภาพและวิดีโอ (กล้องหน้า/หลัง, ควบคุมด้วยสิทธิ์)
- Screen Recording, การจับหน้าจอระบบ (Android 10+)
- Location, GPS พร้อมโหมดความแม่นยำ
- SMS Sending, บนอุปกรณ์ที่รองรับ telephony
- Chat & History, ดูประวัติการสนทนาบนอุปกรณ์
ฟีเจอร์
- Foreground Service, การแจ้งเตือนแบบถาวรรักษาการเชื่อมต่อให้มีชีวิต
- Shared Sessions, เซสชันเดียวกันข้ามทุก node ที่เชื่อมต่อ
- Modern Android, ต้องการ Android 12+ (API 31)
Headless Node Host
รัน node โดยไม่มี UI, เหมาะสำหรับ build server เครื่องระยะไกล หรือกล่อง Linux แบบ headless
ความสามารถ
- System Execution, รันคำสั่งบน node host
- Command Allowlist, กำหนดค่าคำสั่งที่ node สามารถรัน
- Persistent Service, ติดตั้งเป็น launchd/systemd service
กรณีการใช้งาน
- CI/CD build agent, ให้เอเจนต์ AI ของคุณทริกเกอร์ build บน server ระยะไกล
- Home lab automation, รันคำสั่งบน Raspberry Pi หรือ home server
- การออร์เคสเตรชันหลายเครื่อง, ประสานงานข้ามหลายเครื่อง
การจับคู่อุปกรณ์
ขั้นตอนการจับคู่
- แอปคู่หูแสดง identity อุปกรณ์ (fingerprint + public key)
- Gateway ออกคำขออนุมัติการจับคู่
- คุณอนุมัติอุปกรณ์ผ่านแอปเดสก์ท็อปหรือแดชบอร์ด
- Gateway ออก device token สำหรับการเชื่อมต่อในอนาคต
โมเดลความเชื่อถือ
- อุปกรณ์ local (loopback) ได้รับการอนุมัติอัตโนมัติเพื่อความสะดวก
- อุปกรณ์ที่ไม่ใช่ local ต้องการการอนุมัติอย่างชัดแจ้ง
- Device token ถูกจัดเก็บในเครื่องและนำกลับมาใช้เมื่อเชื่อมต่อซ้ำ
การอนุมัติ Exec
สำหรับ node ที่สามารถรันคำสั่งระบบ (macOS, headless host) การอนุมัติ exec ควบคุมสิ่งที่อนุญาต:
- โหมด Allowlist, เฉพาะคำสั่งที่อนุมัติล่วงหน้าเท่านั้นที่สามารถรัน
- โหมด Ask, คำสั่งที่ไม่รู้จักจะแจ้งให้คุณอนุมัติ
- โหมด Full, ไม่มีข้อจำกัด (ใช้ด้วยความระมัดระวัง)
กำหนดค่า allowlist ต่อ node เพื่อควบคุมอย่างแม่นยำว่าแต่ละอุปกรณ์สามารถทำอะไรได้บ้าง