Framework multiagente de propósito geral de nível de produto e ponta a ponta de código aberto da JD.com, que suporta o desenvolvimento de aplicativos de agentes inteligentes prontos para uso.

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

Detalhes do Projeto JoyAgent-JDGenie

Visão Geral do Projeto

JoyAgent-JDGenie é uma estrutura de múltiplos agentes genérica de nível de produto, ponta a ponta, de código aberto da JD, projetada especificamente para resolver o problema da "última milha" na construção rápida de produtos de múltiplos agentes. Diferente dos SDKs ou estruturas de agentes de código aberto existentes, JoyAgent-JDGenie é um produto de múltiplos agentes ponta a ponta que pode responder ou resolver diretamente consultas ou tarefas de entrada.

Características Principais

1. Produto Completo e Pronto para Uso

  • Solução Ponta a Ponta: Os usuários podem obter resultados diretamente após inserir uma consulta ou tarefa, sem necessidade de desenvolvimento adicional.
  • Suporte a Saída Multi-formato: Suporta a geração de documentos de relatório em formato de página web e PPT.
  • Implantação Leve: Em comparação com outros produtos, não depende de um ecossistema de plataforma de nuvem específico.

2. Desempenho Excepcional

Atingiu uma precisão de 75,15% na lista GAIA, superando produtos conhecidos da indústria como OWL (CAMEL), Smolagent (Huggingface), LRC-Huawei (Huawei), xManus (OpenManus) e AutoAgent (Universidade de Hong Kong).

3. Arquitetura Técnica Completa

Modo de Colaboração Multi-Agente

  • Execução Multi-nível: Suporta dois níveis: nível de trabalho (work level) e nível de tarefa (task level).
  • Modo Multi-padrão: Inclui o modo "plan and executor" e o modo "react".
  • Motor de Execução DAG de Alta Concorrência: Oferece eficiência de execução máxima.

Sub-Agentes Principais

  • Agente de Geração de Relatórios (Report Agent)
  • Agente de Código (Code Agent)
  • Agente de PPT
  • Agente de Arquivos
  • Agente de Busca (Search Agent)

Características Técnicas

1. Protocolo da Estrutura de Agentes

  • Suporta múltiplos padrões de design de agentes.
  • Gerenciamento de contexto de múltiplos agentes.
  • Design plugável para sub-agentes e ferramentas.

2. Recursos de Funcionalidade Avançada

  • Otimização Iterativa Baseada em Ferramentas Existentes: Gera novas ferramentas iterativamente a partir de ferramentas existentes, em vez de criá-las do zero.
  • Combinação Automática de Ferramentas Atômicas: Desagrega implicitamente ferramentas existentes em ferramentas atômicas e as combina automaticamente em novas ferramentas usando modelos de linguagem grandes.
  • Saída de Fluxo de Link Completo: Suporta resposta em tempo real e transmissão de resultados em fluxo.
  • Otimização de Plano e Chamada de Ferramentas por RL: Otimiza o processo de tomada de decisão através de aprendizado por reforço.

3. Entrega de Arquivos Diversificada

Suporta múltiplos formatos de saída:

  • Formato HTML
  • Apresentação PowerPoint
  • Documento Markdown

Requisitos de Ambiente

Requisitos do Sistema

  • Ambiente Java: JDK 17
  • Ambiente Python: Python 3.11

Preparação do Ambiente Python

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

Instalação e Implantação

Método Um: Implantação por Código Fonte

1. Clonar o Projeto

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

2. Configurar o Ambiente

Modifique o arquivo .env.example para configurar os parâmetros relevantes usados pelas ferramentas de execução.

3. Iniciar o Serviço

Primeira execução:

sh start_genie_init.sh

Inícios subsequentes:

sh start_genie.sh

Método Dois: Implantação Docker

1. Construir a Imagem

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

2. Executar o Contêiner

# -v configura o armazenamento local -e configura o modelo de diálogo
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

Desenvolvimento de Extensão

Desenvolvimento de Ferramentas Personalizadas

1. Implementar a Interface BaseTool

/**
 * Interface base da ferramenta
 */
public interface BaseTool {
    String getName();           // Nome da ferramenta
    String getDescription();    // Descrição da ferramenta
    Map<String, Object> toParams(); // Parâmetros da ferramenta
    Object execute(Object input);   // Chamar a ferramenta
}

2. Exemplo de Criação de Agente Personalizado

// Exemplo de agente de clima
public class WeatherTool implements BaseTool {
    @Override
    public String getName() {
        return "agent_weather";
    }

    @Override
    public String getDescription() {
        return "Este é um agente que pode consultar o clima";
    }

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

    @Override
    public Object execute(Object input) {
        return "O tempo hoje está ensolarado";
    }
}

3. Registrar o Agente Personalizado

Adicione em com.jd.genie.controller.GenieController#buildToolCollection:

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

Integração de Serviço MCP

Configure em genie-backend/src/main/resources/application.yml:

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

Comparação com Outras Estruturas

Categoria Agente Código Aberto? Produto Completo de Código Aberto? Depende de Ecossistema?
Tipo SDK SpringAI-Alibaba Parcial Não, apenas SDK de código aberto Sim (Plataforma Alibaba Cloud Bailian)
Tipo SDK Coze Parcial Não, apenas parte do SDK Nieo de código aberto Sim (Plataforma Volcengine)
Tipo Estrutura Fellow Sim Não, apenas a estrutura de agente Eko de código aberto Não
Tipo Estrutura Dify Sim Não, apenas a estrutura de agente de código aberto Não
Tipo Estrutura OpenManus Sim Não, apenas a estrutura de agente de código aberto Não
Tipo Produto JoyAgent-JDGenie Sim Sim, produto de agente completo ponta a ponta de código aberto Não

Resultados do Teste de Referência GAIA

Agente Pontuação Pontuação_nível1 Pontuação_nível2 Pontuação_nível3 Instituição
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

Resumo

JoyAgent-JDGenie, como uma estrutura de múltiplos agentes ponta a ponta de código aberto da JD, possui as seguintes vantagens principais:

  1. Alto Grau de Produtização: Oferece uma solução completa ponta a ponta, pronta para uso.
  2. Desempenho Superior: Destaca-se nos testes de referência GAIA, superando vários projetos de código aberto conhecidos.
  3. Arquitetura Avançada: Suporta múltiplos modos de colaboração de agentes e execução de alta concorrência.
  4. Forte Extensibilidade: Suporta integração flexível de agentes e ferramentas personalizadas.
  5. Implantação Simplificada: Oferece múltiplos métodos de implantação, sem depender de um ecossistema de plataforma de nuvem específico.

Este projeto oferece uma solução de múltiplos agentes poderosa e flexível para empresas e desenvolvedores, sendo particularmente adequado para cenários que exigem a construção rápida de aplicações de agentes.

Star History Chart