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.

JD Cloud Developers
JD Cloud Developers
JD Cloud Developers
Unlock End-to-End AI with JoyAgent‑JDGenie: Build Custom Multi‑Agent Solutions

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/activate

Quick Start

sh start_genie_init.sh

Then 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:latest

How 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]}
}
PythonAIOpenSourceFrameworkMulti-agent
JD Cloud Developers
Written by

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.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.