สกิล Skills

สกิล 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

จะแก้ปัญหาอย่างไรเมื่อสกิลไม่มีผล

การจะให้โมเดลอ่านสกิลได้ ต้องผ่านหลายชั้นตามลำดับ ให้ตรวจสอบด้วยตนเองตามลำดับ:

  1. สวิตช์หลักของโมดูลสกิลเปิดอยู่หรือไม่
  2. รายการติดตั้งของสกิลนั้นเปิดใช้งานอยู่หรือไม่
  3. ตัวสกิลเองเปิดใช้งานอยู่หรือไม่
  4. เนื้อหาสกิลไม่ว่างเปล่าหรือไม่ (เนื้อหาว่างจะถูกทิ้ง โมเดลอ่านไม่ได้)
  5. มีชื่อซ้ำกับสกิลอื่นหรือไม่ (ชื่อสกิลแยกตัวพิมพ์เล็ก-ใหญ่ หากชื่อซ้ำจะเก็บไว้เฉพาะตัวที่ติดตั้งก่อน)

หลังจากเปลี่ยนสวิตช์การติดตั้งสกิลแล้ว มันจะปรากฏ / หายไปในรายการสกิลที่ใช้ได้ตั้งแต่ข้อความถัดไป โดยไม่ต้องบันทึกเอเจนต์ใหม่