Jack Dorsey's BUZZ: The Open Source Slack + Hermes Agent + Claude Code
สรุปย่อ
ประเด็นสำคัญจากวิดีโอ
ช่อง: 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 เท่านั้น
คำแปลเต็ม
แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ
สวัสดีครับทุกคน ยินดีต้อนรับสู่วิดีโออีกหนึ่งตอนครับ ในบทช่วยสอนวันนี้ เราจะมาแนะนำโปรเจกต์ที่ทรงพลังและเจ๋งมาก ๆ ให้ทุกคนรู้จักกันครับ มันชื่อว่า 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 หรือคอมเมนต์ได้ถ้ามีคำถามครับ ขอบคุณมากสำหรับการสนับสนุนช่อง แล้วเจอกันในวิดีโอหน้านะครับ
หมายเหตุการแปล
ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ
- ## ส่วนที่ฟังไม่ชัด [ฟังไม่ชัด]
- 1 จุด: "as a Rappley user" (ประมาณนาทีที่ 17:50) — คำว่า "Rappley" ฟังไม่ชัด น่าจะหมายถึง "regular user" หรือ "relay user" จึงแปลเป็น "ผู้ใช้ทั่วไป [ฟังไม่ชัด]" และระบุไว้ในรายงานนี้
อภิธานศัพท์เทคนิค
คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ
| ศัพท์ | คำแปล / คำอธิบาย |
|---|---|
| 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 Agent | AI agent ที่ปรากฏในชื่อวิดีโอ (ไม่ถูกพูดถึงในเนื้อหาคำบรรยาย) |
| Claude Code | เครื่องมือเขียนโค้ดของ Claude ที่ปรากฏในชื่อวิดีโอ (ไม่ถูกพูดถึงในเนื้อหาคำบรรยาย) |
| coding agent | เอเจนต์ AI ที่ช่วยงานเขียนโค้ด |
| AI agent | เอเจนต์อัจฉริยะที่ทำงานอัตโนมัติแทนมนุษย์ |
| channel | ห้องแชตภายในแพลตฟอร์ม |
| member | สมาชิกภายใน channel |
| owner | เจ้าของ/ผู้ดูแลระบบที่สร้างโปรเจกต์ |
| admin user | ผู้ใช้ระดับผู้ดูแลระบบ |
| workflow | ขั้นตอนการทำงานอัตโนมัติ |
| conditional workflow | workflow แบบมีเงื่อนไข (ทำงานเมื่อตรงเงื่อนไข) |
| 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 | เวอร์ชันไฟล์ที่คอมไพล์พร้อมใช้งาน |
| PR | Pull 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 | ระบบ / ขั้นตอน / ท่อส่งงานที่ขับเคลื่อนด้วยเอเจนต์อัตโนมัติ |
ซับไตเติ้ลภาษาไทย
ดาวน์โหลดหรือดูซับทั้งหมด
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 เราจะมาแนะนำโปรเจกต์ที่ทรงพลังและเจ๋งมาก ๆ
เปิดดูซับไตเติ้ลทั้งหมด (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 หรือคอมเมนต์ได้ถ้ามีคำถามครับ ขอบคุณมากสำหรับการสนับสนุนช่อง แล้วเจอกันในวิดีโอหน้านะครับ