NeoGraph - LangGraph’in C++’a taşınmış ajan motoru
(github.com/fox1245)Merhaba.
Yaptığım ajan orkestrasyon motoru NeoGraph’ı paylaşmak istiyorum.
C++17 tabanlıdır ve aşağıdaki komutla kurabilirsiniz.
pip install neograph-engine
Neden yaptım
Python tabanlı LangGraph’ı kullanırken performansın yetersiz kaldığı pek çok durum oldu. Sunucuyu çalıştırmak için gereken sistem kaynakları da oldukça yüksek olduğundan, hafif ve hızlı bir orkestrasyon motoru olsa iyi olur diye sık sık düşünüyordum; bu da C++ ile geliştirip performans artışı hedefleme yönünde ilerlememe neden oldu.
Özellikler?
Grafı kod olarak değil, veri olarak ele alır.
Çoğu Python framework’ü grafı Python nesneleri olarak tanımlar. NeoGraph ise grafik yapısının kendisini JSON olarak tanımlar. Bir StateGraph nesnesi olarak değil, veritabanındaki tek satıra sığan tek bir JSON parçası olarak tanımlanır.
Bu sayede aşağıdakiler mümkün hale gelir.
-
Dağıtımsız hot-swap - ajan yapısını (graf topolojisini) değiştirmek için veritabanındaki tek bir JSON satırını değiştirmeniz yeterlidir.
Yeniden dağıtım gerekmez, süreç yeniden başlatılmaz ve devam eden konuşmalar kaybolmaz. -
Multi-tenant - her müşteri için farklı ajan yapıları tek bir süreç içinde çalıştırılabilir. Gerçek OpenAI gpt-4o-mini ile 1.000 müşteriyi eşzamanlı işlerken RSS 29MB, hata sayısı 0 oldu. Aynı yapı LangGraph ile kurulursa, müşteri başına süreç gerektiği için kabaca onlarca GB gerektiğini düşünüyorum.
-
Kendi kendini evrimleştiren ajan - LLM her müşterinin konuşmalarına bakıp o müşterinin
graph_def(JSON) tanımını yeniden yazar. Yani ajan, kullanıcı davranışına göre "şeklini kendi kendine değiştirir."
Ve hızlıdır.
| Framework | Motor overhead’i (1 node çalıştırma) | NeoGraph’a kıyasla |
|---|---|---|
| NeoGraph | 5.0 µs | 1× |
| Haystack | 140 µs | 28× |
| LangGraph | 643 µs | 128× |
| LlamaIndex | 1,565 µs | 313× |
| AutoGen | 3,127 µs | 625× |
Elbette ölçüm yöntemine göre sonuçlar değişebilir ve gerçek LLM çağrıları devreye girdiğinde dış I/O baskın olacağı için hissedilen hız benzer hale gelebilir.
Bence bu µs değerlerinin gerçekten anlam kazandığı yer, tek bir kutuya binlerce isteğin geldiği multi-tenant/edge senaryolarıdır.
GitHub: https://github.com/fox1245/NeoGraph
PyPI: https://pypi.org/project/neograph-engine/
Geri bildirimlere açığım.
Henüz yorum yok.