Unlock End-to-End AI with JoyAgent‑JDGenie: Build Custom Multi‑Agent Solutions
JoyAgent‑JDGenie is an open‑source, end‑to‑end multi‑agent framework that lets users generate reports, PPTs, and data analyses directly from queries, supports easy integration of custom tools, and achieves a 75.15% accuracy on the GAIA benchmark, surpassing major competitors.
Introduction
The JoyAgent‑JDGenie project (https://github.com/jd-opensource/joyagent-jdgenie) provides a ready‑to‑use, end‑to‑end multi‑agent product. Users can input a query such as “give me a recent USD and gold trend analysis” and receive a web‑page or PPT report automatically.
JoyAgent‑JDGenie is a general‑purpose multi‑agent framework; new sub‑agents or tools can be mounted to support custom scenarios. It achieved a 75.15% accuracy on the GAIA leaderboard, outperforming OWL (CAMEL), Smolagent, LRC‑Huawei, xManus, AutoAgent and other well‑known solutions.
The system is lightweight compared with solutions that depend on proprietary platforms (e.g., SpringAI‑Alibaba, Coze).
All components—including front‑end, back‑end, framework, engine, and core sub‑agents (report, code, PPT, file agents)—are open‑sourced, allowing users to generate reports, PPTs, and data analyses directly, or to add their own MCP services and tools to build a personalized intelligent‑agent team.
Framework
The open‑source project releases the full product UI, multiple core agent modes (react, plan‑and‑executor, etc.), several sub‑agents (report, search, etc.), and the inter‑agent communication protocol.
End‑to‑end multi‑agent product, ready out of the box, supports secondary development
Agent framework protocol
Sub‑agents and tools
Key innovations
Multi‑level and multi‑pattern thinking: supports work‑level and task‑level planning, and both plan‑and‑executor and react patterns.
Cross‑task workflow memory: similarity‑based memory across tasks.
Tool evolution via auto‑disassembly‑and‑reassembly of atom‑tools, enabling new tools to be generated from existing ones without manual definition.
Environment Preparation
JDK 17
Python 3.11
Install dependencies: pip install uv Navigate to genie-tool directory and run uv sync Activate virtual environment:
source .venv/bin/activateQuick Start
sh start_genie_init.shThen start the service: sh start_genie.sh Docker one‑click start:
docker build -t genie:latest .
docker run -d -p 3004:3000 -p 8080:8080 -p 1601:1601 \
-v /path/to/genie-tool:/data/genie-tool \
-e OPENAI_BASE_URL="" -e OPENAI_API_KEY="" \
--name genie-app genie:latestHow to Add Your Own MCP Tool
Edit genie-backend/src/main/resources/application.yml to add mcp_server_url entries, e.g.:
mcp_server_url: "http://ip1:port1/sse,http://ip2:port2/sse"Start the service with sh start_genie.sh and begin a conversation.
Example: after adding a 12306 ticket‑query tool, the agent can fetch train tickets between Beijing and Shanghai.
Adding a Custom Sub‑Agent
Implement the BaseTool interface, defining name, description, parameters, and execution logic. Example implementation for a weather tool:
public interface BaseTool {
String getName(); // tool name
String getDescription(); // tool description
Map<String,Object> toParams(); // tool parameters
Object execute(Object input); // invoke tool
}
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 "今日天气晴朗"; }
}Register the new tool in GenieController#buildToolCollection:
WeatherTool weatherTool = new WeatherTool();
toolCollection.addTool(weatherTool);Restart the service with sh start_genie.sh.
Contribution and Collaboration
Developers are warmly invited to contribute to JoyAgent‑JDGenie—whether improving the product, fixing bugs, or adding features. For academic citation, use the following BibTeX entry:
@software{JoyAgent-JDGenie,
author = {Agent Team at JDCHO},
title = {JoyAgent-JDGenie},
year = {2025},
url = {https://github.com/jd-opensource/joyagent-jdgenie},
version = {0.1.0},
publisher = {GitHub},
email = {[email protected]; [email protected]; [email protected]; [email protected]; [email protected]}
}JD Cloud Developers
JD Cloud Developers (Developer of JD Technology) is a JD Technology Group platform offering technical sharing and communication for AI, cloud computing, IoT and related developers. It publishes JD product technical information, industry content, and tech event news. Embrace technology and partner with developers to envision the future.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
