# เครื่องมือและความสามารถ ## ภาพรวม เครื่องมือคือการกระทำที่เอเจนต์ของคุณสามารถทำได้ระหว่างการสนทนา เมื่อเอเจนต์ต้องการเรียกดูเว็บ รันคำสั่ง อ่านไฟล์ หรือควบคุมอุปกรณ์ มันจะใช้เครื่องมือ Neotask มีชุดเครื่องมือ built-in ที่หลากหลายครอบคลุมการจัดการไฟล์ การรันโค้ด การทำงานอัตโนมัติของเบราว์เซอร์ การควบคุมอุปกรณ์ การส่งข้อความ การค้นหาเว็บ และอื่น ๆ ## การดำเนินการไฟล์ เอเจนต์สามารถอ่าน เขียน และแก้ไขไฟล์ใน workspace ของตน: - **Read**, อ่านเนื้อหาไฟล์ - **Write**, สร้างหรือเขียนทับไฟล์ - **Edit**, ทำการแก้ไขที่มุ่งเป้าหมายในส่วนเฉพาะของไฟล์ - **Apply Patch**, ใช้ unified diff หลาย hunk สำหรับการแก้ไขไฟล์ที่ซับซ้อน ## การรันโค้ด เอเจนต์สามารถรันคำสั่งเชลล์พร้อมการแยกตัวที่กำหนดค่าได้: - **Gateway execution**, รันคำสั่งโดยตรงบนเครื่องที่โฮสต์ Gateway - **Sandbox execution**, รันคำสั่งใน Docker container แบบแยกตัวพร้อมขีดจำกัดทรัพยากร - **Node execution**, รันคำสั่งบนอุปกรณ์คู่หูที่เชื่อมต่อ (macOS, Linux node) ### ฟีเจอร์การรัน - Timeout ที่กำหนดค่าได้ (ค่าเริ่มต้น 30 นาที) - การจัดการ background job (แสดงรายการ poll kill clear) - Auto-background สำหรับคำสั่งที่รันนาน - การรองรับ TTY สำหรับโปรแกรมแบบโต้ตอบ - โหมดยกระดับสำหรับการดำเนินการที่ต้องใช้สิทธิ์ (บน gateway host เท่านั้น) ### เวิร์กโฟลว์การอนุมัติ คำสั่งที่ละเอียดอ่อนสามารถต้องการการอนุมัติผู้ใช้ก่อนการรัน: - **Allowlist**, เฉพาะคำสั่งที่อนุมัติล่วงหน้าเท่านั้นที่รัน - **Ask**, คำสั่งที่ไม่รู้จักจะแจ้งให้อนุมัติ - **Full**, ไม่มีข้อจำกัด ## การทำงานอัตโนมัติของเบราว์เซอร์ เอเจนต์ควบคุมเบราว์เซอร์ที่ใช้ Chromium เต็มรูปแบบ (Chrome, Brave หรือ Edge): ### การกระทำ - **Navigate**, เปิด URL และนำทางระหว่างหน้า - **Interact**, คลิก พิมพ์ hover ลาก เลือก กรอกฟอร์ม - **Capture**, ถ่ายภาพหน้าจอ ส่งออก PDF - **Inspect**, สแนปช็อต DOM หรือ accessibility tree - **Execute**, รัน JavaScript ใน context ของหน้า - **Upload**, อัปโหลดไฟล์ไปยังเว็บฟอร์ม - **Manage**, จัดการ dialog (alert, confirmation) อ่านเอาต์พุต console ### Browser Profile Browser profile แบบแยกตัวหลายรายการสำหรับการแยก account: - แต่ละ profile มี cookie, storage และประวัติของตัวเอง - พอร์ต CDP ที่กำหนดอัตโนมัติสำหรับการควบคุมแบบ programmatic - การรองรับ remote browser (เชื่อมต่อกับเบราว์เซอร์บนเครื่องอื่น) ## Canvas และ A2UI ระบบ Agent-to-UI (A2UI) ช่วยให้เอเจนต์เรนเดอร์เนื้อหาภาพแบบโต้ตอบบนอุปกรณ์ที่เชื่อมต่อ: - **Present**, แสดงหน้าเว็บหรือเนื้อหากำหนดเองบน canvas ของอุปกรณ์ - **Navigate**, ควบคุมสิ่งที่แสดงในหน้าต่าง canvas - **Evaluate**, รัน JavaScript ใน canvas context - **Snapshot**, จับภาพสิ่งที่แสดงอยู่ในปัจจุบัน - **A2UI Push**, ส่ง UI update ที่มีโครงสร้าง (JSONL payload) ไปยัง canvas - **A2UI Reset**, ล้างสถานะ canvas การเรนเดอร์ canvas มีบน macOS (WebKit), iOS (SwiftUI), Android (Jetpack Compose) และเว็บ (WebChat) ## ความสามารถของอุปกรณ์ Node ผ่านแอปคู่หูที่เชื่อมต่อ เอเจนต์สามารถ: ### กล้อง - **Snap**, ถ่ายรูป (กล้องหน้าหรือหลัง) - **Clip**, บันทึกวิดีโอพร้อม duration และ FPS ที่กำหนดค่าได้ ### หน้าจอ - **Record**, จับการบันทึกหน้าจอพร้อม duration และคุณภาพที่กำหนดค่าได้ ### ตำแหน่ง - **Get**, ดึงพิกัด GPS พร้อมการเลือกความแม่นยำ ### การแจ้งเตือน - **Notify**, ส่งการแจ้งเตือน OS แบบ native พร้อม title, body และ priority ### คำสั่งระบบ - **Run**, รันคำสั่งเชลล์บนอุปกรณ์ node - **Which**, ตรวจสอบว่าคำสั่งมีบน node หรือไม่ ## การส่งข้อความ เอเจนต์สามารถส่งและจัดการข้อความข้ามช่องทางที่เชื่อมต่อ: - **Send**, ส่งข้อความไปยังช่องทาง/ผู้รับที่เชื่อมต่อใด ๆ - **Edit**, แก้ไขข้อความที่ส่งไปก่อนหน้า - **React**, เพิ่มปฏิกิริยาต่อข้อความ - **Thread**, สร้างเธรดและตอบกลับภายใน - **Poll**, สร้างโพลล์บนแพลตฟอร์มที่รองรับ - **Voice**, ตรวจสอบสถานะช่องทางเสียง (Discord) ## เว็บ - **Search**, การค้นหาเว็บผ่าน Brave Search API - **Fetch**, ดึงหน้าเว็บและแปลง HTML เป็น markdown/text ## หน่วยความจำและ Context - **Memory Search**, การค้นหาความคล้ายคลึง vector ข้ามไฟล์หน่วยความจำเอเจนต์ - **Memory Get**, ดึงไฟล์หน่วยความจำเฉพาะตามชื่อ ## การจัดการเซสชัน - **List Sessions**, ดูเซสชันที่ใช้งานอยู่ข้ามเอเจนต์ - **Session History**, ดึง transcript สำหรับเซสชันใด ๆ - **Send to Session**, ส่งข้อความไปยังเซสชันเอเจนต์อื่น - **Spawn Sub-Agent**, เริ่มการรัน sub-agent แบบแยกตัว - **List Agents**, ดูเอเจนต์ที่มี ## ระบบอัตโนมัติ - **Cron**, สร้าง แก้ไข รัน และจัดการงานตามกำหนดการ - **Gateway**, รีสตาร์ท gateway ใช้การเปลี่ยนแปลงการกำหนดค่า รันการอัปเดต ## การวิเคราะห์รูปภาพ เอเจนต์สามารถวิเคราะห์รูปภาพโดยใช้ vision model ที่กำหนดค่า, อธิบายเนื้อหา ดึงข้อความ ระบุวัตถุ และตอบคำถามเกี่ยวกับเนื้อหาภาพ ## กลุ่มเครื่องมือ เครื่องมือจัดเป็นกลุ่มสำหรับการจัดการสิทธิ์ที่ง่าย: | กลุ่ม | เครื่องมือ | |-------|-------| | **runtime** | exec, bash, process | | **fs** | read, write, edit, apply_patch | | **sessions** | sessions_list, sessions_history, sessions_send, sessions_spawn, session_status | | **memory** | memory_search, memory_get | | **web** | web_search, web_fetch | | **ui** | browser, canvas | | **automation** | cron, gateway | | **messaging** | message | | **nodes** | nodes |