开发者社区 > 博文 > 京东智能体引擎AutoBots(JoyAgent)-多智能体引擎Genie正式开源
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

京东智能体引擎AutoBots(JoyAgent)-多智能体引擎Genie正式开源

  • 京东云开发者
  • 2025-08-28
  • IP归属:北京
  • 2浏览

    开源地址: https://github.com/jd-opensource/joyagent-jdgenie

    产品使用入口:https://autobots.jd.com

    

    Star History Chart

    


    

    

    简介

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

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

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

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

    

    用户可以直接基于产品产出报告、产出PPT、产出数据分析报告,也可以加入自己的MCP服务或者工具,打造属于自己的智能体协作团队!

    直接产出PPT

    

    


    直接产出报告:

    

    


    上传表格或者链接企业数据直接产出数据分析结论:

    

    


    

    上传合同文档可以直接给出审核建议:

    

    


    更多的内容是:用户可以将自己工具或者MCP加入到代码中,构建自己的超级智能体!

    

    产品对比

    分类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产品(产品)

    框架效果先进性

    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-JDGenie(Our)0.75150.86790.77910.4230Our
    OWL0.64240.75470.65120.3846CAMEL
    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

    

    比分

    
    

    系统架构

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

    

    archi

    


    

    主要特点和优势

    端到端完整的多智能体产品,开箱即用,支持二次开发

    智能体框架协议

    子智能体和工具

    

    主要创新点

    

    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直接生成新工具(减少错误工具的生成)

    基于已有工具隐性拆解为原子工具,并基于原子工具结合大模型自动组合成新工具(不需要花费人力预先定义和拆解原子工具)

    

    环境准备

    jdk17

    python3.11

    python环境准备

    pip install uv

    cd genie-tool

    uv sync

    source .venv/bin/activate

    

    快速开始

    注意,第一次执行的时候执行

    

    sh start_genie_init.sh

    之后可以通过执行

    

    sh start_genie.sh

    

    docker 一键启动服务

    git clone https://github.com/jd-opensource/joyagent-jdgenie.git
    
    cd genie-tool
    
    修改.env.example执行工具使用的配置
    
    回到根目录
    
    docker build -t genie:latest .
    
    # -v 设置本地存储 -e 设置对话模型
    docker run -d -p 3004:3000 -p 8080:8080 -p 1601:1601 -v /Users/{user}/code/autobots/genie/genie-tool:/data/genie-tool -e OPENAI_BASE_URL="" -e OPENAI_API_KEY="" --name genie-app genie:latest

    

    二次开发样例—加入自己的MCP工具或者Tool

    

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

    

    配置文件

    genie-backend/src/main/resources/application.yml 添加mcp_server服务,多个server逗号分隔

    

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

    启动服务

    

    sh start_genie.sh

    

    

    

    开始对话

    比如添加12306工具后,查询北京到上海的火车票,效果如下

    

    12306

    


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

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

    

    /**
     * 工具基接口
     */
    public interface BaseTool {
        String getName(); // 工具名称
        String getDescription(); // 工具描述
        Map<String, Object> toParams(); // 工具参数
        Object execute(Object input); // 调用工具
    }
    
    // 天气智能体示例
    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 "今日天气晴朗";
        }
    }

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

    

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

    启动服务

    

    sh start_genie.sh

    贡献和合作

    热忱欢迎开发者加入JoyAgent-JDGenie的建设!无论是完善产品和框架、修复 bug 还是添加新特性,您的贡献都非常宝贵。如需学术引用或联系,请使用以下 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}
    }