▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Jack Dorsey's BUZZ: The Open Source Slack + Hermes Agent + Claude Code

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

ช่อง: DevsKingdom · ความยาว: 23 นาที 44 วินาที · ลิงก์: https://www.youtube.com/watch?v=VsJDLvdGGqM

# สรุป: Jack Dorsey's BUZZ:  The Open Source Slack + Hermes Agent + Claude Code

ช่อง: DevsKingdom · ความยาว: 23 นาที 44 วินาที · ลิงก์: https://www.youtube.com/watch?v=VsJDLvdGGqM

- วิดีโอนี้เป็นบทช่วยสอนแนะนำโปรเจกต์ Buzz แพลตฟอร์ม Slack แบบโอเพนซอร์สที่สร้างโดยทีม Block (บริษัทของ Jack Dorsey) ภายใต้สัญญาอนุญาต Apache 2.0 ซึ่งได้รับความนิยมอย่างรวดเร็ว
- ผู้พูดสาธิตการใช้งาน Buzz ผ่าน Buzz CLI และการเชื่อมต่อ AI agent (Claude) เข้ากับแพลตฟอร์มผ่าน ACP โดยมี Buzz relay เป็นเกตเวย์กลางที่เชื่อม Postgres, Redis และ storage แบบ S3 (MinIO)
- อธิบายการตั้งค่า relay แบบง่าย ๆ: ตั้ง environment variables และ private key ของ Buzz relay แล้วใช้งานบนพอร์ต 3000 ได้ทันที พร้อมการสร้าง channel และส่งข้อความผ่านคำสั่ง buzz CLI
- สาธิตการสร้าง workflow แบบมีเงื่อนไข (conditional workflow) ในรูปแบบไฟล์ YAML เช่น ถ้าข้อความมีแท็ก P1 หรือ SEV1 จะ trigger การส่งข้อความไปที่ channel "P1 escalation" แต่ถ้าไม่มีจะไปที่ "normal path"
- อธิบายแนวคิดการยืนยันตัวตนของ Buzz ด้วยคู่ public key กับ secret key และการสร้าง user ใหม่ (เช่น Alice/Alex) พร้อมการเพิ่ม member เข้า channel
- สาธิตการผูก AI agent กับ user ผ่าน ACP (เช่น Claude agent ACP) ทำให้ agent ตอบกลับข้อความใน channel โดยอัตโนมัติ เช่น การถาม "How are you?" แล้ว agent ตอบกลับพร้อมแนะนำความสามารถของตัวเอง
- ผู้พูดย้ำว่าทุกอย่างสามารถทำงานอัตโนมัติได้เต็มรูปแบบ ทั้ง agentic workflows, agentic pipelines และ agentic communities บนแพลตฟอร์มโอเพนซอร์ส
- ปิดท้ายด้วยการติดตั้งแบบไม่ใช้ Docker ทีละขั้นตอน: ติดตั้ง Postgres, Redis, Rust, MinIO (พร้อม systemd service และ bucket) จากนั้น clone repo และรัน cargo build เพื่อ build relay CLI, Buzz admin และ Buzz ACP
- ขั้นตอนสุดท้ายคือการตั้งค่า environment ของ Buzz relay (bind address, database URLs, S3 storage, คู่ private/public key) แล้วรัน buzz relay พร้อมทดสอบผ่าน health endpoint และพอร์ต 9090 (readiness/liveness)

**ความเห็น:** วิดีโอเป็นบทช่วยสอนที่กระชับและใช้งานได้จริง เหมาะสำหรับคนที่อยาก self-host แพลตฟอร์มแชตแบบ Slack ที่เชื่อมต่อกับ AI agent ได้เอง โดยเฉพาะการติดตั้งแบบไม่มี Docker ที่หาเอกสารอธิบายที่อื่นไม่ได้ ข้อควรระวังคือชื่อวิดีโอเอ่ยถึง Hermes Agent และ Claude Code แต่ในเนื้อหาจริง ๆ กล่าวถึงเฉพาะการเชื่อมต่อ Claude ผ่าน ACP เท่านั้น
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

สวัสดีครับทุกคน ยินดีต้อนรับสู่วิดีโออีกหนึ่งตอนครับ ในบทช่วยสอนวันนี้ เราจะมาแนะนำโปรเจกต์ที่ทรงพลังและเจ๋งมาก ๆ ให้ทุกคนรู้จักกันครับ มันชื่อว่า Buzz สร้างโดยทีม Block AI ครับ มันคือ Slack แบบโอเพนซอร์ส ซึ่งถือว่าดีมาก และอยู่ภายใต้สัญญาอนุญาต Apache 2.0 ครับ เป็นโปรเจกต์ที่ได้รับความนิยมสูงมาก เห็นได้จากที่มีดาว (star) ถึง 13.6k ในเวลาแค่ไม่กี่วัน

ในวิดีโอนี้ เราจะพาทุกคนดูวิธีใช้งานและวิธีติดตั้งกันครับ โดยเฉพาะวิธีใช้กับ coding agent (เอเจนต์สำหรับช่วยเขียนโค้ด) และวิธีใช้ Buzz CLI ครับ เขามีวิธีเข้าถึงอยู่ 3 วิธี วิธีแรกคือผ่านแอปเดสก์ท็อป ซึ่งดูตัวอย่างหน้าตาได้ใน readme ครับ แต่วิดีโอนี้เราจะไม่ครอบคลุมแอปเดสก์ท็อปนะครับ เพราะมันตรงไปตรงมามาก ถ้าอยากใช้ก็มีลิงก์ใน readme ให้ดาวน์โหลดมาติดตั้งบนเครื่องได้เลยครับ ตรงส่วน getting started เขาให้ binary release (เวอร์ชันไฟล์ที่คอมไพล์พร้อมใช้) มา แค่ดาวน์โหลดแล้วติดตั้งก็เสร็จ ง่ายมากครับ

ดังนั้นในวิดีโอนี้ เราจะสาธิตวิธีใช้ Buzz CLI และ AI agent เพื่อเข้าถึงแพลตฟอร์ม Buzz ซึ่งจะแอดวานซ์ขึ้นมาอีกหน่อยครับ ดูสถาปัตยกรรมของเขาก่อน เขามี human client คือแอปเดสก์ท็อป Buzz ที่เห็นเมื่อสักครู่ และยังมี AI agent ซึ่งเราจะสาธิตทุกอย่างโดยใช้ Claude และ ACP (โปรโตคอลสำหรับเชื่อมต่อ AI agent เข้ากับแพลตฟอร์ม) ครับ แล้วก็มี Buzz CLI ด้วย และเห็น Buzz relay อยู่ตรงนี้ เดี๋ยวเราจะพูดถึงอีกทีครับ โดยสรุปแล้ว relay คือเกตเวย์ของ Buzz นั่นเอง คุณสามารถเข้าถึงเฟรมเวิร์ก Buzz ผ่าน client แบบต่าง ๆ ได้โดยผ่าน Buzz relay และ relay ตัวนี้จะเชื่อมกับ Postgres, Redis และ storage ที่รองรับ S3 ครับ ในกรณีนี้เขาใช้ MinIO เราจะพาทุกคนติดตั้งทีละขั้นตอนและวิธีใช้งานกันครับ แต่ก่อนอื่น อยากให้เห็นภาพว่ามันทำงานยังไง เริ่มกันเลยครับ

ขั้นแรก สมมติว่าเรามี relay ที่ตั้งค่าไว้แล้ว (เดี๋ยวตอนท้ายวิดีโอเราจะพาติดตั้ง relay ทีละขั้นตอน พร้อมกับติดตั้งคอมโพเนนต์อื่น ๆ ทั้งหมดของโปรเจกต์นี้ให้ดูครับ) และอันนี้ยังไม่มีใน GitHub อย่างเป็นทางการ เขามีเวอร์ชัน Docker ให้ แต่ที่เราทำคือการติดตั้งแบบไม่ใช้ Docker ครับ จะได้เห็นชัดเจนว่าทุกอย่างทำงานยังไง

สมมติว่า relay ตั้งค่าไว้แล้ว ตอนนี้จะเห็นว่ามันรันอยู่ที่พอร์ต 3000 ครับ คุณต้องมี private key (กุญแจส่วนตัว) ของ Buzz relay ซึ่งต้องใช้ CLI ภายในของเขาในการสร้าง เดี๋ยวเราจะแสดงให้ดูทีหลังครับ สมมติว่าคุณมี private key อยู่แล้ว พอตั้ง environment variables (ตัวแปรสภาพแวดล้อม) สองตัวนี้ ก็เริ่มใช้ Buzz ได้เลย ง่ายแค่นั้นครับ

และเพราะว่านี่เป็น admin user (ผู้ดูแลระบบ) ถ้าตั้งค่าแบบนี้ มันจะได้เป็น owner (เจ้าของ) คุณจึงใช้บัญชี owner นั้นดูรายการ channel (ห้องแชต) ได้โดยตรง เห็น channel ต่าง ๆ ในแพลตฟอร์มนี้ และสร้าง channel ใหม่ได้ด้วย เช่น เราสร้าง channel ชื่อ general ครับ จากนั้น channel นั้นก็จะมี ID ของมัน แล้วคุณก็ส่งข้อความเข้า channel ได้ เช่น พิมพ์ว่า "Hello from self-hosted buzz" แล้วมันก็จะสำเร็จครับ ตรวจสอบรายการข้อความใน channel นี้ได้ เราทดสอบหลายสถานการณ์มาแล้ว จะเห็นว่ามีข้อความเยอะมาก นี่คือตัวอย่างหน้าตาของมัน หลังจากส่งข้อความ "Hello from self-hosted buzz" เข้า channel ไปแล้ว จะเห็นว่ามีรายการข้อความโผล่เข้ามา และยังมีข้อความอื่น ๆ ที่เราส่งไว้ด้วย เดี๋ยวเราจะอธิบายว่าข้อความแต่ละแบบหมายถึงอะไร

เริ่มจาก CLI ก่อนครับ หลังจากส่งข้อความแล้ว คุณยังสร้าง workflow (ขั้นตอนการทำงานอัตโนมัติ) ได้ด้วย โดย workflow จะผูกกับกรณีการใช้งานของคุณ คุณตั้ง cron job (งานตามกำหนดเวลา), workflow แบบมีเงื่อนไข หรือ webhook (ตัวแจ้งเตือนอัตโนมัติ) ก็ได้ เราจะสาธิตด้วย conditional workflow เพื่อให้เห็นว่า workflow หน้าตาเป็นยังไง workflow ที่เราสร้างชื่อว่า sample workflow เป็นแบบมีเงื่อนไข เป็นไฟล์ YAML ครับ จะเห็นว่ามันมีเงื่อนไขคือ จะทำงานเมื่อมีข้อความถูกโพสต์ พอโพสต์ข้อความเข้าไป มันจะ trigger workflow นี้ โดยถ้าข้อความมีแท็ก P1 หรือ SEV1 มันจะ trigger workflow ให้ส่งแท็กชื่อ P1 escalation แต่ถ้าไม่มีแท็ก P1 มันจะส่งข้อความไปที่ channel ชื่อ normal path ครับ จะเห็นว่าถ้าข้อความไม่มีแท็ก P1 ก็จะ trigger การส่งข้อความไปที่ channel ซึ่งคือ normal path และถ้ามีแท็ก P1 ก็จะส่งอีกข้อความไปที่ channel ชื่อ P1 escalation นี่คือวิธีที่ workflow แบบ conditional ทำงานครับ คุณสร้าง workflow แบบกำหนดเองได้ไม่จำกัด แล้วลองเล่นดูได้เลย สะดวกมากครับ

ตรวจสอบข้อความใน channel ที่สร้างไว้ผ่าน command line ได้ด้วยครับ เช่น ถ้าอยากดู 50 ข้อความล่าสุด ก็ใส่ limit 50 ได้ จะจำกัดจำนวนเท่าไหร่ก็ได้ตามต้องการ และดู thread (กระทู้สนทนา) ได้ด้วย channel กับ event (เหตุการณ์) ต่างกันนะครับ ข้อความคือ event หนึ่ง และยังมี threads ของข้อความด้วย ลองดูได้เหมือนกัน นี่คือส่วนของ Buzz CLI ครับ เรามีทั้ง user และ owner และยังทำอะไรได้อีกหลายอย่างภายใน channel

ต่อไปเป็นส่วนสำคัญมาก นั่นคือการสร้าง user ครับ ถ้าอยากสร้าง user ที่ไม่ใช่ owner เช่น สร้าง user ชื่อ Alice ก็ต้อง generate คู่กุญแจ (key pair) ให้ user นั้นก่อน แนวคิดสำคัญของ Buzz คือการยืนยันตัวตนของข้อความหรือผู้ใช้ด้วยคู่ public key (กุญแจสาธารณะ) กับ secret key (กุญแจลับ) ครับ คำสั่งนี้จะสร้าง key pair ให้ user Alice ซึ่งเราเพิ่งแสดงให้ดูในฐานะ owner สำหรับตัวอย่าง Alice เขาจะมี secret key และ public key ของตัวเองครับ

ถ้าอยากสร้าง user นี้ ก็แค่ระบุ private key เป็น user secret key จากนั้นตั้งค่า profile ให้ user ได้ ตั้งชื่ออะไรก็ได้ ไม่จำเป็นต้องเป็น Alice จะเป็น Alex หรืออะไรก็ได้ มันคือแท็กครับ ถ้าอยากแท็กหรือเพิ่มใครเข้าไป ก็ใช้ชื่อที่ตั้งไว้ตรงนี้ เช่น เพิ่ม Alex หรือ Alice ก็ได้ โดยระบุชื่อเป็น Alex หรือ Alice แบบนี้ พอสร้าง user ได้แล้ว ก็เพิ่ม user เข้า channel ได้ เช่น เปิดอีกเทอร์มินัลหนึ่งเพื่อเพิ่ม user เข้า channel โดย private key จะเป็น key ของ owner ซึ่งเป็นผู้ดูแลที่คุณสร้างตอนเริ่มโปรเจกต์ แล้วเพิ่ม member (สมาชิก) ที่เพิ่งสร้าง ซึ่งก็คือ Alice หรือจะเรียกว่า Alex ก็ได้ เข้าไปใน channel นี้ โดยมีบทบาทเป็น member ครับ

ตรวจสอบรายชื่อ member ได้ด้วยคำสั่ง buzz channel members ตามด้วย channel ID เพื่อดูสมาชิกของ channel นั้นครับ เช่น คัดลอกคำสั่งนี้แล้วเปิดเทอร์มินัลใหม่ ก็จะเห็น users ใน channel นี้ อ๋อ ต้องตั้ง private key ก่อนด้วย ไปที่คำสั่ง buzz channel members ที่ตั้ง private key ไว้แล้ว จะเห็นว่านี่คือ user Alex หรือ Alice นี่คือ public key ของ user ใหม่ที่เพิ่งเพิ่มเข้าไปครับ เช่น เห็นว่านี่คือ public key ของ user Alex เราใส่แท็กหรือ alias ให้ Alice ว่า Alex เพื่อแสดงให้เห็นว่าคุณตั้งชื่อ user ที่สร้างขึ้นใหม่ตามใจได้เลยครับ

พอเพิ่ม user และเพิ่มเข้า channel ได้แล้ว ก็ขอให้ user ส่งข้อความเข้า channel หรือสร้าง agent ผูกกับ user นั้น เพื่อให้ตอบกลับคำขอโดยอัตโนมัติได้ครับ ถ้า user ถูกเพิ่มเข้า channel แล้ว ก็ให้ user ส่งข้อความเข้า channel ได้ เช่น ส่งว่า "Hello, I'm new." ซึ่งก็คือ Alex เป็น user ใหม่ เข้ามาใน channel แล้วส่งข้อความทักทาย channel ก็จะบันทึกข้อความนี้ไว้ครับ จะเห็นว่านี่คือ public key ของ Alice และเนื้อหาคือ "Hello, I'm new." แล้วก็มี conditional workflow ถูก trigger ด้วย เหมือนที่สาธิตไปตอนแรก เพราะข้อความนี้ไม่มีแท็ก P1 จะเห็นว่าถูกสร้างในเวลาเดียวกัน เนื้อหาคือ normal path จำได้ไหมที่เราพูดถึง workflow ไว้ ถ้าไม่มีแท็ก P1 มันจะส่งแท็กเป็น normal path นั่นคือ workflow ครับ จะเห็นว่ามี normal path ถูกส่งออกไป

จะเห็นว่าทุกอย่างค่อนข้าง manual ใช่ไหมครับ ทุกอย่างทำด้วยมือ เพิ่ม owner ด้วยมือ เพิ่ม user ด้วยมือ ส่งข้อความผ่าน user เข้า channel ที่สร้างเอง แล้วถ้าเราลองทำให้ทุกอย่างเป็นอัตโนมัติล่ะ เรากำลังพูดถึง agentic systems, agentic communities, agentic workflows, agentic pipelines ครับ และแพลตฟอร์ม Buzz ก็สามารถรวมทุกอย่างเข้าด้วยกันได้ในรูปแบบโอเพนซอร์สครับ

ในการรัน agent บนแพลตฟอร์มนี้ คุณต้องติดตั้งทุกอย่างที่ agent นั้นต้องการในรูปแบบ ACP เช่น ถ้าคุณมี Claude ก็อาจต้องติดตั้ง Claude ACP ก่อน โดยใช้ pip install แพ็กเกจนี้ แล้วก็เช็คได้ว่า Claude ACP มีอยู่หรือไม่ จากนั้นก็เริ่มใช้ ACP ผูกกับ user นั้นได้ครับ พอส่งข้อความไปหา Alex หรือ Alice ในตัวอย่างนี้ มันจะตอบกลับโดยอัตโนมัติ เพราะตอนนี้ user คนนี้ผูกกับ agent ACP แล้ว ไม่ต้องตอบข้อความด้วยมืออีกต่อไปครับ

ตอนแรกเราทดสอบโดยให้ user ส่งข้อความหรือคำขอเข้า channel ด้วยมือ แต่ตอนนี้ เพราะเราผูกกับ user Alice นี่คือ private key ของ Alice ซึ่งค้นหาได้ครับ จะเห็นว่านี่คือ private key หรือ secret key ของ Alice ถ้าอยากให้ Alice พูดคุยอัตโนมัติ ก็ระบุ private key เป็นของ Alice ระบุ relay URL แล้วระบุคำสั่ง ACP agent ซึ่งก็คือ Claude agent ACP นี่คือคำสั่ง ACP แค่นั้นเองครับ และยังให้ agent ตอบใครก็ได้ ไม่จำเป็นต้องเป็น owner สุดท้ายก็แค่ระบุ bot ACP เช่น relay ที่เราตั้งไว้ด้วยคำสั่ง buzz relay และถ้าอยากตั้ง ACP ก็ระบุคำสั่ง buzz acp ครับ หลัง config (ตั้งค่า) พารามิเตอร์ต่าง ๆ ครบแล้ว จะเห็นว่า ACP นี้ใช้ Claude agent ACP และผูกกับ channel นี้ และเพราะมันค้นพบ channel แค่หนึ่งช่อง จึงเห็นว่ามันพร้อมจะตอบกลับแล้ว

พอตั้ง ACP เสร็จ ก็คุยกับ agent ได้เลยครับ เช่น แท็ก Alex แล้วถามว่า "Alex ช่วยทักทายหนึ่งประโยคใน channel นี้หน่อย" ข้อความนี้ส่งโดย owner ในฐานะ owner คุณแท็กใครก็ได้ใน channel แล้วขอให้เขาทำอะไรก็ได้ เช่น ถ้าอยากคุยกับ agent ก็แท็ก Alex ให้ทักทายหนึ่งประโยค แล้ว agent จะตอบกลับมาว่า "สวัสดี ฉันดีใจที่ได้อยู่ตรงนี้ และพร้อมช่วยเหลือทุกเมื่อที่คุณต้องการอะไร" นี่คือสิ่งที่ agent ตอบกลับมา นี่คือวิธีที่ ACP ทำงานครับ

มาลองตัวอย่างจริงกันดีกว่าว่ามันทำงานยังไง จะเห็นว่าในเทอร์มินัลนี้เป็นเทอร์มินัลที่มี private key ของ owner เป็น channel owner ส่วนอีกอันเป็น channel user คือ Alice ครับ ถ้าเป็น Alice ก็ส่งข้อความเข้า channel ได้ตรง ๆ แต่ถ้าเป็น owner ก็ขอให้ Alice ซึ่งเป็น agent ทำอะไรให้อัตโนมัติได้ เช่น ลองตัวอย่างที่เห็นก่อนหน้านี้ แค่อยากทักทายใน channel ก็พิมพ์ "Hey, Alex" แล้ว "How are you?" และ "What can you do?" แล้วมันจะ trigger agent ACP ให้ Claude บนเครื่องนี้ตอบกลับ กด Enter ไปครับ จะเห็นว่าข้อความถูกยอมรับ และ event ถูก trigger แล้ว วิธีตรวจสอบคำตอบที่ง่ายที่สุดคือ list ข้อความทั้งหมดใน channel นี้ เช่น ดูข้อความใน channel นี้ด้วยคำสั่ง limit 50 กด Enter ก็จะเห็นคำตอบครับ ตรงนี้ "I'm doing well, thanks for asking. I'm an AI agent Alex that can help you with engineering work in this repo including reading and modify code or running test, opening PRs and drafting new configs."

จะเห็นว่าในกรณีนี้เราไม่ได้ถาม "how are you" จริง ๆ นะครับ ขอคัดลอกทั้งหมดเพื่อให้เห็นว่ามันคือข้อความที่เราเพิ่งสร้างขึ้น พอวางลงในไฟล์ JSON ที่ใช้ทดสอบ จะเห็นว่าข้อความสุดท้ายตอบกลับคำขอ "how are you" ซึ่งก็คือ "Alex คุณเป็นยังไงบ้าง และทำอะไรได้บ้าง" ครับ จะเห็นว่ามี normal path ถูกสร้างขึ้นเพราะไม่มีแท็ก P1 และ agent ก็ตอบกลับมาว่า "ฉันสบายดี ขอบคุณที่ถาม ฉันคือ agent ชื่อ Alex ที่ช่วยงานด้านวิศวกรรมใน repo นี้ได้ รวมถึงอ่านและแก้ไขโค้ด รันเทสต์ เปิด PR และร่าง config ของ agent ใหม่ รวมถึงตอบคำถามเกี่ยวกับ codebase ของ Buzz" นี่คือความเจ๋งของมันเลยครับ เขาเอา Claude ไป integrate เข้ากับแพลตฟอร์ม Buzz ได้ง่ายมาก

และคุณยังส่งข้อความธรรมดาผ่าน agent ได้ด้วย ไม่จำเป็นต้องตอบ owner อย่างเดียว มันสามารถส่งข้อความปกติใน channel ได้ เช่น "hello, glad to be in the channel" สมมติว่าเป็นผู้ใช้ทั่วไป [ฟังไม่ชัด] คุณก็แค่ส่งข้อความ "hello, glad to be in the channel" โอ๊ะ อันนั้นผิด ส่งใหม่อีกทีนะครับ จะเห็นว่ามีข้อความ "hello, glad to be in the channel" โผล่ขึ้นมา นี่คือวิธีให้ user พูดใน channel ด้วยมือ และวิธีทำให้ agent ตอบกลับคำขอโดยอัตโนมัติครับ นี่คือวิธีที่ agent ทำงานบนแพลตฟอร์ม Buzz หวังว่าจะเป็นประโยชน์นะครับ

สุดท้าย เราจะพาทุกคนติดตั้งแบบทีละขั้นตอนกันครับ อันนี้ไม่มีเอกสารอธิบายไว้ที่ไหนเลย ทั้งใน readme หรือใน repo ของ Buzz ผมเขียนขึ้นมาเอง เลยจะพาไปดูว่ามันทำงานยังไง เริ่มจากขั้นตอนที่หนึ่ง จาก readme จะเห็นว่าต้องติดตั้ง dependencies (ไลบรารีที่ต้องพึ่งพา) เล็กน้อย อย่าง Postgres, Redis และ MinIO แล้วก็ตั้งค่าอีกไม่กี่อย่าง จากนั้นก็พร้อมใช้งานได้เลยครับ

เริ่มจากติดตั้ง dependencies ต่าง ๆ ก่อน ลง Postgres, Redis แล้วก็ต้องลง Rust ด้วย อย่าลืมติดตั้ง Rust และรัน cargo install นะครับ จากนั้นติดตั้ง Postgres สร้าง user ของ Buzz พร้อมรหัสผ่าน แล้วสร้าง instance ของ Redis ขึ้นมา แล้วก็ตั้ง MinIO ซึ่งเป็น storage ที่รองรับ S3 ได้เลย และสร้าง user ของ MinIO พร้อมทำ systemd (ตัวจัดการ service ของ Linux) ให้มันด้วย จะได้รัน MinIO เป็น service ฝั่ง backend ของ systemd จากนั้นต้องสร้าง bucket (ที่เก็บข้อมูล) ให้ Buzz ใน MinIO คล้ายกับ S3 ครับ

จากนั้นก็เริ่มติดตั้งเฟรมเวิร์ก Buzz ได้เลย clone repo ลงมา เข้าไปใน repo ของ Buzz แล้วรัน cargo build ซึ่งจะ build relay CLI และ Buzz admin ครับ ถ้าอยากติดตั้ง ACP สำหรับ agent ก็ต้อง build Buzz ACP ด้วย ซึ่งเรา demo ไปแล้วตอนต้นวิดีโอ หลังจากนั้นอย่าลืมคัดลอกทุกอย่างไปไว้ใน system path ซึ่งก็คือ /usr/local/bin จะได้เรียกใช้ binary ได้ทันทีครับ

แล้วก็ต้องสร้าง data directory สำหรับ GitHub repos และตั้งค่า environment ของ Buzz ซึ่งสำคัญมากสำหรับ Buzz relay ที่จะทำงาน ถ้าดูที่ configuration จะเห็นว่าต้องระบุ buzz bind address ซึ่งคือพอร์ต 3000 ระบุ database อย่าง Postgres และ Redis URL รวมถึง S3 storage ด้วย สุดท้ายต้องตั้งค่า path ของ private key ของ Buzz relay และ relay owner public key ซึ่งเป็นคู่ private key กับ public key ครับ ใช้คำสั่ง buzz admin generate key เพื่อสร้างคู่ public key และ secret key แล้ววางลงใน environment ของ Buzz relay การตั้งค่าสุดท้ายจะหน้าตาประมาณนี้ครับ เป็น configuration ที่ใช้งานได้จริง ลองบนเครื่องของคุณได้เลย แน่นอนว่า private key กับ public key จะต่างกัน แต่ส่วนที่เหลือควรใกล้เคียงกันมาก

พอตั้งค่าทุกอย่างเสร็จ ก็แค่ source ไฟล์ environment แล้วรัน buzz relay ซึ่งจะสปิน relay ขึ้นมา และนี่คือส่วนที่สำคัญที่สุดของโปรเจกต์ทั้งหมดนี้ครับ จากนั้นลองทดสอบ relay ผ่าน health endpoint (จุดตรวจสอบสถานะ) และทดสอบพอร์ต 9090 สำหรับ readiness และ liveness ได้ 9090 คือพอร์ต health ของ Buzz ครับ เป็นพอร์ตที่ใช้เช็คสถานะของ relay และยังตั้งให้ Buzz เป็น systemd service เริ่มต้นของระบบได้ด้วยครับ

แค่นี้เองครับ นี่คือวิธีติดตั้ง Buzz โดยไม่ใช้ Docker วิธีโฮสต์บนเครื่องท้องถิ่น และวิธีใช้งาน ทั้งกับ coding agent และ Buzz CLI ครับ หวังว่าจะเป็นประโยชน์นะครับ และมันเป็นโปรเจกต์ที่เจ๋งมาก ๆ จริง ๆ ถ้าชอบวิดีโอนี้ ช่วย subscribe, like หรือคอมเมนต์ได้ถ้ามีคำถามครับ ขอบคุณมากสำหรับการสนับสนุนช่อง แล้วเจอกันในวิดีโอหน้านะครับ

03

หมายเหตุการแปล

ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ

  • ## ส่วนที่ฟังไม่ชัด [ฟังไม่ชัด]
  • 1 จุด: "as a Rappley user" (ประมาณนาทีที่ 17:50) — คำว่า "Rappley" ฟังไม่ชัด น่าจะหมายถึง "regular user" หรือ "relay user" จึงแปลเป็น "ผู้ใช้ทั่วไป [ฟังไม่ชัด]" และระบุไว้ในรายงานนี้
04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
Buzzแพลตฟอร์ม Slack แบบโอเพนซอร์สโดย Block (ชื่อแบรนด์ คงรูปภาษาอังกฤษ)
Jack Dorseyผู้ก่อตั้ง Twitter และ Block บริษัทเจ้าของโปรเจกต์ Buzz
Blockบริษัทเทคโนโลยีเจ้าของโปรเจกต์ Buzz (เดิมชื่อ Square)
Buzz CLIเครื่องมือสั่งงาน Buzz ผ่านบรรทัดคำสั่ง
Buzz relayตัวกลาง (เกตเวย์) ที่เชื่อม client ต่าง ๆ เข้ากับแพลตฟอร์ม Buzz
Buzz adminเครื่องมือคำสั่งสำหรับงานผู้ดูแลระบบของ Buzz เช่น สร้างคู่กุญแจ
Slackแอปพลิเคชันแชตสำหรับทีม (ใช้เปรียบเทียบกับ Buzz)
ACPโปรโตคอลสำหรับเชื่อมต่อ AI agent เข้ากับแพลตฟอร์ม
Claudeโมเดล AI ของ Anthropic ที่ใช้เป็น coding agent ในวิดีโอนี้
Hermes AgentAI agent ที่ปรากฏในชื่อวิดีโอ (ไม่ถูกพูดถึงในเนื้อหาคำบรรยาย)
Claude Codeเครื่องมือเขียนโค้ดของ Claude ที่ปรากฏในชื่อวิดีโอ (ไม่ถูกพูดถึงในเนื้อหาคำบรรยาย)
coding agentเอเจนต์ AI ที่ช่วยงานเขียนโค้ด
AI agentเอเจนต์อัจฉริยะที่ทำงานอัตโนมัติแทนมนุษย์
channelห้องแชตภายในแพลตฟอร์ม
memberสมาชิกภายใน channel
ownerเจ้าของ/ผู้ดูแลระบบที่สร้างโปรเจกต์
admin userผู้ใช้ระดับผู้ดูแลระบบ
workflowขั้นตอนการทำงานอัตโนมัติ
conditional workflowworkflow แบบมีเงื่อนไข (ทำงานเมื่อตรงเงื่อนไข)
cron jobงานที่ตั้งเวลาให้ทำงานอัตโนมัติ
webhookตัวแจ้งเตือนอัตโนมัติผ่าน HTTP เมื่อมีเหตุการณ์เกิดขึ้น
P1แท็กระดับความสำคัญสูงสุด (Priority 1) ใช้ใน workflow
SEV1แท็กระดับความรุนแรงสูงสุด (Severity 1) ใช้ใน workflow
key pairคู่กุญแจที่ใช้ยืนยันตัวตน (public key + secret key)
private key / secret keyกุญแจลับส่วนตัว ใช้ยืนยันตัวตน
public keyกุญแจสาธารณะ ใช้ตรวจสอบยืนยันตัวตน
threadกระทู้สนทนาที่ย่อยมาจากข้อความ
eventเหตุการณ์ที่เกิดขึ้นในระบบ เช่น การส่งข้อความ
environment variablesตัวแปรสภาพแวดล้อมที่ใช้ตั้งค่าโปรแกรม
Postgresฐานข้อมูล PostgreSQL
Redisฐานข้อมูลแบบ in-memory
MinIOระบบจัดเก็บข้อมูลที่รองรับ S3 แบบ self-hosted
S3บริการจัดเก็บข้อมูลแบบ object storage
bucketที่เก็บข้อมูลในระบบ S3/MinIO
Rustภาษาโปรแกรมที่ใช้ในการ build โปรเจกต์ Buzz
cargoเครื่องมือจัดการแพ็กเกจและ build ของภาษา Rust
cargo buildคำสั่งคอมไพล์โปรเจกต์ Rust
YAMLรูปแบบไฟล์สำหรับเขียนการตั้งค่า/workflow
Dockerเทคโนโลยีคอนเทนเนอร์สำหรับรันแอปพลิเคชัน
GitHubแพลตฟอร์มโฮสต์โค้ดโอเพนซอร์ส
repoที่เก็บโค้ด (repository)
READMEไฟล์เอกสารแนะนำโปรเจกต์
binary releaseเวอร์ชันไฟล์ที่คอมไพล์พร้อมใช้งาน
PRPull Request คำขอดึงโค้ดเข้ารวม
configการตั้งค่า (configuration)
systemdตัวจัดการ service ของระบบ Linux
health endpointจุดตรวจสอบสถานะของบริการ
readiness / livenessการเช็คว่าบริการพร้อมรับงาน / ยังทำงานอยู่
storageที่เก็บข้อมูล
/usr/local/binตำแหน่งติดตั้ง binary ในระบบ (system path)
pip installคำสั่งติดตั้งแพ็กเกจ Python
limit 50คำสั่งจำกัดจำนวนผลลัพธ์ เช่น ดู 50 ข้อความล่าสุด
getting startedส่วนแนะนำการเริ่มต้นใช้งานในเอกสาร
agentic systems / workflows / pipelinesระบบ / ขั้นตอน / ท่อส่งงานที่ขับเคลื่อนด้วยเอเจนต์อัตโนมัติ
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:01,672
สวัสดีครับทุกคน

2
00:00:01,672 --> 00:00:05,684
ยินดีต้อนรับสู่วิดีโออีกหนึ่งตอนครับ

3
00:00:05,684 --> 00:00:07,579
ในบทช่วยสอนวันนี้

4
00:00:07,579 --> 00:00:12,260
เราจะมาแนะนำโปรเจกต์ที่ทรงพลังและเจ๋งมาก ๆ
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (325 segments)
1
00:00:00,000 --> 00:00:01,672
สวัสดีครับทุกคน

2
00:00:01,672 --> 00:00:05,684
ยินดีต้อนรับสู่วิดีโออีกหนึ่งตอนครับ

3
00:00:05,684 --> 00:00:07,579
ในบทช่วยสอนวันนี้

4
00:00:07,579 --> 00:00:12,260
เราจะมาแนะนำโปรเจกต์ที่ทรงพลังและเจ๋งมาก ๆ

5
00:00:12,260 --> 00:00:16,384
ให้ทุกคนรู้จักกันครับ มันชื่อว่า Buzz

6
00:00:16,384 --> 00:00:20,619
สร้างโดยทีม Block AI ครับ มันคือ Slack

7
00:00:20,619 --> 00:00:23,851
แบบโอเพนซอร์ส ซึ่งถือว่าดีมาก

8
00:00:23,851 --> 00:00:28,309
และอยู่ภายใต้สัญญาอนุญาต Apache 2.0 ครับ

9
00:00:28,309 --> 00:00:32,210
เป็นโปรเจกต์ที่ได้รับความนิยมสูงมาก

10
00:00:32,210 --> 00:00:36,111
เห็นได้จากที่มีดาว (star) ถึง 13.6k

11
00:00:36,111 --> 00:00:39,455
ในเวลาแค่ไม่กี่วัน ในวิดีโอนี้

12
00:00:39,455 --> 00:00:44,470
เราจะพาทุกคนดูวิธีใช้งานและวิธีติดตั้งกันครับ

13
00:00:44,470 --> 00:00:47,925
โดยเฉพาะวิธีใช้กับ coding agent

14
00:00:47,925 --> 00:00:52,829
(เอเจนต์สำหรับช่วยเขียนโค้ด) และวิธีใช้ Buzz

15
00:00:52,829 --> 00:00:56,842
CLI ครับ เขามีวิธีเข้าถึงอยู่ 3 วิธี

16
00:00:56,842 --> 00:00:59,739
วิธีแรกคือผ่านแอปเดสก์ท็อป

17
00:00:59,739 --> 00:01:03,863
ซึ่งดูตัวอย่างหน้าตาได้ใน readme ครับ

18
00:01:03,863 --> 00:01:08,990
แต่วิดีโอนี้เราจะไม่ครอบคลุมแอปเดสก์ท็อปนะครับ

19
00:01:08,990 --> 00:01:13,783
เพราะมันตรงไปตรงมามาก ถ้าอยากใช้ก็มีลิงก์ใน

20
00:01:13,783 --> 00:01:14,881
readme

21
00:01:14,881 --> 00:01:19,339
ให้ดาวน์โหลดมาติดตั้งบนเครื่องได้เลยครับ

22
00:01:19,339 --> 00:01:24,355
ตรงส่วน getting started เขาให้ binary release

23
00:01:24,355 --> 00:01:28,256
(เวอร์ชันไฟล์ที่คอมไพล์พร้อมใช้) มา

24
00:01:28,256 --> 00:01:32,937
แค่ดาวน์โหลดแล้วติดตั้งก็เสร็จ ง่ายมากครับ

25
00:01:32,937 --> 00:01:37,952
ดังนั้นในวิดีโอนี้ เราจะสาธิตวิธีใช้ Buzz CLI

26
00:01:37,952 --> 00:01:42,299
และ AI agent เพื่อเข้าถึงแพลตฟอร์ม Buzz

27
00:01:42,299 --> 00:01:45,865
ซึ่งจะแอดวานซ์ขึ้นมาอีกหน่อยครับ

28
00:01:45,865 --> 00:01:50,547
ดูสถาปัตยกรรมของเขาก่อน เขามี human client

29
00:01:50,547 --> 00:01:55,005
คือแอปเดสก์ท็อป Buzz ที่เห็นเมื่อสักครู่

30
00:01:55,005 --> 00:02:00,132
และยังมี AI agent ซึ่งเราจะสาธิตทุกอย่างโดยใช้

31
00:02:00,132 --> 00:02:04,813
Claude และ ACP (โปรโตคอลสำหรับเชื่อมต่อ AI

32
00:02:04,813 --> 00:02:09,940
agent เข้ากับแพลตฟอร์ม) ครับ แล้วก็มี Buzz CLI

33
00:02:09,940 --> 00:02:13,729
ด้วย และเห็น Buzz relay อยู่ตรงนี้

34
00:02:13,729 --> 00:02:18,633
เดี๋ยวเราจะพูดถึงอีกทีครับ โดยสรุปแล้ว relay

35
00:02:18,633 --> 00:02:21,531
คือเกตเวย์ของ Buzz นั่นเอง

36
00:02:21,531 --> 00:02:26,323
คุณสามารถเข้าถึงเฟรมเวิร์ก Buzz ผ่าน client

37
00:02:26,323 --> 00:02:27,422
แบบต่าง ๆ

38
00:02:27,422 --> 00:02:33,998
ได้โดยผ่าน Buzz relay และ relay ตัวนี้จะเชื่อมกับ Postgres,

39
00:02:33,998 --> 00:02:37,898
Redis และ storage ที่รองรับ S3 ครับ

40
00:02:37,898 --> 00:02:40,239
ในกรณีนี้เขาใช้ MinIO

41
00:02:40,239 --> 00:02:45,812
เราจะพาทุกคนติดตั้งทีละขั้นตอนและวิธีใช้งานกันครับ

42
00:02:45,812 --> 00:02:50,493
แต่ก่อนอื่น อยากให้เห็นภาพว่ามันทำงานยังไง

43
00:02:50,493 --> 00:02:55,285
เริ่มกันเลยครับ ขั้นแรก สมมติว่าเรามี relay

44
00:02:55,285 --> 00:02:57,180
ที่ตั้งค่าไว้แล้ว

45
00:02:57,180 --> 00:03:01,638
(เดี๋ยวตอนท้ายวิดีโอเราจะพาติดตั้ง relay

46
00:03:01,638 --> 00:03:06,431
ทีละขั้นตอน พร้อมกับติดตั้งคอมโพเนนต์อื่น ๆ

47
00:03:06,431 --> 00:03:09,886
ทั้งหมดของโปรเจกต์นี้ให้ดูครับ)

48
00:03:09,886 --> 00:03:14,567
และอันนี้ยังไม่มีใน GitHub อย่างเป็นทางการ

49
00:03:14,567 --> 00:03:17,242
เขามีเวอร์ชัน Docker ให้

50
00:03:17,242 --> 00:03:22,257
แต่ที่เราทำคือการติดตั้งแบบไม่ใช้ Docker ครับ

51
00:03:22,257 --> 00:03:27,273
จะได้เห็นชัดเจนว่าทุกอย่างทำงานยังไง สมมติว่า

52
00:03:27,273 --> 00:03:29,502
relay ตั้งค่าไว้แล้ว

53
00:03:29,502 --> 00:03:34,294
ตอนนี้จะเห็นว่ามันรันอยู่ที่พอร์ต 3000 ครับ

54
00:03:34,294 --> 00:03:39,310
คุณต้องมี private key (กุญแจส่วนตัว) ของ Buzz

55
00:03:39,310 --> 00:03:44,102
relay ซึ่งต้องใช้ CLI ภายในของเขาในการสร้าง

56
00:03:44,102 --> 00:03:49,006
เดี๋ยวเราจะแสดงให้ดูทีหลังครับ สมมติว่าคุณมี

57
00:03:49,006 --> 00:03:53,353
private key อยู่แล้ว พอตั้ง environment

58
00:03:53,353 --> 00:03:57,700
variables (ตัวแปรสภาพแวดล้อม) สองตัวนี้

59
00:03:57,700 --> 00:04:01,935
ก็เริ่มใช้ Buzz ได้เลย ง่ายแค่นั้นครับ

60
00:04:01,935 --> 00:04:06,727
และเพราะว่านี่เป็น admin user (ผู้ดูแลระบบ)

61
00:04:06,727 --> 00:04:11,743
ถ้าตั้งค่าแบบนี้ มันจะได้เป็น owner (เจ้าของ)

62
00:04:11,743 --> 00:04:16,313
คุณจึงใช้บัญชี owner นั้นดูรายการ channel

63
00:04:16,313 --> 00:04:20,659
(ห้องแชต) ได้โดยตรง เห็น channel ต่าง ๆ

64
00:04:20,659 --> 00:04:25,452
ในแพลตฟอร์มนี้ และสร้าง channel ใหม่ได้ด้วย

65
00:04:25,452 --> 00:04:29,799
เช่น เราสร้าง channel ชื่อ general ครับ

66
00:04:29,799 --> 00:04:33,811
จากนั้น channel นั้นก็จะมี ID ของมัน

67
00:04:33,811 --> 00:04:38,269
แล้วคุณก็ส่งข้อความเข้า channel ได้ เช่น

68
00:04:38,269 --> 00:04:42,504
พิมพ์ว่า "Hello from self-hosted buzz"

69
00:04:42,504 --> 00:04:47,408
แล้วมันก็จะสำเร็จครับ ตรวจสอบรายการข้อความใน

70
00:04:47,408 --> 00:04:52,089
channel นี้ได้ เราทดสอบหลายสถานการณ์มาแล้ว

71
00:04:52,089 --> 00:04:54,876
จะเห็นว่ามีข้อความเยอะมาก

72
00:04:54,876 --> 00:04:59,780
นี่คือตัวอย่างหน้าตาของมัน หลังจากส่งข้อความ

73
00:04:59,780 --> 00:05:04,461
"Hello from self-hosted buzz" เข้า channel

74
00:05:04,461 --> 00:05:09,030
ไปแล้ว จะเห็นว่ามีรายการข้อความโผล่เข้ามา

75
00:05:09,030 --> 00:05:13,266
และยังมีข้อความอื่น ๆ ที่เราส่งไว้ด้วย

76
00:05:13,266 --> 00:05:18,393
เดี๋ยวเราจะอธิบายว่าข้อความแต่ละแบบหมายถึงอะไร

77
00:05:18,393 --> 00:05:23,185
เริ่มจาก CLI ก่อนครับ หลังจากส่งข้อความแล้ว

78
00:05:23,185 --> 00:05:25,414
คุณยังสร้าง workflow

79
00:05:25,414 --> 00:05:29,649
(ขั้นตอนการทำงานอัตโนมัติ) ได้ด้วย โดย

80
00:05:29,649 --> 00:05:34,553
workflow จะผูกกับกรณีการใช้งานของคุณ คุณตั้ง

81
00:05:34,553 --> 00:05:38,566
cron job (งานตามกำหนดเวลา), workflow

82
00:05:38,566 --> 00:05:41,464
แบบมีเงื่อนไข หรือ webhook

83
00:05:41,464 --> 00:05:46,368
(ตัวแจ้งเตือนอัตโนมัติ) ก็ได้ เราจะสาธิตด้วย

84
00:05:46,368 --> 00:05:51,383
conditional workflow เพื่อให้เห็นว่า workflow

85
00:05:51,383 --> 00:05:56,176
หน้าตาเป็นยังไง workflow ที่เราสร้างชื่อว่า

86
00:05:56,176 --> 00:06:00,857
sample workflow เป็นแบบมีเงื่อนไข เป็นไฟล์

87
00:06:00,857 --> 00:06:04,758
YAML ครับ จะเห็นว่ามันมีเงื่อนไขคือ

88
00:06:04,758 --> 00:06:07,990
จะทำงานเมื่อมีข้อความถูกโพสต์

89
00:06:07,990 --> 00:06:12,782
พอโพสต์ข้อความเข้าไป มันจะ trigger workflow

90
00:06:12,782 --> 00:06:17,463
นี้ โดยถ้าข้อความมีแท็ก P1 หรือ SEV1 มันจะ

91
00:06:17,463 --> 00:06:22,479
trigger workflow ให้ส่งแท็กชื่อ P1 escalation

92
00:06:22,479 --> 00:06:26,825
แต่ถ้าไม่มีแท็ก P1 มันจะส่งข้อความไปที่

93
00:06:26,825 --> 00:06:30,058
channel ชื่อ normal path ครับ

94
00:06:30,058 --> 00:06:34,962
จะเห็นว่าถ้าข้อความไม่มีแท็ก P1 ก็จะ trigger

95
00:06:34,962 --> 00:06:40,089
การส่งข้อความไปที่ channel ซึ่งคือ normal path

96
00:06:40,089 --> 00:06:45,215
และถ้ามีแท็ก P1 ก็จะส่งอีกข้อความไปที่ channel

97
00:06:45,215 --> 00:06:50,231
ชื่อ P1 escalation นี่คือวิธีที่ workflow แบบ

98
00:06:50,231 --> 00:06:54,578
conditional ทำงานครับ คุณสร้าง workflow

99
00:06:54,578 --> 00:06:59,259
แบบกำหนดเองได้ไม่จำกัด แล้วลองเล่นดูได้เลย

100
00:06:59,259 --> 00:07:03,382
สะดวกมากครับ ตรวจสอบข้อความใน channel

101
00:07:03,382 --> 00:07:08,398
ที่สร้างไว้ผ่าน command line ได้ด้วยครับ เช่น

102
00:07:08,398 --> 00:07:13,413
ถ้าอยากดู 50 ข้อความล่าสุด ก็ใส่ limit 50 ได้

103
00:07:13,413 --> 00:07:17,983
จะจำกัดจำนวนเท่าไหร่ก็ได้ตามต้องการ และดู

104
00:07:17,983 --> 00:07:23,110
thread (กระทู้สนทนา) ได้ด้วย channel กับ event

105
00:07:23,110 --> 00:07:27,791
(เหตุการณ์) ต่างกันนะครับ ข้อความคือ event

106
00:07:27,791 --> 00:07:31,915
หนึ่ง และยังมี threads ของข้อความด้วย

107
00:07:31,915 --> 00:07:36,930
ลองดูได้เหมือนกัน นี่คือส่วนของ Buzz CLI ครับ

108
00:07:36,930 --> 00:07:39,605
เรามีทั้ง user และ owner

109
00:07:39,605 --> 00:07:44,063
และยังทำอะไรได้อีกหลายอย่างภายใน channel

110
00:07:44,063 --> 00:07:48,744
ต่อไปเป็นส่วนสำคัญมาก นั่นคือการสร้าง user

111
00:07:48,744 --> 00:07:53,537
ครับ ถ้าอยากสร้าง user ที่ไม่ใช่ owner เช่น

112
00:07:53,537 --> 00:07:58,664
สร้าง user ชื่อ Alice ก็ต้อง generate คู่กุญแจ

113
00:07:58,664 --> 00:08:03,456
(key pair) ให้ user นั้นก่อน แนวคิดสำคัญของ

114
00:08:03,456 --> 00:08:04,555
Buzz

115
00:08:04,555 --> 00:08:09,459
คือการยืนยันตัวตนของข้อความหรือผู้ใช้ด้วยคู่

116
00:08:09,459 --> 00:08:13,917
public key (กุญแจสาธารณะ) กับ secret key

117
00:08:13,917 --> 00:08:18,932
(กุญแจลับ) ครับ คำสั่งนี้จะสร้าง key pair ให้

118
00:08:18,932 --> 00:08:23,836
user Alice ซึ่งเราเพิ่งแสดงให้ดูในฐานะ owner

119
00:08:23,836 --> 00:08:28,629
สำหรับตัวอย่าง Alice เขาจะมี secret key และ

120
00:08:28,629 --> 00:08:33,756
public key ของตัวเองครับ ถ้าอยากสร้าง user นี้

121
00:08:33,756 --> 00:08:38,437
ก็แค่ระบุ private key เป็น user secret key

122
00:08:38,437 --> 00:08:42,338
จากนั้นตั้งค่า profile ให้ user ได้

123
00:08:42,338 --> 00:08:46,907
ตั้งชื่ออะไรก็ได้ ไม่จำเป็นต้องเป็น Alice

124
00:08:46,907 --> 00:08:51,365
จะเป็น Alex หรืออะไรก็ได้ มันคือแท็กครับ

125
00:08:51,365 --> 00:08:54,598
ถ้าอยากแท็กหรือเพิ่มใครเข้าไป

126
00:08:54,598 --> 00:08:59,725
ก็ใช้ชื่อที่ตั้งไว้ตรงนี้ เช่น เพิ่ม Alex หรือ

127
00:08:59,725 --> 00:09:04,517
Alice ก็ได้ โดยระบุชื่อเป็น Alex หรือ Alice

128
00:09:04,517 --> 00:09:09,533
แบบนี้ พอสร้าง user ได้แล้ว ก็เพิ่ม user เข้า

129
00:09:09,533 --> 00:09:11,316
channel ได้ เช่น

130
00:09:11,316 --> 00:09:15,997
เปิดอีกเทอร์มินัลหนึ่งเพื่อเพิ่ม user เข้า

131
00:09:15,997 --> 00:09:20,901
channel โดย private key จะเป็น key ของ owner

132
00:09:20,901 --> 00:09:25,582
ซึ่งเป็นผู้ดูแลที่คุณสร้างตอนเริ่มโปรเจกต์

133
00:09:25,582 --> 00:09:29,929
แล้วเพิ่ม member (สมาชิก) ที่เพิ่งสร้าง

134
00:09:29,929 --> 00:09:34,498
ซึ่งก็คือ Alice หรือจะเรียกว่า Alex ก็ได้

135
00:09:34,498 --> 00:09:39,179
เข้าไปใน channel นี้ โดยมีบทบาทเป็น member

136
00:09:39,179 --> 00:09:44,195
ครับ ตรวจสอบรายชื่อ member ได้ด้วยคำสั่ง buzz

137
00:09:44,195 --> 00:09:47,984
channel members ตามด้วย channel ID

138
00:09:47,984 --> 00:09:52,220
เพื่อดูสมาชิกของ channel นั้นครับ เช่น

139
00:09:52,220 --> 00:09:57,346
คัดลอกคำสั่งนี้แล้วเปิดเทอร์มินัลใหม่ ก็จะเห็น

140
00:09:57,346 --> 00:10:02,362
users ใน channel นี้ อ๋อ ต้องตั้ง private key

141
00:10:02,362 --> 00:10:06,931
ก่อนด้วย ไปที่คำสั่ง buzz channel members

142
00:10:06,931 --> 00:10:11,724
ที่ตั้ง private key ไว้แล้ว จะเห็นว่านี่คือ

143
00:10:11,724 --> 00:10:16,405
user Alex หรือ Alice นี่คือ public key ของ

144
00:10:16,405 --> 00:10:20,529
user ใหม่ที่เพิ่งเพิ่มเข้าไปครับ เช่น

145
00:10:20,529 --> 00:10:24,764
เห็นว่านี่คือ public key ของ user Alex

146
00:10:24,764 --> 00:10:29,111
เราใส่แท็กหรือ alias ให้ Alice ว่า Alex

147
00:10:29,111 --> 00:10:33,012
เพื่อแสดงให้เห็นว่าคุณตั้งชื่อ user

148
00:10:33,012 --> 00:10:37,916
ที่สร้างขึ้นใหม่ตามใจได้เลยครับ พอเพิ่ม user

149
00:10:37,916 --> 00:10:42,485
และเพิ่มเข้า channel ได้แล้ว ก็ขอให้ user

150
00:10:42,485 --> 00:10:47,501
ส่งข้อความเข้า channel หรือสร้าง agent ผูกกับ

151
00:10:47,501 --> 00:10:48,599
user นั้น

152
00:10:48,599 --> 00:10:53,280
เพื่อให้ตอบกลับคำขอโดยอัตโนมัติได้ครับ ถ้า

153
00:10:53,280 --> 00:10:57,850
user ถูกเพิ่มเข้า channel แล้ว ก็ให้ user

154
00:10:57,850 --> 00:11:02,977
ส่งข้อความเข้า channel ได้ เช่น ส่งว่า "Hello,

155
00:11:02,977 --> 00:11:07,324
I'm new." ซึ่งก็คือ Alex เป็น user ใหม่

156
00:11:07,324 --> 00:11:12,339
เข้ามาใน channel แล้วส่งข้อความทักทาย channel

157
00:11:12,339 --> 00:11:17,132
ก็จะบันทึกข้อความนี้ไว้ครับ จะเห็นว่านี่คือ

158
00:11:17,132 --> 00:11:22,258
public key ของ Alice และเนื้อหาคือ "Hello, I'm

159
00:11:22,258 --> 00:11:26,605
new." แล้วก็มี conditional workflow ถูก

160
00:11:26,605 --> 00:11:30,506
trigger ด้วย เหมือนที่สาธิตไปตอนแรก

161
00:11:30,506 --> 00:11:33,515
เพราะข้อความนี้ไม่มีแท็ก P1

162
00:11:33,515 --> 00:11:38,196
จะเห็นว่าถูกสร้างในเวลาเดียวกัน เนื้อหาคือ

163
00:11:38,196 --> 00:11:43,212
normal path จำได้ไหมที่เราพูดถึง workflow ไว้

164
00:11:43,212 --> 00:11:48,116
ถ้าไม่มีแท็ก P1 มันจะส่งแท็กเป็น normal path

165
00:11:48,116 --> 00:11:53,131
นั่นคือ workflow ครับ จะเห็นว่ามี normal path

166
00:11:53,131 --> 00:11:58,035
ถูกส่งออกไป จะเห็นว่าทุกอย่างค่อนข้าง manual

167
00:11:58,035 --> 00:12:02,493
ใช่ไหมครับ ทุกอย่างทำด้วยมือ เพิ่ม owner

168
00:12:02,493 --> 00:12:07,620
ด้วยมือ เพิ่ม user ด้วยมือ ส่งข้อความผ่าน user

169
00:12:07,620 --> 00:12:10,295
เข้า channel ที่สร้างเอง

170
00:12:10,295 --> 00:12:14,976
แล้วถ้าเราลองทำให้ทุกอย่างเป็นอัตโนมัติล่ะ

171
00:12:14,976 --> 00:12:18,431
เรากำลังพูดถึง agentic systems,

172
00:12:18,431 --> 00:12:22,778
agentic communities, agentic workflows,

173
00:12:22,778 --> 00:12:27,236
agentic pipelines ครับ และแพลตฟอร์ม Buzz

174
00:12:27,236 --> 00:12:33,366
ก็สามารถรวมทุกอย่างเข้าด้วยกันได้ในรูปแบบโอเพนซอร์สครับ

175
00:12:33,366 --> 00:12:36,598
ในการรัน agent บนแพลตฟอร์มนี้

176
00:12:36,598 --> 00:12:40,053
คุณต้องติดตั้งทุกอย่างที่ agent

177
00:12:40,053 --> 00:12:44,957
นั้นต้องการในรูปแบบ ACP เช่น ถ้าคุณมี Claude

178
00:12:44,957 --> 00:12:49,750
ก็อาจต้องติดตั้ง Claude ACP ก่อน โดยใช้ pip

179
00:12:49,750 --> 00:12:54,877
install แพ็กเกจนี้ แล้วก็เช็คได้ว่า Claude ACP

180
00:12:54,877 --> 00:12:59,558
มีอยู่หรือไม่ จากนั้นก็เริ่มใช้ ACP ผูกกับ

181
00:12:59,558 --> 00:13:04,351
user นั้นได้ครับ พอส่งข้อความไปหา Alex หรือ

182
00:13:04,351 --> 00:13:09,255
Alice ในตัวอย่างนี้ มันจะตอบกลับโดยอัตโนมัติ

183
00:13:09,255 --> 00:13:14,047
เพราะตอนนี้ user คนนี้ผูกกับ agent ACP แล้ว

184
00:13:14,047 --> 00:13:18,059
ไม่ต้องตอบข้อความด้วยมืออีกต่อไปครับ

185
00:13:18,059 --> 00:13:20,846
ตอนแรกเราทดสอบโดยให้ user

186
00:13:20,846 --> 00:13:25,081
ส่งข้อความหรือคำขอเข้า channel ด้วยมือ

187
00:13:25,081 --> 00:13:29,762
แต่ตอนนี้ เพราะเราผูกกับ user Alice นี่คือ

188
00:13:29,762 --> 00:13:33,997
private key ของ Alice ซึ่งค้นหาได้ครับ

189
00:13:33,997 --> 00:13:38,790
จะเห็นว่านี่คือ private key หรือ secret key

190
00:13:38,790 --> 00:13:43,471
ของ Alice ถ้าอยากให้ Alice พูดคุยอัตโนมัติ

191
00:13:43,471 --> 00:13:48,263
ก็ระบุ private key เป็นของ Alice ระบุ relay

192
00:13:48,263 --> 00:13:53,279
URL แล้วระบุคำสั่ง ACP agent ซึ่งก็คือ Claude

193
00:13:53,279 --> 00:13:57,849
agent ACP นี่คือคำสั่ง ACP แค่นั้นเองครับ

194
00:13:57,849 --> 00:14:02,864
และยังให้ agent ตอบใครก็ได้ ไม่จำเป็นต้องเป็น

195
00:14:02,864 --> 00:14:07,434
owner สุดท้ายก็แค่ระบุ bot ACP เช่น relay

196
00:14:07,434 --> 00:14:11,223
ที่เราตั้งไว้ด้วยคำสั่ง buzz relay

197
00:14:11,223 --> 00:14:16,238
และถ้าอยากตั้ง ACP ก็ระบุคำสั่ง buzz acp ครับ

198
00:14:16,238 --> 00:14:20,585
หลัง config (ตั้งค่า) พารามิเตอร์ต่าง ๆ

199
00:14:20,585 --> 00:14:25,601
ครบแล้ว จะเห็นว่า ACP นี้ใช้ Claude agent ACP

200
00:14:25,601 --> 00:14:30,728
และผูกกับ channel นี้ และเพราะมันค้นพบ channel

201
00:14:30,728 --> 00:14:35,632
แค่หนึ่งช่อง จึงเห็นว่ามันพร้อมจะตอบกลับแล้ว

202
00:14:35,632 --> 00:14:40,313
พอตั้ง ACP เสร็จ ก็คุยกับ agent ได้เลยครับ

203
00:14:40,313 --> 00:14:43,768
เช่น แท็ก Alex แล้วถามว่า "Alex

204
00:14:43,768 --> 00:14:48,337
ช่วยทักทายหนึ่งประโยคใน channel นี้หน่อย"

205
00:14:48,337 --> 00:14:52,238
ข้อความนี้ส่งโดย owner ในฐานะ owner

206
00:14:52,238 --> 00:14:55,025
คุณแท็กใครก็ได้ใน channel

207
00:14:55,025 --> 00:14:59,706
แล้วขอให้เขาทำอะไรก็ได้ เช่น ถ้าอยากคุยกับ

208
00:14:59,706 --> 00:15:04,498
agent ก็แท็ก Alex ให้ทักทายหนึ่งประโยค แล้ว

209
00:15:04,498 --> 00:15:07,619
agent จะตอบกลับมาว่า "สวัสดี

210
00:15:07,619 --> 00:15:10,182
ฉันดีใจที่ได้อยู่ตรงนี้

211
00:15:10,182 --> 00:15:14,975
และพร้อมช่วยเหลือทุกเมื่อที่คุณต้องการอะไร"

212
00:15:14,975 --> 00:15:19,767
นี่คือสิ่งที่ agent ตอบกลับมา นี่คือวิธีที่

213
00:15:19,767 --> 00:15:21,216
ACP ทำงานครับ

214
00:15:21,216 --> 00:15:25,897
มาลองตัวอย่างจริงกันดีกว่าว่ามันทำงานยังไง

215
00:15:25,897 --> 00:15:30,690
จะเห็นว่าในเทอร์มินัลนี้เป็นเทอร์มินัลที่มี

216
00:15:30,690 --> 00:15:35,148
private key ของ owner เป็น channel owner

217
00:15:35,148 --> 00:15:39,829
ส่วนอีกอันเป็น channel user คือ Alice ครับ

218
00:15:39,829 --> 00:15:44,845
ถ้าเป็น Alice ก็ส่งข้อความเข้า channel ได้ตรง

219
00:15:44,845 --> 00:15:49,414
ๆ แต่ถ้าเป็น owner ก็ขอให้ Alice ซึ่งเป็น

220
00:15:49,414 --> 00:15:52,981
agent ทำอะไรให้อัตโนมัติได้ เช่น

221
00:15:52,981 --> 00:15:57,996
ลองตัวอย่างที่เห็นก่อนหน้านี้ แค่อยากทักทายใน

222
00:15:57,996 --> 00:16:02,566
channel ก็พิมพ์ "Hey, Alex" แล้ว "How are

223
00:16:02,566 --> 00:16:07,693
you?" และ "What can you do?" แล้วมันจะ trigger

224
00:16:07,693 --> 00:16:12,485
agent ACP ให้ Claude บนเครื่องนี้ตอบกลับ กด

225
00:16:12,485 --> 00:16:17,166
Enter ไปครับ จะเห็นว่าข้อความถูกยอมรับ และ

226
00:16:17,166 --> 00:16:19,618
event ถูก trigger แล้ว

227
00:16:19,618 --> 00:16:23,742
วิธีตรวจสอบคำตอบที่ง่ายที่สุดคือ list

228
00:16:23,742 --> 00:16:28,758
ข้อความทั้งหมดใน channel นี้ เช่น ดูข้อความใน

229
00:16:28,758 --> 00:16:33,104
channel นี้ด้วยคำสั่ง limit 50 กด Enter

230
00:16:33,104 --> 00:16:37,674
ก็จะเห็นคำตอบครับ ตรงนี้ "I'm doing well,

231
00:16:37,674 --> 00:16:42,578
thanks for asking. I'm an AI agent Alex that

232
00:16:42,578 --> 00:16:47,259
can help you with engineering work in this

233
00:16:47,259 --> 00:16:51,829
repo including reading and modify code or

234
00:16:51,829 --> 00:16:53,278
running test,

235
00:16:53,278 --> 00:17:03,308
opening PRs and drafting new configs." จะเห็นว่าในกรณีนี้เราไม่ได้ถาม "how are you" จริง ๆ

236
00:17:03,308 --> 00:17:04,407
นะครับ

237
00:17:04,407 --> 00:17:11,428
ขอคัดลอกทั้งหมดเพื่อให้เห็นว่ามันคือข้อความที่เราเพิ่งสร้างขึ้น

238
00:17:11,428 --> 00:17:14,772
พอวางลงในไฟล์ JSON ที่ใช้ทดสอบ

239
00:17:14,772 --> 00:17:19,565
จะเห็นว่าข้อความสุดท้ายตอบกลับคำขอ "how are

240
00:17:19,565 --> 00:17:23,688
you" ซึ่งก็คือ "Alex คุณเป็นยังไงบ้าง

241
00:17:23,688 --> 00:17:28,815
และทำอะไรได้บ้าง" ครับ จะเห็นว่ามี normal path

242
00:17:28,815 --> 00:17:33,162
ถูกสร้างขึ้นเพราะไม่มีแท็ก P1 และ agent

243
00:17:33,162 --> 00:17:38,177
ก็ตอบกลับมาว่า "ฉันสบายดี ขอบคุณที่ถาม ฉันคือ

244
00:17:38,177 --> 00:17:43,193
agent ชื่อ Alex ที่ช่วยงานด้านวิศวกรรมใน repo

245
00:17:43,193 --> 00:17:48,320
นี้ได้ รวมถึงอ่านและแก้ไขโค้ด รันเทสต์ เปิด PR

246
00:17:48,320 --> 00:17:51,552
และร่าง config ของ agent ใหม่

247
00:17:51,552 --> 00:17:56,233
รวมถึงตอบคำถามเกี่ยวกับ codebase ของ Buzz"

248
00:17:56,233 --> 00:18:01,137
นี่คือความเจ๋งของมันเลยครับ เขาเอา Claude ไป

249
00:18:01,137 --> 00:18:05,818
integrate เข้ากับแพลตฟอร์ม Buzz ได้ง่ายมาก

250
00:18:05,818 --> 00:18:10,611
และคุณยังส่งข้อความธรรมดาผ่าน agent ได้ด้วย

251
00:18:10,611 --> 00:18:14,289
ไม่จำเป็นต้องตอบ owner อย่างเดียว

252
00:18:14,289 --> 00:18:18,970
มันสามารถส่งข้อความปกติใน channel ได้ เช่น

253
00:18:18,970 --> 00:18:20,068
"hello,

254
00:18:20,068 --> 00:18:30,099
glad to be in the channel" สมมติว่าเป็นผู้ใช้ทั่วไป [ฟังไม่ชัด] คุณก็แค่ส่งข้อความ "hello,

255
00:18:30,099 --> 00:18:39,907
glad to be in the channel" โอ๊ะ อันนั้นผิด ส่งใหม่อีกทีนะครับ จะเห็นว่ามีข้อความ "hello,

256
00:18:39,907 --> 00:18:44,031
glad to be in the channel" โผล่ขึ้นมา

257
00:18:44,031 --> 00:18:48,489
นี่คือวิธีให้ user พูดใน channel ด้วยมือ

258
00:18:48,489 --> 00:18:53,616
และวิธีทำให้ agent ตอบกลับคำขอโดยอัตโนมัติครับ

259
00:18:53,616 --> 00:18:58,186
นี่คือวิธีที่ agent ทำงานบนแพลตฟอร์ม Buzz

260
00:18:58,186 --> 00:19:02,086
หวังว่าจะเป็นประโยชน์นะครับ สุดท้าย

261
00:19:02,086 --> 00:19:06,545
เราจะพาทุกคนติดตั้งแบบทีละขั้นตอนกันครับ

262
00:19:06,545 --> 00:19:11,226
อันนี้ไม่มีเอกสารอธิบายไว้ที่ไหนเลย ทั้งใน

263
00:19:11,226 --> 00:19:16,130
readme หรือใน repo ของ Buzz ผมเขียนขึ้นมาเอง

264
00:19:16,130 --> 00:19:19,139
เลยจะพาไปดูว่ามันทำงานยังไง

265
00:19:19,139 --> 00:19:22,928
เริ่มจากขั้นตอนที่หนึ่ง จาก readme

266
00:19:22,928 --> 00:19:26,606
จะเห็นว่าต้องติดตั้ง dependencies

267
00:19:26,606 --> 00:19:30,730
(ไลบรารีที่ต้องพึ่งพา) เล็กน้อย อย่าง

268
00:19:30,730 --> 00:19:33,517
Postgres, Redis และ MinIO

269
00:19:33,517 --> 00:19:36,526
แล้วก็ตั้งค่าอีกไม่กี่อย่าง

270
00:19:36,526 --> 00:19:41,653
จากนั้นก็พร้อมใช้งานได้เลยครับ เริ่มจากติดตั้ง

271
00:19:41,653 --> 00:19:46,445
dependencies ต่าง ๆ ก่อน ลง Postgres, Redis

272
00:19:46,445 --> 00:19:51,126
แล้วก็ต้องลง Rust ด้วย อย่าลืมติดตั้ง Rust

273
00:19:51,126 --> 00:19:55,807
และรัน cargo install นะครับ จากนั้นติดตั้ง

274
00:19:55,807 --> 00:20:00,488
Postgres สร้าง user ของ Buzz พร้อมรหัสผ่าน

275
00:20:00,488 --> 00:20:05,615
แล้วสร้าง instance ของ Redis ขึ้นมา แล้วก็ตั้ง

276
00:20:05,615 --> 00:20:10,296
MinIO ซึ่งเป็น storage ที่รองรับ S3 ได้เลย

277
00:20:10,296 --> 00:20:14,643
และสร้าง user ของ MinIO พร้อมทำ systemd

278
00:20:14,643 --> 00:20:19,101
(ตัวจัดการ service ของ Linux) ให้มันด้วย

279
00:20:19,101 --> 00:20:24,005
จะได้รัน MinIO เป็น service ฝั่ง backend ของ

280
00:20:24,005 --> 00:20:27,460
systemd จากนั้นต้องสร้าง bucket

281
00:20:27,460 --> 00:20:32,476
(ที่เก็บข้อมูล) ให้ Buzz ใน MinIO คล้ายกับ S3

282
00:20:32,476 --> 00:20:37,045
ครับ จากนั้นก็เริ่มติดตั้งเฟรมเวิร์ก Buzz

283
00:20:37,045 --> 00:20:42,061
ได้เลย clone repo ลงมา เข้าไปใน repo ของ Buzz

284
00:20:42,061 --> 00:20:47,188
แล้วรัน cargo build ซึ่งจะ build relay CLI และ

285
00:20:47,188 --> 00:20:51,757
Buzz admin ครับ ถ้าอยากติดตั้ง ACP สำหรับ

286
00:20:51,757 --> 00:20:56,773
agent ก็ต้อง build Buzz ACP ด้วย ซึ่งเรา demo

287
00:20:56,773 --> 00:20:58,779
ไปแล้วตอนต้นวิดีโอ

288
00:20:58,779 --> 00:21:03,906
หลังจากนั้นอย่าลืมคัดลอกทุกอย่างไปไว้ใน system

289
00:21:03,906 --> 00:21:08,698
path ซึ่งก็คือ /usr/local/bin จะได้เรียกใช้

290
00:21:08,698 --> 00:21:13,157
binary ได้ทันทีครับ แล้วก็ต้องสร้าง data

291
00:21:13,157 --> 00:21:17,615
directory สำหรับ GitHub repos และตั้งค่า

292
00:21:17,615 --> 00:21:22,519
environment ของ Buzz ซึ่งสำคัญมากสำหรับ Buzz

293
00:21:22,519 --> 00:21:26,865
relay ที่จะทำงาน ถ้าดูที่ configuration

294
00:21:26,865 --> 00:21:30,766
จะเห็นว่าต้องระบุ buzz bind address

295
00:21:30,766 --> 00:21:35,893
ซึ่งคือพอร์ต 3000 ระบุ database อย่าง Postgres

296
00:21:35,893 --> 00:21:39,906
และ Redis URL รวมถึง S3 storage ด้วย

297
00:21:39,906 --> 00:21:44,698
สุดท้ายต้องตั้งค่า path ของ private key ของ

298
00:21:44,698 --> 00:21:48,822
Buzz relay และ relay owner public key

299
00:21:48,822 --> 00:21:53,614
ซึ่งเป็นคู่ private key กับ public key ครับ

300
00:21:53,614 --> 00:21:57,292
ใช้คำสั่ง buzz admin generate key

301
00:21:57,292 --> 00:22:01,639
เพื่อสร้างคู่ public key และ secret key

302
00:22:01,639 --> 00:22:05,874
แล้ววางลงใน environment ของ Buzz relay

303
00:22:05,874 --> 00:22:10,667
การตั้งค่าสุดท้ายจะหน้าตาประมาณนี้ครับ เป็น

304
00:22:10,667 --> 00:22:14,011
configuration ที่ใช้งานได้จริง

305
00:22:14,011 --> 00:22:19,138
ลองบนเครื่องของคุณได้เลย แน่นอนว่า private key

306
00:22:19,138 --> 00:22:21,812
กับ public key จะต่างกัน

307
00:22:21,812 --> 00:22:25,490
แต่ส่วนที่เหลือควรใกล้เคียงกันมาก

308
00:22:25,490 --> 00:22:29,949
พอตั้งค่าทุกอย่างเสร็จ ก็แค่ source ไฟล์

309
00:22:29,949 --> 00:22:34,518
environment แล้วรัน buzz relay ซึ่งจะสปิน

310
00:22:34,518 --> 00:22:35,856
relay ขึ้นมา

311
00:22:35,856 --> 00:22:41,651
และนี่คือส่วนที่สำคัญที่สุดของโปรเจกต์ทั้งหมดนี้ครับ

312
00:22:41,651 --> 00:22:46,332
จากนั้นลองทดสอบ relay ผ่าน health endpoint

313
00:22:46,332 --> 00:22:51,125
(จุดตรวจสอบสถานะ) และทดสอบพอร์ต 9090 สำหรับ

314
00:22:51,125 --> 00:22:55,583
readiness และ liveness ได้ 9090 คือพอร์ต

315
00:22:55,583 --> 00:22:57,812
health ของ Buzz ครับ

316
00:22:57,812 --> 00:23:01,490
เป็นพอร์ตที่ใช้เช็คสถานะของ relay

317
00:23:01,490 --> 00:23:05,837
และยังตั้งให้ Buzz เป็น systemd service

318
00:23:05,837 --> 00:23:10,295
เริ่มต้นของระบบได้ด้วยครับ แค่นี้เองครับ

319
00:23:10,295 --> 00:23:14,642
นี่คือวิธีติดตั้ง Buzz โดยไม่ใช้ Docker

320
00:23:14,642 --> 00:23:19,100
วิธีโฮสต์บนเครื่องท้องถิ่น และวิธีใช้งาน

321
00:23:19,100 --> 00:23:23,335
ทั้งกับ coding agent และ Buzz CLI ครับ

322
00:23:23,335 --> 00:23:26,344
หวังว่าจะเป็นประโยชน์นะครับ

323
00:23:26,344 --> 00:23:30,468
และมันเป็นโปรเจกต์ที่เจ๋งมาก ๆ จริง ๆ

324
00:23:30,468 --> 00:23:33,923
ถ้าชอบวิดีโอนี้ ช่วย subscribe,

325
00:23:33,923 --> 00:23:44,400
like หรือคอมเมนต์ได้ถ้ามีคำถามครับ ขอบคุณมากสำหรับการสนับสนุนช่อง แล้วเจอกันในวิดีโอหน้านะครับ