DeepSeek Harness Plugins Explained (Cordis Full Guide)
สรุปย่อ
ประเด็นสำคัญจากวิดีโอ
- **ช่อง:** DevsKingdom · **ความยาว:** ~12 นาที · **ลิงก์:** https://www.youtube.com/watch?v=APhQxIKKq0g
# สรุป: DeepSeek Harness Plugins Explained (Cordis Full Guide) - **ช่อง:** DevsKingdom · **ความยาว:** ~12 นาที · **ลิงก์:** https://www.youtube.com/watch?v=APhQxIKKq0g ## ประเด็นหลัก - DeepSeek harness เป็น ระบบ plugin-based ที่ เติบโต เร็ว มาก บน GitHub (ประมาณ 169K stars) - ฐาน ของ plugin คือ เฟรมเวิร์ก Cordis (spatial temporal composability) - แนวคิด หลัก ของ Cordis: context, plugin, service injection, และ fiber (หน่วย วงจร ชีวิต) - fiber ช่วย ลงทะเบียน / dispose ทรัพยากร แบบ ย้อน กลับ ได้ คล้าย garbage collection - โครงสร้าง plugin ตัวอย่าง (my DSH / DSH hello): cordis.patch.yaml + index.js + package.json - ลงทะเบียน / list / ลบ plugin ได้ ผ่าน command line แล้ว restart บริการ - plugin ที่ แชร์ บน GitHub สามารถ เพิ่ม เข้า ระบบ DeepSeek harness ของ คน อื่น ได้ - Cordis เอง รัน เป็น แอป ได้ ไม่ ใช่ แค่ เป็น ชั้น ใต้ plugin ของ DeepSeek - ตัวอย่าง Cordis demo: app เชื่อม service counter กับ greeter ผ่าน schema เดียว - สามารถ กำหนด dependency ระหว่าง service (เช่น greeter ขึ้น กับ counter) ได้ - เทียบ ได้ กับ PI agent ที่ เคย พูด ใน ช่อง แต่ Cordis สเกล และ ยืดหยุ่น กว่า - สร้าง แอป/plugin ด้วย Node.js แล้ว ใส่ เข้า ระบบ นิเวศ DeepSeek harness ได้ ทั้ง ก้อน ## ความเห็นสรุป คลิป นี้ เป็น คู่มือ ปฏิบัติ แบบ end-to-end สำหรับ คน ที่ อยาก เขียน plugin ให้ DeepSeek harness โดย ไม่ ต้อง เดา โครงสร้าง ไฟล์ ครับ. จุด แข็ง คือ โชว์ ทั้ง ฝั่ง plugin ของ harness และ ฝั่ง Cordis เอง พร้อม ตัวอย่าง service กับ dependency ที่ ชัด เจน ครับ. เหมาะ เป็น จุด เริ่ม สำหรับ ผู้ พัฒนา ที่ อยาก แชร์ plugin เข้า ชุมชน ครับ.
คำแปลเต็ม
แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ
สวัสดี ครับ ทุกคน ยินดีต้อนรับ สู่ วิดีโอ อีก ตอน นะครับ. วันนี้ เรา จะ มา แสดง ให้ ดู ว่า ทำ อย่างไร จึง จะ สร้าง DeepSeek harness plugin ได้ ครับ.
DeepSeek harness กำลัง เป็น ที่ นิยม มาก เลย ครับ. ลอง ดู ที่ GitHub repo ครับ. ใน เวลา ไม่ กี่ สัปดาห์ เรา ได้ ดาว ไป แล้ว ประมาณ หนึ่ง แสน หก หมื่น เก้า พัน ดาว ซึ่ง บ้า มาก ครับ.
DeepSeek harness จริง ๆ แล้ว เป็น ระบบ ที่ ใช้ plugin เป็น ฐาน ครับ. จาก เอกสาร จะ เห็น ว่า ด้วย Cordis ทุก อย่าง คือ plugin ครับ. ใน คลิป นี้ ผม จะ พา ดู วิธี สร้าง plugin แบบ จบ ครบ กระบวนการ ครับ. ใน คอนโซล ของ DeepSeek harness มี เมนู settings แล้ว ไป ที่ plugins ได้ ครับ. มี plugin สำเร็จรูป อยู่ เยอะ แล้ว พวก นั้น คือ plugin ทั่วไป ครับ. เรา จะ มา ดู ว่า ทำ อย่างไร จึง สร้าง plugin แบบ กำหนด เอง แล้ว เอา ไป ใช้ ใน รายการ plugins ได้ ครับ. งั้น เริ่ม กัน เลย นะครับ.
DeepSeek harness plugin จริง ๆ แล้ว สร้าง บน ฐาน ของ Cordis ครับ. ถ้า เปิด ดู GitHub repo ของ Cordis จะ เห็น ว่า มัน เป็น meta framework ของ spatial temporal composability ครับ. แปล ว่า เป็น เฟรมเวิร์ก ที่ ผสม แนวคิด เรื่อง เวลา กับ พื้นที่ เข้า ด้วย กัน ครับ. ชื่อ ฟัง ดู หรู มาก แต่ บน GitHub ก็ มี ดาว ประมาณ หก พัน แล้ว เช่น กัน ครับ. ดังนั้น มัน ก็ เป็น ที่ นิยม เหมือน กัน แต่ คำ ถาม คือ ใช้ ยัง ไง ครับ. เรา จะ ลง ราย ละเอียด กัน เล็ก น้อย ครับ. จะ พูด ถึง Cordis องค์ประกอบ และ แนวคิด ต่าง ๆ แต่ ก่อน อื่น มา ต่อ กับ DeepSeek plugin ก่อน ครับ.
ถ้า ดู เอกสาร ของ พวก เขา เขา อธิบาย ทุก อย่าง เกี่ยว กับ Cordis ไว้ แล้ว ครับ. โดย สรุป Cordis คือ ระบบ plugin ที่ สเกล ได้ จริง ๆ ครับ. แนวคิด หลัก ของ Cordis มี อยู่ สอง สาม อย่าง ครับ.
อย่าง แรก คือ context ครับ. ต่อ มา คือ plugin ครับ. ดังนั้น มี ทั้ง context กับ plugin และ ใน plugin ยัง มี แนวคิด เรื่อง service ซึ่ง สามารถ inject service เข้า ไป ได้ ครับ. อีก แนวคิด หนึ่ง เรียก ว่า fiber ครับ. fiber คือ หน่วย วงจร ชีวิต ครับ. ทุก สิ่ง ที่ ลงทะเบียน ผ่าน Cordis จะ ถูก ยกเลิก เมื่อ fiber ถูก dispose ครับ. มี กระบวนการ ย้อน กลับ ด้วย ครับ. เรา ลงทะเบียน fiber แล้ว ก็ สามารถ ย้อน กลับ ได้ คล้าย กับ garbage collection แต่ เรา ทำ และ ยกเลิก ได้ เอง ครับ. ระบบ จึง สะอาด และ ใช้ ทรัพยากร ได้ มี ประสิทธิภาพ กว่า ครับ. นั่น คือ fiber ครับ.
ต่อไป มา ดู plugin จริง กัน ครับ. ผม จะ โชว์ ตัวอย่าง plugin ที่ สร้าง ไว้ เอง ครับ. plugin นี้ ชื่อ my DSH plugin ครับ. มัน ง่าย มาก แบบ hello world สำหรับ DeepSeek harness ครับ. ใน plugin นี้ มี ไฟล์ schema ชื่อ cordis.patch.yaml ครับ. อีก ไฟล์ คือ index ซึ่ง เป็น ตัว plugin จริง และ เป็น ไฟล์ JavaScript ครับ. รองรับ ทั้ง TypeScript และ JavaScript ครับ. ตัวอย่าง นี้ ใช้ JavaScript แต่ จะ ใช้ TypeScript ก็ ได้ ครับ. และ มี package ด้วย เพราะ ทุก อย่าง เป็น เฟรมเวิร์ก แบบ Node.js ครับ. ใน package มี ชื่อ ว่า DSH hello plugin มี version และ ระบุ files เป็น index.js กับ cordis.patch.yaml ครับ.
จาก นั้น ก็ เริ่ม สร้าง plugin ได้ แล้ว ครับ. bundle หลัก คือ cordis.patch.yaml ครับ. ไฟล์ นี้ ใช้ ผนึก ทุก อย่าง เข้า ด้วย กัน และ แทรก plugin เข้า ไป ใน ระบบ ครับ. เมื่อ มี plugin แล้ว ก็ ลงทะเบียน ได้ ครับ. ทำ ได้ ด้วย คำ สั่ง บน command line สอง สาม คำ สั่ง ครับ. ใน ตัวอย่าง นี้ จะ โชว์ วิธี ลงทะเบียน ลบ plugin และ แสดง รายการ plugin ทั้งหมด ครับ.
สมมติ ว่า เรา สร้าง plugin ชื่อ my DSH plugin ไว้ แล้ว ครับ. นั่น คือ ชื่อ โฟลเดอร์ ครับ. เรา แค่ เพิ่ม โฟลเดอร์ นี้ เข้า ไป ใน โปรเจกต์ DeepSeek harness ครับ. ถ้า คัดลอก คำ สั่ง list ไป รัน จะ แสดง plugin ที่มี อยู่ ทั้งหมด ก่อน ครับ. ตอน นี้ จะ เห็น ว่า ยัง ไม่ มี plugin ครับ. พอ ลงทะเบียน plugin แล้ว ลอง list อีก ครั้ง จะ เห็น ว่า มี แล้ว ชื่อ DSH hello plugin ครับ. ชื่อ นี้ มา จาก schema ของ plugin จริง ดู ใน package.json จะ เห็น ชื่อ DSH hello plugin ซึ่ง ต่าง จาก ชื่อ โฟลเดอร์ ครับ.
พอ ทำ เสร็จ แล้ว เรา restart บริการ DeepSeek harness อีก ครั้ง ครับ. จะ เห็น ว่า plugin โหลด แล้ว มี ข้อความ hello from my plugin แล้ว เฟรมเวิร์ก DeepSeek harness ก็ เริ่ม ทำงาน ครับ. กลับ ไป ที่ เว็บ DeepSeek harness ครับ. ค้น หา hello จะ เห็น ว่า hello plugin โหลด อยู่ แล้ว ครับ. สะดวก มาก เลย ครับ.
ถ้า อยาก แชร์ plugin นี้ ก็ แชร์ บน GitHub ได้ ครับ. คน อื่น ก็ เพิ่ม เข้า ระบบ DeepSeek harness ของ เขา ได้ เช่น กัน ครับ. ถ้า จะ เพิ่ม จาก GitHub ใช้ คำ สั่ง plugin แบบ เพิ่ม จาก repo บน GitHub ได้ เลย ครับ. เพราะ ฉะนั้น plugin นี้ จึง แชร์ ได้ ครับ.
ถ้า อยาก ลบ เช่น ไม่ อยาก ใช้ plugin นี้ แล้ว ก็ ลบ ด้วย ชื่อ plugin ได้ ครับ. จะ เห็น ว่า plugin ถูก ลบ แล้ว ครับ. ตรวจ list อีก ครั้ง จะ ไม่ เหลือ plugin แล้ว ครับ. จาก นั้น restart คอนโซล DeepSeek อีก ครั้ง ครับ. ไป ดู plugins อีก ที ค้น hello จะ เห็น ว่า ถูกลบ ไป แล้ว ครับ. สะดวก สุด ๆ เลย ครับ.
นี่ คือ วิธี สร้าง plugin วิธี เพิ่ม plugin เข้า ระบบ DeepSeek harness และ วิธี ลบ plugin ออก จาก ระบบ ครับ.
ต่อไป เรา จะ พูด ถึง ระบบ Cordis เอง ครับ. อย่าง ที่ บอก ไป แล้ว Cordis เป็น ระบบ plugin ที่ สเกล ได้ สูง มาก ครับ. เอกสาร ของ Cordis อธิบาย ได้ ดี มาก ว่า ทำงาน ยัง ไง ครับ. เรา มี ตัวอย่าง อีก ชุด เพื่อ โชว์ แอป Cordis จริง ๆ ครับ. ต่าง จาก plugin ของ DeepSeek เพราะ DeepSeek plugin สร้าง บน Cordis แต่ Cordis เอง คือ เฟรมเวิร์ก ครับ. งั้น ไป ที่ Cordis แล้ว สร้าง ตัวอย่าง อีก ตัว เพื่อ โชว์ ว่า Cordis ทำงาน ยัง ไง ครับ.
Cordis สามารถ เริ่ม ทำงาน เป็น แอปพลิเคชัน ได้ ไม่ ใช่ แค่ เป็น plugin ครับ. ใน ตัวอย่าง ที่ สร้าง ไว้ จะ โชว์ วิธี เพิ่ม service เข้า แอป Cordis แล้ว รัน ผ่าน ระบบ นิเวศ ของ Cordis ครับ. ใน ตัวอย่าง Cordis จะ เห็น plugin อย่าง app counter และ greeter ซึ่ง เป็น service ครับ. greeter ลงทะเบียน เป็น service counter ก็ ลงทะเบียน เป็น service เช่น กัน ครับ. ส่วน app ใช้ เชื่อม ทั้ง สอง ตัว เข้า ด้วย กัน ครับ. มี counter มี การ เปลี่ยน ค่า counter มี app ready และ มี greeting ด้วย ครับ. สรุป คือ app จะ เชื่อม ทั้ง สอง service เข้า ด้วย กัน ครับ.
จาก นั้น โหลด ทุก อย่าง เข้า ใน Cordis ผ่าน ไฟล์ schema เดียว ชื่อ อย่าง cordis.yml ครับ. ยัง สามารถ ต่อ ระบบ อย่าง hot module reloader และ plugin timer ได้ แต่ ใน เดโม นี้ เรา comment ไว้ ก่อน ครับ. มี main function ที่ เชื่อม ทุก อย่าง เข้า ด้วย กัน ครับ. มัน จะ โหลด plugin รัน plugin แล้ว ก็ unload plugin ครับ. มี ไฟล์ package ด้วย สำหรับ แอป Cordis นี้ ชื่อ ว่า cordis demo ครับ.
ใน main function จะ เห็น ว่า ขั้น แรก รัน plugin เป็น loader ครับ. โหลด แล้ว ก็ include ไฟล์ Cordis ครับ. ไฟล์ นั้น จะ โหลด คอมโพเนนต์ อื่น ๆ ใน plugin ทั้งหมด ครับ. หลัง รัน จะ เห็น ข้อความ เริ่ม Cordis แบบ declarative ครับ. จาก นั้น ทุก อย่าง ทำงาน counter ทำงาน Cordis ทำงาน และ app ทำงาน ครับ. หลัง จาก นั้น เรา clean up ทุก อย่าง ครับ. สะดวก และ กระบวนการ ตรง ไป ตรง มา มาก ครับ. นี่ คือ ภาพ การ ทำงาน ครับ.
น่า จะ ครบ แล้ว แต่ มี อีก อย่าง ใน เดโม Cordis ครับ. เรา สามารถ สร้าง dependency ได้ ครับ. เช่น ถ้า greeter ขึ้น กับ counter ก็ ใส่ counter ไว้ ใน greeter ครับ. counter จะ โหลด ก่อน แล้ว greeter จะ โหลด หลัง จาก ที่ counter โหลด เสร็จ แล้ว ครับ.
แค่นี้ เอง ครับ. มัน คล้าย กับ PI agent ที่ เรา เคย พูด ถึง ใน ช่อง นี้ ครับ. คล้าย กัน แต่ Cordis สเกล ได้ กว่า และ ทรง พลัง กว่า อีก ครับ. เรา สามารถ สร้าง แอป Node.js หรือ plugin ด้วย Node.js แล้ว ใส่ เข้า ระบบ นิเวศ DeepSeek harness ทั้ง ก้อน แล้ว แชร์ กับ ชุมชน ได้ ครับ.
ก็ แค่นี้ ครับ. หวัง ว่า จะ มี ประโยชน์ นะครับ. ถ้า ชอบ คลิป นี้ กด subscribe กด like หรือ คอมเมนต์ ถ้า มี คำ ถาม ได้ เลย ครับ. ขอบคุณ มาก ที่ สนับสนุน ช่อง แล้ว เจอกัน ใน คลิป หน้า ครับ.
อภิธานศัพท์เทคนิค
คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ
| ศัพท์ | คำแปล / คำอธิบาย |
|---|---|
| DeepSeek harness | ระบบ harness ของ DeepSeek ที่ ใช้ สถาปัตยกรรม แบบ plugin |
| Cordis | เฟรมเวิร์ก meta สำหรับ spatial temporal composability เป็น ฐาน ของ plugin |
| plugin | ส่วน ขยาย ที่ ติดตั้ง เข้า ระบบ harness ได้ |
| context | บริบท หลัก ใน แนวคิด Cordis |
| service | บริการ ที่ ลงทะเบียน และ inject เข้า plugin ได้ |
| fiber | หน่วย วงจร ชีวิต ของ ทรัพยากร ใน Cordis; dispose แล้ว ยกเลิก การ ลงทะเบียน |
| dispose | การ ปล่อย / ยกเลิก ทรัพยากร ของ fiber |
| cordis.patch.yaml | ไฟล์ schema ที่ ผนึก และ แทรก plugin เข้า ระบบ |
| package.json | ไฟล์ ระบุ ชื่อ เวอร์ชัน และ ไฟล์ ของ plugin แบบ Node.js |
| index.js | ไฟล์ โค้ด หลัก ของ plugin (JavaScript) |
| TypeScript | ภาษา ที่ รองรับ ร่วม กับ JavaScript ใน plugin |
| Node.js | รันไทม์ ที่ เฟรมเวิร์ก นี้ ยึด เป็น ฐาน |
| GitHub | แหล่ง แชร์ และ ติดตั้ง plugin จาก repo |
| command line | บรรทัด คำ สั่ง สำหรับ list / เพิ่ม / ลบ plugin |
| hot module reloader | ตัว โหลด โมดูล ใหม่ แบบ ร้อน (ใน เดโม ถูก comment ไว้) |
| greeter | service ตัวอย่าง ที่ ทักทาย / แสดง greeting |
| counter | service ตัวอย่าง ที่ นับ ค่า และ เปลี่ยน ค่า ได้ |
| dependency | การ ระบุ ว่า service หนึ่ง ขึ้น กับ service อื่น (ลำดับ โหลด) |
| declarative | รูปแบบ ประกาศ การ เริ่ม ระบบ Cordis ใน ตัวอย่าง |
| PI agent | หัวข้อ / ระบบ ที่ ช่อง เคย พูด ถึง ใช้ เทียบ กับ Cordis |
| DSH hello plugin | ชื่อ plugin ตัวอย่าง แบบ hello world ใน คลิป |
| my DSH plugin | ชื่อ โฟลเดอร์ ของ plugin ตัวอย่าง |
ซับไตเติ้ลภาษาไทย
ดาวน์โหลดหรือดูซับทั้งหมด
1 00:00:00,000 --> 00:00:06,165 สวัสดี ครับ ทุกคน ยินดีต้อนรับ สู่ วิดีโอ อีก ตอน นะครับ. 2 00:00:06,165 --> 00:00:15,899 วันนี้ เรา จะ มา แสดง ให้ ดู ว่า ทำ อย่างไร จึง จะ สร้าง DeepSeek harness plugin ได้ ครับ. 3 00:00:15,899 --> 00:00:21,306 DeepSeek harness กำลัง เป็น ที่ นิยม มาก เลย ครับ. 4 00:00:21,306 --> 00:00:26,065 ลอง ดู ที่ GitHub repo ครับ. ใน เวลา ไม่ กี่
เปิดดูซับไตเติ้ลทั้งหมด (137 segments)
1 00:00:00,000 --> 00:00:06,165 สวัสดี ครับ ทุกคน ยินดีต้อนรับ สู่ วิดีโอ อีก ตอน นะครับ. 2 00:00:06,165 --> 00:00:15,899 วันนี้ เรา จะ มา แสดง ให้ ดู ว่า ทำ อย่างไร จึง จะ สร้าง DeepSeek harness plugin ได้ ครับ. 3 00:00:15,899 --> 00:00:21,306 DeepSeek harness กำลัง เป็น ที่ นิยม มาก เลย ครับ. 4 00:00:21,306 --> 00:00:26,065 ลอง ดู ที่ GitHub repo ครับ. ใน เวลา ไม่ กี่ 5 00:00:26,065 --> 00:00:30,824 สัปดาห์ เรา ได้ ดาว ไป แล้ว ประมาณ หนึ่ง แสน 6 00:00:30,824 --> 00:00:35,150 หก หมื่น เก้า พัน ดาว ซึ่ง บ้า มาก ครับ. 7 00:00:35,150 --> 00:00:37,637 DeepSeek harness จริง ๆ 8 00:00:37,637 --> 00:00:42,396 แล้ว เป็น ระบบ ที่ ใช้ plugin เป็น ฐาน ครับ. 9 00:00:42,396 --> 00:00:48,993 จาก เอกสาร จะ เห็น ว่า ด้วย Cordis ทุก อย่าง คือ plugin ครับ. 10 00:00:48,993 --> 00:00:56,348 ใน คลิป นี้ ผม จะ พา ดู วิธี สร้าง plugin แบบ จบ ครบ กระบวนการ ครับ. 11 00:00:56,348 --> 00:01:04,676 ใน คอนโซล ของ DeepSeek harness มี เมนู settings แล้ว ไป ที่ plugins ได้ ครับ. 12 00:01:04,676 --> 00:01:11,922 มี plugin สำเร็จรูป อยู่ เยอะ แล้ว พวก นั้น คือ plugin ทั่วไป ครับ. 13 00:01:11,922 --> 00:01:16,681 เรา จะ มา ดู ว่า ทำ อย่างไร จึง สร้าง plugin 14 00:01:16,681 --> 00:01:20,899 แบบ กำหนด เอง แล้ว เอา ไป ใช้ ใน รายการ 15 00:01:20,899 --> 00:01:25,657 plugins ได้ ครับ. งั้น เริ่ม กัน เลย นะครับ. 16 00:01:25,657 --> 00:01:28,902 DeepSeek harness plugin จริง ๆ 17 00:01:28,902 --> 00:01:33,877 แล้ว สร้าง บน ฐาน ของ Cordis ครับ. ถ้า เปิด ดู 18 00:01:33,877 --> 00:01:38,528 GitHub repo ของ Cordis จะ เห็น ว่า มัน เป็น 19 00:01:38,528 --> 00:01:42,313 meta framework ของ spatial temporal 20 00:01:42,313 --> 00:01:44,368 composability ครับ. 21 00:01:44,368 --> 00:01:53,237 แปล ว่า เป็น เฟรมเวิร์ก ที่ ผสม แนวคิด เรื่อง เวลา กับ พื้นที่ เข้า ด้วย กัน ครับ. 22 00:01:53,237 --> 00:02:01,564 ชื่อ ฟัง ดู หรู มาก แต่ บน GitHub ก็ มี ดาว ประมาณ หก พัน แล้ว เช่น กัน ครับ. 23 00:02:01,564 --> 00:02:09,243 ดังนั้น มัน ก็ เป็น ที่ นิยม เหมือน กัน แต่ คำ ถาม คือ ใช้ ยัง ไง ครับ. 24 00:02:09,243 --> 00:02:13,678 เรา จะ ลง ราย ละเอียด กัน เล็ก น้อย ครับ. 25 00:02:13,678 --> 00:02:18,653 จะ พูด ถึง Cordis องค์ประกอบ และ แนวคิด ต่าง ๆ 26 00:02:18,653 --> 00:02:24,168 แต่ ก่อน อื่น มา ต่อ กับ DeepSeek plugin ก่อน ครับ. 27 00:02:24,168 --> 00:02:32,713 ถ้า ดู เอกสาร ของ พวก เขา เขา อธิบาย ทุก อย่าง เกี่ยว กับ Cordis ไว้ แล้ว ครับ. 28 00:02:32,713 --> 00:02:38,228 โดย สรุป Cordis คือ ระบบ plugin ที่ สเกล ได้ จริง ๆ 29 00:02:38,228 --> 00:02:39,328 ครับ. 30 00:02:39,328 --> 00:02:44,735 แนวคิด หลัก ของ Cordis มี อยู่ สอง สาม อย่าง ครับ. 31 00:02:44,735 --> 00:02:47,655 อย่าง แรก คือ context ครับ. 32 00:02:47,655 --> 00:02:51,873 ต่อ มา คือ plugin ครับ. ดังนั้น มี ทั้ง 33 00:02:51,873 --> 00:02:56,848 context กับ plugin และ ใน plugin ยัง มี แนวคิด 34 00:02:56,848 --> 00:03:01,823 เรื่อง service ซึ่ง สามารถ inject service เข้า 35 00:03:01,823 --> 00:03:03,121 ไป ได้ ครับ. 36 00:03:03,121 --> 00:03:07,231 อีก แนวคิด หนึ่ง เรียก ว่า fiber ครับ. 37 00:03:07,231 --> 00:03:10,692 fiber คือ หน่วย วงจร ชีวิต ครับ. 38 00:03:10,692 --> 00:03:19,128 ทุก สิ่ง ที่ ลงทะเบียน ผ่าน Cordis จะ ถูก ยกเลิก เมื่อ fiber ถูก dispose ครับ. 39 00:03:19,128 --> 00:03:23,130 มี กระบวนการ ย้อน กลับ ด้วย ครับ. เรา 40 00:03:23,130 --> 00:03:27,888 ลงทะเบียน fiber แล้ว ก็ สามารถ ย้อน กลับ ได้ 41 00:03:27,888 --> 00:03:32,539 คล้าย กับ garbage collection แต่ เรา ทำ และ 42 00:03:32,539 --> 00:03:34,702 ยกเลิก ได้ เอง ครับ. 43 00:03:34,702 --> 00:03:41,299 ระบบ จึง สะอาด และ ใช้ ทรัพยากร ได้ มี ประสิทธิภาพ กว่า ครับ. 44 00:03:41,299 --> 00:03:43,462 นั่น คือ fiber ครับ. 45 00:03:43,462 --> 00:03:47,032 ต่อไป มา ดู plugin จริง กัน ครับ. 46 00:03:47,032 --> 00:03:52,439 ผม จะ โชว์ ตัวอย่าง plugin ที่ สร้าง ไว้ เอง ครับ. 47 00:03:52,439 --> 00:03:56,225 plugin นี้ ชื่อ my DSH plugin ครับ. 48 00:03:56,225 --> 00:04:02,497 มัน ง่าย มาก แบบ hello world สำหรับ DeepSeek harness ครับ. 49 00:04:02,497 --> 00:04:08,662 ใน plugin นี้ มี ไฟล์ schema ชื่อ cordis.patch.yaml ครับ. 50 00:04:08,662 --> 00:04:16,774 อีก ไฟล์ คือ index ซึ่ง เป็น ตัว plugin จริง และ เป็น ไฟล์ JavaScript ครับ. 51 00:04:16,774 --> 00:04:21,424 รองรับ ทั้ง TypeScript และ JavaScript ครับ. 52 00:04:21,424 --> 00:04:28,130 ตัวอย่าง นี้ ใช้ JavaScript แต่ จะ ใช้ TypeScript ก็ ได้ ครับ. 53 00:04:28,130 --> 00:04:35,592 และ มี package ด้วย เพราะ ทุก อย่าง เป็น เฟรมเวิร์ก แบบ Node.js ครับ. 54 00:04:35,592 --> 00:04:40,135 ใน package มี ชื่อ ว่า DSH hello plugin มี 55 00:04:40,135 --> 00:04:44,461 version และ ระบุ files เป็น index.js กับ 56 00:04:44,461 --> 00:04:46,948 cordis.patch.yaml ครับ. 57 00:04:46,948 --> 00:04:51,815 จาก นั้น ก็ เริ่ม สร้าง plugin ได้ แล้ว ครับ. 58 00:04:51,815 --> 00:04:56,033 bundle หลัก คือ cordis.patch.yaml ครับ. 59 00:04:56,033 --> 00:05:04,577 ไฟล์ นี้ ใช้ ผนึก ทุก อย่าง เข้า ด้วย กัน และ แทรก plugin เข้า ไป ใน ระบบ ครับ. 60 00:05:04,577 --> 00:05:09,228 เมื่อ มี plugin แล้ว ก็ ลงทะเบียน ได้ ครับ. 61 00:05:09,228 --> 00:05:15,393 ทำ ได้ ด้วย คำ สั่ง บน command line สอง สาม คำ สั่ง ครับ. 62 00:05:15,393 --> 00:05:24,586 ใน ตัวอย่าง นี้ จะ โชว์ วิธี ลงทะเบียน ลบ plugin และ แสดง รายการ plugin ทั้งหมด ครับ. 63 00:05:24,586 --> 00:05:31,075 สมมติ ว่า เรา สร้าง plugin ชื่อ my DSH plugin ไว้ แล้ว ครับ. 64 00:05:31,075 --> 00:05:34,103 นั่น คือ ชื่อ โฟลเดอร์ ครับ. 65 00:05:34,103 --> 00:05:41,566 เรา แค่ เพิ่ม โฟลเดอร์ นี้ เข้า ไป ใน โปรเจกต์ DeepSeek harness ครับ. 66 00:05:41,566 --> 00:05:49,677 ถ้า คัดลอก คำ สั่ง list ไป รัน จะ แสดง plugin ที่มี อยู่ ทั้งหมด ก่อน ครับ. 67 00:05:49,677 --> 00:05:54,328 ตอน นี้ จะ เห็น ว่า ยัง ไม่ มี plugin ครับ. 68 00:05:54,328 --> 00:06:04,170 พอ ลงทะเบียน plugin แล้ว ลอง list อีก ครั้ง จะ เห็น ว่า มี แล้ว ชื่อ DSH hello plugin ครับ. 69 00:06:04,170 --> 00:06:08,929 ชื่อ นี้ มา จาก schema ของ plugin จริง ดู ใน 70 00:06:08,929 --> 00:06:13,471 package.json จะ เห็น ชื่อ DSH hello plugin 71 00:06:13,471 --> 00:06:17,040 ซึ่ง ต่าง จาก ชื่อ โฟลเดอร์ ครับ. 72 00:06:17,040 --> 00:06:24,395 พอ ทำ เสร็จ แล้ว เรา restart บริการ DeepSeek harness อีก ครั้ง ครับ. 73 00:06:24,395 --> 00:06:29,262 จะ เห็น ว่า plugin โหลด แล้ว มี ข้อความ hello 74 00:06:29,262 --> 00:06:33,480 from my plugin แล้ว เฟรมเวิร์ก DeepSeek 75 00:06:33,480 --> 00:06:36,508 harness ก็ เริ่ม ทำงาน ครับ. 76 00:06:36,508 --> 00:06:40,726 กลับ ไป ที่ เว็บ DeepSeek harness ครับ. 77 00:06:40,726 --> 00:06:46,999 ค้น หา hello จะ เห็น ว่า hello plugin โหลด อยู่ แล้ว ครับ. 78 00:06:46,999 --> 00:06:49,054 สะดวก มาก เลย ครับ. 79 00:06:49,054 --> 00:06:54,678 ถ้า อยาก แชร์ plugin นี้ ก็ แชร์ บน GitHub ได้ ครับ. 80 00:06:54,678 --> 00:07:02,248 คน อื่น ก็ เพิ่ม เข้า ระบบ DeepSeek harness ของ เขา ได้ เช่น กัน ครับ. 81 00:07:02,248 --> 00:07:11,441 ถ้า จะ เพิ่ม จาก GitHub ใช้ คำ สั่ง plugin แบบ เพิ่ม จาก repo บน GitHub ได้ เลย ครับ. 82 00:07:11,441 --> 00:07:15,984 เพราะ ฉะนั้น plugin นี้ จึง แชร์ ได้ ครับ. 83 00:07:15,984 --> 00:07:24,420 ถ้า อยาก ลบ เช่น ไม่ อยาก ใช้ plugin นี้ แล้ว ก็ ลบ ด้วย ชื่อ plugin ได้ ครับ. 84 00:07:24,420 --> 00:07:28,313 จะ เห็น ว่า plugin ถูก ลบ แล้ว ครับ. 85 00:07:28,313 --> 00:07:33,721 ตรวจ list อีก ครั้ง จะ ไม่ เหลือ plugin แล้ว ครับ. 86 00:07:33,721 --> 00:07:38,912 จาก นั้น restart คอนโซล DeepSeek อีก ครั้ง ครับ. 87 00:07:38,912 --> 00:07:45,618 ไป ดู plugins อีก ที ค้น hello จะ เห็น ว่า ถูกลบ ไป แล้ว ครับ. 88 00:07:45,618 --> 00:07:49,944 สะดวก สุด ๆ เลย ครับ. นี่ คือ วิธี สร้าง 89 00:07:49,944 --> 00:07:54,595 plugin วิธี เพิ่ม plugin เข้า ระบบ DeepSeek 90 00:07:54,595 --> 00:07:59,461 harness และ วิธี ลบ plugin ออก จาก ระบบ ครับ. 91 00:07:59,461 --> 00:08:04,004 ต่อไป เรา จะ พูด ถึง ระบบ Cordis เอง ครับ. 92 00:08:04,004 --> 00:08:11,791 อย่าง ที่ บอก ไป แล้ว Cordis เป็น ระบบ plugin ที่ สเกล ได้ สูง มาก ครับ. 93 00:08:11,791 --> 00:08:18,064 เอกสาร ของ Cordis อธิบาย ได้ ดี มาก ว่า ทำงาน ยัง ไง ครับ. 94 00:08:18,064 --> 00:08:23,688 เรา มี ตัวอย่าง อีก ชุด เพื่อ โชว์ แอป Cordis จริง ๆ 95 00:08:23,688 --> 00:08:28,014 ครับ. ต่าง จาก plugin ของ DeepSeek เพราะ 96 00:08:28,014 --> 00:08:32,989 DeepSeek plugin สร้าง บน Cordis แต่ Cordis เอง 97 00:08:32,989 --> 00:08:35,152 คือ เฟรมเวิร์ก ครับ. 98 00:08:35,152 --> 00:08:44,561 งั้น ไป ที่ Cordis แล้ว สร้าง ตัวอย่าง อีก ตัว เพื่อ โชว์ ว่า Cordis ทำงาน ยัง ไง ครับ. 99 00:08:44,561 --> 00:08:52,781 Cordis สามารถ เริ่ม ทำงาน เป็น แอปพลิเคชัน ได้ ไม่ ใช่ แค่ เป็น plugin ครับ. 100 00:08:52,781 --> 00:08:57,540 ใน ตัวอย่าง ที่ สร้าง ไว้ จะ โชว์ วิธี เพิ่ม 101 00:08:57,540 --> 00:09:02,082 service เข้า แอป Cordis แล้ว รัน ผ่าน ระบบ 102 00:09:02,082 --> 00:09:04,462 นิเวศ ของ Cordis ครับ. 103 00:09:04,462 --> 00:09:13,871 ใน ตัวอย่าง Cordis จะ เห็น plugin อย่าง app counter และ greeter ซึ่ง เป็น service ครับ. 104 00:09:13,871 --> 00:09:22,415 greeter ลงทะเบียน เป็น service counter ก็ ลงทะเบียน เป็น service เช่น กัน ครับ. 105 00:09:22,415 --> 00:09:28,039 ส่วน app ใช้ เชื่อม ทั้ง สอง ตัว เข้า ด้วย กัน ครับ. 106 00:09:28,039 --> 00:09:36,367 มี counter มี การ เปลี่ยน ค่า counter มี app ready และ มี greeting ด้วย ครับ. 107 00:09:36,367 --> 00:09:42,748 สรุป คือ app จะ เชื่อม ทั้ง สอง service เข้า ด้วย กัน ครับ. 108 00:09:42,748 --> 00:09:52,374 จาก นั้น โหลด ทุก อย่าง เข้า ใน Cordis ผ่าน ไฟล์ schema เดียว ชื่อ อย่าง cordis.yml ครับ. 109 00:09:52,374 --> 00:09:57,240 ยัง สามารถ ต่อ ระบบ อย่าง hot module reloader 110 00:09:57,240 --> 00:10:01,567 และ plugin timer ได้ แต่ ใน เดโม นี้ เรา 111 00:10:01,567 --> 00:10:03,946 comment ไว้ ก่อน ครับ. 112 00:10:03,946 --> 00:10:10,111 มี main function ที่ เชื่อม ทุก อย่าง เข้า ด้วย กัน ครับ. 113 00:10:10,111 --> 00:10:16,275 มัน จะ โหลด plugin รัน plugin แล้ว ก็ unload plugin ครับ. 114 00:10:16,275 --> 00:10:23,738 มี ไฟล์ package ด้วย สำหรับ แอป Cordis นี้ ชื่อ ว่า cordis demo ครับ. 115 00:10:23,738 --> 00:10:30,876 ใน main function จะ เห็น ว่า ขั้น แรก รัน plugin เป็น loader ครับ. 116 00:10:30,876 --> 00:10:34,986 โหลด แล้ว ก็ include ไฟล์ Cordis ครับ. 117 00:10:34,986 --> 00:10:38,771 ไฟล์ นั้น จะ โหลด คอมโพเนนต์ อื่น ๆ 118 00:10:38,771 --> 00:10:41,259 ใน plugin ทั้งหมด ครับ. 119 00:10:41,259 --> 00:10:47,640 หลัง รัน จะ เห็น ข้อความ เริ่ม Cordis แบบ declarative ครับ. 120 00:10:47,640 --> 00:10:55,319 จาก นั้น ทุก อย่าง ทำงาน counter ทำงาน Cordis ทำงาน และ app ทำงาน ครับ. 121 00:10:55,319 --> 00:10:59,861 หลัง จาก นั้น เรา clean up ทุก อย่าง ครับ. 122 00:10:59,861 --> 00:11:04,512 สะดวก และ กระบวนการ ตรง ไป ตรง มา มาก ครับ. 123 00:11:04,512 --> 00:11:07,432 นี่ คือ ภาพ การ ทำงาน ครับ. 124 00:11:07,432 --> 00:11:13,164 น่า จะ ครบ แล้ว แต่ มี อีก อย่าง ใน เดโม Cordis ครับ. 125 00:11:13,164 --> 00:11:17,166 เรา สามารถ สร้าง dependency ได้ ครับ. 126 00:11:17,166 --> 00:11:24,628 เช่น ถ้า greeter ขึ้น กับ counter ก็ ใส่ counter ไว้ ใน greeter ครับ. 127 00:11:24,628 --> 00:11:33,713 counter จะ โหลด ก่อน แล้ว greeter จะ โหลด หลัง จาก ที่ counter โหลด เสร็จ แล้ว ครับ. 128 00:11:33,713 --> 00:11:35,444 แค่นี้ เอง ครับ. 129 00:11:35,444 --> 00:11:41,933 มัน คล้าย กับ PI agent ที่ เรา เคย พูด ถึง ใน ช่อง นี้ ครับ. 130 00:11:41,933 --> 00:11:48,638 คล้าย กัน แต่ Cordis สเกล ได้ กว่า และ ทรง พลัง กว่า อีก ครับ. 131 00:11:48,638 --> 00:11:53,505 เรา สามารถ สร้าง แอป Node.js หรือ plugin ด้วย 132 00:11:53,505 --> 00:11:57,940 Node.js แล้ว ใส่ เข้า ระบบ นิเวศ DeepSeek 133 00:11:57,940 --> 00:12:02,374 harness ทั้ง ก้อน แล้ว แชร์ กับ ชุมชน ได้ 134 00:12:02,374 --> 00:12:04,645 ครับ. ก็ แค่นี้ ครับ. 135 00:12:04,645 --> 00:12:07,998 หวัง ว่า จะ มี ประโยชน์ นะครับ. 136 00:12:07,998 --> 00:12:16,542 ถ้า ชอบ คลิป นี้ กด subscribe กด like หรือ คอมเมนต์ ถ้า มี คำ ถาม ได้ เลย ครับ. 137 00:12:16,542 --> 00:12:22,923 ขอบคุณ มาก ที่ สนับสนุน ช่อง แล้ว เจอกัน ใน คลิป หน้า ครับ.