京东云轻量云主机搭建JoyAgent-Genie
JoyAgent-Genie是一个通用的多智能体框架,对于用户需要定制的一些新场景功能,只需将相关的子智能体或者工具挂载到JoyAgent-Genie即可。为了验证JoyAgent-JDGenie的通用性,在GAIA榜单准确率达到75.15%,已超越OWL(CAMEL)、Smolagent(Huggingface)、LRC-Huawei(Huawei)、xManus(OpenManus)、Auto
当前相关开源agent主要是SDK或者框架,用户还需基于此做进一步的开发,无法直接做到开箱即用。我们开源的JoyAgent-Genie是端到端的多Agent产品,对于输入的query或者任务,可以直接回答或者解决。例如用户query"给我做一个最近美元和黄金的走势分析",JoyAgent-Genie可以直接给出网页版或者PPT版的报告文档。
JoyAgent-JDGenie是一个通用的多智能体框架,对于用户需要定制的一些新场景功能,只需将相关的子智能体或者工具挂载到JoyAgent-Genie即可。为了验证JoyAgent-Genie的通用性,在GAIA榜单准确率达到75.15%,已超越OWL(CAMEL)、Smolagent(Huggingface)、LRC-Huawei(Huawei)、xManus(OpenManus)、AutoAgent(香港大学)等行业知名产品。
通过京东云2c2g的轻量云主机,即可快速搭建自己的agent服务 京东云轻量云主机
一、环境准备
仓库地址:https://github.com/jd-opensource/joyagent-jdgenie
1. yum源配置
本案例通过Centos8.2的轻量云主机进行测试,轻量云的默认京东yum源可能会无法使用,所以建议进行修改
# 备份之前的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
vi /etc/yum.repos.d/CentOS-Base.repo
# 添加如下内容
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
[BaseOS]
name=CentOS-$releasever - Base - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[extras]
name=CentOS-$releasever - Extras - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[centosplus]
name=CentOS- - Plus - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[cr]
name=CentOS-$releasever - cr - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/cr/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[Devel]
name=CentOS-$releasever - Devel WARNING! FOR BUILDROOT USE ONLY! - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/Devel/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[fasttrack]
name=CentOS-$releasever - fasttrack - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/fasttrack/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[AppStream]
name=CentOS-$releasever - AppStream - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[HighAvailability]
name=CentOS-$releasever - HA - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/HighAvailability/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.jdcloudcs.com
baseurl=http://mirrors.jdcloudcs.com/centos-vault/8.2.2004/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
2. 安装python>=3.11
# 1. 安装依赖
sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make -y
# 2. 下载 Python 3.11 源码
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz
sudo tar xzf Python-3.11.8.tgz
# 3. 编译安装
cd Python-3.11.8
sudo ./configure --enable-optimizations
sudo make altinstall # 使用 altinstall 避免覆盖系统 Python
# 4. 验证安装
python3.11 --version
# 应输出: Python 3.11.x
# 5. 设置 pip
python3.11 -m ensurepip --upgrade
sudo ln -sf /usr/local/bin/python3.11 /usr/bin/python
sudo ln -sf /usr/local/bin/pip3.11 /usr/bin/pip
Python环境如果中缺少SQLite3模块支持,可以参考下面流程进行安装。
2.1. 安装SQLite开发库
# CentOS/RHEL 8
sudo dnf install sqlite-devel -y
# 检查安装是否成功
rpm-qa | grep sqlite-devel
2.2. 重新编译安装Python 3.11
# 进入Python源码目录
cd /usr/src/Python-3.11.8
# 清理之前的编译
sudo make clean
# 重新配置(确保包含SQLite支持)
sudo ./configure --enable-optimizations --enable-loadable-sqlite-extensions
# 重新编译安装
sudo make altinstall
# 验证安装
python -c"import sqlite3; print(sqlite3.sqlite_version)"
3. 安装java>=17
# 1. 导入 Amazon Corretto 密钥
sudo rpm --import https://yum.corretto.aws/corretto.key
# 2. 添加 Corretto 仓库
sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo
# 3. 安装 JDK 17
sudo yum install java-17-amazon-corretto-devel -y
# 4. 验证安装
java -version
# 应输出: openjdk 17.0.x (Amazon Corretto)
4. 安装maven
# 1. 下载新版 Maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz
# 2. 解压到 /opt 目录
sudo tar xzf apache-maven-3.9.11-bin.tar.gz -C /opt
# 3. 创建符号链接(方便版本管理)
sudo ln -s /opt/apache-maven-3.9.11 /opt/maven
# 4. 设置环境变量
echo 'export MAVEN_HOME=/opt/maven' | sudo tee /etc/profile.d/maven.sh
echo 'export PATH=$MAVEN_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
# 5. 验证安装
mvn -v
# 应输出:Apache Maven 3.9.11
5. 安装node
# 1. 清理旧版 Node.js(如已安装)
sudo yum remove nodejs npm -y
# 2. 安装基础依赖
sudo yum install -y gcc-c++ make
# 3. 添加 NodeSource 仓库(Node.js 18)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
# 4. 安装 Node.js 18
sudo yum install -y nodejs
# 5. 验证安装
node -v # 应输出 v18.x.x
npm -v # 应输出 9.x.x 或更高
sudo npm install -g pnpm
6. 安装依赖包
进入genie-tool安装虚拟环境的依赖包
pip install uv
uv sync --default-index https://pypi.tuna.tsinghua.edu.cn/simple/
其他模块的依赖通过一键部署脚本可自动安装,所以无需手动操作
二、项目配置
1.genie-backend配置
genie-backend/src/main/resources/application.yml
...
llm:
default:
base_url: https://xxxxx.com
apikey: xxxxxx
model: deepseek-chat
max_tokens: 8192
...
# 所有的model_name都修改为要用的模型名称,配置文件中共有4处model_name需要修改
model_name: deepseek-chat
2.genie-tool配置
genie-tool/.env_template
# 可通过openai地址配置集团的大模型网关
#OPENAI_API_KEY=<your api key>
#OPENAI_BASE_URL=<your base url>
DEEPSEEK_API_KEY=xxxxx
DEEPSEEK_BASE_URL=https://xxxxxxx/v1
# <a href="https://docs.litellm.ai/docs/providers">其他模型支持文档</a>
# ANTHROPIC_API_KEY=<or anthropic api key>
# ANTHROPIC_API_BASE=<your base url>
# 敏感词过滤
SENSITIVE_WORD_REPLACE=true
# 文件系统路径配置
FILE_SAVE_PATH=file_db_dir
SQLITE_DB_PATH=autobots.db
# 本机的ip地址
FILE_SERVER_URL=http://127.0.0.1:1601/v1/file_tool
# DeepSearch 配置
USE_JD_SEARCH_GATEWAY=false
USE_SEARCH_ENGINE=serp
SEARCH_COUNT=10
SEARCH_TIMEOUT=10
SEARCH_THREAD_NUM=5
# 需要使用的模型,如果是使用的openai地址,可直接填写模型名称如 gpt-4.1
DEFAULT_MODEL=deepseek/deepseek-chat
QUERY_DECOMPOSE_MODEL=${DEFAULT_MODEL}
QUERY_DECOMPOSE_THINK_MODEL=${DEFAULT_MODEL}
QUERY_DECOMPOSE_MAX_SIZE=5
SEARCH_REASONING_MODEL=${DEFAULT_MODEL}
SEARCH_ANSWER_MODEL=${DEFAULT_MODEL}
SEARCH_ANSWER_LENGTH=10000
REPORT_MODEL=${DEFAULT_MODEL}
SINGLE_PAGE_MAX_SIZE=0
# 多个搜索地址配置一个即可,必须配置!
#BING_SEARCH_URL=
#BING_SEARCH_API_KEY=
#
#JINA_SEARCH_URL=https://s.jina.ai/
#JINA_SEARCH_API_KEY=
#
#SOGOU_SEARCH_URL=
#SOGOU_SEARCH_API_KEY=
# 本文以SERPER为例
SERPER_SEARCH_URL=https://google.serper.dev/search
SERPER_SEARCH_API_KEY=xxxxxx
# Code Interpreter 配置
CODE_INTEPRETER_MODEL=${DEFAULT_MODEL}
3.外网访问配置(可选)
如果需要通过外网环境访问,需要修改以下文件的中的服务地址
3.1.ui模块
ui/src/utils/querySSE.ts
import { fetchEventSource, EventSourceMessage } from '@microsoft/fetch-event-source';
const customHost = window.SERVICE_BASE_URL || 'http://xxx.xxx.xxx.xxx:8080';
const DEFAULT_SSE_URL = `${customHost}/web/api/v1/gpt/queryAgentStreamIncr`;
ui/vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
import tailwindcss from '@tailwindcss/vite';
const serverBaseUrl = 'http://xxx.xxx.xxx.xxx:8080';
......
3.2.genie-tool模块
genie-tool/.env_template
......
# 敏感词过滤
SENSITIVE_WORD_REPLACE=true
# 文件系统路径配置
FILE_SAVE_PATH=file_db_dir
SQLITE_DB_PATH=autobots.db
FILE_SERVER_URL=http://xx.xx.xxx.xxx:1601/v1/file_tool
......
三、项目启动
1. 启动检查
首次启动需要进行端口和依赖的的检查,通过执行根目录下的check_dep_port.sh脚本
sh check_dep_port.sh

2. 一键启动
执行根目录下的Genie_start.sh脚本进行一键启动
sh Genie_start.sh

ps:该脚本通过在项目根目录下生成.first_run_completed隐藏文件的方式,实现仅在第一次启动时会对后端genie_backend模块进行build。如果后期还想对项目进行build,可删除上述隐藏文件后再执行脚本或者在genie_backend目录下执行build.sh脚本。
访问3000端口即可

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐



所有评论(0)