logo
0
0
WeChat Login

JoyAgent-JDGenie Open Source Documentation

The industry’s first open-source, highly complete, lightweight, general-purpose multi-agent product (JoyAgent-JDGenie)

Address the last-mile challenge in rapidly developing multi-agent products.

Introduction

Most existing open-source agent projects are primarily SDKs or frameworks, requiring users to perform additional development and lacking true out-of-the-box usability. In contrast, our open-source JoyAgent-JDGenie is an end-to-end multi-agent product that can directly answer or resolve user queries or tasks. For example, when a user submits a query like“Provide an analysis of recent trends between the US dollar and gold,”JoyAgent-JDGenie can instantly generate a report in web or PPT format.

  • Generality and Customization

    • JoyAgent-JDGenie is a versatile multi-agent framework. To customize functionality for new scenarios, users only need to integrate relevant sub-agents or tools into JoyAgent-Genie. To demonstrate its generality, JoyAgent-JDGenie achieved 75.15% accuracy on the GAIA benchmark Validation set and 65.12% on the Test set, outperforming industry-leading products such as OWL (CAMEL), Smolagent (Hugging Face), LRC-Huawei (Huawei), xManus (OpenManus), and AutoAgent (University of Hong Kong).
  • Lightweight and Independence

    • Unlike Alibaba’s SpringAI-Alibaba (which relies on the Alibaba Cloud Bailian platform for LLM capabilities) or Coze (dependent on the Volcano Engine platform), our open-source multi-agent product JoyAgent-JDGenie is lightweight and platform-agnostic.
  • Comprehensive Open-Source Offering

    • We have fully open-sourced JoyAgent-JDGenie, including its:
      • Frontend and backend
      • Framework and engine
      • Core sub-agents (e.g., Report Generator Agent, Code Agent, PPT Agent, File Agent)
      • For enhanced performance, we welcome users to leverage JoyAgent with fine-tuned models.

Case Studies

Product Comparison

CategoryagentOpen Sourced?Fully Open-Sourced Product?Dependent on Ecosystem?
SDKSpringAI-AlibabaPartialNo (SDK only)Yes (Alibaba Cloud Bailian Platform)
CozePartialNo (Nieo SDK only)Yes (Volcano Engine Platform)
FrameworkFellowYESNo (Eko Agent Framework only)No
DifyYESNo (Workflow-focused framework only)No
SkyworkAIYESNo (Agent framework only)No
OpenManusYESNo (Agent framework only)No
OwlYESNo (Agent framework only)No
n8nYESNo (Agent framework only)no
ProtocolMCPYesNo (Protocol only)no
A2AYESNo (Protocol only)No
AG-UIYESNo (Protocol only)No
Technical Modulememory0YESNo (Technical module only)No
LlamaIndexYESNo (Technical module only)No
ProductOurYESYes (End-to-end open-source agent product)No

Framework Performance Superiority

Test set performance 65.12%

test

Validation set performance 75.15%

AgentScoreScore_level1Score_level2Score_level3Organization
Alita v2.10.87270.88680.89530.7692Princeton
Skywork0.82420.92450.83720.5769天工
AWorld0.77580.88680.77910.5385Ant Group
Langfun0.76970.86790.76740.5769DeepMind
JoyAgent-JDGenie(Our)0.75150.86790.77910.4230Our
OWL0.69090.84910.67440.4231CAMEL
Smolagent0.55150.67920.53490.3462Huggingface
AutoAgent0.55150.71700.53490.2692HKU
Magentic0.46060.56600.46510.2308MSR AI Frontiers
LRC-Huawei0.4060.52830.43020.0769Huawei
xManus0.40610.81130.27910.0000OpenManus
score

System Architecture

ME1753788413469

This open-source project is based on JoyAgent-JDGenie, publicly releasing the complete product interface, multiple core agent modes (React mode, Plan and Execute mode, etc.), multiple sub-agents (Report Agent, Search Agent, etc.), and multi-agent interaction protocols.

Key Features and Advantages

  • End-to-End Multi-Agent Product: Ready out-of-the-box with support for secondary development
  • Agent Framework Protocols
    • Support for Diverse Agent Design Patterns
    • Multi-Agent Context Management
    • High-Concurrency DAG Execution Engine: Exceptional execution efficiency
  • Sub-Agents and Tools
    • Pluggable sub-agents and tools: Pre-configured with various sub-agents and utilities
    • Multiple file export formats: HTML, PPT, Markdown
    • Plan & Tool Call Optimization: Iteratively enhanced via Reinforcement Learning (RL)
    • End-to-End Streaming Responses

Key Innovations

invo

multi-level and multi-pattern thinking

  • multi-level:work level VS task level
  • multi-pattern:plan and executor VS react

cross task workflow memory

tool evolution via auto-disassembly-and-reassembly of atom-tools

Generates novel tools from existing ones instead of creating from scratch (reducing faulty tool generation):

  • Implicit Atomization:
    • Automatically decomposes existing tools into atomic sub-tools
    • No need for manual pre-definition of atomic components
  • LLM-Driven Reassembly:
    • Dynamically recombines atomic tools via large language models
    • Enables emergent tool creation without human intervention

Quick Start

Method 1: One-Command Docker Deployment

1.git clone https://github.com/jd-opensource/joyagent-jdgenie.git 2.Manually update the following configurations in genie-backend/src/main/resources/application.yml: base_url, apikey, model, max_tokens, model_name Note for DeepSeek users: Set max_tokens: 8192 for deepseek-chat Manually update the following environment variables in genie-tool/.env_template: OPENAI_API_KEY, OPENAI_BASE_URL, DEFAULT_MODEL, SERPER_SEARCH_API_KEY DeepSeek Configuration:Set DEEPSEEK_API_KEY and DEEPSEEK_API_BASE,Configure DEFAULT_MODEL = deepseek/deepseek-chat, Replace all occurrences of ${DEFAULT_MODEL} with deepseek/deepseek-chat 3.Build the Docker image docker build -t genie:latest . 4.Launch the Docker container docker run -d -p 3000:3000 -p 8080:8080 -p 1601:1601 --name genie-app genie:latest 5.Access Genie via browser Open http://localhost:3000

If you encounter deployment issues, refer to this video tutorial:【5分钟使用deepseek启动开源智能体应用joyagent-genie-哔哩哔哩】 https://b23.tv/8VQDBOK

Method 2: Manual Environment Initialization and Service Launch

Prerequisites

  • jdk17
  • python3.11
  • python Environment Setup
    • pip install uv
    • cd genie-tool
    • uv sync
    • source .venv/bin/activate

Option 1: Step-by-Step Manual Deployment

Ultra-detailed guide reference: Step by Step

Option 2: One-Command Launch (Recommended)

Directly start all services via shell:

sh check_dep_port.sh # Verify all dependencies and port occupancy sh Genie_start.sh # Launch services directly; restart this script after configuration changes (terminate all services with Control+C)

For deployment guidance, refer to the demonstration video:【joyagent-jdgenie部署演示】 https://www.bilibili.com/video/BV1Py8Yz4ELK/?vd_source=a5601a346d433a490c55293e76180c9d

Custom development

Integrating Custom MCP Tools into JoyAgent-JDGenie

Configuration File:

Edit genie-backend/src/main/resources/application.yml to add MCP server URLs (comma-separated):

You can change the front-end request path to the back-end in ui/.env.

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

Start Service:

sh start_genie.sh

Usage Example:

After integrating the 12306 ticket tool, initiate: "Plan a 7-day trip for 2 people from Beijing to Xinjiang in July and query train tickets" → Genie designs travel itinerary → Invokes MCP tool for ticket queries → Generates final report img.png

Adding Custom Sub-Agent to JoyAgent-JDGenie

Implementing the BaseTool Interface: Declaring Tool Name, Description, Parameters, and Invocation Methods.

/** * Base Tool Interface */publicinterfaceBaseTool { StringgetName(); // Tool name StringgetDescription(); // Tool description Map<String, Object> toParams(); // Tool parameters Objectexecute(Objectinput); // Invoke tool } // Weather Agent Example publicclassWeatherToolimplementsBaseTool { @Override publicStringgetName() { return"agent_weather"; } @Override publicStringgetDescription() { return"A weather query agent"; } @Override publicMap<String, Object> toParams() { return"{\"type\":\"object\",\"properties\":{\"location\":{\"description\":\"地点\",\"type\":\"string\"}},\"required\":[\"location\"]}"; } @Override publicObjectexecute(Objectinput) { return"Today's weather is sunny"; } }

Add the following code in com.jd.genie.controller.GenieController#buildToolCollection to integrate custom Agent.

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

Start service

sh start_genie.sh

Contributors

Core Team: Liu Shangkun,Li Yang,Jia Shilin,Tian Shaohua,Wang Zhen,Yao Ting,Wang Hongtao,Zhou Xiaoqing,Liu min,Zhang Shuang,Liuwen,Yangdong,Xu Jialei,Zhou Meilei,Zhao Tingchong,Wu jiaxing, Wang Hanmin,Xu Shiyue,Liu Jiarun

Core Team: JD.com CHO Enterprise Informatization Team (EI)

Contribution & Collaboration

We welcome all great ideas and suggestions. If you wish to become a project co-builder, you may submit Pull Requests at any time. Whether it's improving products/frameworks, fixing bugs, or adding new features - all contributions are highly valued. Before contributing, you need to read and sign the Contributor Agreement and send it to org.developer3@jd.com. Chinese VersionEnglish Version

Citation

For academic references or inquiries, please 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 = {jiashilin1@jd.com;liyang.1236@jd.com;liushangkun@jd.com;tianshaohua.1@jd.com;wangzhen449@jd.com;yaoting.2@jd.com} }

Contributors

Star History

Star History Chart

Contact Us

contact

About

https://github.com/jd-opensource/joyagent-jdgenie.git

Language
Java28.9%
TypeScript20.7%
HTML15.1%
Python13.4%
Others21.9%