多模态知识库管理Agent:轻量化通用多智能体
一、简介
多模态知识管理
多模态知识管理平台是一款面向多模态非结构化知识的RAG解决方案,集成解析、检索与生成能力,能够高效处理复杂文档,为智能问答与内容生成提供一站式支持。

企业内部知识主要包括结构化表格知识和非结构化知识。因此对于结构化表格知识建设了开箱即用的DataAgent能力,主要包括数据治理DGP协议、智能问数和智能诊断分析。

核心特性
•
端到端多模态智能管道:打造从原始数据解析到跨模态语义检索与智能生成的全链路处理体系,实现多源异构内容的深度融合与协同。
•
全场景文档兼容性:原生支持PDF、Office套件、图片等主流格式,自动识别并抽取复杂结构与多模态信息,重构统一知识视图。
•
结构化信息抽取引擎:集成MinerU解析框架,实现文档结构的深度识别与多模态内容的精确提取,确保数据要素的高度还原与可靠性。
•
架构高度解耦与可扩展性:实现解析、嵌入、检索、生成等核心模块的灵活拆分与组合,满足企业级多样化场景与定制需求。
•
多策略融合检索体系:创新性集成关键词、向量、知识图谱等多重检索技术,实现跨模态内容的高效定位与深度关联。
•
标准 API + Web UI:提供可视化操作界面与标准API,支持本地化及私有云部署,全面守护数据自主权与隐私安全。
二、快速开始
方式1: docker 一键启动服务
代码块
Plain Text
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
方式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启动所有服务
代码块
Plain Text
sh check_dep_port.sh # 检查所有依赖和端口占用情况
sh Genie_start.sh # 直接启动,以后改动配置直接重启动脚本即可,control+c 一键kill所有服务
三、二次开发
如何添加自己的MCP工具到JoyAgent-JDGenie中?
配置文件
在 genie-backend/src/main/resources/application.yml 添加mcp_server服务,多个server逗号分隔 在 ui/.env 中可以修改前端请求后端的路径
代码块
JavaScript
mcp_server_url: "http://ip1:port1/sse,http://ip2:port2/sse"
启动服务
代码块
JavaScript
开始对话
比如添加12306工具后,规划7月7天2人从北京出发去新疆旅行计划,并查询相关火车票信息, genie会进行旅行计划设计,然后调用mcp工具查询车票信息,最终输出报告。
新增自定义子Agent到JoyAgent-JDGenie中
实现BaseTool接口,声明工具的名称、描述、参数、调用方法。
代码块
TypeScript
/**
* 工具基接口
*/
public interface BaseTool {
String getName(); // 工具名称
String getDescription(); // 工具描述
Map<String, Object> toParams(); // 工具参数
Object execute(Object input); // 调用工具
在com.jd.genie.controller.GenieController#buildToolCollection中添加如下代码,引入自定义Agent
代码块
JavaScript
WeatherTool weatherTool = new WeatherTool();
toolCollection.addTool(weatherTool);
启动服务
代码块
JavaScript
sh start_genie.sh
四、基本情况
当前相关开源agent主要是SDK或者框架,用户还需基于此做进一步的开发,无法直接做到开箱即用。我们开源的JoyAgent-JDGenie是端到端的多Agent产品,对于输入的query或者任务,可以直接回答或者解决。
JoyAgent-JDGenie是一个通用的多智能体框架,对于用户需要定制的一些新场景功能,只需将相关的子智能体或者工具挂载到JoyAgent-Genie即可。为了验证JoyAgent-JDGenie的通用性,在GAIA榜单Validation集准确率75.15%、Test集65.12%,已超越OWL(CAMEL)、Smolagent(Huggingface)、LRC-Huawei(Huawei)、xManus(OpenManus)、AutoAgent(香港大学)等行业知名产品。
46%
54%
此外,我们的开源多智能体产品JoyAgent-JDGenie相对比较轻量,不像阿里的SpringAI-Alibaba需要依赖阿里云百炼平台相关功能(基于百炼平台调用LLM),Coze依赖火山引擎平台。
我们整体开源了智能体产品JoyAgent-JDGenie,包括前端、后端、框架、引擎、核心子智能体(报告生成智能体、代码智能体、PPT智能体、文件智能体等)、想用微调后效果更好的欢迎使用JoyAgent。
50%
50%
系统架构
本开源项目基于JoyAgent-JDGenie产品开源了整体的产品界面、智能体的多种核心模式(react模式、plan and executor模式等)、多个子智能体(report agent、search agent等)以及多整体间交互协议。
主要特点和优势
端到端完整的多智能体产品,开箱即用,支持二次开发
智能体框架协议
a.
支持多种智能体设计模式
b.
多智能体上下文管理
c.
高并发DAG执行引擎,极致的执行效率
子智能体和工具
a.
子Agent和工具可插拔:预置多种子智能体和工具
b.
多种文件交付样式:html、ppt、markdown
c.
plan和工具调用 RL优化迭代
d.
全链路流式输出
主要创新点
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直接生成新工具(减少错误工具的生成)
•
基于已有工具隐性拆解为原子工具,并基于原子工具结合大模型自动组合成新工具(不需要花费人力预先定义和拆解原子工具)
案例展示
43%
57%
50%
50%
框架效果先进性
Test集效果 65.12%
Validation集效果 75.15%