README_EN.md
Address the last-mile challenge in rapidly developing multi-agent products.
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
Lightweight and Independence
Comprehensive Open-Source Offering
| 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 | 天工 |
| AWorld | 0.7758 | 0.8868 | 0.7791 | 0.5385 | Ant Group |
| Langfun | 0.7697 | 0.8679 | 0.7674 | 0.5769 | DeepMind |
| JoyAgent-JDGenie(Our) | 0.7515 | 0.8679 | 0.7791 | 0.4230 | Our |
| OWL | 0.6909 | 0.8491 | 0.6744 | 0.4231 | CAMEL |
| Smolagent | 0.5515 | 0.6792 | 0.5349 | 0.3462 | Huggingface |
| AutoAgent | 0.5515 | 0.7170 | 0.5349 | 0.2692 | HKU |
| Magentic | 0.4606 | 0.5660 | 0.4651 | 0.2308 | MSR AI Frontiers |
| LRC-Huawei | 0.406 | 0.5283 | 0.4302 | 0.0769 | Huawei |
| xManus | 0.4061 | 0.8113 | 0.2791 | 0.0000 | OpenManus |
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.
Generates novel tools from existing ones instead of creating from scratch (reducing faulty tool generation):
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
Ultra-detailed guide reference: Step by Step
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
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"
sh start_genie.sh
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
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);
sh start_genie.sh
Core Team: Liu Shangkun,Li Xiang,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, Zhou Zhiyuan, Xu Shiyue,Liu Jiarun, Hou Kang, Jing Lingtuan, Guo Hongliang, Liu Yanchen, Chen Kun, Pan Zheyi, Duan Zhewen, Tu Shengkun, Zhang Haidong, Wang Heng, Li Bo, Zhang Konghongbo, Zhang Junbo
Core Team: JD.com CHO Enterprise Informatization Team (EI), JDT, JDL
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 [email protected]. Chinese Version,English Version
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 = {[email protected];[email protected];[email protected];[email protected];[email protected];[email protected]}
}
Contact Us