สกิล Skills
สกิลเป็นความสามารถเฉพาะของ LoopAgent: คู่มือ (SOP) ที่ให้โมเดล「อ่าน」ไม่ใช่「เรียก」สกิลหนึ่งประกอบด้วยเนื้อหา SKILL.md หนึ่งฉบับ พร้อมไฟล์อ้างอิงและสคริปต์ที่เลือกได้ เมื่อจำเป็นโมเดลจะอ่านเนื้อหาเข้ามาและทำตามขั้นตอนภายในนั้น
สกิลคืออะไรและถูกใช้อย่างไร
- ชุดสกิลหนึ่งชุด =
SKILL.mdที่จำเป็น + ไฟล์ข้อความและสคริปต์ที่เลือกได้ ทั้งชุดต้องไม่เกิน 20MB และไฟล์เดียวต้องไม่เกิน 5MB - ในแต่ละรอบ ระบบจะให้โมเดลเพียง「รายการสกิลที่ใช้ได้」เท่านั้น——มีแค่ชื่อและคำอธิบาย ไม่มีเนื้อหา ต่อเมื่อโมเดลตัดสินว่าสกิลใดเกี่ยวข้อง จึงจะอ่านเนื้อหา
SKILL.mdฉบับเต็มของสกิลนั้นเข้ามา - ไฟล์ในชุดสกิลอ่านได้ผ่านกลไกสกิลเท่านั้น ไม่ได้อยู่ในระบบไฟล์ในเครื่องใด ๆ (ดูคำอธิบายแซนด์บ็อกซ์ด้านล่าง)
- LoopAgent หนึ่งตัวติดตั้งสกิลได้มากที่สุด 10 สกิล
สามแหล่งที่มา
| สกิลส่วนตัวของ Agent | สกิลองค์กร | สกิลแพลตฟอร์ม | |
|---|---|---|---|
| ขอบเขตการมองเห็น | เฉพาะเอเจนต์ที่มันสังกัดอยู่เท่านั้น | นำกลับมาใช้ซ้ำข้ามเอเจนต์ได้ภายในองค์กร | คลังทางการของแพลตฟอร์ม มองเห็นได้ทุกองค์กร |
| การสร้าง | 「สร้าง Skill」ภายในเอเจนต์ ติดตั้งอัตโนมัติ | สร้างที่「เครื่องมือ › สกิล」 | แพลตฟอร์มดูแล องค์กรสร้างใหม่ไม่ได้ |
| เมื่อเปิดในเอเจนต์ | แก้ไขได้ | กลายเป็นอ่านอย่างเดียว (จะแก้ต้องไปที่「เครื่องมือ › สกิล」) | อ่านอย่างเดียว |
| การเปลี่ยนเนื้อหาขึ้นใช้งานเมื่อใด | ไปพร้อมกับการเผยแพร่เอเจนต์: การบันทึกเข้าเฉพาะเวอร์ชัน Debug จะขึ้นใช้งานเมื่อเผยแพร่เอเจนต์เท่านั้น | ทันทีและทั่วโลก: บันทึกแล้วมีผลกับทุกเอเจนต์ที่อ้างอิงมันทันที | แก้ไขไม่ได้ |
ความหมายของ「ลบออก」ต่างกันตามแหล่งที่มา: การคลิก「ลบออก」บนสกิลองค์กร / แพลตฟอร์ม = ยกเลิกการผูกเท่านั้น ตัวสกิลยังอยู่ ส่วนการลบสกิลส่วนตัวของ Agent = ลบตัวสกิลไปด้วย หากต้องการลบตัวสกิลองค์กรออกให้หมด ต้องไปทำที่หน้า「เครื่องมือ › สกิล」
ฉบับร่าง Debug และ Production
กระบวนการที่เนื้อหาสกิล (SKILL.md) มีผล จะแบ่งเป็นสามสถานะเช่นเดียวกับเพอร์โซนา ข้อควรระวัง: เอดิเตอร์สกิลมีเพียงปุ่ม「บันทึก」ไม่มีปุ่ม「เผยแพร่」——การเผยแพร่เกิดขึ้นที่อื่น
| สถานะ | คืออะไร | ใครอ่านได้ |
|---|---|---|
| ฉบับร่าง Draft | เนื้อหาที่บันทึกอัตโนมัติขณะพิมพ์ในเอดิเตอร์ | เฉพาะผู้แก้ไขเองเท่านั้น ไม่มีบทสนทนาใด (รวมถึงแชท Debug) อ่านได้ |
| บันทึก / Debug | เนื้อหาทางการที่เขียนหลังคลิก「บันทึก」 | แชท Debug อ่านได้ทันที (บันทึกแล้วมีผลกับเวอร์ชัน Debug) |
| ขึ้นใช้งาน / Production | เนื้อหาที่ลูกค้าอ่านจริง | ช่องทางภายนอก อัปเดตเมื่อใดขึ้นอยู่กับแหล่งที่มาของสกิล (ดูด้านล่าง) |
วิธีขึ้นใช้งานแบ่งเป็นสองแบบตามแหล่งที่มาของสกิล:
- สกิลส่วนตัวของ Agent: เนื้อหาขึ้นใช้งานไปพร้อมกับการเผยแพร่ LoopAgent การคลิกบันทึกในเอดิเตอร์มีผลเฉพาะเวอร์ชัน Debug คุณต้องเผยแพร่ LoopAgent นี้ เวอร์ชันที่บันทึกล่าสุดจึงจะขึ้นใช้งาน (ตรรกะเดียวกับเพอร์โซนา)
- สกิลองค์กร / แพลตฟอร์ม: เนื้อหาทันทีและทั่วโลก หลังคลิกบันทึก จะมีผลทันทีกับทุกเอเจนต์ที่อ้างอิงมัน (Debug + Online) โดยไม่ต้องเผยแพร่เอเจนต์
หลุมพรางที่พบบ่อยที่สุด: ฉบับร่างที่กำลังแก้ไขอยู่แม้แต่แชท Debug ก็อ่านไม่ได้ หากต้องการตรวจสอบการเปลี่ยนแปลงในแชท Debug ต้องคลิก「บันทึก」ก่อน ไม่เช่นนั้นสิ่งที่อ่านได้ก็ยังเป็นเนื้อหาที่บันทึกครั้งก่อน
อีกหนึ่งหลุมพราง: สกิลส่วนตัวของ Agent การคลิกบันทึกอย่างเดียวก็ไปถึงแค่เวอร์ชัน Debug——ลูกค้ายังคงเห็นเวอร์ชันที่เผยแพร่——ดังนั้นอย่าลืมกลับไปเผยแพร่ LoopAgent เพื่อขึ้นใช้งาน
สองข้อเพิ่มเติม:
- สร้างเสร็จก็อ่านได้ทันที: การสร้างสกิลจะเขียนเนื้อหาขั้นต่ำให้อัตโนมัติ (สร้างแบบฟอร์ม = ชื่อ + คำอธิบายประกอบกัน, อัปโหลดแบบพก package = อ่าน
SKILL.mdในแพ็กเกจ) ดังนั้นโมเดลจึงอ่านได้ตั้งแต่ก่อนการเผยแพร่ครั้งแรก - ความขัดแย้งเมื่อหลายคนแก้ไข: หากหลายคนหรือหลายแท็บแก้สกิลเดียวกันพร้อมกัน ตอนบันทึกอาจแจ้งว่า「เนื้อหาสกิลถูกผู้อื่นอัปเดตแล้ว」เพียงโหลดใหม่แล้วบันทึกอีกครั้งก็ได้
Python script และแซนด์บ็อกซ์การรัน
ชุดสกิลสามารถพก Python script ได้ (การวางไว้ในไดเรกทอรี scripts/ เป็นเพียงธรรมเนียม ไม่บังคับ) ขั้นตอนที่ต้องการการคำนวณแม่นยำ การแปลงรูปแบบ หรือการเรียกไลบรารีเฉพาะ สามารถเขียนเป็นโค้ดให้โมเดลรันตามความจำเป็น
กลไกการรัน:
- สคริปต์รันในแซนด์บ็อกซ์แยก (สภาพแวดล้อม Linux อิสระ + Python 3.11) ไม่ได้รันบนเซิร์ฟเวอร์ของคุณ และไม่ได้รันบนเครื่องของโมเดล——แยกกันตามธรรมชาติ ไม่รบกวนกัน
- เมื่อจำเป็น โมเดลจะโยนสคริปต์ในแพ็กเกจเข้าไปรันในแซนด์บ็อกซ์แล้วรับผลกลับมา ไฟล์ในชุดสกิลก็อ่านได้ผ่านกลไกสกิลเท่านั้น และไม่สามารถใช้
bashไปcat/findได้ (ชุดสกิลไม่ได้อยู่ในระบบไฟล์ในเครื่อง)
「รันทดสอบ」ในเอดิเตอร์ = การรันแซนด์บ็อกซ์จริง:
- การคลิก「รันทดสอบ」บนสคริปต์
.pyในเอดิเตอร์สกิล เป็นการรันแซนด์บ็อกซ์แบ็กเอนด์จริง ไม่ใช่การจำลองที่ฝั่งหน้าเว็บ และใช้แซนด์บ็อกซ์เดียวกันกับที่โมเดลใช้ขณะทำงาน——ถ้าผ่านในเอดิเตอร์ ก็จะผ่านตอนรันจริงด้วย - สคริปต์เกิดข้อผิดพลาดเอง ≠ API ล้มเหลว: เมื่อสคริปต์โยนข้อผิดพลาดภายใน มันจะคืนค่ากลับมาตามปกติพร้อมเอาต์พุตและสแต็กข้อผิดพลาด (เพื่อช่วยแก้ปัญหา) ซึ่งไม่ได้หมายความว่า API การรันล่ม จะนับเป็น API ล้มเหลวก็ต่อเมื่อมีปัญหาที่ชั้นแซนด์บ็อกซ์ (เช่น ยังไม่ได้ติดตั้งแซนด์บ็อกซ์ในสภาพแวดล้อมนั้น) เท่านั้น
- ขณะทดสอบดึงตัวแปรช่องทาง / เซสชันไม่ได้: ช่วงแก้ไขไม่มีบริบทบทสนทนาจริง ดังนั้นคุณสมบัติช่องทาง (เช่นที่เกี่ยวกับ WhatsApp / Telegram) และคุณสมบัติเซสชันจะเป็นค่าว่าง จะมีค่าก็ต่อเมื่อรันในบทสนทนาจริงเท่านั้น ดังนั้นการที่ตัวแปรเหล่านี้เป็นค่าว่างในการทดสอบจึงเป็นเรื่องปกติ
เครื่องมือ
bash: LoopAgent ทุกตัวจะมีเครื่องมือbashมาด้วย ใช้ขับเคลื่อนการเรียก API ที่อธิบายไว้ในเอกสารสกิล (ประกอบคำสั่งตามคำอธิบายในSKILL.md) แต่ Python script ภายในชุดสกิลจะรันผ่านแซนด์บ็อกซ์ ไม่ใช่bash
จะแก้ปัญหาอย่างไรเมื่อสกิลไม่มีผล
การจะให้โมเดลอ่านสกิลได้ ต้องผ่านหลายชั้นตามลำดับ ให้ตรวจสอบด้วยตนเองตามลำดับ:
- สวิตช์หลักของโมดูลสกิลเปิดอยู่หรือไม่
- รายการติดตั้งของสกิลนั้นเปิดใช้งานอยู่หรือไม่
- ตัวสกิลเองเปิดใช้งานอยู่หรือไม่
- เนื้อหาสกิลไม่ว่างเปล่าหรือไม่ (เนื้อหาว่างจะถูกทิ้ง โมเดลอ่านไม่ได้)
- มีชื่อซ้ำกับสกิลอื่นหรือไม่ (ชื่อสกิลแยกตัวพิมพ์เล็ก-ใหญ่ หากชื่อซ้ำจะเก็บไว้เฉพาะตัวที่ติดตั้งก่อน)
หลังจากเปลี่ยนสวิตช์การติดตั้งสกิลแล้ว มันจะปรากฏ / หายไปในรายการสกิลที่ใช้ได้ตั้งแต่ข้อความถัดไป โดยไม่ต้องบันทึกเอเจนต์ใหม่
