Skip to content
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"version.label": {
"message": "1.1.x",
"description": "The label for version 1.1.x"
},
"sidebar.tutorialSidebar.category.Getting Started": {
"message": "快速上手",
"description": "The label for category 'Getting Started' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.User Guides": {
"message": "用户指南",
"description": "The label for category 'User Guides' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.References": {
"message": "参考",
"description": "The label for category 'References' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Release Notes": {
"message": "版本说明",
"description": "The label for category 'Release Notes' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.model-service": {
"message": "Model Service 参考",
"description": "The label for category 'Model Service References' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.sandbox-agent": {
"message": "Sandbox Agent参考",
"description": "The label for category 'Sandbox Agent References' in sidebar 'tutorialSidebar'"
},
"sidebar.tutorialSidebar.category.Python SDK References": {
"message": "Python SDK 参考",
"description": "The label for category 'Python SDK References' in sidebar 'tutorialSidebar'"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
---
sidebar_position: 3
---

# 安装指南

本文档介绍如何使用 `uv` 和 `pip` 安装和设置 ROCK 开发环境。该项目是一个强化学习开放构建工具包,支持多种组件。

## 使用 uv(推荐)

### 快速安装所有依赖

```bash
# 安装所有依赖(包括可选依赖)
uv sync --all-extras

# 安装开发/测试依赖
uv sync --all-extras --all-groups
```

### 安装不同依赖组

#### 仅核心依赖
```bash
uv sync
```

#### 管理组件依赖
```bash
uv sync --extra admin
```

#### Rocklet 执行环境依赖
```bash
uv sync --extra rocklet
```

#### 所有依赖
```bash
uv sync --all-extras
```

#### 开发/测试依赖
```bash
uv sync --all-extras --group test
```

## 使用 pip

### 从 pip 源安装

#### 仅核心依赖
```bash
pip install rl-rock
```

#### 管理组件依赖
```bash
pip install "rl-rock[admin]"
```

#### Rocklet 执行环境依赖
```bash
pip install "rl-rock[rocklet]"
```

#### 构建器依赖
```bash
pip install "rl-rock[builder]"
```

#### 安装所有可选依赖
```bash
pip install "rl-rock[all]"
```

### 使用 pip 从源码安装

#### 仅核心依赖
```bash
pip install .
```

#### 管理组件依赖
```bash
pip install ".[admin]"
```

#### Rocklet 执行环境依赖
```bash
pip install ".[rocklet]"
```

#### 构建器依赖
```bash
pip install ".[builder]"
```

#### 安装所有可选依赖
```bash
pip install ".[all]"
```

## 可用入口点

该包提供以下命令行脚本:

- `rocklet`: ROCK 执行环境服务器 (rock.rocklet.server:main)
- `admin`: 管理服务器 (rock.admin.main:main)
- `envhub`: 环境中心服务器 (rock.envhub.server:main)
- `rock`: 主 ROCK 命令行接口 (rock.cli.main:main)

## 开发设置

### 使用 uv(推荐)

```bash
# 克隆并设置开发环境
git clone <repository>
cd ROCK
uv sync --all-extras --group test

# 运行测试
uv run pytest


### 使用 pip

```bash
# 开发模式安装所有可选依赖
pip install -e ".[all]"

# 分别安装
pip install -e .
pip install ".[admin]" ".[rocklet]" ".[builder]"
```

## 附加说明

- 项目配置为默认使用阿里云 PyPI 镜像: `https://mirrors.aliyun.com/pypi/simple/`
- 对于本地开发,运行测试需要 `test` 依赖组
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
---
sidebar_position: 2
---

# 快速上手

本指南将通过完整的示例演示如何使用 ROCK 创建和管理强化学习环境。ROCK (Reinforcement Open Construction Kit) 是一个全面的沙箱环境管理框架,主要用于强化学习和AI开发环境。

## 1. 环境准备

我们推荐在 Linux 系统下启动 ROCK,能够尽量复用项目依赖,提升环境拉起速度。如果需要在 macOS 上尝试,可以参考 [MacOS 启动](#7-macos-启动) 一节。

在开始之前,请确保您的系统已安装以下依赖项:

### 1.1 系统要求

- **Docker**: ROCK 使用 Docker 进行容器化环境管理
- **uv**: ROCK 使用 uv 进行依赖管理和虚拟环境创建

### 1.2 验证依赖安装

```bash
# 验证 Docker 安装
docker --version

# 验证 Docker 可用, 且示例中依赖python:3.11镜像
docker pull python:3.11

# 验证 uv 安装
uv --version


```

### 1.3 项目初始化

```bash
# 克隆项目仓库
git clone <repository>
cd ROCK

# 创建虚拟环境(使用 uv 托管的 Python, 以python 3.11 版本为例)
uv venv --python 3.11 --python-preference only-managed

# 安装所有依赖组
uv sync --all-extras
```

> **重要提示**: 为确保 ROCK 能正确挂载项目和虚拟环境及其依赖的 base Python 解释器,强烈推荐使用 uv 托管的 Python 环境而非系统 Python。

## 2. 激活虚拟环境

在运行任何 ROCK 命令之前,需要先激活虚拟环境。确保 sys.base_prefix 是 uv 管理的环境,类似于 `/root/.local/share/uv/python/cpython-3.11.8-linux-x86_64-gnu` 等路径。

```bash
# 激活虚拟环境
source .venv/bin/activate

# 验证 Python 环境
python -c "import sys; print('Base prefix:', sys.base_prefix)"
```

> **验证要点**: 确保输出的 base prefix 路径指向 uv 管理的 Python 环境,而非系统 Python。

## 3. 验证环境配置

激活虚拟环境后,验证依赖安装是否正确:

```bash
# 检查关键依赖
python -c "import rock; print(\"Hello ROCK\")"
```


## 4. 启动 ROCK 服务

激活虚拟环境后,在项目根目录下,启动 ROCK Admin 服务:

```bash
# 确保虚拟环境已激活
source .venv/bin/activate

# 启动 ROCK Admin 服务(本地环境)
rock admin start
```

服务启动后,您将看到类似以下的输出:

```
INFO: Started server process [12345]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
```

> **服务说明**: ROCK Admin 服务默认运行在 `http://127.0.0.1:8080`。

## 5. 运行示例环境

现在可以运行示例环境来验证安装。确保 ROCK 服务正在运行,然后打开一个新的终端窗口执行以下命令:

```bash
# 确保虚拟环境已激活
source .venv/bin/activate

# 运行沙箱示例
python examples/sandbox_demo.py

# 运行 GEM 协议示例
python examples/sokoban_demo.py
```

### 5.1 示例说明

- **sandbox_demo.py**: 演示如何使用 ROCK 的沙箱 SDK 创建和管理容器化环境
- **sokoban_demo.py**: 演示如何使用 ROCK 的 GEM 协议兼容接口创建强化学习环境

> **运行要求**: 确保 ROCK Admin 服务正在运行,因为示例需要与服务进行通信。

## 6. 分布式环境配置(可选)

对于分布式多机器环境,请确保以下配置一致:

1. 所有机器上 ROCK 和 uv 的 Python 配置使用相同的根 Python 解释器
2. Docker 版本在所有节点上保持一致
3. 网络配置允许各节点间正常通信



## 7. MacOS 启动

在 macOS 上,如果需要启动 Linux 镜像的环境,需要先设置环境变量:

```bash
export ROCK_WORKER_ENV_TYPE=uv
```

在容器启动时,会安装对应的 uv 环境,细节可以参考 `rock/rocklet/local_files/docker_run_with_uv.sh` 脚本。

> **注意**: 相比 Linux 系统,macOS 上的启动速度会较慢,且比较依赖网络环境,可以根据实际情况调整脚本。ROCK_WORKER_ENV_TYPE的细节可以参考 [Configuration Guide](../User%20Guides/configuration.md).


## 8. 从Pip源启动

如果从Pip源启动Admin Server,在参照[安装指南](./installation.md)安装完成ROCK后, 需要设置额外环境变量:

```bash
export ROCK_WORKER_ENV_TYPE=pip
```

(这一启动方式在容器环境启动时会从Pypi源上拉取最新的rocklet并安装, 相对启动速度比较慢, 仅推荐测试使用, 生产上依旧推荐其他的启动方式)


## 总结

恭喜!您已经成功完成了 ROCK 的快速开始指南。现在您应该能够:

- 正确设置 ROCK 开发环境
- 使用 uv 管理的 Python 环境
- 启动和管理 ROCK 服务
- 运行示例程序验证安装
- 在分布式环境中配置 ROCK(如果需要)

如需深入了解 ROCK 的更多功能,请参考以下文档:

## 下一步学习

- [配置指南](../User%20Guides/configuration.md) - 详细了解 ROCK 的配置选项
- [API 文档](../References/api.md) - 查看完整的 API 接口
- [Python SDK 文档](../References/Python%20SDK%20References/python_sdk.md) - 学习如何使用 Python SDK 进行开发
- [安装指南](./installation.md) - 详细了解 ROCK 安装和配置
- [概览](../overview.md) - 了解 ROCK 的设计理念
Loading