京东에서 오픈 소스로 제공하는 엔드 투 엔드 제품 수준의 범용 멀티 에이전트 프레임워크로, 즉시 사용 가능한 에이전트 애플리케이션 개발을 지원합니다.

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

JoyAgent-JDGenie 프로젝트 상세 소개

프로젝트 개요

JoyAgent-JDGenie는 징둥(JD)에서 오픈소스화한 엔드투엔드 제품 수준의 범용 다중 에이전트 프레임워크로, 다중 에이전트 제품을 신속하게 구축하는 데 있어 마지막 1마일 문제를 해결하기 위해 특별히 설계되었습니다. 기존 SDK 또는 프레임워크 유형의 오픈소스 에이전트와 달리, JoyAgent-JDGenie는 입력된 쿼리 또는 작업을 직접 응답하거나 해결할 수 있는 엔드투엔드 다중 에이전트 제품입니다.

핵심 기능

1. 즉시 사용 가능한 완벽한 제품

  • 엔드투엔드 솔루션: 사용자가 쿼리 또는 작업을 입력하면 추가 개발 없이 직접 결과를 얻을 수 있습니다.
  • 다중 형식 출력 지원: 웹 페이지 버전, PPT 버전 보고서 문서 생성을 지원합니다.
  • 경량 배포: 다른 제품에 비해 특정 클라우드 플랫폼 생태계에 의존하지 않습니다.

2. 뛰어난 성능

GAIA 벤치마크에서 75.15%의 정확도를 달성하여 OWL (CAMEL), Smolagent (Huggingface), LRC-Huawei (Huawei), xManus (OpenManus), AutoAgent (홍콩대학교) 등 업계 유명 제품들을 능가했습니다.

3. 완벽한 기술 아키텍처

다중 에이전트 협업 모드

  • 다단계 실행: 작업(work) 레벨과 태스크(task) 레벨 두 가지 계층을 지원합니다.
  • 다중 패턴 모드: 계획 및 실행자(plan and executor) 모드와 반응(react) 모드를 포함합니다.
  • 고동시성 DAG 실행 엔진: 최고의 실행 효율성을 제공합니다.

핵심 서브 에이전트

  • 보고서 생성 에이전트 (Report Agent)
  • 코드 에이전트 (Code Agent)
  • PPT 에이전트
  • 파일 에이전트
  • 검색 에이전트 (Search Agent)

기술 특징

1. 에이전트 프레임워크 프로토콜

  • 다양한 에이전트 설계 패턴을 지원합니다.
  • 다중 에이전트 컨텍스트 관리
  • 서브 에이전트 및 도구 플러그인 설계

2. 고급 기능 특성

  • 기존 도구 기반 반복 최적화: 0에서 1로 직접 생성하는 대신, 기존 도구를 기반으로 반복하여 새로운 도구를 생성합니다.
  • 원자 도구 자동 조합: 기존 도구를 암묵적으로 원자 도구로 분해하고, 대규모 모델을 통해 자동으로 새로운 도구로 조합합니다.
  • 전체 링크 스트리밍 출력: 실시간 응답 및 결과 스트리밍 전송을 지원합니다.
  • 계획 및 도구 호출 RL 최적화: 강화 학습을 통해 의사 결정 프로세스를 최적화합니다.

3. 다양한 파일 제공

다양한 출력 형식을 지원합니다:

  • HTML 형식
  • PowerPoint 프레젠테이션
  • Markdown 문서

환경 요구사항

시스템 요구사항

  • Java 환경: JDK 17
  • Python 환경: Python 3.11

Python 환경 준비

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

설치 및 배포

방법 1: 소스 코드 배포

1. 프로젝트 클론

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

2. 환경 설정

.env.example 파일을 수정하여 실행 도구에 사용되는 관련 매개변수를 설정합니다.

3. 서비스 시작

첫 실행:

sh start_genie_init.sh

이후 실행:

sh start_genie.sh

방법 2: Docker 배포

1. 이미지 빌드

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

2. 컨테이너 실행

# -v 로컬 저장소 설정 -e 대화 모델 설정
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

확장 개발

사용자 정의 도구 개발

1. BaseTool 인터페이스 구현

/**
 * 도구 기본 인터페이스
 */
public interface BaseTool {
    String getName();           // 도구 이름
    String getDescription();    // 도구 설명
    Map<String, Object> toParams(); // 도구 매개변수
    Object execute(Object input);   // 도구 호출
}

2. 사용자 정의 에이전트 예시 생성

// 날씨 에이전트 예시
public class WeatherTool implements BaseTool {
    @Override
    public String getName() {
        return "agent_weather";
    }

    @Override
    public String getDescription() {
        return "이것은 날씨를 조회할 수 있는 에이전트입니다";
    }

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

    @Override
    public Object execute(Object input) {
        return "오늘 날씨는 맑음";
    }
}

3. 사용자 정의 에이전트 등록

com.jd.genie.controller.GenieController#buildToolCollection에 추가:

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

MCP 서비스 통합

genie-backend/src/main/resources/application.yml에 설정:

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

다른 프레임워크와의 비교

분류 에이전트 오픈소스 여부 완전한 제품 오픈소스 여부 생태계 의존 여부
SDK 유형 SpringAI-Alibaba 부분 아니요, SDK만 오픈소스 예 (알리바바 클라우드 바이리엔 플랫폼)
SDK 유형 Coze 부분 아니요, Nieo SDK 일부만 오픈소스 예 (화산 엔진 플랫폼)
프레임워크 유형 Fellow 아니요, Eko 에이전트 프레임워크만 오픈소스 아니요
프레임워크 유형 Dify 아니요, 에이전트 프레임워크만 오픈소스 아니요
프레임워크 유형 OpenManus 아니요, 에이전트 프레임워크만 오픈소스 아니요
제품 유형 JoyAgent-JDGenie 예, 엔드투엔드 완전한 에이전트 제품 오픈소스 아니요

GAIA 벤치마크 테스트 결과

Agent Score Score_level1 Score_level2 Score_level3 기관
Alita v2.1 0.8727 0.8868 0.8953 0.7692 Princeton
Skywork 0.8242 0.9245 0.8372 0.5769 天工
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 京东
OWL 0.6424 0.7547 0.6512 0.3846 CAMEL
Smolagent 0.5515 0.6792 0.5349 0.3462 Huggingface

요약

JoyAgent-JDGenie는 징둥(JD)에서 오픈소스화한 엔드투엔드 다중 에이전트 프레임워크로서 다음과 같은 핵심 강점을 가지고 있습니다:

  1. 높은 제품화 수준: 완전한 엔드투엔드 솔루션을 제공하여 즉시 사용 가능합니다.
  2. 뛰어난 성능: GAIA 벤치마크 테스트에서 뛰어난 성능을 보여 여러 유명 오픈소스 프로젝트를 능가합니다.
  3. 고급 아키텍처: 다양한 에이전트 협업 모드와 고동시성 실행을 지원합니다.
  4. 강력한 확장성: 사용자 정의 에이전트 및 도구의 유연한 통합을 지원합니다.
  5. 간편한 배포: 다양한 배포 방식을 제공하며 특정 클라우드 플랫폼 생태계에 의존하지 않습니다.

이 프로젝트는 기업과 개발자에게 강력하고 유연한 다중 에이전트 솔루션을 제공하며, 특히 에이전트 애플리케이션을 신속하게 구축해야 하는 시나리오에 적합합니다.

Star History Chart