NeoGraph - เอนจินเอเจนต์ที่พอร์ต LangGraph มาสู่ C++
(github.com/fox1245)สวัสดีครับ
ผมขอแชร์ NeoGraph ซึ่งเป็นเอนจิน orchestration สำหรับเอเจนต์ที่ผมสร้างขึ้นเอง
พัฒนาบนพื้นฐาน C++17 และสามารถติดตั้งได้ด้วยคำสั่งด้านล่าง
pip install neograph-engine
ทำไมถึงสร้างมันขึ้นมา
เวลาที่ใช้งาน LangGraph ซึ่งพัฒนาด้วย Python มักมีหลายครั้งที่รู้สึกว่ายังขาดด้านประสิทธิภาพอยู่พอสมควร อีกทั้งสเปกที่ต้องใช้ตอนรันเซิร์ฟเวอร์ก็ค่อนข้างสูง จึงมักคิดอยู่บ่อย ๆ ว่าน่าจะมีเอนจิน orchestration ที่เบาและเร็ว เลยต่อยอดมาเป็นแนวทางในการทำด้วย C++ เพื่อหวังเพิ่มประสิทธิภาพ
จุดเด่น?
มันจัดการกราฟในรูปแบบ ข้อมูล ไม่ใช่ โค้ด
เฟรมเวิร์ก Python ส่วนใหญ่นิยามกราฟเป็นอ็อบเจ็กต์ Python แต่ NeoGraph นิยามโครงสร้างกราฟเองเป็น JSON ไม่ใช่อ็อบเจ็กต์ StateGraph แต่เป็นก้อน JSON ก้อนเดียวที่เก็บอยู่ในหนึ่งแถวของ DB
ดังนั้นจึงทำสิ่งต่อไปนี้ได้
-
hot swap แบบไม่ต้อง deploy - หากต้องการเปลี่ยนโครงสร้างเอเจนต์ (graph topology) ก็แค่สลับ JSON เพียงหนึ่งแถวใน DB
ไม่ต้อง redeploy, ไม่ต้องรีสตาร์ตโปรเซส และไม่มีการสูญเสียบทสนทนาที่กำลังดำเนินอยู่ -
multi-tenant - สามารถรันโครงสร้างเอเจนต์ที่ต่างกันไปตามลูกค้าแต่ละรายภายในโปรเซสเดียวกันได้ จากการทดสอบจริงด้วย OpenAI gpt-4o-mini ที่รองรับลูกค้า 1,000 รายพร้อมกัน พบว่า RSS อยู่ที่ 29MB และ error 0 ครั้ง หากใช้โครงสร้างเดียวกันบน LangGraph จะเป็นลักษณะหนึ่งโปรเซสต่อลูกค้า จึงคาดว่าต้องใช้หน่วยความจำระดับหลายสิบ GB
-
เอเจนต์วิวัฒนาการตัวเอง - LLM จะดูบทสนทนาของลูกค้าแต่ละรายแล้วเขียน graph_def (JSON) ของลูกค้านั้นใหม่ กล่าวคือ เอเจนต์จะ "ปรับรูปร่างของตัวเอง" ให้เข้ากับพฤติกรรมผู้ใช้
และมันเร็วด้วย
| เฟรมเวิร์ก | overhead ของเอนจิน (รันโหนด 1 ครั้ง) | เทียบกับ NeoGraph |
|---|---|---|
| NeoGraph | 5.0 µs | 1× |
| Haystack | 140 µs | 28× |
| LangGraph | 643 µs | 128× |
| LlamaIndex | 1,565 µs | 313× |
| AutoGen | 3,127 µs | 625× |
แน่นอนว่าผลลัพธ์อาจต่างกันได้ตามวิธีวัด และเมื่อมีการเรียกใช้ LLM จริง external I/O จะกลายเป็นปัจจัยหลัก ทำให้ความเร็วที่รู้สึกได้อาจใกล้เคียงกัน
ผมคิดว่าตัวเลขระดับ µs นี้จะมีความหมายจริงในกรณี multi-tenant/edge ที่มีคำขอหลายพันรายการวิ่งเข้ามาในเครื่องเดียว
GitHub: https://github.com/fox1245/NeoGraph
PyPI: https://pypi.org/project/neograph-engine/
ยินดีรับฟีดแบ็กครับ
ยังไม่มีความคิดเห็น