9 คะแนน โดย xguru 2025-02-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เฟรมเวิร์กแบบ opinionated ที่พัฒนาบน TypeScript เพื่อสร้างแอปพลิเคชันและความสามารถด้าน AI ได้อย่างรวดเร็ว
  • มีฟังก์ชันหลักที่จำเป็นสำหรับการพัฒนา AI เช่น workflow, agent, RAG, integration และ evals
  • สามารถรันได้ทั้งบนสภาพแวดล้อมแบบโลคัลหรือบนเซิร์ฟเวอร์เลสคลาวด์

คุณสมบัติหลัก

  • LLM Models : ใช้ Vercel AI SDK เพื่อรองรับผู้ให้บริการ LLM หลากหลายราย เช่น OpenAI, Anthropic, Google Gemini ผ่านอินเทอร์เฟซแบบรวมศูนย์ สามารถเลือกโมเดลและกำหนดได้อย่างอิสระว่าจะใช้การสตรีมหรือไม่
  • Agents : Agents คือระบบที่ช่วยให้ language model ตัดสินใจลำดับของ action ได้ด้วยตัวเอง โดยมีเครื่องมือ, workflow และข้อมูลที่ซิงก์ไว้ให้ จึงสามารถเรียกใช้ฟังก์ชันหรือใช้ประโยชน์จาก knowledge base ได้เมื่อจำเป็น
  • Tools : Tools คือฟังก์ชัน TypeScript ที่ agent หรือ workflow สามารถเรียกใช้ได้ แต่ละ tool มี schema ของพารามิเตอร์, executor function ที่ทำหน้าที่ตามตรรกะที่กำหนดไว้ และสิทธิ์เข้าถึงบริการ integration
  • Workflows : Workflows คือ state machine สำหรับงานระยะยาวที่ทำงานบนกราฟ รองรับการวนซ้ำ, การแตกแขนง, การรออินพุตจากมนุษย์, การรวม workflow อื่น, การจัดการข้อผิดพลาด, การลองใหม่ และการพาร์ส โดยมี OpenTelemetry tracing ใช้กับทุก step
  • RAG(Retrieval-Augmented Generation) : RAG ช่วยให้สร้าง knowledge base สำหรับ agent ได้ โดยใช้ ETL pipeline เพื่อแบ่ง chunk, ทำ embedding, ค้นหาแบบเวกเตอร์ และให้บริบท
  • Integrations : ใน Mastra, Integration คือ Type-safe API client ที่ถูกสร้างอัตโนมัติ ทำให้สามารถนำบริการ third-party มาใช้เป็น tool หรือ step ใน workflow ได้
  • Evals : ประเมินผลลัพธ์ของ LLM โดยอัตโนมัติด้วยวิธีแบบ model-based, rule-based และเชิงสถิติ พร้อมคืนค่า score มาตรฐานระหว่าง 0~1 เพื่อนำไปใช้เปรียบเทียบประสิทธิภาพและทำ logging ได้

1 ความคิดเห็น

 
GN⁺ 2025-02-21
ความคิดเห็นบน Hacker News
  • โค้ดตัวอย่างไม่ได้ชวนสนใจเท่าไร

    • ตอนเห็นครั้งแรก ดูเหมือนวิธีที่ค่อนข้างแปลกในการแสดงกราฟในภาพ
    • มันเป็นแค่ "workflow" ธรรมดา และไม่ได้ขึ้นอยู่กับผลลัพธ์ของการรัน
  • คาดหวังกับ Mastra ไว้มาก

    • ที่ ElectricSQL มีแผนจะทำงานเกี่ยวกับเอเจนต์หลายอย่าง และ Mastra ให้ความรู้สึกเหมือนลมหายใจสดใหม่
    • ทีมยอดเยี่ยมมาก — Sam เคยเป็นผู้ร่วมก่อตั้งที่ Gatsby และยังได้ทำงานใกล้ชิดกับ Shane และ Abhi ด้วย จึงเชื่อมั่นมากในความสามารถด้านผลิตภัณฑ์และวิศวกรรมของพวกเขา
  • ดูเจ๋งดี! ขอถามสั้น ๆ ว่ามีแผนจะรองรับเซิร์ฟเวอร์ SSE MCP ไหม

    • เห็นว่ารองรับ Stdio แล้ว และแม้จะรันพร็อกซีได้ แต่ถ้ามี SSE ก็น่าจะดี
  • ในฐานะผู้ใช้ Mastra ก็พอใจมาก

    • มันสร้างสมดุลได้ดีระหว่างการให้ abstraction ระดับสูงกับการเปิดให้ควบคุมระดับล่างได้เมื่อจำเป็น
    • ก่อนเริ่มใช้งานได้ดูหลายเฟรมเวิร์ก และ Mastra โดดเด่นในเรื่องความชัดเจนและใช้งานง่าย
  • ยังไม่ค่อยเข้าใจเอเจนต์

    • ไม่เข้าใจว่าทำไมต้องแกล้งทำเป็นมีหลายบุคลิก โดยเฉพาะเมื่อทั้งหมดใช้โมเดลเดียวกัน
    • สงสัยว่ามี use case ที่แก้ไม่ได้ด้วยการเรียก API ไปยัง LLM สมัยใหม่ครั้งเดียวพร้อมพรอมป์ต์ที่เหมาะสมหรือไม่
    • หรือมันคือการสร้างพรอมป์ต์แล้วแยกเป็นหลายคอล เพื่อให้คำสั่งที่ใกล้ชิดกับ LLM มากขึ้น
    • ไม่ได้กำลังถามเรื่อง function calling
  • ยินดีด้วย! ขอถามนอกเรื่องนิดหนึ่ง - เว็บไซต์เป็น OS ด้วยหรือเปล่า

    • อยาก "ยืม" โค้ด Nav Bar
    • หาเจอมากกว่า 300 สาขาบน GitHub แต่หาไม่เจอในรีโพ
  • การที่ทำโดยนักพัฒนา Gatsby เป็นข้อเสียมากกว่าข้อดี

    • คิดว่านี่จะเป็นซอฟต์แวร์อีกตัวที่ถูกทิ้งในลำดับถัดไป
  • มีเฟรมเวิร์กคล้ายกันอีกเป็นร้อยที่ทำสิ่งเดียวกันไม่มากก็น้อย

    • เพราะการเขียนเฟรมเวิร์กสำหรับประสานโมเดลกับเครื่องมือหลายตัวนั้นเป็นเรื่องง่าย
    • จริง ๆ แล้ว ในกรณีส่วนใหญ่ไม่จำเป็นต้องมีเฟรมเวิร์กด้วยซ้ำ
    • ทุกเฟรมเวิร์กโฟกัสกับเรื่องเล็กน้อย และดูได้จากส่วนตัวอย่าง
    • นั่นเป็นเพียง 5% ของงานเท่านั้น
    • นักพัฒนาต้องเติมอีก 95% ที่เหลือเอง รวมถึงงานจำนวนมากที่อยู่นอกขอบเขตของเฟรมเวิร์ก
  • ยินดีกับการเปิดตัว

    • พบว่าถ้าสลับพรอมป์ต์ระหว่างผู้ให้บริการ LLM ต่างรายโดยไม่แก้ไขอะไรเลย ประสิทธิภาพจะลดลง
    • เลยสงสัยว่านักพัฒนาจัดการ "การแปล" เหล่านี้กันอย่างไร และคิดว่าอาจมีข้อมูลแนวปฏิบัติที่ดีที่สุดอยู่ในเฟรมเวิร์กสำหรับการประเมินผล
  • ใช้เฟรมเวิร์กของ Mastra และเรียนรู้ทุกอย่างเกี่ยวกับการทำงานของเอเจนต์ผ่านเอกสาร

    • ผู้ก่อตั้งก็แอ็กทีฟมากและชอบช่วยเหลือ