2 Punkte von procoinmac0 15 시간 전 | Noch keine Kommentare. | Auf WhatsApp teilen

Hallo.
Ich möchte meine selbst entwickelte Agent-Orchestrierungs-Engine NeoGraph vorstellen.
Sie basiert auf C++17 und kann mit dem folgenden Befehl installiert werden.
pip install neograph-engine

Warum habe ich sie entwickelt?

Bei der Nutzung des Python-basierten LangGraph war ich oft unzufrieden mit der Performance. Auch die Anforderungen an die benötigte Server-Hardware sind recht hoch. Deshalb dachte ich oft, dass es gut wäre, eine schlanke und schnelle Orchestrierungs-Engine zu haben, und so entstand der Ansatz, sie in C++ zu implementieren, um die Performance zu verbessern.

Besonderheiten?

Graphen werden nicht als Code, sondern als Daten behandelt.

Die meisten Python-Frameworks definieren Graphen als Python-Objekte. NeoGraph definiert die Graphstruktur selbst als JSON. Nicht als StateGraph-Objekt, sondern als ein einzelner JSON-Block, der in genau eine Datenbankzeile passt.

Anzeige

Dadurch werden unter anderem folgende Dinge möglich.

  1. Hot-Swap ohne Deployment – Um die Agent-Struktur (Graph-Topologie) zu ändern, muss lediglich eine JSON-Zeile in der DB ausgetauscht werden.
    Weder ein neues Deployment noch ein Prozessneustart noch der Verlust laufender Konversationen sind erforderlich.

  2. Multi-Tenant – Innerhalb eines Prozesses können pro Kunde unterschiedliche Agent-Strukturen ausgeführt werden. In einem tatsächlichen Test mit OpenAI gpt-4o-mini bei gleichzeitiger Verarbeitung von 1.000 Kunden lag der RSS bei 29 MB, bei 0 Fehlern. Mit derselben Konfiguration in LangGraph wäre aufgrund eines Prozesses pro Kunde wohl ein Bedarf von grob mehreren Dutzend GB zu erwarten.

  3. Selbst-evolvierender Agent – Das LLM betrachtet die Gespräche jedes Kunden und schreibt dessen graph_def (JSON) neu. Mit anderen Worten: Der Agent „verändert seine Form selbst“ entsprechend dem Nutzerverhalten.

    Anzeige

Und es ist schnell.

Framework Engine-Overhead (1 Node-Ausführung) Im Vergleich zu NeoGraph
NeoGraph 5.0 µs
Haystack 140 µs 28×
LangGraph 643 µs 128×
LlamaIndex 1,565 µs 313×
AutoGen 3,127 µs 625×

Natürlich kann das je nach Messmethode variieren, und sobald echte LLM-Aufrufe dazukommen, dominiert externes I/O, sodass sich die gefühlte Geschwindigkeit angleichen kann.
Ich denke, dass diese µs-Werte vor allem in Multi-Tenant- oder Edge-Fällen mit Tausenden von Requests auf einer einzigen Box wirklich Bedeutung haben.

GitHub: https://github.com/fox1245/NeoGraph
PyPI: https://pypi.org/project/neograph-engine/

Feedback ist willkommen.

Noch keine Kommentare.

Noch keine Kommentare.