- qm คือฮาร์เนสเอเจนต์แบบหลายผู้เล่นที่ช่วยให้สมาชิกสตาร์ทอัพแต่ละคนใช้พื้นที่ทำงานที่แยกจากกัน ขณะเดียวกันก็ทำงานร่วมกับเอเจนต์ได้ในช่อง Slack, ข้อความกลุ่ม และโปรเจกต์
- แยกหน่วยความจำ ไฟล์ keychain สิทธิ์ งานตามเวลา เว็บแอป และแซนด์บ็อกซ์ถาวรตามแต่ละคนและแต่ละห้องสนทนา พร้อมคง ตัวตนและการตั้งค่า เดียวกันไว้ทั้งบน Slack และเว็บ
- สามารถเชื่อม Pi, OpenCode, Codex และ Claude Code เข้ากับคอร์เดียวกันได้ และยังวางที่เก็บเซสชัน แซนด์บ็อกซ์ และหน่วยความจำไว้หลังอินเทอร์เฟซเพื่อหลีกเลี่ยงการ ผูกติดกับโมเดลหรือผู้ให้บริการ รายใดรายหนึ่ง
- มีโหมดความปลอดภัย Strict, Auto และ Dangerous และในทุกโหมดจะใช้ นโยบายคำสั่งและการปฏิเสธแบบบังคับ กับงานอย่างการลบแบบ recursive หรือ SQL ที่ทำลายข้อมูล
- การตั้งค่าและโครงสร้างพื้นฐานรายองค์กรจะถูกเก็บไว้ในรีโพสำหรับดีพลอยแยกต่างหาก หรือในรีโพส่วนตัวที่สร้างด้วยการโคลนแบบปกติ และผู้ดูแลต้องดีพลอยตรงไปยังบัญชี Fly.io หรือ AWS ของตนเอง
พื้นที่ทำงานเอเจนต์ระดับองค์กร
- ออกแบบให้ ขอบเขตส่วนบุคคลและแบบใช้ร่วมกัน (scope) เป็นหน่วยพื้นฐาน เพื่อลดความซับซ้อนเมื่อขยายเอเจนต์แบบผู้ช่วยส่วนตัวไปใช้ทั้งบริษัท
- พนักงานแต่ละคนสามารถทำงานในพื้นที่ทำงานอิสระโดยไม่กระทบคนอื่น
- ในช่อง Slack, ข้อความกลุ่ม และโปรเจกต์ หลายคนสามารถทำงานร่วมกับเอเจนต์ตัวเดียวกันได้
- แต่ละคนและแต่ละห้องสนทนามี หน่วยความจำ ไฟล์ มุมมอง keychain สิทธิ์ งานตามเวลา เว็บแอป และแซนด์บ็อกซ์ถาวร แยกกัน
- ใช้ตัวตนและการตั้งค่าเดียวกันระหว่าง Slack กับเว็บแอป
- ผู้ดูแลสามารถควบคุมการตั้งค่าระดับองค์กร สถานะความปลอดภัย และฮาร์เนสกับโมเดลที่ใช้งานได้
- ทักษะทางเทคนิคเป็นของแต่ละขอบเขต และสามารถแชร์ได้ผ่านการมอบสิทธิ์
- การยกระดับไปใช้ทั้งองค์กรต้องได้รับการอนุมัติจากผู้ดูแล
- สามารถนำเข้า skill pack จากรีโพ Git ได้
- งานตามเวลา (cron) และงานเฝ้าดู (watch) ทำงานเบื้องหลังได้แม้ผู้ใช้จะไม่ได้เฝ้าดูอยู่
งานที่รองรับ
- ค้นหาเมโมภายใน อีเมล เอกสาร ฐานข้อมูล และเว็บร่วมกัน และเข้าถึง ความรู้ของบริษัท ได้
- สร้างเว็บแอปภายใน เปิดให้คนที่ต้องใช้ และอัปเดตข้อมูลให้ทันสมัยอยู่เสมอได้
- เรียนรู้สไตล์การเขียนของผู้ใช้จากประวัติการส่งที่ผ่านมา แล้วจัดหมวดหมู่กล่องจดหมายตามกำหนดเวลา พร้อมสร้างป้ายกำกับและร่างคำตอบได้
- ทำงานอย่างการรันทดสอบ สร้าง PR เฝ้าดู CI และตรวจสอบ system log จากรีโพที่มีอยู่ได้
- ติดตามโปรเจกต์ในช่องที่ใช้ร่วมกัน และโพสต์ความคืบหน้าพร้อมงานต่อเนื่องได้
โครงสร้างคอร์และการรัน
- ทุกคำขอจะผ่าน คอร์แบบ headless และสร้างคำตอบผ่านโมเดลกับฮาร์เนสได้หลากหลาย
- Postgres เก็บสถานะแบบถาวร เช่น ข้อมูลผู้ใช้ ประวัติเซสชัน คิว และหน่วยความจำ
- พื้นผิวเครื่องมือที่เอเจนต์ใช้มีขนาดเล็กและตายตัว โดยเครื่องมือ
execute จะรันคำสั่งในแซนด์บ็อกซ์ที่แยกตามขอบเขตนั้น
- แซนด์บ็อกซ์ทำงานเสมือนคอมพิวเตอร์ถาวรที่แต่ละขอบเขตเป็นเจ้าของ
- เครื่องมือที่ติดตั้งไว้จะคงอยู่สำหรับงานถัดไปด้วย
- เว็บ UI, แผงผู้ดูแล และพอร์ทัลสาธารณะเป็นปลั๊กอินเสริมที่ติดตั้งบน HTTP API ของคอร์
- Slack เป็นปลั๊กอินในโปรเซสแบบเสริมที่คอร์เริ่มทำงานเป็น service client และดูแลเองโดยตรง
- คอร์รัน TypeScript โดยตรงบน Node และใช้ Fastify สำหรับ HTTP
- ปลั๊กอิน Slack ใช้ Bolt
- เว็บ UI บิลด์ด้วย Vite และเรนเดอร์ด้วย Lit
- ฮาร์เนส ที่เก็บเซสชัน แซนด์บ็อกซ์ และหน่วยความจำต่างอยู่หลังอินเทอร์เฟซของตนเอง และสามารถสลับ implementation สำหรับ production ได้จากไฟล์ wiring ไฟล์เดียว
โมเดลการดีพลอยรายองค์กร
- การตั้งค่ารายบริษัท เครื่องมือและทักษะแบบกำหนดเอง อิมเมจแซนด์บ็อกซ์ และโครงสร้างพื้นฐาน จะถูกวางไว้ใน deployment directory ที่แยกจากคอร์
qm CLI ใช้ตรวจสอบและดีพลอย deployment directory
- ในรีโพที่องค์กรเป็นเจ้าของ สามารถอ้างอิง
@yc-software/qm แล้วเริ่มต้นได้ดังนี้
npm exec --yes --package=@yc-software/qm@latest -- \
qm init . --org <slug> --target <fly-or-aws>
npm install
- ขั้นตอนเริ่มต้นจะพาไปตั้งค่าโครงสร้างพื้นฐาน การล็อกอินเว็บ ข้อมูลรับรองของคอนเน็กเตอร์ การเข้าถึง Slack แบบเลือกใช้ การดีพลอย และการตรวจสอบจริง โดยไม่ต้อง checkout ซอร์สโค้ด
- การดีพลอยจะทำงานใน บัญชีคลาวด์ ของผู้ดูแลเอง
- ขั้นตอนเริ่มต้นจะไม่สร้างหรือเปิดใช้ deployment CI และในรีโพ qm เองก็ไม่มีเวิร์กโฟลว์ดีพลอย production
- ขั้นตอนโดยละเอียดสรุปไว้ใน
deployment.md
ความปลอดภัยและข้อมูลลับ
- เอเจนต์จะทำงานด้วยข้อมูลรับรองและสิทธิ์ของคนที่ร่วมงานด้วย และทุกการกระทำจะถูกบันทึกไว้ใน บันทึกการตรวจสอบ
- องค์กรเลือกสถานะความปลอดภัยได้หนึ่งแบบ และในขอบเขตที่แคบกว่าจะทำได้เพียงเพิ่มความเข้มงวด ไม่สามารถผ่อนปรนได้
- Strict: หยุดการเรียกใช้เครื่องมือของฮาร์เนสทั้งหมดไว้จนกว่าจะมีการอนุมัติจากมนุษย์ ยกเว้นงานจบเทิร์นสองอย่างที่ไม่มีผลข้างเคียง
- Auto: โหมดเริ่มต้น โดย classifier จะตรวจสอบข้อมูลภายนอกที่มีป้ายกำกับแหล่งที่มาและผลลัพธ์จากเครื่องมือก่อนส่งต่อให้โมเดล
- ในสภาพแวดล้อมที่ดีพลอยแล้ว สามารถกำหนด inspection proxy ของตนเองได้
- Dangerous: ไม่มีการตรวจสอบเนื้อหาหรือการหยุดชั่วคราวระหว่างการเรียกใช้เครื่องมือ
- นโยบายคำสั่งที่ประกาศไว้ล่วงหน้าจะมีผลกับทุกโหมดความปลอดภัย
- บังคับปฏิเสธคำสั่งอย่างการลบแบบ recursive หรือ SQL ที่ทำลายข้อมูล พร้อมกฎการอนุมัติ
- แม้แต่โหมด Dangerous ก็ไม่ใช่ข้อยกเว้น
- threat model เงื่อนไขเบื้องต้นสำหรับผู้ดูแล และข้อจำกัดที่ทราบแล้ว ดูได้ใน
SECURITY.md
รีโพแบบกำหนดเองส่วนตัว
- องค์กรที่ต้องการมากกว่าแค่รีโพสำหรับดีพลอย สามารถใช้ รีโพโคลนส่วนตัว เพื่อให้คอร์และโค้ดกำหนดเองแบบส่วนตัวถูกอ่านได้จากที่เดียว
- ต้องสร้างด้วยการโคลนแบบปกติ ไม่ใช่ใช้ฟังก์ชัน Fork ของ GitHub
- GitHub fork ของรีโพสาธารณะไม่สามารถเปลี่ยนเป็น private ได้
- GitHub fork แชร์ object network กับต้นทาง ทำให้คอมมิตที่ push เข้า fork อาจถูกค้นดูจากฝั่งสาธารณะได้ด้วย SHA
- รีโพโคลนแบบปกติไม่มีปัญหานี้ แต่เวิร์กโฟลว์ upstream CI จะไปรันจริงในบัญชีขององค์กร
- จึงต้องให้ข้อมูลลับที่จำเป็นหรือปิดเวิร์กโฟลว์ที่ไม่ต้องการ
- การตั้งค่ารายองค์กร เครื่องมือและทักษะในแซนด์บ็อกซ์ อิมเมจปลั๊กอิน และโครงสร้างพื้นฐาน จะเก็บไว้ใน
deploy/layers/<org>/
- คงคอร์ให้ เหมือนกับ upstream ทุกไบต์ เพื่อลดขนาดของการ merge
- มีสองทักษะที่ใช้จัดการขอบเขตระหว่างคอร์สาธารณะกับพื้นที่กำหนดเองแบบส่วนตัว
update-qm จะ merge upstream qm เข้าสู่รีโพส่วนตัวและสร้าง PR สำหรับซิงก์
upstream-pr จะสร้างสาขาจาก upstream/main และส่งการแก้ไขที่ไม่ขึ้นกับองค์กรกลับไปยัง qm
- ก่อน push จะตรวจสอบตัวระบุองค์กรใน diff ข้อความคอมมิต และภาพหน้าจอ
- ไฟล์ใต้
deploy/layers/ จะไม่ถูกส่งขึ้น upstream
การมีส่วนร่วมและไลเซนส์
- รับการมีส่วนร่วมเป็นเอกสาร
.txt หรือ .md ที่เขียนโดยคน ไม่ใช่โค้ด
- หากต้องการเปลี่ยนแปลงอะไร ให้เขียนแบบไม่เป็นทางการไว้ใน
adrs/ แล้วฝั่งโปรเจกต์จะนำไปพัฒนาหลังได้ข้อสรุปร่วมกัน
- กฎโดยละเอียดอยู่ใน
CONTRIBUTING.md
- ช่องโหว่ต้องรายงานแบบส่วนตัวตามขั้นตอนใน
SECURITY.md ไม่ใช่ผ่าน issue สาธารณะ
- ส่วนที่ไม่ได้ระบุไว้เป็นอย่างอื่น ให้ใช้งานภายใต้ MIT License
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
น่าสนใจที่ได้เห็น องค์ประกอบและแนวคิดพื้นฐานของ UI ใหม่ ๆ เกิดขึ้นในยุค LLM แต่มีแอปสร้างสรรค์มากเกินไปและคำอธิบายก็น้อย ทำให้ยากจะรู้ว่าแต่ละตัวทำอะไร
บนหน้าเว็บของเอเจนต์ Hermes ผมไม่เข้าใจฟีเจอร์เลย และต้องไล่ดูหน้า qm อยู่นานกว่าจะเจอคำอธิบายที่เหมาะสม ช่วงหลังผมใช้ Orca ที่ YC สนับสนุนอยู่เป็นประจำในการจัดการเซสชันเขียนโค้ด แต่เพราะยังขาดฐานข้อมูลเซสชันที่ใช้ PostgreSQL เป็นฐาน qm จึงน่าลอง
ดีใจที่ได้เห็นทิศทางแบบนี้ออกมาพร้อมกับ Buzz ส่วนที่ยากที่สุดของเอเจนต์แบบผู้ใช้หลายคนไม่ใช่ลูปของเอเจนต์ แต่คือ การกำหนดขอบเขต และขอบเขตรายบุคคลกับห้องแชร์ของ QM ก็เป็นทางออกที่สมเหตุสมผลสำหรับผู้ช่วยระดับทั้งบริษัท
ทีมของผมกำลังสร้าง AQ(aq.dev) เครื่องมือเขียนโค้ดแบบผู้ใช้หลายคนที่รัน Claude Code และ Codex ร่วมกันอยู่ การที่ YC ออกเครื่องมือเอเจนต์ผู้ใช้หลายคนสำหรับงานองค์กรจึงช่วยยืนยันแนวทางนี้ แต่ก็รู้สึกเหนือจริงอยู่นิดหน่อย
มีผลิตภัณฑ์คล้าย ๆ กันอยู่มากแล้ว เลยไม่รู้ว่าทำไมควรใช้ตัวนี้แทน Claude Cowork Cowork ดูเรียบง่ายกว่า สมบูรณ์กว่า และฟีเจอร์ก็เยอะกว่า จึงต้องมีการเปรียบเทียบ
QM vs Coworkควรดูว่าเขาทำ บริบทและความปลอดภัยทั้งองค์กร ไว้อย่างไร ตอนนี้ดูเสริมกับเครื่องมือเขียนโค้ดของผมที่ให้ AI interface ที่ดีที่สุดสำหรับแต่ละบุคคลได้อย่างมาก และคงดีถ้ามีทั้งสถาปัตยกรรมระดับทั้งบริษัทกับอินเทอร์เฟซเขียนโค้ดส่วนบุคคลที่มีประสิทธิภาพได้ด้วยทิกเก็ตใหญ่ ๆ เพียงไม่กี่ใบ
อยากรู้ว่า Hermes เป็นตัวเลือกที่ดีที่สุดในบรรดา เอเจนต์สาย OpenClaw ที่ว่ากันว่าเคยใช้มาก่อนหรือไม่ และผู้ใช้ระดับสูงเอาระบบแบบนี้ไปใช้อะไรกันจริง ๆ
ใช้กับการแก้ CI fail แบบง่าย ๆ อัตโนมัติ, รับ alert จากโปรดักชันแล้ววิเคราะห์สาเหตุรากและสร้าง PR แก้ไข, ตรวจสอบและปรับแต่งคิวรีฐานข้อมูลที่ช้าเป็นระยะ, สร้างกราฟเพื่อตอบคำถามข้อมูลแบบครั้งเดียว ฯลฯ เคยลองใช้เขียนโค้ดระหว่างเดินทางด้วย แต่ชอบเอเจนต์แบบโต้ตอบที่ตรวจโค้ดเองได้มากกว่า
ผมชอบการสร้างซอฟต์แวร์เองและ สิทธิ์ควบคุมเต็มรูปแบบ และลูปเอเจนต์พื้นฐานจริง ๆ ก็ไม่ได้พิเศษอะไร มีหลายอย่างมากที่ปรับได้อยู่นอกลูปหลัก และการทดลองวิธีขยายหลายแบบก็สนุก ไม่ต้องคิดเรื่องทำเงินหรือความเป็นเครื่องมือทั่วไป แค่เพิ่มฟีเจอร์ที่ต้องการก็พอ และไม่จำเป็นต้องทำให้เสียบปลั๊กอินได้ไร้ขีดจำกัด ขอบคุณ nanoclaw และ Hermes ที่ให้ไอเดียหลัก ๆ แต่ตอนนี้อยากดัดแปลงในแบบของตัวเอง
ตอนนี้ใช้ให้อ่านฟีด RSS กับจดหมายข่าวเสริม แล้วกรองเฉพาะข้อมูลที่สำคัญต่อผมเพื่อส่งข่าวและแนวโน้มตลาดมาให้
ดูเหมือน เครื่องมือภายใน ที่ YC รีบปล่อยออกมาเพื่อลดพื้นที่ที่ถูก Buzz แย่งไปให้น้อยที่สุด อยากเห็นรีวิวที่ลองเทียบสองเครื่องมือนี้โดยตรง
สงสัยว่า
yc softwareหมายถึงอะไรน่าสนใจที่ปล่อย ทักษะออกแบบ
anti-slopมาด้วย เพื่อให้สร้างอินเทอร์เฟซที่ไม่ดูเหมือนเทมเพลตในสินค้าผู้บริโภคระดับพรีเมียม มีการห้ามใช้พาเล็ตสีที่ AI ใช้บ่อย และเพราะหน้า landing page กับพอร์ตโฟลิโอเป็นผลิตภัณฑ์เชิงภาพ จึงนิยามหน้าข้อความที่มีแค่พื้นที่สกรีนช็อตปลอมว่าเป็นผลงานคุณภาพต่ำ https://github.com/yc-software/qm/blob/7f2c916360f1797a8ff2a...
ชื่อเรื่องน่าจะเผยให้เห็นประโยชน์ของเครื่องมือมากกว่านี้ เช่น
qm - a multiplayer agent harness for work