mirror of
https://github.com/labring/FastGPT.git
synced 2026-05-02 01:02:05 +08:00
567d408158
* action * action * action * build: integrate OpenSandbox as Agent Execution Sandbox (#6490) * Update action (#6571) * action * action * action * action * action * build: integrate OpenSandbox as Agent Execution Sandbox # Conflicts: # deploy/args.json # deploy/dev/docker-compose.cn.yml # deploy/dev/docker-compose.yml # deploy/docker/cn/docker-compose.milvus.yml # deploy/docker/cn/docker-compose.oceanbase.yml # deploy/docker/cn/docker-compose.pg.yml # deploy/docker/cn/docker-compose.seekdb.yml # deploy/docker/cn/docker-compose.zilliz.yml # deploy/docker/global/docker-compose.milvus.yml # deploy/docker/global/docker-compose.oceanbase.yml # deploy/docker/global/docker-compose.pg.yml # deploy/docker/global/docker-compose.seekdb.yml # deploy/docker/global/docker-compose.ziliiz.yml # deploy/templates/docker-compose.prod.yml # document/public/deploy/docker/cn/docker-compose.milvus.yml # document/public/deploy/docker/cn/docker-compose.oceanbase.yml # document/public/deploy/docker/cn/docker-compose.pg.yml # document/public/deploy/docker/cn/docker-compose.seekdb.yml # document/public/deploy/docker/cn/docker-compose.zilliz.yml # document/public/deploy/docker/global/docker-compose.milvus.yml # document/public/deploy/docker/global/docker-compose.oceanbase.yml # document/public/deploy/docker/global/docker-compose.pg.yml # document/public/deploy/docker/global/docker-compose.seekdb.yml # document/public/deploy/docker/global/docker-compose.ziliiz.yml * remove invalid action --------- Co-authored-by: Archer <545436317@qq.com> Co-authored-by: xqvvu <whoeverimf5@gmail.com> * action --------- Co-authored-by: chanzany <chenzhi@sangfor.com.cn> Co-authored-by: xqvvu <whoeverimf5@gmail.com>
196 lines
6.2 KiB
Markdown
196 lines
6.2 KiB
Markdown
# Examples 目录结构
|
||
|
||
本文档说明 `examples/` 目录的组织结构和设计原则。
|
||
|
||
## 📂 目录结构
|
||
|
||
```
|
||
examples/
|
||
├── README.md # 主文档:快速开始、最佳实践
|
||
├── DIRECTORY_STRUCTURE.md # 本文档:目录结构说明
|
||
├── pool-examples.md # 详细的 Pool 配置说明
|
||
│
|
||
├── pool-agent-production.yaml # 🌟 生产级 Agent Pool(推荐)
|
||
├── pool-sdk-compatible.yaml # SDK 基础 Pool(execd only)
|
||
├── pool-sdk-with-tasks.yaml # SDK 完整 Pool(execd + task-executor)
|
||
│
|
||
├── batchsandbox-basic.yaml # Non-pooled 模式示例
|
||
└── batchsandbox-with-tasks.yaml # Pooled 批量任务示例
|
||
```
|
||
|
||
## 📝 文件分类
|
||
|
||
### Pool 配置文件(3 个)
|
||
|
||
| 文件 | 类型 | SDK 支持 | 自定义 entrypoint | 推荐度 |
|
||
|------|------|----------|-----------------|--------|
|
||
| `pool-agent-production.yaml` | 生产级 | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
|
||
| `pool-sdk-with-tasks.yaml` | 完整功能 | ✅ | ✅ | ⭐⭐⭐⭐ |
|
||
| `pool-sdk-compatible.yaml` | 基础功能 | ✅ | ❌ | ⭐⭐⭐ |
|
||
|
||
**选择建议**:
|
||
- **生产环境**:使用 `pool-agent-production.yaml`(包含详细注释和最佳实践)
|
||
- **快速测试**:使用 `pool-sdk-with-tasks.yaml`(更简洁)
|
||
- **特殊需求**:如果不需要自定义 entrypoint,使用 `pool-sdk-compatible.yaml`
|
||
|
||
### BatchSandbox 配置文件(2 个)
|
||
|
||
| 文件 | 模式 | 依赖 | 用途 |
|
||
|------|------|------|------|
|
||
| `batchsandbox-basic.yaml` | Non-pooled | 无 | 演示直接创建 Pod |
|
||
| `batchsandbox-with-tasks.yaml` | Pooled | Pool | 演示批量异构任务 |
|
||
|
||
**使用说明**:
|
||
- **SDK 场景**:通常不需要手动创建 BatchSandbox(SDK 自动创建)
|
||
- **kubectl 场景**:用于批量任务执行(RL 训练、压力测试等)
|
||
|
||
### 文档文件(3 个)
|
||
|
||
| 文件 | 内容 | 面向用户 |
|
||
|------|------|---------|
|
||
| `README.md` | 快速开始、最佳实践、故障排查 | 所有用户 |
|
||
| `pool-examples.md` | Pool 详细配置说明 | 高级用户 |
|
||
| `DIRECTORY_STRUCTURE.md` | 目录结构说明 | 开发者 |
|
||
|
||
## 🎯 设计原则
|
||
|
||
### 1. 简化选择
|
||
|
||
**问题**:之前有太多相似的示例(pool-basic, pool-with-execd, pool-with-task-executor...),用户不知道选哪个。
|
||
|
||
**解决**:
|
||
- 保留 3 个 Pool 示例,明确分类和推荐度
|
||
- 删除误导性示例(pool-basic 无 execd,pool-with-task-executor 无 execd)
|
||
- 突出推荐 `pool-agent-production.yaml`
|
||
|
||
### 2. 面向实际场景
|
||
|
||
**问题**:示例文件缺乏实际使用场景说明。
|
||
|
||
**解决**:
|
||
- 明确标注适用场景(Agent 服务、RL 训练、压力测试等)
|
||
- 提供完整的 SDK 使用代码示例
|
||
- 包含部署、验证、监控的完整流程
|
||
|
||
### 3. 最佳实践优先
|
||
|
||
**问题**:缺少生产级配置参考。
|
||
|
||
**解决**:
|
||
- 创建 `pool-agent-production.yaml` 包含:
|
||
- 详细的配置注释
|
||
- 容量规划建议
|
||
- 安全最佳实践
|
||
- 监控和调试指南
|
||
|
||
### 4. 纠正常见误区
|
||
|
||
**问题**:用户容易误解 Pool 的使用方式。
|
||
|
||
**解决**:
|
||
- 在 README.md 中突出"常见误区"章节
|
||
- 明确说明:
|
||
- Pool 是 Pod 池,不是 Sandbox 池
|
||
- 不需要预创建 BatchSandbox
|
||
- SDK 每次 create() 创建新 BatchSandbox
|
||
|
||
## 🔄 文件变更历史
|
||
|
||
### 删除的文件(4 个)
|
||
|
||
| 文件 | 删除原因 |
|
||
|------|---------|
|
||
| `pool-basic.yaml` | 无 execd,SDK 无法使用,误导性 |
|
||
| `pool-with-task-executor.yaml` | 只有 task-executor 无 execd,不完整 |
|
||
| `pool-with-execd.yaml` | execd 启动方式不标准,已被 pool-sdk-compatible.yaml 替代 |
|
||
| `batchsandbox-pooled.yaml` | 依赖不存在的 basic-pool,无效 |
|
||
|
||
### 新增的文件(1 个)
|
||
|
||
| 文件 | 内容 |
|
||
|------|------|
|
||
| `pool-agent-production.yaml` | 生产级 Agent Pool 配置,包含详细注释和最佳实践 |
|
||
|
||
### 修改的文件(3 个)
|
||
|
||
| 文件 | 修改内容 |
|
||
|------|---------|
|
||
| `README.md` | 重写,添加场景分类、常见误区、容量规划等 |
|
||
| `batchsandbox-with-tasks.yaml` | 修改 poolRef 为 agent-pool,添加注释 |
|
||
| `batchsandbox-basic.yaml` | 添加详细注释说明 |
|
||
|
||
## 📊 使用场景映射
|
||
|
||
### 场景 A:多 Agent 并发使用
|
||
|
||
```
|
||
用户需求: Agent 服务、Code Interpreter、动态工作流
|
||
↓
|
||
推荐配置: pool-agent-production.yaml
|
||
↓
|
||
使用方式: SDK 动态创建 sandbox
|
||
↓
|
||
流程: Helm 部署 Pool → SDK.create() → SDK.kill()
|
||
```
|
||
|
||
### 场景 B:批量任务执行
|
||
|
||
```
|
||
用户需求: RL 训练、压力测试、批量数据处理
|
||
↓
|
||
推荐配置: pool-agent-production.yaml + batchsandbox-with-tasks.yaml
|
||
↓
|
||
使用方式: kubectl 创建 BatchSandbox
|
||
↓
|
||
流程: kubectl apply pool → kubectl apply batchsandbox → 自动清理
|
||
```
|
||
|
||
### 场景 C:测试和开发
|
||
|
||
```
|
||
用户需求: 测试特定镜像、验证功能
|
||
↓
|
||
推荐配置: batchsandbox-basic.yaml (non-pooled)
|
||
↓
|
||
使用方式: kubectl 直接创建
|
||
↓
|
||
流程: kubectl apply → kubectl delete
|
||
```
|
||
|
||
## 🔗 相关资源
|
||
|
||
- **深度分析**:`/data/home/cz/sandbox-test/pool-analysis/`
|
||
- Pool 使用指南
|
||
- 架构流程图
|
||
- 验证测试脚本
|
||
|
||
- **Helm 配置**:`/data/home/cz/OpenSandbox/kubernetes/helm-chart/`
|
||
- `values.yaml` - 默认配置
|
||
- `values-e2e.yaml` - E2E 测试配置
|
||
- 生产/开发环境配置:使用 `--set` 或自定义 values 文件
|
||
|
||
- **主文档**:`/data/home/cz/OpenSandbox/kubernetes/README.md`
|
||
- Kubernetes 部署完整指南
|
||
|
||
## 💡 维护建议
|
||
|
||
### 添加新示例时
|
||
|
||
1. **明确场景**:每个示例应对应明确的使用场景
|
||
2. **完整注释**:包含配置说明、使用方式、注意事项
|
||
3. **验证测试**:确保示例可以正常运行
|
||
4. **更新文档**:同步更新 README.md 和本文档
|
||
|
||
### 修改现有示例时
|
||
|
||
1. **保持兼容**:避免破坏性变更
|
||
2. **版本说明**:在注释中说明版本要求
|
||
3. **测试验证**:修改后进行完整测试
|
||
4. **文档同步**:更新相关文档
|
||
|
||
### 删除示例时
|
||
|
||
1. **评估影响**:确认没有外部依赖
|
||
2. **提供替代**:在文档中说明替代方案
|
||
3. **迁移指南**:如果有用户使用,提供迁移步骤
|