Marco multiagente de propósito general de nivel de producto de extremo a extremo de código abierto de JD.com, que admite el desarrollo de aplicaciones de agentes inteligentes listas para usar.

NOASSERTIONJavajoyagent-jdgeniejd-opensource 2.0k Last Updated: July 28, 2025

Descripción detallada del proyecto JoyAgent-JDGenie

Resumen del proyecto

JoyAgent-JDGenie es un marco de múltiples agentes genérico de nivel de producto de extremo a extremo de código abierto de JD, diseñado específicamente para resolver el problema de la "última milla" en la construcción rápida de productos de múltiples agentes. A diferencia de los SDK o marcos de agentes de código abierto existentes, JoyAgent-JDGenie es un producto de múltiples agentes de extremo a extremo que puede responder o resolver directamente las consultas o tareas de entrada.

Características principales

1. Producto completo listo para usar

  • Solución de extremo a extremo: Los usuarios pueden obtener resultados directamente después de ingresar una consulta o tarea, sin necesidad de desarrollo adicional.
  • Soporte de salida multiformato: Admite la generación de documentos de informe en formato web y PPT.
  • Despliegue ligero: En comparación con otros productos, no depende de un ecosistema de plataforma en la nube específico.

2. Rendimiento excepcional

Ha alcanzado una precisión del 75.15% en la lista GAIA, superando a productos conocidos de la industria como OWL (CAMEL), Smolagent (Huggingface), LRC-Huawei (Huawei), xManus (OpenManus) y AutoAgent (Universidad de Hong Kong).

3. Arquitectura técnica completa

Modo de colaboración multi-agente

  • Ejecución multinivel: Admite dos niveles: nivel de trabajo (work level) y nivel de tarea (task level).
  • Modo multipatrón: Incluye el modo "plan and executor" y el modo "react".
  • Motor de ejecución DAG de alta concurrencia: Proporciona una eficiencia de ejecución extrema.

Sub-agentes principales

  • Agente de generación de informes (Report Agent)
  • Agente de código (Code Agent)
  • Agente de PPT
  • Agente de archivos
  • Agente de búsqueda (Search Agent)

Características técnicas

1. Protocolo de marco de agente

  • Admite múltiples patrones de diseño de agentes.
  • Gestión de contexto de múltiples agentes.
  • Diseño de sub-agentes y herramientas conectables.

2. Características de funciones avanzadas

  • Optimización iterativa basada en herramientas existentes: Genera nuevas herramientas de forma iterativa a partir de herramientas existentes, en lugar de generarlas desde cero.
  • Combinación automática de herramientas atómicas: Descompone implícitamente las herramientas existentes en herramientas atómicas y las combina automáticamente en nuevas herramientas mediante modelos grandes.
  • Salida de flujo de enlace completo: Admite respuesta en tiempo real y transmisión de resultados en flujo.
  • Optimización de Plan y llamada a herramientas mediante RL: Optimiza el proceso de toma de decisiones mediante aprendizaje por refuerzo.

3. Entrega de archivos diversificada

Admite múltiples formatos de salida:

  • Formato HTML
  • Presentaciones de PowerPoint
  • Documentos Markdown

Requisitos del entorno

Requisitos del sistema

  • Entorno Java: JDK 17
  • Entorno Python: Python 3.11

Preparación del entorno Python

pip install uv
cd genie-tool
uv sync
source .venv/bin/activate

Instalación y despliegue

Método uno: Despliegue desde el código fuente

1. Clonar el proyecto

git clone https://github.com/jd-opensource/joyagent-jdgenie.git
cd genie-tool

2. Configurar el entorno

Modifique el archivo .env.example para configurar los parámetros relevantes utilizados por la herramienta de ejecución.

3. Iniciar el servicio

Primera ejecución:

sh start_genie_init.sh

Arranques posteriores:

sh start_genie.sh

Método dos: Despliegue con Docker

1. Construir la imagen

cd genie-tool
docker build -t genie:latest .

2. Ejecutar el contenedor

# -v configura el almacenamiento local -e configura el modelo de conversación
docker run -d -p 3004:3000 -p 8080:8080 -p 1601:1601 \
  -v /Users/{user}/code/autobots/genie/genie-tool:/data/genie-tool \
  -e OPENAI_BASE_URL="" -e OPENAI_API_KEY="" \
  --name genie-app genie:latest

Desarrollo de extensiones

Desarrollo de herramientas personalizadas

1. Implementar la interfaz BaseTool

/**
 * Interfaz base de la herramienta
 */
public interface BaseTool {
    String getName();           // Nombre de la herramienta
    String getDescription();    // Descripción de la herramienta
    Map<String, Object> toParams(); // Parámetros de la herramienta
    Object execute(Object input);   // Invocar la herramienta
}

2. Crear un ejemplo de agente personalizado

// Ejemplo de agente meteorológico
public class WeatherTool implements BaseTool {
    @Override
    public String getName() {
        return "agent_weather";
    }

    @Override
    public String getDescription() {
        return "Este es un agente que puede consultar el clima";
    }

    @Override
    public Map<String, Object> toParams() {
        return "{\"type\":\"object\",\"properties\":{\"location\":{\"description\":\"Ubicación\",\"type\":\"string\"}},\"required\":[\"location\"]}";
    }

    @Override
    public Object execute(Object input) {
        return "Hoy el clima está soleado";
    }
}

3. Registrar el Agente personalizado

En com.jd.genie.controller.GenieController#buildToolCollection agregue:

WeatherTool weatherTool = new WeatherTool();
toolCollection.addTool(weatherTool);

Integración del servicio MCP

En genie-backend/src/main/resources/application.yml configure:

mcp_server_url: "http://ip1:port1/sse,http://ip2:port2/sse"

Comparación con otros marcos

Categoría Agente ¿Código abierto? ¿Producto completo de código abierto? ¿Depende del ecosistema?
Tipo SDK SpringAI-Alibaba Parcialmente No, solo SDK de código abierto Sí (Plataforma Alibaba Cloud Bailian)
Tipo SDK Coze Parcialmente No, solo parte del SDK Nieo de código abierto Sí (Plataforma Volcengine)
Tipo Marco Fellow No, solo el marco de agente Eko de código abierto No
Tipo Marco Dify No, solo el marco de agente de código abierto No
Tipo Marco OpenManus No, solo el marco de agente de código abierto No
Tipo Producto JoyAgent-JDGenie Sí, producto de agente completo de extremo a extremo de código abierto No

Resultados de la prueba de referencia GAIA

Agente Puntuación Puntuación_nivel1 Puntuación_nivel2 Puntuación_nivel3 Institución
Alita v2.1 0.8727 0.8868 0.8953 0.7692 Princeton
Skywork 0.8242 0.9245 0.8372 0.5769 Tiangong
AWorld 0.7758 0.8868 0.7791 0.5385 Ant Group
Langfun 0.7697 0.8679 0.7674 0.5769 DeepMind
JoyAgent-JDGenie 0.7515 0.8679 0.7791 0.4230 JD
OWL 0.6424 0.7547 0.6512 0.3846 CAMEL
Smolagent 0.5515 0.6792 0.5349 0.3462 Huggingface

Resumen

JoyAgent-JDGenie, como marco de múltiples agentes de extremo a extremo de código abierto de JD, tiene las siguientes ventajas clave:

  1. Alto grado de productización: Ofrece una solución completa de extremo a extremo, lista para usar.
  2. Rendimiento superior: Destaca en las pruebas de referencia GAIA, superando a varios proyectos de código abierto conocidos.
  3. Arquitectura avanzada: Admite múltiples modos de colaboración de agentes y ejecución de alta concurrencia.
  4. Gran extensibilidad: Admite la integración flexible de agentes y herramientas personalizadas.
  5. Despliegue sencillo: Ofrece múltiples métodos de despliegue y no depende de un ecosistema de plataforma en la nube específico.

Este proyecto proporciona a empresas y desarrolladores una solución de múltiples agentes potente y flexible, especialmente adecuada para escenarios que requieren la construcción rápida de aplicaciones de agentes.

Star History Chart