# Plugin และ Skill ## Plugin ### Plugin คืออะไร? Plugin คือ TypeScript module ที่ขยายฟังก์ชันการทำงานของ Neotask ในขณะรันไทม์ พวกมันสามารถเพิ่มช่องทางการส่งข้อความใหม่ เครื่องมือเอเจนต์ RPC method คำสั่ง CLI บริการพื้นหลัง และทักษะ ### Plugin อย่างเป็นทางการ **ช่องทางการส่งข้อความ:** - Microsoft Teams, Matrix, Nostr, Zalo, Feishu/Lark, LINE, Nextcloud Talk, Mattermost, Tlon, Twitch **ฟีเจอร์:** - **Voice Call**, การรองรับ SIP telephony สำหรับการโทรด้วยเสียงขาเข้า/ขาออก - **Memory (LanceDB)**, หน่วยความจำระยะยาวพร้อมการค้นหาความคล้ายคลึงแบบ vector - **MCP Native**, การผสานรวม Model Context Protocol server สำหรับการเชื่อมต่อเครื่องมือภายนอก **Auth Provider:** - Google Antigravity OAuth, Gemini CLI OAuth, Qwen OAuth, Minimax OAuth, VS Code Copilot Proxy ### ความสามารถของ Plugin Plugin สามารถลงทะเบียน: - **RPC Method**, WebSocket method กำหนดเองสำหรับ client เรียก - **HTTP Handler**, HTTP endpoint กำหนดเองบน Gateway - **Agent Tool**, เครื่องมือใหม่พร้อม typed schema ที่เอเจนต์สามารถเรียกใช้ - **CLI Command**, คำสั่ง command-line เพิ่มเติม - **Background Service**, กระบวนการที่รันระยะยาวที่จัดการโดย Gateway - **Skill**, ไดเรกทอรีทักษะที่รวมอยู่กับ plugin - **Auto-Reply Command**, คำสั่งที่รันโดยไม่มีการมีส่วนร่วมของ AI agent ### ความปลอดภัยของ Plugin Neotask ตรวจสอบ plugin หลายชั้นก่อนที่ plugin จะทำงาน: - **ลงนามและตรวจสอบแล้ว** แพ็กเกจในแคตตาล็อก Construct สาธารณะเผยแพร่โดย Neotask ผ่านการตรวจสอบอัตโนมัติก่อนเผยแพร่ และลงนามด้วยคีย์เผยแพร่ของ Neotask ก่อนติดตั้ง Neotask จะตรวจลายเซ็นกับคีย์ที่ฝังอยู่ใน Neotask และตรวจสอบแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด - **ไม่มีสคริปต์ติดตั้ง** แพ็กเกจ Construct มี dependency มาในตัว การติดตั้งจึงไม่เรียกใช้ package manager หรือสคริปต์ติดตั้งใดๆ เมื่อการติดตั้ง plugin อื่นใช้ npm สคริปต์ติดตั้งจะถูกปิดไว้ - **สแกนตอนติดตั้ง** plugin ที่ติดตั้งจากนอก Construct จะถูกสแกนหาโค้ดอันตราย และหากพบปัญหาร้ายแรง การติดตั้งจะถูกบล็อก - **สิทธิ์ใช้งานต่อรุ่น** plugin จาก Construct จะโหลดได้เฉพาะเมื่อบัญชีของคุณมีสิทธิ์ที่ยังใช้ได้สำหรับรุ่นนั้น รุ่นที่ถูกเพิกถอนจะไม่ถูกโหลด - **การอนุมัติการกระทำของ agent** การเรียกใช้เครื่องมือของ agent รวมถึงเครื่องมือที่ plugin เพิ่มเข้ามา จะถูกตรวจสอบตามนโยบายการอนุมัติของคุณ และการกระทำที่ต้องได้รับความเห็นชอบจะรอจนกว่าคุณจะอนุมัติ หาก agent ต้องการติดตั้งซอฟต์แวร์นอกสูตรการติดตั้งที่มาพร้อม Neotask จะแสดงคำสั่งที่แน่นอนให้คุณเห็นเสมอและรอการอนุมัติ - **sandbox แบบเลือกได้** คุณสามารถรันเครื่องมือของ agent ในคอนเทนเนอร์ Docker ที่แยกออกมา แทนการรันบนคอมพิวเตอร์ของคุณโดยตรง sandbox ปิดอยู่โดยค่าเริ่มต้น ดูวิธีเปิดใช้งานได้ที่ [ความปลอดภัย](security.md) plugin แบบ native ทำงานภายใน process ของ Gateway ดังนั้น plugin ที่คุณติดตั้งจากนอก Construct คือโค้ดที่คุณเลือกให้ทำงานเอง ใช้ `plugins.allow` เพื่อระบุ plugin ที่อนุญาตให้โหลดได้ --- ## Skill ### Skill คืออะไร? Skill คือความสามารถแบบโมดูลาร์ที่สอนเอเจนต์เวิร์กโฟลว์ใหม่ แต่ละทักษะคือไฟล์ markdown (`SKILL.md`) พร้อมคำแนะนำที่ถูกฉีดเข้าใน context ของเอเจนต์เมื่อมีความเกี่ยวข้อง ### ตำแหน่งทักษะ (ลำดับความสำคัญ) 1. **Workspace skill**, `/skills/` (ลำดับความสำคัญสูงสุด) 2. **Managed skill**, `~/.neotask/skills/` 3. **Bundled skill**, มาพร้อมกับ Neotask 4. **Plugin skill**, ทักษะที่บรรจุอยู่กับ plugin ที่ติดตั้ง 5. **Extra directory**, path ที่กำหนดค่าเพิ่มเติม (ลำดับความสำคัญต่ำสุด) เมื่อทักษะหลายรายการมีชื่อเดียวกัน ตำแหน่งที่มีลำดับความสำคัญสูงสุดชนะ ### ฟีเจอร์ทักษะ - **User-invocable**, ทริกเกอร์ทักษะโดยตรงด้วย slash command (เช่น `/docker-build`) - **Model-invocable**, ทักษะที่เอเจนต์สามารถเรียกใช้เองเมื่อมีความเกี่ยวข้อง - **Command dispatch**, ทักษะที่แมปกับเครื่องมือเฉพาะ - **Requirements gating**, ทักษะโหลดเฉพาะเมื่อตรงตามความต้องการ (ไบนารีที่ต้องการ, config key, ตัวแปรสภาพแวดล้อม, plugin) ### การสร้างทักษะ สร้างไฟล์ `SKILL.md` พร้อม YAML frontmatter ที่กำหนด metadata และคำแนะนำของทักษะ: **ฟิลด์ Frontmatter:** - `name`, ตัวระบุทักษะ - `description`, สิ่งที่ทักษะทำ - `homepage`, ลิงก์ไปยังเอกสาร - `user-invocable`, ว่าผู้ใช้สามารถทริกเกอร์โดยตรงได้หรือไม่ - `disable-model-invocation`, ป้องกันเอเจนต์จากการเรียกใช้โดยอัตโนมัติ - `command-dispatch`, เครื่องมือที่ dispatch ไปยัง - `metadata.neotask.requires`, ข้อกำหนดเบื้องต้น (bins, config, env, plugins) **เนื้อหา:** คำแนะนำ Markdown ที่สอนเอเจนต์วิธีใช้ทักษะ รวมถึงตัวอย่างและแนวทาง ### แคตตาล็อกทักษะ เรียกดูทักษะที่มีให้ใช้งานใน[แคตตาล็อกทักษะ](/skills) ### หมวดหมู่ทักษะ ทักษะครอบคลุมความสามารถที่หลากหลาย: | หมวดหมู่ | ตัวอย่าง | |----------|---------| | **ประสิทธิภาพการทำงาน** | การจัดการอีเมล ปฏิทิน การสร้างเอกสาร | | **การพัฒนา** | การดำเนินการ Git, CI/CD, Docker, การตรวจสอบโค้ด | | **การสื่อสาร** | การส่งข้อความ การแจ้งเตือน การประกาศ | | **สื่อ** | การประมวลผลรูปภาพ การแก้ไขวิดีโอ การถอดเสียง | | **AI และ Model** | การสลับ model การจัดการ prompt, RAG | | **สมาร์ทโฮม** | การควบคุมอุปกรณ์ IoT ทริกเกอร์อัตโนมัติ | | **ยูทิลิตี้** | การแปลงไฟล์ การแปลงข้อมูล การขูดข้อมูลจากเว็บ |