告别网络依赖:RD-Agent全流程离线部署指南
你是否曾因网络限制无法部署AI研发工具?是否在涉密环境中难以配置自动化研发流程?本文将带你实现RD-Agent(Research and Development Agent)的完全离线部署,无需外部网络即可搭建AI驱动的自动化研发环境。读完本文后,你将掌握离线环境准备、本地模型配置、依赖包管理和离线运行验证的全流程解决方案。
离线部署准备清单
在开始部署前,请确保已准备以下环境和资源:
| 类别 | 具体要求 | 检查方法 |
|---|---|---|
| 操作系统 | Linux (推荐Ubuntu 20.04+) | lsb_release -a |
| 硬件资源 | 最低16GB内存,建议GPU支持 | nvidia-smi (如无GPU可忽略) |
| 必备软件 | Docker 20.10+ | docker --version |
| 离线资源 | RD-Agent源码、Python依赖包、本地LLM模型 | 项目仓库 |
⚠️ 注意:离线部署需提前在有网络环境中下载所有必要资源,建议准备一个至少100GB的移动存储设备用于传输。
第一步:获取离线安装包
1.1 克隆项目源码
在有网络环境中克隆RD-Agent仓库并打包:
git clone https://gitcode.com/GitHub_Trending/rd/RD-Agent
cd RD-Agent
tar -czvf rd-agent-offline.tar.gz .
将生成的rd-agent-offline.tar.gz传输到目标离线服务器并解压:
tar -xzvf rd-agent-offline.tar.gz -C /opt/
cd /opt/RD-Agent
1.2 下载Python依赖包
创建依赖缓存目录并下载所有依赖:
mkdir -p /opt/pip-offline-cache
pip download -r requirements.txt -d /opt/pip-offline-cache
pip download -r docs/requirements.txt -d /opt/pip-offline-cache
依赖清单可参考项目根目录下的requirements.txt和文档依赖docs/requirements.txt
第二步:配置Docker离线环境
2.1 安装Docker离线包
从Docker官方离线安装页面下载对应系统的二进制包,传输到离线服务器后安装:
# 解压Docker二进制包
tar -xzvf docker-20.10.24.tgz
cp docker/* /usr/bin/
# 注册为系统服务
cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
[Service]
ExecStart=/usr/bin/dockerd
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# 启动Docker服务
systemctl daemon-reload
systemctl start docker
systemctl enable docker
验证Docker安装状态:
docker info
2.2 加载基础镜像
RD-Agent需要多个基础Docker镜像,提前在有网络环境中拉取并保存:
# 在有网络环境中
docker pull python:3.10-slim
docker pull nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04
docker save -o python-3.10-slim.tar python:3.10-slim
docker save -o cuda-11.7.tar nvidia/cuda:11.7.1-cudnn8-runtime-ubuntu20.04
传输镜像文件到离线服务器并加载:
docker load -i python-3.10-slim.tar
docker load -i cuda-11.7.tar
第三步:配置本地LLM模型
RD-Agent支持离线运行Llama2等开源大语言模型,相关配置位于rdagent/oai/llm_conf.py:
3.1 修改配置文件
# rdagent/oai/llm_conf.py
class LLMSettings(ExtendedBaseSettings):
# 启用本地Llama2模型
use_llama2: bool = True
llama2_ckpt_dir: str = "/opt/llama2/Llama-2-7b-chat"
llama2_tokenizer_path: str = "/opt/llama2/Llama-2-7b-chat/tokenizer.model"
# 禁用需要网络的云服务
use_gcr_endpoint: bool = False
chat_use_azure: bool = False
3.2 部署Llama2模型
将Llama2模型文件传输到配置中指定的路径:
mkdir -p /opt/llama2
tar -xzvf Llama-2-7b-chat.tar.gz -C /opt/llama2/
模型文件获取需遵守Meta的使用许可,建议通过Hugging Face Hub下载
第四步:离线安装RD-Agent
4.1 安装Python依赖
使用本地缓存的依赖包安装:
pip install --no-index --find-links=/opt/pip-offline-cache -r requirements.txt
pip install --no-index --find-links=/opt/pip-offline-cache -e .
4.2 配置环境变量
创建.env文件配置离线模式:
# 基础配置
RUNTIME_ENV=offline
LOG_LEVEL=INFO
# 本地模型配置
USE_LLAMA2=True
LLAMA2_CKPT_DIR=/opt/llama2/Llama-2-7b-chat
LLAMA2_TOKENIZER_PATH=/opt/llama2/Llama-2-7b-chat/tokenizer.model
# 缓存设置(启用离线缓存)
USE_CHAT_CACHE=True
USE_EMBEDDING_CACHE=True
DUMP_CHAT_CACHE=True
DUMP_EMBEDDING_CACHE=True
PROMPT_CACHE_PATH=/opt/rdagent/prompt_cache.db
第五步:验证离线部署
5.1 运行基础功能测试
执行项目内置的离线测试用例:
python -m test.utils.test_misc
python -m test.utils.test_env
5.2 启动离线UI界面
RD-Agent提供离线日志查看界面,配置位于rdagent/log/ui/:
# 启动本地Web UI
cd rdagent/log/server
python app.py --offline
访问http://localhost:8000即可查看离线日志和任务状态,界面实现代码可参考rdagent/log/ui/app.py。
5.3 运行示例场景
尝试运行离线数据科学场景(需提前准备示例数据):
# 使用本地模式运行数据科学场景
rdagent run --scenario data_science --offline --data-path /opt/offline-data
场景配置详情可参考rdagent/scenarios/data_science/目录下的实现。
常见问题解决
依赖冲突
症状:pip install时出现版本冲突
解决:使用项目提供的约束文件安装特定版本:
pip install --no-index --find-links=/opt/pip-offline-cache -c constraints/3.10.txt -r requirements.txt
约束文件位于constraints/目录,包含不同Python版本的兼容性配置。
Docker镜像加载失败
症状:docker load时报错"no space left on device"
解决:清理系统空间或扩大Docker存储:
# 查看镜像占用
docker system df
# 清理未使用镜像
docker image prune -a
本地模型运行缓慢
症状:Llama2模型推理速度慢
解决:修改模型配置使用CPU优化参数:
# rdagent/oai/llm_conf.py
llama2_max_batch_size: int = 4 # 降低批处理大小
llama2_num_threads: int = 8 # 设置CPU线程数
离线部署架构说明
RD-Agent的离线部署架构主要通过三个层面实现网络隔离:
graph TD
A[离线环境] --> B[本地存储层]
B --> C[模型缓存]
B --> D[依赖缓存]
B --> E[数据缓存]
A --> F[计算层]
F --> G[Docker容器]
F --> H[本地LLM]
A --> I[应用层]
I --> J[RD-Agent核心]
I --> K[离线UI]
- 存储层:通过rdagent/log/storage.py实现本地数据持久化
- 计算层:使用Docker隔离运行环境,配置见rdagent/app/CI/
- 应用层:核心逻辑在rdagent/core/实现离线模式适配
总结与后续优化
通过本文档的步骤,你已成功在无网络环境中部署RD-Agent。为进一步优化离线体验,建议:
- 定期更新离线资源包,保持与项目仓库同步
- 扩展本地模型支持,可参考rdagent/oai/llm_conf.py添加其他开源模型
- 优化缓存策略,配置文件中的缓存参数可根据实际需求调整
更多高级配置可参考官方文档docs/installation_and_configuration.rst,如有部署问题可查看项目的SUPPORT.md获取帮助。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00