JD.com's open-source, end-to-end, production-grade general multi-agent framework, supporting out-of-the-box intelligent agent application development.
JoyAgent-JDGenie Project Details
Project Overview
JoyAgent-JDGenie is an open-source, end-to-end product-level general-purpose multi-agent framework developed by JD.com. It is specifically designed to solve the last-mile problem of rapidly building multi-agent products. Unlike existing SDKs or framework-based open-source agents, JoyAgent-JDGenie is an end-to-end multi-agent product that can directly answer or solve user queries or tasks.
Core Features
1. Out-of-the-Box Complete Product
- End-to-End Solution: Users can directly obtain results after inputting queries or tasks, without additional development.
- Multi-Format Output Support: Supports generating web-based and PPT-based report documents.
- Lightweight Deployment: Does not rely on specific cloud platform ecosystems compared to other products.
2. Excellent Performance
Achieved an accuracy of 75.15% on the GAIA benchmark, surpassing well-known industry products such as OWL (CAMEL), Smolagent (Huggingface), LRC-Huawei (Huawei), xManus (OpenManus), and AutoAgent (University of Hong Kong).
3. Complete Technical Architecture
Multi-agent Collaboration Modes
- Multi-level Execution: Supports both work-level and task-level execution.
- Multi-pattern Modes: Includes "plan and executor" mode and "react" mode.
- High-concurrency DAG Execution Engine: Provides extreme execution efficiency.
Core Sub-agents
- Report Agent
- Code Agent
- PPT Agent
- File Agent
- Search Agent
Technical Highlights
1. Agent Framework Protocol
- Supports various agent design patterns.
- Multi-agent context management.
- Pluggable design for sub-agents and tools.
2. Advanced Features
- Iterative Optimization Based on Existing Tools: Generates new tools by iteratively optimizing existing ones, rather than creating them from scratch.
- Automatic Combination of Atomic Tools: Implicitly decomposes existing tools into atomic tools, which are then automatically combined into new tools by large models.
- Full-Link Streaming Output: Supports real-time response and streaming transmission of results.
- RL Optimization for Plan and Tool Calls: Optimizes the decision-making process through reinforcement learning.
3. Diverse File Delivery
Supports multiple output formats:
- HTML format
- PowerPoint presentations
- Markdown documents
Environment Requirements
System Requirements
- Java Environment: JDK 17
- Python Environment: Python 3.11
Python Environment Setup
pip install uv
cd genie-tool
uv sync
source .venv/bin/activate
Installation and Deployment
Method 1: Source Code Deployment
1. Clone Project
git clone https://github.com/jd-opensource/joyagent-jdgenie.git
cd genie-tool
2. Configure Environment
Modify the .env.example
file to configure relevant parameters for tool execution.
3. Start Service
First execution:
sh start_genie_init.sh
Subsequent starts:
sh start_genie.sh
Method 2: Docker Deployment
1. Build Image
cd genie-tool
docker build -t genie:latest .
2. Run Container
# -v sets local storage -e sets conversation model
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
Extension Development
Custom Tool Development
1. Implement BaseTool Interface
/**
* Base tool interface
*/
public interface BaseTool {
String getName(); // Tool name
String getDescription(); // Tool description
Map<String, Object> toParams(); // Tool parameters
Object execute(Object input); // Invoke tool
}
2. Create Custom Agent Example
// Weather agent example
public class WeatherTool implements BaseTool {
@Override
public String getName() {
return "agent_weather";
}
@Override
public String getDescription() {
return "This is an agent that can query the weather.";
}
@Override
public Map<String, Object> toParams() {
return "{\"type\":\"object\",\"properties\":{\"location\":{\"description\":\"Location\",\"type\":\"string\"}},\"required\":[\"location\"]}";
}
@Override
public Object execute(Object input) {
return "Today's weather is sunny.";
}
}
3. Register Custom Agent
Add the following in com.jd.genie.controller.GenieController#buildToolCollection
:
WeatherTool weatherTool = new WeatherTool();
toolCollection.addTool(weatherTool);
MCP Service Integration
Configure in genie-backend/src/main/resources/application.yml
:
mcp_server_url: "http://ip1:port1/sse,http://ip2:port2/sse"
Comparison with Other Frameworks
Category | Agent | Open Source | Open Source Complete Product | Ecosystem Dependent |
---|---|---|---|---|
SDK Class | SpringAI-Alibaba | Partial | No, only SDK is open source | Yes (Alibaba Cloud Bailian Platform) |
SDK Class | Coze | Partial | No, only part of Nieo SDK is open source | Yes (Volcano Engine Platform) |
Framework Class | Fellow | Yes | No, only Eko agent framework is open source | No |
Framework Class | Dify | Yes | No, only agent framework is open source | No |
Framework Class | OpenManus | Yes | No, only agent framework is open source | No |
Product Class | JoyAgent-JDGenie | Yes | Yes, open-source end-to-end complete Agent product | No |
GAIA Benchmark Results
Agent | Score | Score_level1 | Score_level2 | Score_level3 | Organization |
---|---|---|---|---|---|
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.com |
OWL | 0.6424 | 0.7547 | 0.6512 | 0.3846 | CAMEL |
Smolagent | 0.5515 | 0.6792 | 0.5349 | 0.3462 | Huggingface |
Summary
JoyAgent-JDGenie, as an open-source end-to-end multi-agent framework from JD.com, offers the following core advantages:
- High Level of Productization: Provides a complete end-to-end solution, ready for out-of-the-box use.
- Excellent Performance: Demonstrates outstanding performance in GAIA benchmark tests, surpassing several well-known open-source projects.
- Advanced Architecture: Supports various multi-agent collaboration modes and high-concurrency execution.
- Strong Extensibility: Supports flexible integration of custom agents and tools.
- Simple Deployment: Offers multiple deployment methods and does not rely on specific cloud platform ecosystems.
This project provides enterprises and developers with a powerful and flexible multi-agent solution, particularly suitable for scenarios requiring rapid development of agent applications.