京东最近开源了一款重磅产品——端到端通用多智能体框架 JoyAgent-JDGenie,在 GAIA 基准测试上取得了 75.15% 的准确率,超过了 OWL(CAMEL)、OpenManus 等多款知名开源智能体。下面为你一篇完整的技术博客,涵盖核心原理、框架对比、系统架构、快速上手及二次开发示例。
为什么要关注?
分类 | 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产品(产品) | 否 |
Agent | Score | Level1 | Level2 | Level3 | 机构 |
---|---|---|---|---|---|
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.6424 | 0.7547 | 0.6512 | 0.3846 | 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.4060 | 0.5283 | 0.4302 | 0.0769 | Huawei |
xManus | 0.4061 | 0.8113 | 0.2791 | 0.0000 | OpenManus |
JDK 17
Python 3.11
安装依赖:
pip install uv
cd genie-tool
uv sync
source .venv/bin/activate
第一次初始化:
sh start_genie_init.sh
后续启动:
sh start_genie.sh
在 genie-backend/src/main/resources/application.yml
中配置:
mcp_server_url: "http://ip1:port1/sse,http://ip2:port2/sse"
启动服务:
sh start_genie.sh
示例:挂载 12306 火车票查询工具,直接对话获取票务信息。
/**
* 工具基接口
*/
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 "今日天气晴朗";
}
}
在 GenieController#buildToolCollection
中引入:
WeatherTool weatherTool = new WeatherTool();
toolCollection.addTool(weatherTool);
然后重启 sh start_genie.sh
即可上线该 Agent。
GitHub 地址: https://github.com/MaoTouHU/JD-OpenManus
欢迎大家 Clone、Star、PR,一起探索多智能体产品化的无限可能!