2 puntos por procoinmac0 15 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp

Hola.
Quiero compartir NeoGraph, un motor de orquestación de agentes que desarrollé.
Está basado en C++17 y se puede instalar con el siguiente comando.
pip install neograph-engine

¿Por qué lo hice?

Al usar LangGraph, basado en Python, muchas veces sentí que el rendimiento se quedaba corto. Como además los requisitos para levantar el servidor suelen ser bastante altos, pensé que sería ideal contar con un motor de orquestación ligero y rápido, así que eso llevó a implementarlo en C++ con la idea de mejorar el rendimiento.

¿Características?

Maneja el grafo como datos, no como código.

La mayoría de los frameworks de Python definen el grafo como objetos de Python. NeoGraph define la propia estructura del grafo en JSON. No se define como un objeto StateGraph, sino como un bloque de JSON que cabe en una sola fila de una base de datos.

Publicidad

Por eso, se vuelven posibles cosas como las siguientes.

  1. Hot swap sin despliegue: para cambiar la estructura del agente (la topología del grafo), basta con reemplazar una sola línea de JSON en la base de datos.
    No hace falta volver a desplegar, reiniciar procesos ni se pierde ninguna conversación en curso.

  2. Multitenancy: es posible ejecutar dentro de un mismo proceso estructuras de agentes distintas para cada cliente. En una prueba real con OpenAI gpt-4o-mini, al procesar 1,000 clientes de forma simultánea, el RSS fue de 29 MB y hubo 0 errores. Con la misma configuración en LangGraph, estimo que al requerir un proceso por cliente harían falta varias decenas de GB.

  3. Agente autoevolutivo: el LLM observa las conversaciones de cada cliente y vuelve a escribir el graph_def (JSON) de ese cliente. Es decir, el agente "cambia su propia forma" según el comportamiento del usuario.

    Publicidad

Y además es rápido.

Framework Overhead del motor (1 ejecución de nodo) Frente a NeoGraph
NeoGraph 5.0 µs
Haystack 140 µs 28×
LangGraph 643 µs 128×
LlamaIndex 1,565 µs 313×
AutoGen 3,127 µs 625×

Por supuesto, esto puede variar según el método de medición, y cuando entra una llamada real al LLM, el I/O externo domina, así que la velocidad percibida puede terminar siendo parecida.
Creo que estos valores en µs realmente cobran sentido en casos multitenant o de edge donde llegan miles de solicitudes a una sola máquina.

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

Agradezco cualquier comentario.

Aún no hay comentarios.

Aún no hay comentarios.