Skip to content

laozhaoJava/joyagent-jdgenie

Repository files navigation

Agent开源git开源文档

简体中文 | English Version

业界首个开源高完成度轻量化通用多智能体产品(JoyAgent-JDGenie)

解决快速构建多智能体产品的最后一公里问题

简介

当前相关开源agent主要是SDK或者框架,用户还需基于此做进一步的开发,无法直接做到开箱即用。我们开源的JoyAgent-JDGenie是端到端的多Agent产品,对于输入的query或者任务,可以直接回答或者解决。例如用户query"给我做一个最近美元和黄金的走势分析",JoyAgent-Genie可以直接给出网页版或者PPT版的报告文档。

JoyAgent-JDGenie是一个通用的多智能体框架,对于用户需要定制的一些新场景功能,只需将相关的子智能体或者工具挂载到JoyAgent-Genie即可。为了验证JoyAgent-JDGenie的通用性,在GAIA榜单Validation集准确率75.15%、Test集65.12%,已超越OWL(CAMEL)、Smolagent(Huggingface)、LRC-Huawei(Huawei)、xManus(OpenManus)、AutoAgent(香港大学)等行业知名产品。

此外,我们的开源多智能体产品JoyAgent-JDGenie相对比较轻量,不像阿里的SpringAI-Alibaba需要依赖阿里云百炼平台相关功能(基于百炼平台调用LLM),Coze依赖火山引擎平台。

我们整体开源了智能体产品JoyAgent-JDGenie,包括前端、后端、框架、引擎、核心子智能体(报告生成智能体、代码智能体、PPT智能体、文件智能体等)、想用微调后效果更好的欢迎使用JoyAgent。

案例展示

mov1.mp4
mov2.mp4
mov3.mp4
mov4.mp4

产品对比

分类agent是否开源是否开源完整产品是否依赖生态
SDK类SpringAI-Alibaba部分否,只开源SDK(SDK)是(阿里云百炼平台)
Coze部分否,只开源部分Nieo SDK(SDK)是(火山引擎平台)
框架类Fellow否,只开源了Eko智能体框架(框架)
Dify否,只开源了智能体框架,且主要是workflow(框架)
SkyworkAI否,只开源了智能体框架(框架)
OpenManus否,只开源了智能体框架(框架)
Owl否,只开源了智能体框架(框架)
n8n否,只开源了智能体框架,且主要是workflow(框架)
协议类MCP否,只是开源协议
A2A否,只是开源协议
AG-UI否,只是开源协议
技术模块类memory0否,只是开源的技术模块
LlamaIndex否,只是开源的技术模块
产品类Our是,开源端到端完整的Agent产品(产品)

框架效果先进性

Test集效果 65.12%

test

Validation集效果 75.15%

AgentScoreScore_level1Score_level2Score_level3机构
Alita v2.10.87270.88680.89530.7692Princeton
Skywork0.82420.92450.83720.5769天工
AWorld0.77580.88680.77910.5385Ant Group
Langfun0.76970.86790.76740.5769DeepMind
JoyAgent-JDGenie0.75150.86790.77910.4230JD
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

系统架构

archi

本开源项目基于JoyAgent-JDGenie产品开源了整体的产品界面、智能体的多种核心模式(react模式、plan and executor模式等)、多个子智能体(report agent、search agent等)以及多整体间交互协议。

主要特点和优势

  • 端到端完整的多智能体产品,开箱即用,支持二次开发
  • 智能体框架协议
    • 支持多种智能体设计模式
    • 多智能体上下文管理
    • 高并发DAG执行引擎,极致的执行效率
  • 子智能体和工具
    • 子Agent和工具可插拔:预置多种子智能体和工具
    • 多种文件交付样式:html、ppt、markdown
    • plan和工具调用 RL优化迭代
    • 全链路流式输出

主要创新点

invo

multi-level and multi-pattern thinking:结合多种智能体设计模式支持多层级的规划和思考

  • multi-level:work level 和 task level
  • multi-pattern:plan and executor模式和react模式

cross task workflow memory:跨任务级别的相似任务memory

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

  • 基于已有工具迭代产生新工具,而不是从0-1直接生成新工具(减少错误工具的生成)
  • 基于已有工具隐性拆解为原子工具,并基于原子工具结合大模型自动组合成新工具(不需要花费人力预先定义和拆解原子工具)

快速开始

方式1: docker 一键启动服务

1. git clone https://github.com/jd-opensource/joyagent-jdgenie.git 2. 手动更新 genie-backend/src/main/resources/application.yml中 base_url、apikey、model、max_tokens、model_name等配置 使用DeepSeek时: 注意deepseek-chat 为max_tokens: 8192 手动更新 genie-tool/.env_template 中的 OPENAI_API_KEY、OPENAI_BASE_URL、DEFAULT_MODEL、SERPER_SEARCH_API_KEY 使用DeepSeek时: 设置DEEPSEEK_API_KEY、DEEPSEEK_API_BASE,DEFAULT_MODEL 设置为 deepseek/deepseek-chat,所有 ${DEFAULT_MODEL} 也都改成deepseek/deepseek-chat 3. 编译dockerfile docker build -t genie:latest . 4. 启动dockerfile docker run -d -p 3000:3000 -p 8080:8080 -p 1601:1601 --name genie-app genie:latest 5. 浏览器输入 localhost:3000 访问genie 

如果部署遇到问题,可以参考视频:【5分钟使用deepseek启动开源智能体应用joyagent-genie-哔哩哔哩】 https://b23.tv/8VQDBOK

方式2: 手动初始化环境,启动服务

环境准备

  • jdk17
  • python3.11
  • python环境准备
    • pip install uv
    • cd genie-tool
    • uv sync
    • source .venv/bin/activate

方案1:手动step by step部署手册

手动超详细攻略参考 Step by Step

方案2:手动一键启动部署(推荐)

直接通过shell启动所有服务

sh check_dep_port.sh # 检查所有依赖和端口占用情况 sh Genie_start.sh # 直接启动,以后改动配置直接重启动脚本即可,control+c 一键kill所有服务 

部署时可以参考视频:【joyagent-jdgenie部署演示】 https://www.bilibili.com/video/BV1Py8Yz4ELK/?vd_source=a5601a346d433a490c55293e76180c9d

二次开发

如何添加自己的MCP工具到JoyAgent-JDGenie中

配置文件

genie-backend/src/main/resources/application.yml 添加mcp_server服务,多个server逗号分隔 在 ui/.env 中可以修改前端请求后端的路径

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

启动服务

sh start_genie.sh

开始对话

比如添加12306工具后,规划7月7天2人从北京出发去新疆旅行计划,并查询相关火车票信息, genie会进行旅行计划设计,然后调用mcp工具查询车票信息,最终输出报告。 img.png

新增自定义子Agent到JoyAgent-JDGenie中

实现BaseTool接口,声明工具的名称、描述、参数、调用方法。

/** * 工具基接口 */publicinterfaceBaseTool{StringgetName(); // 工具名称StringgetDescription(); // 工具描述Map<String, Object> toParams(); // 工具参数Objectexecute(Objectinput); // 调用工具 } // 天气智能体示例publicclassWeatherToolimplementsBaseTool{@OverridepublicStringgetName(){return"agent_weather"} @OverridepublicStringgetDescription(){return"这是一个可以查询天气的智能体"} @OverridepublicMap<String, Object> toParams(){return"{\"type\":\"object\",\"properties\":{\"location\":{\"description\":\"地点\",\"type\":\"string\"}},\"required\":[\"location\"]}"} @OverridepublicObjectexecute(Objectinput){return"今日天气晴朗"} }

com.jd.genie.controller.GenieController#buildToolCollection中添加如下代码,引入自定义Agent

WeatherToolweatherTool = newWeatherTool(); toolCollection.addTool(weatherTool);

启动服务

sh start_genie.sh

项目共建者

贡献者: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, Zhou Zhiyuan, Xu Shiyue,Liu Jiarun

所属机构:京东CHO企业信息化团队(EI)

贡献和合作

我们欢迎所有好想法和建议,如果您想成为项目的共建者,可随时向我们提Pull Request。无论是完善产品和框架、修复bug还是添加新特性,您的贡献都非常宝贵。 在此之前需要您阅读并签署贡献者协议并发送到邮箱[email protected],请阅读 贡献指南中文版贡献指南英文版

引用

如需学术引用,请使用以下 BibTeX:

@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

About

开源的端到端产品级通用智能体

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java36.8%
  • TypeScript19.1%
  • HTML18.1%
  • Python15.0%
  • CSS4.8%
  • Shell3.3%
  • Other2.9%