# AutoGPT 自主代理

## 概览

[AutoGPT](https://github.com/Significant-Gravitas/AutoGPT) 是开创性的开源自主 AI 代理平台，拥有 **175K+ GitHub 星标** —— 是 GitHub 上星标最多的仓库之一。最初是 2023 年走红的 Python CLI 工具，AutoGPT 已演变为具有 Web 前端、可视化工作流构建器、多代理编排以及自我改进代理基准套件的全功能平台。

当前的 AutoGPT 平台由以下部分组成：

* **前端** —— Next.js 可视化代理构建器（端口 3000）
* **后端 / API** —— 处理代理执行的 FastAPI 服务（端口 8000）
* **代理执行器** —— 运行自治任务循环的 Python 工作进程
* **Postgres** —— 用于代理状态与运行的持久化存储
* **Redis** —— 作业队列与发布/订阅
* **Minio** —— 用于代理产物的兼容 S3 的对象存储

在 **Clore.ai**，AutoGPT 完全在 CPU 上运行（将 LLM 调用委托给云端 API），使其在以下成本下实惠可用： **每小时 $0.05–0.20**。您可以选择通过其兼容 OpenAI 的提供者支持集成本地模型。

**主要功能：**

* 🤖 **自治代理** —— 代理将任务分解为子目标并迭代执行它们
* 🌐 **网页浏览** —— 代理可以搜索网络、抓取页面并综合信息
* 💻 **代码执行** —— 为编程代理提供沙箱化的 Python 执行环境
* 📁 **文件操作** —— 在任务执行过程中读取、写入和管理文件
* 🔗 **多代理** —— 生成专门的子代理并分层编排它们
* 🧠 **长期记忆** —— 基于向量的记忆，跨会话持久化
* 📈 **代理基准测试** —— 内置的 AgentBenchmark 套件用于评估代理性能

***

## 要求

AutoGPT 的计算需求取决于您是使用云端 LLM API（默认）还是本地模型。平台本身是轻量的。

| 配置                   | GPU        | 显存    | 系统内存  | 磁盘     | Clore.ai 价格     |
| -------------------- | ---------- | ----- | ----- | ------ | --------------- |
| **最小** （云端 API）      | 无 / 仅 CPU  | —     | 4 GB  | 20 GB  | 约 $0.05/小时（CPU） |
| **标准**               | 无 / 仅 CPU  | —     | 8 GB  | 40 GB  | 约 $0.08/小时      |
| **推荐**               | 无 / 仅 CPU  | —     | 16 GB | 60 GB  | 约 $0.12/小时      |
| **+ 本地 LLM（Ollama）** | 速度         | 24 GB | 16 GB | 80 GB  | \~$0.20/小时      |
| **+ 大型本地 LLM**       | A100 40 GB | 40 GB | 32 GB | 100 GB | 约 $0.80/小时      |

> **注意：** AutoGPT 默认使用基于 API 的 LLM（如 OpenAI GPT-4、Anthropic Claude 等）。只有在您通过 Ollama 或其他兼容 OpenAI 的服务器配置本地模型端点时，GPU 才有用。

### 需要 API 密钥

您至少需要以下其中之一：

* **OpenAI API 密钥** （建议使用 GPT-4o 以获得最佳代理性能）
* **Anthropic API 密钥** （Claude 3.5 Sonnet 对代理非常出色）
* **Google AI 密钥** （支持 Gemini 模型）

***

## 快速开始

### 1. 租用 Clore.ai 服务器

登录到 [clore.ai](https://clore.ai) 并启动具有以下配置的服务器：

* **2+ 个 CPU 内核，8 GB 内存** 最低要求
* 暴露的端口 **8000** （后端 API）和 **3000** （前端）
* 启用 SSH 访问
* **20+ GB 磁盘空间**

### 2. 连接到服务器

```bash
ssh root@<clore-server-ip> -p <ssh-port>

# 更新软件包
apt-get update && apt-get upgrade -y

# 验证 Docker 和 Compose
docker --version
docker compose version   # 必须是 v2.x
```

### 3. 克隆并配置 AutoGPT

```bash
# 克隆仓库
git clone https://github.com/Significant-Gravitas/AutoGPT.git
cd AutoGPT/autogpt_platform

# 复制环境模板
cp .env.example .env

# 编辑环境文件
nano .env
```

### 4. 设置必需的环境变量

```bash
# .env 中的最低要求：

# ── LLM 提供者（至少选择一个） ────────────────────────────────────────
OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=sk-ant-...

# ── 密钥（请更改这些） ──────────────────────────────────────────────────
APP_SECRET_KEY=$(openssl rand -hex 32)
JWT_SECRET_KEY=$(openssl rand -hex 32)

# ── 数据库 ─────────────────────────────────────────────────────────────────
DATABASE_URL=postgresql://postgres:password@db:5432/autogpt

# ── 后端 URL（设置为您的 Clore 服务器 IP） ────────────────────────────────
NEXT_PUBLIC_AGPT_SERVER_URL=http://<clore-server-ip>:8000/api
```

### 5. 构建并启动

```bash
# 构建镜像并启动所有服务（第一次运行需 5-10 分钟）
docker compose up -d --build

# 观察构建和启动进度
docker compose logs -f

# 启动后，验证所有容器均在运行
docker compose ps
```

### 6. 验证服务健康状态

```bash
# 检查每个服务
docker compose ps

# 预期的运行服务：
# autogpt_platform-db-1        Up (healthy)
# autogpt_platform-redis-1     Up
# autogpt_platform-minio-1     Up
# autogpt_platform-backend-1   Up
# autogpt_platform-frontend-1  Up
# autogpt_platform-executor-1  Up

# 测试后端 API
curl http://localhost:8000/api/health
# 预期：{"status": "ok"}
```

### 7. 访问 AutoGPT

在浏览器中打开：

* **前端：** `http://<clore-server-ip>:3000`
* **后端 API：** `http://<clore-server-ip>:8000`
* **API 文档（Swagger）：** `http://<clore-server-ip>:8000/docs`

在前端创建账号，在设置中配置您的 LLM 提供者，然后开始构建代理。

***

## 配置

### 完整 `.env` 参考

```bash
# ── 应用配置 ──────────────────────────────────────────────────────────────
ENVIRONMENT=production
APP_SECRET_KEY=<使用 openssl rand -hex 32 生成>
JWT_SECRET_KEY=<使用 openssl rand -hex 32 生成>
ALLOWED_ORIGINS=http://<clore-server-ip>:3000

# ── LLM 提供者 ────────────────────────────────────────────────────────────
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GROQ_API_KEY=gsk_...

# ── 兼容 OpenAI（用于通过 Ollama/vLLM 使用本地模型） ────────────────────
OPENAI_API_BASE=http://localhost:11434/v1   # Ollama 的兼容 OpenAI 端点
OPENAI_API_KEY=ollama                        # Ollama 用的虚拟密钥

# ── 数据库 ─────────────────────────────────────────────────────────────────
DATABASE_URL=postgresql://postgres:password@db:5432/autogpt
POSTGRES_USER=postgres
POSTGRES_PASSWORD=password    # 在生产环境中请更改！
POSTGRES_DB=autogpt

# ── Redis（作业队列） ────────────────────────────────────────────────────────
REDIS_URL=redis://redis:6379/0

# ── Minio（对象存储） ──────────────────────────────────────────────────
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin   # 在生产环境中请更改！
MINIO_URL=http://minio:9000

# ── 前端 ─────────────────────────────────────────────────────────────────
NEXT_PUBLIC_AGPT_SERVER_URL=http://<clore-server-ip>:8000/api
NEXTAUTH_SECRET=<使用 openssl rand -hex 32 生成>
NEXTAUTH_URL=http://<clore-server-ip>:3000
```

### 自定义代理能力

```bash
# 启用网页浏览功能
WEB_BROWSER_ENABLED=true
SELENIUM_CHROME_DRIVER_URL=http://selenium:4444/wd/hub

# 在 docker-compose 中添加 Selenium 以启用网页浏览：
# services:
#   selenium:
#     image: selenium/standalone-chrome:latest
#     shm_size: 2gb
#     ports:
#       - "4444:4444"

# 文件系统访问（代理工作区）
WORKSPACE_PATH=/workspace
RESTRICT_TO_WORKSPACE=true
```

### 管理代理执行器扩展

```bash
# 为并行代理运行扩展执行器工作进程
docker compose up -d --scale executor=4

# 监控执行器日志
docker compose logs -f executor
```

***

## GPU 加速

AutoGPT 默认将所有 LLM 推理委托给外部提供者。要使用本地 GPU 加速模型：

### 连接到与服务器相同主机上的 Ollama

```bash
# 在 Clore 服务器上安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 拉取可用模型（Llama 3 70B 需要 A100，8B 可在 RTX 3090 上运行）
ollama pull llama3:8b
# 为获得最佳代理性能：
ollama pull llama3.1:70b   # 需要 A100 40GB 及以上

# 使 Ollama 可被 Docker 容器访问
OLLAMA_HOST=0.0.0.0 ollama serve &

# 测试兼容 OpenAI 的端点
curl http://localhost:11434/v1/models
```

在 `.env`，将 AutoGPT 指向 Ollama：

```bash
OPENAI_API_BASE=http://host.docker.internal:11434/v1
OPENAI_API_KEY=ollama
OPENAI_DEFAULT_MODEL=llama3.1:70b
```

> **性能说明：** 自治代理会进行大量连续的 LLM 调用。RTX 3090 上的本地模型（约 30 tok/s）可用，但 A100 80GB 可实现更快的迭代。参见 [GPU 对比](https://docs.clore.ai/guides/guides_v2-zh/kuai-su-ru-men/gpu-comparison).

### 针对代理的本地模型推荐

| A100                  | 代理质量 | 显存    | Clore GPU |
| --------------------- | ---- | ----- | --------- |
| Llama 3 8B            | 一般   | 8 GB  | RTX 3080  |
| Llama 3.1 8B Instruct | 良好   | 8 GB  | RTX 3080  |
| Llama 3.1 70B         | 优秀   | 40 GB | 按日费率      |
| Mixtral 8x7B          | 良好   | 24 GB | 速度        |
| Qwen 2.5 72B          | 优秀   | 40 GB | 按日费率      |

***

## 提示与最佳实践

### 在 Clore.ai 上的成本管理

```bash
# AutoGPT 最大的成本通常是 LLM API 调用，而非计算资源
# 在代理配置中设置 token 预算限制：
# MAX_TOKENS_PER_RUN=100000
# MAX_COST_PER_RUN=1.00   # 美元

# 在停止 Clore 实例前备份代理状态
docker exec autogpt_platform-db-1 \
  pg_dump -U postgres autogpt | gzip > autogpt-backup-$(date +%Y%m%d).sql.gz

# 复制到本地机器
scp -P <port> root@<ip>:autogpt-backup-*.sql.gz ./
```

### 更新 AutoGPT

```bash
cd AutoGPT

# 拉取最新更改
git pull origin master

cd autogpt_platform

# 使用新代码重建
docker compose down
docker compose up -d --build

# 如有需要，运行数据库迁移
docker compose exec backend alembic upgrade head
```

### 监控代理运行

```bash
# 观察后端日志以了解代理活动
docker compose logs -f backend executor

# 在代理运行期间监控系统资源
htop
# 或
docker stats

# 通过 API 查看代理运行历史
curl http://localhost:8000/api/v1/runs | python3 -m json.tool
```

### 安全加固

```bash
# 切勿在无认证的情况下将端口 8000/3000 直接暴露到互联网
# 使用 Nginx 或 Caddy 作为带 HTTPS 的反向代理：

# Caddyfile：
# autogpt.yourdomain.com {
#     reverse_proxy localhost:3000
# }
# api.autogpt.yourdomain.com {
#     reverse_proxy localhost:8000
# }

# 限制代理的文件系统访问
RESTRICT_TO_WORKSPACE=true
WORKSPACE_PATH=/agent-workspace

# 初始设置完成后禁用用户注册
ALLOW_SIGNUP=false
```

### 优化构建时间

```bash
# 首次构建较慢（约 10 分钟）；后续构建会使用缓存
# 使用 BuildKit 以加快构建：
DOCKER_BUILDKIT=1 docker compose up -d --build

# 预拉取基础镜像以加快构建速度
docker pull python:3.11-slim
docker pull node:20-alpine
```

***

## # 使用固定种子以获得一致结果

### 构建因内存不足失败

```bash
# Docker 构建需要足够内存（4GB+）
# 如有需要，添加交换空间：
fallocate -l 8G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# 使其永久生效
echo '/swapfile none swap sw 0 0' >> /etc/fstab
```

### 后端返回 500 / “数据库未就绪”

```bash
# 检查数据库健康状态
docker compose ps db
docker compose logs db

# 手动运行数据库迁移
docker compose exec backend alembic upgrade head

# 如果迁移失败，请检查 .env 中的 DATABASE_URL
docker compose exec backend printenv DATABASE_URL
```

### 前端显示“无法连接到后端”

```bash
# 验证 NEXT_PUBLIC_AGPT_SERVER_URL 是否设置正确
grep NEXT_PUBLIC_AGPT_SERVER_URL .env

# 必须是公网 IP，而不是 localhost（浏览器会发起该请求）
NEXT_PUBLIC_AGPT_SERVER_URL=http://<clore-server-ip>:8000/api

# 更改该环境变量后需重建前端
docker compose up -d --build frontend
```

### 代理执行器崩溃 / 被 OOM 杀死

```bash
free -h
docker stats autogpt_platform-executor-1

# 限制执行器内存并添加重启策略
# 在 docker-compose.yaml 中：
#   executor:
#     mem_limit: 2g
#     restart: unless-stopped

# 或减少并发代理运行数
MAX_CONCURRENT_RUNS=2
```

### Redis 连接被拒绝

```bash
# 检查 Redis 是否在运行
docker compose ps redis
docker compose logs redis

# 从后端测试连通性
docker compose exec backend redis-cli -h redis ping
# 预期：PONG

# 如果 Redis 需要认证，请设置：
REDIS_URL=redis://:password@redis:6379/0
```

### 代理陷入循环

```bash
# AutoGPT 代理有时会进入无限循环
# 设置最大循环次数限制：
MAX_AGENT_CYCLES=50

# 或通过 API 中断正在运行的代理：
curl -X POST http://localhost:8000/api/v1/runs/<run-id>/stop
```

***

## 延伸阅读

* [AutoGPT 官方文档](https://docs.agpt.co)
* [AutoGPT GitHub 仓库](https://github.com/Significant-Gravitas/AutoGPT)
* [AutoGPT 平台安装指南](https://docs.agpt.co/platform/getting-started)
* [在 Clore.ai 上运行 Ollama](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/ollama)
* [在 Clore.ai 上运行 vLLM](https://docs.clore.ai/guides/guides_v2-zh/yu-yan-mo-xing/vllm)
* [Clore.ai GPU 对比](https://docs.clore.ai/guides/guides_v2-zh/kuai-su-ru-men/gpu-comparison)
* [AutoGPT Discord 社区](https://discord.gg/autogpt)
