# Cài đặt Codex làm backend cho OpenClaw

### Mục tiêu

Cấu hình OpenClaw dùng tài khoản ChatGPT/Codex làm model provider chính.

Sau khi hoàn tất:

- Discord / Telegram / Web UI
- → OpenClaw Gateway
- → OpenAI/Codex OAuth
- → openai/gpt-5.5
- → OpenClaw trả lời lại người dùng

<p class="callout warning">**Lưu ý:**  
Cách này dùng tài khoản ChatGPT/Codex của bạn → Usage/quota dùng chung với Codex</p>

## Tóm tắt nhanh

Các bước chính:

1. Đăng nhập OpenAI/Codex OAuth
2. Kiểm tra auth profile
3. Set model chính: openai/gpt-5.5
4. Xóa fallback cũ nếu có
5. Tùy chọn tắt thinking
6. Restart OpenClaw Gateway
7. Test qua Web UI / Discord / Telegram

### Điều kiện trước khi làm

Có tài khoản ChatGPT có đăng ký subscription và có thể sử dụng Codex.

Có container OpenClaw Gateway đã chạy và có thể truy cập.

### Đăng nhập OpenAI/Codex OAuth

Chạy trên Docker host:

```
docker exec -it openclaw-gateway \
  node dist/index.js models auth login --provider openai --device-code
```

OpenClaw sẽ hiện hướng dẫn đăng nhập dạng device code.

Làm theo hướng dẫn:

- Mở link đăng nhập được in ra
- Nhập code nếu được yêu cầu
- Đăng nhập bằng tài khoản ChatGPT/Codex
- Cho phép kết nối

Khi thành công, output sẽ gần giống:

```
Auth profile: openai:your-email@example.com (openai/oauth)
Default model available: openai/gpt-5.5
```

### Kiểm tra auth profile

Chạy:

```
docker exec -it openclaw-gateway \
  node dist/index.js models auth list --provider openai
```

Kết quả cần thấy profile kiểu:

```
openai:your-email@example.com
```

Nếu chưa thấy profile, chạy lại bước đăng nhập OAuth.

### Đặt Codex/OpenAI làm model chính

Đặt model chính:

```
docker exec -it openclaw-gateway \
  node dist/index.js config set agents.defaults.model.primary openai/gpt-5.5
```

Xóa fallback cũ nếu có:

```
docker exec -it openclaw-gateway \
  node dist/index.js config unset agents.defaults.model.fallbacks
```

Kiểm tra lại:

```
docker exec -it openclaw-gateway \
  node dist/index.js config get agents.defaults.model --json
```

Kết quả mong muốn:

```
{
  "primary": "openai/gpt-5.5"
}
```

### Restart OpenClaw Gateway

Restart container:

```
docker restart openclaw-gateway
```

Chờ 10–20 giây rồi kiểm tra log:

```
docker logs --tail 80 openclaw-gateway | grep -i "agent model"
```

Kết quả mong muốn:

```
[gateway] agent model: openai/gpt-5.5 (thinking=medium, fast=off)
```

## Test qua OpenClaw

Test qua Web UI, Discord, hoặc Telegram:

```
Bạn đang hoạt động chưa? Trả lời ngắn gọn.
```

Kết quả mong muốn:

```
Đang hoạt động.
```

Nếu bot trả lời được, Codex/OpenAI đã trở thành *"bộ não"* chính của OpenClaw.

### Phụ lục

#### Kiểm tra cấu hình đầy đủ

Xem cấu hình agent:

```
docker exec -it openclaw-gateway \
  node dist/index.js config get agents.defaults --json
```

Kết quả nên có:

```
{
  "model": {
    "primary": "openai/gpt-5.5"
  }
}
```

Xem trạng thái model:

```
docker exec -it openclaw-gateway \
  node dist/index.js models status
```

Hoặc xem danh sách model OpenAI:

```
docker exec -it openclaw-gateway \
  node dist/index.js models list --provider openai
```

#### Lưu ý về quota

**Cách này dùng:**

- OpenAI/Codex OAuth
- → tài khoản ChatGPT/Codex
- → dùng chung giới hạn với Codex

**Không giống với:**

- OpenAI API key
- → OpenAI Platform API
- → billing/limit riêng

**Vì vậy:**

- Dùng Codex OAuth 
    - → tiện, không cần API key
    - → phù hợp dùng thử và dùng cá nhân
- Dùng OpenAI API key 
    - → tách quota khỏi ChatGPT/Codex
    - → phù hợp nếu muốn kiểm soát billing riêng

#### Troubleshooting

##### Đăng nhập xong nhưng model chưa đổi

Chạy lại:

```
docker exec -it openclaw-gateway \
  node dist/index.js config set agents.defaults.model.primary openai/gpt-5.5

docker restart openclaw-gateway
```

##### Không thấy auth profile

Kiểm tra:

```
docker exec -it openclaw-gateway \
  node dist/index.js models auth list --provider openai
```

Nếu không có profile, đăng nhập lại:

```
docker exec -it openclaw-gateway \
  node dist/index.js models auth login --provider openai --device-code
```

##### Vẫn dùng provider cũ

Kiểm tra config:

```
docker exec -it openclaw-gateway \
  node dist/index.js config get agents.defaults --json
```

Nếu còn fallback cũ:

```
docker exec -it openclaw-gateway \
  node dist/index.js config unset agents.defaults.model.fallbacks
```

Nếu còn custom provider không dùng nữa, có thể xóa riêng provider đó khỏi config.

Ví dụ với provider `<span class="editor-theme-code">woku</span>`:

```
docker exec -it openclaw-gateway \
  node dist/index.js config unset models.providers.woku
```

Restart:

```
docker restart openclaw-gateway
```

##### Bot trả lời chậm

Tắt thinking mặc định:

```
docker exec -it openclaw-gateway \
  node dist/index.js config set agents.defaults.thinkingDefault off

docker restart openclaw-gateway
```

Nếu vẫn chậm, nguyên nhân thường nằm ở model/provider hoặc quota backend, không phải Discord/Telegram.