jd-opensource/joyagent-jdgenieView GitHub Homepage for Latest Official Releases
京东에서 오픈 소스로 제공하는 엔드 투 엔드 제품 수준의 범용 멀티 에이전트 프레임워크로, 즉시 사용 가능한 에이전트 애플리케이션 개발을 지원합니다.
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)에서 오픈소스화한 엔드투엔드 다중 에이전트 프레임워크로서 다음과 같은 핵심 강점을 가지고 있습니다:
- 높은 제품화 수준: 완전한 엔드투엔드 솔루션을 제공하여 즉시 사용 가능합니다.
- 뛰어난 성능: GAIA 벤치마크 테스트에서 뛰어난 성능을 보여 여러 유명 오픈소스 프로젝트를 능가합니다.
- 고급 아키텍처: 다양한 에이전트 협업 모드와 고동시성 실행을 지원합니다.
- 강력한 확장성: 사용자 정의 에이전트 및 도구의 유연한 통합을 지원합니다.
- 간편한 배포: 다양한 배포 방식을 제공하며 특정 클라우드 플랫폼 생태계에 의존하지 않습니다.
이 프로젝트는 기업과 개발자에게 강력하고 유연한 다중 에이전트 솔루션을 제공하며, 특히 에이전트 애플리케이션을 신속하게 구축해야 하는 시나리오에 적합합니다.