🛠️ Hướng Dẫn Chi Tiết Phục Hồi OpenClaw & Thay Đổi Provider API
💡 TL;DR: Bài viết này hướng dẫn chi tiết cách khắc phục sự cố OpenClaw Gateway, thay đổi provider API (Anthropic, ClipProxy, OpenRouter, v.v.) khi hết token/quota, dành cho cả người không chuyên về kỹ thuật. Bao gồm hướng dẫn trên cả điện thoại và máy tính.
📚 Mục Lục
- 🌟 Giới Thiệu
- 🔧 Phần 1: Quy Trình Phục Hồi OpenClaw
- 🔄 Phần 2: Thay Đổi Provider API
- 🌐 Phần 3: Các Provider Phổ Biến
- ⚡ Phần 4: Chuyển Đổi Nhanh
- 🛡️ Phần 5: Backup & Failover
- 🆘 Phần 6: Xử Lý Sự Cố
- 🤖 Phần 7: Automation
- ✅ Kết Luận
🌟 Giới Thiệu
OpenClaw là một AI gateway mạnh mẽ cho phép bạn tương tác với nhiều AI model (Claude, GPT, Gemini, v.v.) thông qua một interface thống nhất.
⚠️ Các Tình Huống Thường Gặp
| Vấn Đề | Biểu Hiện | Giải Pháp Nhanh |
|---|---|---|
| 🔴 Gateway crash | Bot không phản hồi | Restart Gateway |
| 🔑 Token hết hạn | Error 401/403 | Thay API key mới |
| ⏱️ Rate limit | Error 429 | Đổi provider hoặc giảm rate |
| 💰 Hết quota | Provider từ chối | Chuyển sang provider khác |
🔧 Phần 1: Quy Trình Phục Hồi OpenClaw
1️⃣ Kiểm Tra Tình Trạng Gateway
🐧 Linux/Mac:
ps aux | grep openclaw-gateway
🪟 Windows:
Get-Process | Select-String "openclaw"
📊 Cách Đọc Kết Quả:
| Kết Quả | Ý Nghĩa | Hành Động |
|---|---|---|
| ✅ Có process hiển thị | Gateway đang chạy | Kiểm tra log |
| ❌ Không có kết quả | Gateway đã tắt | Khởi động lại |
2️⃣ Khởi Động Lại Gateway
🟢 Phương Pháp 1: Khởi Động Nhẹ Nhàng (Khuyến nghị)
🐧 Linux/Mac:
# 🛑 Tắt tiến trình cũ
pkill -f openclaw-gateway
# ⏳ Đợi cleanup
sleep 3
# 🚀 Khởi động lại
cd ~/openclaw
./openclaw-gateway serve &
🪟 Windows:
# 🛑 Tắt process
taskkill /IM openclaw-gateway.exe /F
# ⏳ Đợi 3 giây
Start-Sleep -Seconds 3
# 🚀 Khởi động lại
cd C:\openclaw
Start-Process .\openclaw-gateway.exe -ArgumentList "serve"
🔴 Phương Pháp 2: Force Restart (Khi Gateway bị treo)
🐧 Linux/Mac:
# 💥 Force kill
pkill -9 -f openclaw
# 🧹 Xóa lock files
rm -f ~/.openclaw/*.lock
rm -f ~/.openclaw/.gateway.pid
# 🚀 Khởi động
cd ~/openclaw
./openclaw-gateway serve &
🪟 Windows:
# 💥 Force kill
taskkill /IM openclaw-gateway.exe /F
# 🧹 Xóa locks
Remove-Item -Path "$env:USERPROFILE\.openclaw\*.lock" -Force
# 🚀 Khởi động
cd C:\openclaw
Start-Process .\openclaw-gateway.exe -ArgumentList "serve"
3️⃣ Kiểm Tra Log & Xác Nhận
# 📜 Xem log realtime
tail -f ~/openclaw/logs/gateway.log
✅ Dấu Hiệu Hoạt Động Tốt:
✅ Gateway listening on 0.0.0.0:28080
✅ Session session_main started
✅ Connected to provider: cliproxy
✅ Agent default initialized
❌ Dấu Hiệu Lỗi:
❌ Connection refused: provider API unreachable
❌ Token expired or invalid
❌ Rate limit exceeded (429)
❌ Failed to bind port 28080
4️⃣ Kiểm Tra Qua Telegram Bot
📱 Gửi tin nhắn: /status
| Phản Hồi | Ý Nghĩa |
|---|---|
| ✅ Bot trả lời | Gateway hoạt động tốt |
| ❌ Không phản hồi | Cần kiểm tra log |
🔄 Phần 2: Thay Đổi Provider API
🤔 Tại Sao Cần Thay Provider?
| Lý Do | Icon | Giải Pháp |
|---|---|---|
| Hết quota/token | 💰 | Nạp thêm hoặc đổi provider |
| Rate limit | ⏱️ | Đổi provider hoặc giảm tốc |
| Tối ưu chi phí | 💸 | Chuyển sang provider rẻ hơn |
| Tối ưu tốc độ | ⚡ | Chuyển sang provider nhanh hơn |
| Dự phòng | 🛡️ | Setup failover |
📱 Thay Đổi Provider Trên Điện Thoại
💬 Cách 1: Qua Telegram Bot (Dễ nhất)
Bước 1: Mở chat với bot
Bước 2: Kiểm tra config
/config
Bước 3: Yêu cầu thay đổi
🔄 Thay provider sang ClipProxy với token abc123
Hoặc:
🔄 Đổi sang Anthropic, key sk-ant-xxxxx
Bước 4: Xác nhận restart
Bot: ✅ Config cập nhật. Restart? (yes/no)
Bạn: yes
Bước 5: Kiểm tra
Bạn: Xin chào
Bot: 👋 Xin chào! Tôi đã khởi động lại...
📲 Cách 2: Qua SSH Từ Điện Thoại
📥 App SSH khuyến nghị: – Termius (iOS/Android) ⭐ – JuiceSSH (Android) – Blink Shell (iOS)
Bước 1: 🔐 Kết nối SSH
ssh user@your-server.com
Bước 2: 📝 Mở config
nano ~/.openclaw/config.yaml
Bước 3: ✏️ Sửa provider
# ❌ CŨ (xóa/comment)
providers:
- kind: anthropic
apiKey: sk-ant-old-expired
# ✅ MỚI (thêm vào)
providers:
- kind: openai
apiKey: your_clipproxy_token
baseUrl: https://api.clipproxy.com/v1
models:
- cliproxy/claude-sonnet-4-5-20250929
- cliproxy/claude-opus-4-6-thinking
Bước 4: 💾 Lưu file – Android: Volume Down + Q → Save – iOS: Esc → Save – Hoặc: Ctrl+X → Y → Enter
Bước 5: 🔄 Restart
pkill -f openclaw-gateway && cd ~/openclaw && ./openclaw-gateway serve &
Bước 6: ✅ Kiểm tra log
tail -f ~/openclaw/logs/gateway.log
💻 Thay Đổi Provider Trên Máy Tính
🎯 Cách 1: Qua Gateway API (Power Users)
Bước 1: 📊 Lấy config hiện tại
curl -X POST http://localhost:28080/gateway/config.get \
-H "Authorization: Bearer YOUR_TOKEN" \
| jq '.' > current-config.json
Bước 2: 📝 Tạo file patch
🔵 ClipProxy:
{
"providers": [
{
"kind": "openai",
"apiKey": "your_clipproxy_token",
"baseUrl": "https://api.clipproxy.com/v1",
"models": [
"cliproxy/claude-sonnet-4-5-20250929",
"cliproxy/gemini-3-pro-high"
]
}
]
}
🟣 Anthropic:
{
"providers": [
{
"kind": "anthropic",
"apiKey": "sk-ant-api03-xxxxx",
"models": ["claude-sonnet-4-5", "claude-opus-4"]
}
]
}
🟠 OpenRouter:
{
"providers": [
{
"kind": "openrouter",
"apiKey": "sk-or-v1-xxxxx",
"baseUrl": "https://openrouter.ai/api/v1"
}
]
}
Bước 3: 🚀 Apply patch
curl -X POST http://localhost:28080/gateway/config.patch \
-H "Content-Type: application/json" \
-d @provider-patch.json
Bước 4: ✅ Xác nhận
curl http://localhost:28080/health
📄 Cách 2: Sửa File Trực Tiếp
Bước 1: 📂 Mở file
| OS | Lệnh |
|---|---|
| 🪟 Windows | notepad "$env:USERPROFILE\.openclaw\config.yaml" |
| 🍎 Mac | open -a TextEdit ~/.openclaw/config.yaml |
| 🐧 Linux | nano ~/.openclaw/config.yaml |
Bước 2: ✏️ Thay đổi provider
Ví dụ: Anthropic → ClipProxy
# ❌ Cũ
# providers:
# - kind: anthropic
# apiKey: sk-ant-xxxxx
# ✅ Mới
providers:
- kind: openai
apiKey: your_clipproxy_token
baseUrl: https://api.clipproxy.com/v1
Bước 3: 💾 Lưu – Windows: Ctrl+S – Mac: Cmd+S – Linux: Ctrl+X → Y → Enter
Bước 4: 🔄 Restart Gateway
🌐 Phần 3: Các Provider Phổ Biến
🔵 ClipProxy ⭐ KHUYẾN NGHỊ
💡 ClipProxy cho phép truy cập nhiều AI model từ một token duy nhất
✅ Ưu Điểm:
| Feature | Mô Tả |
|---|---|
| 🔑 Một token | Truy cập tất cả models |
| 🎯 Dễ quản lý | Không cần nhiều API key |
| ⚡ Rate limit cao | Hơn direct API |
| 💰 Free tier | Có gói miễn phí |
| 🔌 OpenAI-compatible | Dễ tích hợp |
| 📊 Dashboard | Theo dõi usage |
⚠️ Nhược Điểm:
- Thêm layer trung gian (có thể chậm hơn chút)
- Phụ thuộc vào uptime của ClipProxy
⚙️ Cấu Hình:
providers:
- kind: openai
apiKey: your_clipproxy_token
baseUrl: https://api.clipproxy.com/v1
models:
- cliproxy/claude-sonnet-4-5-20250929 # ⚡ Cân bằng
- cliproxy/claude-opus-4-6-thinking # 🧠 Reasoning
- cliproxy/gemini-3-pro-high # 📚 Long context
- cliproxy/gpt-4o # 🤖 GPT-4
- cliproxy/deepseek-v3 # 💻 Code
rateLimits:
requestsPerMinute: 60
tokensPerMinute: 100000
🔑 Lấy Token:
- 🌐 Truy cập dashboard ClipProxy
- 🔐 Đăng nhập
- ⚙️ Settings → API Keys
- ➕ Create New Key
- 📋 Copy & paste vào config
📊 Model Phổ Biến:
| Model | Icon | Use Case | Giá |
|---|---|---|---|
claude-sonnet-4-5-20250929 |
⚡ | Tổng quát | $$ | | `claude-opus-4-6-thinking` | 🧠 | Reasoning phức tạp | $$ $ |
gemini-3-pro-high |
📚 | Context 1M tokens | $$ | | `gpt-4o` | 🤖 | OpenAI fans | $$ $ |
deepseek-v3 |
💻 | Lập trình | $ |
🧪 Test Kết Nối:
curl -X POST https://api.clipproxy.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "cliproxy/claude-sonnet-4-5-20250929",
"messages": [{"role": "user", "content": "Say hello"}],
"max_tokens": 100
}'
🟣 Anthropic (Claude)
🚀 Direct API cho latency thấp nhất
✅ Ưu Điểm:
- ⚡ Latency thấp nhất
- 🎨 Đầy đủ features (artifacts, thinking)
- 🛡️ Ổn định cao
- 📞 Hỗ trợ chính thức
⚠️ Nhược Điểm:
- 🔒 Chỉ có Claude models
- 💳 Không miễn phí
- ⏱️ Rate limit thấp (free tier)
⚙️ Cấu Hình:
providers:
- kind: anthropic
apiKey: sk-ant-api03-xxxxx
models:
- claude-sonnet-4-5 # ⚡ Latest Sonnet
- claude-opus-4 # 🧠 Most powerful
- claude-haiku-4 # 🏃 Fastest
rateLimits:
requestsPerMinute: 50
tokensPerMinute: 40000
🔑 Lấy API Key:
- 🌐 https://console.anthropic.com/
- 🔐 Đăng nhập/Đăng ký
- 🔑 API Keys → Create Key
- 📋 Copy (bắt đầu
sk-ant-api03-...) - ⚠️ Key chỉ hiện 1 lần!
💰 Giá (03/2026):
| Model | Input | Output | Context |
|---|---|---|---|
| 🟢 Haiku 4 | $0.25/1M | $1.25/1M | 200K |
| ⚡ Sonnet 4.5 | $3/1M | $15/1M | 200K |
| 🧠 Opus 4 | $15/1M | $75/1M | 200K |
🟠 OpenRouter
🌐 100+ models từ một API key
✅ Ưu Điểm:
- 🎯 100+ models
- 🔑 Một key cho tất cả
- 💰 Free tier
- 📊 Dashboard tốt
⚙️ Cấu Hình:
providers:
- kind: openrouter
apiKey: sk-or-v1-xxxxx
baseUrl: https://openrouter.ai/api/v1
models:
- anthropic/claude-sonnet-4
- google/gemini-pro-1.5
- openai/gpt-4o
- meta-llama/llama-3.1-70b
🔑 Lấy Key:
- 🌐 https://openrouter.ai/keys
- 🔐 Sign in (Google/GitHub)
- ➕ Create Key
- 📋 Copy (
sk-or-v1-...)
🆓 Free Models:
# 🎁 Miễn phí (có giới hạn)
- google/gemini-flash-1.5-8b:free
- meta-llama/llama-3.1-8b:free
- qwen/qwen-2.5-72b:free
# 💰 Paid (giá tốt)
- anthropic/claude-sonnet-4 # $3/$15
- deepseek/deepseek-chat # $0.14/$0.28 ⭐ rẻ nhất!
🟢 OpenAI (GPT)
providers:
- kind: openai
apiKey: sk-proj-xxxxx
models:
- gpt-4o # 🤖 Latest
- gpt-4-turbo # ⚡ Fast
- gpt-4o-mini # 💰 Cheap
🔑 Lấy key: https://platform.openai.com/api-keys
🔴 Google AI (Gemini)
providers:
- kind: google-ai
apiKey: AIzaSy-xxxxx
models:
- gemini-2.0-flash # ⚡ Fastest
- gemini-pro-1.5 # 🎯 Balanced
✅ Ưu Điểm:
- 💰 Free tier hào phóng (1M tokens/day)
- 📚 Context dài (1M tokens)
- ⚡ Tốc độ nhanh
🔑 Lấy key: https://makersuite.google.com/app/apikey
⚡ Phần 4: Chuyển Đổi Nhanh Giữa Provider
🔄 Kịch Bản 1: ClipProxy Hết Quota → Anthropic
📱 Qua Telegram:
Bạn: 🔄 ClipProxy hết quota. Chuyển Anthropic: sk-ant-xxxxx
Bot: 🔄 Đang cập nhật...
Bot: ✅ Đã chuyển sang Anthropic
Bot: 🔄 Restart? (yes/no)
Bạn: yes
Bot: ⏳ Đang khởi động...
Bot: ✅ Sẵn sàng với Anthropic Claude!
💻 Script Tự Động:
#!/bin/bash
# 📝 switch-to-anthropic.sh
# 💾 Backup
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.backup
# 📝 Tạo patch
cat > /tmp/provider-patch.json << 'EOF'
{
"providers": [{
"kind": "anthropic",
"apiKey": "sk-ant-api03-xxxxx"
}]
}
EOF
# 🚀 Apply
curl -X POST http://localhost:28080/gateway/config.patch \
-H "Content-Type: application/json" \
-d @/tmp/provider-patch.json
echo "✅ Đã chuyển sang Anthropic!"
🎛️ Script Đa Provider (Interactive)
#!/bin/bash
# 🎯 switch-provider.sh
echo "🌐 === OPENCLAW PROVIDER SWITCHER ==="
echo "1️⃣ ClipProxy"
echo "2️⃣ Anthropic"
echo "3️⃣ OpenRouter"
echo "4️⃣ OpenAI"
echo "5️⃣ Google AI"
read -p "🎯 Chọn provider (1-5): " choice
case $choice in
1)
echo "🔵 ClipProxy"
PROVIDER="openai"
BASE_URL="https://api.clipproxy.com/v1"
read -p "🔑 Token: " API_KEY
;;
2)
echo "🟣 Anthropic"
PROVIDER="anthropic"
read -p "🔑 Key (sk-ant-...): " API_KEY
;;
3)
echo "🟠 OpenRouter"
PROVIDER="openrouter"
BASE_URL="https://openrouter.ai/api/v1"
read -p "🔑 Key (sk-or-...): " API_KEY
;;
4)
echo "🟢 OpenAI"
PROVIDER="openai"
read -p "🔑 Key (sk-proj-...): " API_KEY
;;
5)
echo "🔴 Google AI"
PROVIDER="google-ai"
read -p "🔑 Key (AIza...): " API_KEY
;;
*)
echo "❌ Lựa chọn không hợp lệ!"
exit 1
;;
esac
# 💾 Backup
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.backup.$(date +%s)
# 📝 Tạo patch
if [ -z "$BASE_URL" ]; then
cat > /tmp/provider-patch.json << EOF
{"providers": [{"kind": "$PROVIDER", "apiKey": "$API_KEY"}]}
EOF
else
cat > /tmp/provider-patch.json << EOF
{"providers": [{"kind": "$PROVIDER", "apiKey": "$API_KEY", "baseUrl": "$BASE_URL"}]}
EOF
fi
# 🚀 Apply
curl -X POST http://localhost:28080/gateway/config.patch \
-H "Content-Type: application/json" \
-d @/tmp/provider-patch.json
echo ""
echo "✅ Đã chuyển sang $PROVIDER"
echo "⏳ Gateway restart sau 3s..."
sleep 3
# ✅ Check
if pgrep -f openclaw-gateway > /dev/null; then
echo "✅ Gateway đang chạy!"
else
echo "⚠️ Khởi động thủ công..."
cd ~/openclaw && ./openclaw-gateway serve &
fi
📥 Cách dùng:
chmod +x switch-provider.sh
./switch-provider.sh
🛡️ Phần 5: Backup & Failover
🔄 Cấu Hình Nhiều Provider (High Availability)
providers:
# 🔵 Primary: ClipProxy
- kind: openai
name: cliproxy-primary
apiKey: ${CLIPROXY_TOKEN}
baseUrl: https://api.clipproxy.com/v1
models:
- cliproxy/claude-sonnet-4-5-20250929
priority: 1 # ⭐ Highest
# 🟣 Backup: Anthropic
- kind: anthropic
name: anthropic-backup
apiKey: ${ANTHROPIC_KEY}
models:
- claude-sonnet-4-5
priority: 2 # ⭐⭐
# 🟠 Fallback: OpenRouter
- kind: openrouter
name: openrouter-fallback
apiKey: ${OPENROUTER_KEY}
baseUrl: https://openrouter.ai/api/v1
priority: 3 # ⭐⭐⭐
agents:
- id: default
model: cliproxy/claude-sonnet-4-5-20250929
fallbackModels:
- claude-sonnet-4-5 # → Anthropic
- anthropic/claude-sonnet-4 # → OpenRouter
🔁 Cách Hoạt Động:
📨 Request
↓
🔵 ClipProxy (primary)
↓ ❌ (nếu lỗi)
🟣 Anthropic (backup)
↓ ❌ (nếu vẫn lỗi)
🟠 OpenRouter (fallback)
↓ ❌ (nếu vẫn lỗi)
❌ Return error
📜 Log Failover:
ℹ️ Request to cliproxy/claude-sonnet-4-5
❌ ClipProxy rate limit (429)
⚠️ Falling back to anthropic/claude-sonnet-4-5
✅ Request successful with Anthropic
🏥 Health Check Script
#!/bin/bash
# 🏥 check-all-providers.sh
echo "🏥 === PROVIDER HEALTH CHECK ==="
echo ""
# 🔵 ClipProxy
echo "🔵 ClipProxy:"
if curl -s -f -X POST https://api.clipproxy.com/v1/chat/completions \
-H "Authorization: Bearer $CLIPROXY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"cliproxy/claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"test"}],"max_tokens":5}' \
> /dev/null 2>&1; then
echo " ✅ OK"
else
echo " ❌ FAILED"
fi
# 🟣 Anthropic
echo "🟣 Anthropic:"
if curl -s -f -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4","messages":[{"role":"user","content":"test"}],"max_tokens":5}' \
> /dev/null 2>&1; then
echo " ✅ OK"
else
echo " ❌ FAILED"
fi
# 🟠 OpenRouter
echo "🟠 OpenRouter:"
if curl -s -f -X POST https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-sonnet-4","messages":[{"role":"user","content":"test"}],"max_tokens":5}' \
> /dev/null 2>&1; then
echo " ✅ OK"
else
echo " ❌ FAILED"
fi
echo ""
echo "🏁 === DONE ==="
💾 Auto Backup Script
#!/bin/bash
# 💾 backup-config.sh
BACKUP_DIR=~/.openclaw/backups
mkdir -p "$BACKUP_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/config_$TIMESTAMP.yaml"
# 📋 Copy
cp ~/.openclaw/config.yaml "$BACKUP_FILE"
echo "✅ Backup: $BACKUP_FILE"
# 🧹 Giữ 10 backup mới nhất
ls -t "$BACKUP_DIR"/config_*.yaml | tail -n +11 | xargs -r rm
echo "📁 Total backups: $(ls -1 "$BACKUP_DIR" | wc -l)"
⏰ Auto chạy hàng ngày:
# 📝 Thêm vào crontab
crontab -e
# ⏰ Chạy 3h sáng
0 3 * * * /root/backup-config.sh
🆘 Phần 6: Xử Lý Sự Cố Thường Gặp
🔑 Lỗi 1: Token Expired / Unauthorized
🔍 Nguyên Nhân:
- ❌ API key hết hạn
- ❌ Key bị revoke
- ❌ Key sai/invalid
🛠️ Cách Sửa:
Bước 1: 🧪 Test token
ClipProxy:
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://api.clipproxy.com/v1/models
Anthropic:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4","messages":[{"role":"user","content":"test"}],"max_tokens":10}'
➡️ Nếu 401/403 → Token invalid
Bước 2: 🔑 Lấy token mới
- 🔵 ClipProxy: Dashboard → API Keys
- 🟣 Anthropic: https://console.anthropic.com/settings/keys
- 🟠 OpenRouter: https://openrouter.ai/keys
Bước 3: ✏️ Cập nhật config
nano ~/.openclaw/config.yaml
# Sửa apiKey
Bước 4: 🔄 Restart
pkill openclaw-gateway && cd ~/openclaw && ./openclaw-gateway serve &
⏱️ Lỗi 2: Rate Limit Exceeded (429)
📜 Log:
❌ 429 Too Many Requests: Rate limit exceeded
❌ Provider: {"error":{"type":"rate_limit_error"}}
🛠️ Giải Pháp:
1️⃣ Thêm Rate Limiting:
providers:
- kind: openai
apiKey: your_token
baseUrl: https://api.clipproxy.com/v1
rateLimits:
requestsPerMinute: 50 # ⬇️ Giảm
tokensPerMinute: 80000 # ⬇️ Giảm
retryAfterMs: 2000 # ⏳ Đợi 2s
2️⃣ Dùng Failover:
Xem Phần 5.1
3️⃣ Upgrade Tier: – 🟣 Anthropic: Tier 1 → 2+ (https://console.anthropic.com/settings/limits) – 🟢 OpenAI: Add credit + request increase – 🔵 ClipProxy: Upgrade plan
🌐 Lỗi 3: Connection Refused / Timeout
🔍 Kiểm Tra:
# 1️⃣ Gateway có chạy?
ps aux | grep openclaw-gateway
# 2️⃣ Port 28080 có listen?
lsof -i :28080
# 3️⃣ Firewall?
sudo ufw status | grep 28080
# 4️⃣ Test provider
curl -I https://api.clipproxy.com
🛠️ Sửa:
Gateway chưa chạy:
cd ~/openclaw && ./openclaw-gateway serve &
Port bị chặn:
sudo ufw allow 28080/tcp
🔍 Lỗi 4: Model Not Found
📜 Log:
❌ Model 'cliproxy/claude-sonnet-4-5' not found
❌ 404: Model 'xyz' does not exist
🛠️ Sửa:
Bước 1: 📋 List models
ClipProxy:
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://api.clipproxy.com/v1/models | jq '.data[].id'
OpenRouter:
curl https://openrouter.ai/api/v1/models | jq '.data[].id'
Bước 2: ✏️ Copy tên chính xác
Bước 3: 🔧 Sửa config
agents:
- id: default
model: cliproxy/claude-sonnet-4-5-20250929 # ✅ Đúng
🔌 Lỗi 5: Port Already in Use
📜 Log:
❌ Failed to bind 0.0.0.0:28080: address already in use
🛠️ Sửa:
# 🔍 Tìm process
lsof -i :28080
# 💥 Kill
kill -9 <PID>
# 🚀 Start
cd ~/openclaw && ./openclaw-gateway serve &
📝 Lỗi 6: YAML Syntax Error
📜 Log:
❌ Failed to parse config: yaml: line 12: did not find expected key
🛠️ Sửa:
1️⃣ Validate online:
https://www.yamllint.com/
2️⃣ Check indentation:
# ✅ ĐÚNG (2 spaces)
providers:
- kind: openai
apiKey: abc123
# ❌ SAI (tabs hoặc không đều)
providers:
- kind: openai
apiKey: abc123
3️⃣ Restore backup:
cp ~/.openclaw/backups/config_*.yaml ~/.openclaw/config.yaml
💾 Lỗi 7: Out of Memory (OOM)
🔍 Check RAM:
free -h
htop
🛠️ Sửa:
1️⃣ Giới hạn sessions:
server:
maxConcurrentSessions: 5 # ⬇️ Giảm
sessionTimeoutMinutes: 30
2️⃣ Tăng swap:
# 📈 Tạo 2GB swap
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 💾 Permanent
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
🤖 Phần 7: Automation & Best Practices
🔔 Monitoring Script
#!/bin/bash
# 🔔 monitor-openclaw.sh
LOG_FILE=~/openclaw-monitor.log
WEBHOOK="https://api.telegram.org/botYOUR_TOKEN/sendMessage"
CHAT_ID="YOUR_CHAT_ID"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
notify() {
curl -s -X POST "$WEBHOOK" -d "chat_id=$CHAT_ID" -d "text=$1" > /dev/null
}
# 1️⃣ Check process
if ! pgrep -f openclaw-gateway > /dev/null; then
log "❌ Gateway DOWN. Restarting..."
notify "⚠️ Gateway down! Restarting..."
cd ~/openclaw && ./openclaw-gateway serve &
sleep 5
if pgrep -f openclaw-gateway > /dev/null; then
log "✅ Restarted OK"
notify "✅ Gateway restarted"
else
log "❌ FAILED restart!"
notify "🚨 CRITICAL: Failed to restart!"
fi
else
log "✅ Gateway running"
fi
# 2️⃣ Health check
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:28080/health)
if [ "$HTTP_CODE" != "200" ]; then
log "⚠️ Health failed (HTTP $HTTP_CODE)"
notify "⚠️ Health check failed! Restarting..."
pkill -f openclaw-gateway
sleep 3
cd ~/openclaw && ./openclaw-gateway serve &
fi
# 3️⃣ Disk check
DISK=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK" -gt 90 ]; then
log "⚠️ Disk: ${DISK}%"
notify "⚠️ Disk usage: ${DISK}%"
fi
# 4️⃣ Memory check
MEM=$(free | grep Mem | awk '{print int($3/$2 * 100)}')
if [ "$MEM" -gt 90 ]; then
log "⚠️ Memory: ${MEM}%"
notify "⚠️ Memory usage: ${MEM}%"
fi
⏰ Chạy mỗi 5 phút:
chmod +x monitor-openclaw.sh
crontab -e
# Thêm:
*/5 * * * * /root/monitor-openclaw.sh
⚙️ Systemd Service
# 📝 Tạo service
sudo nano /etc/systemd/system/openclaw.service
[Unit]
Description=🤖 OpenClaw AI Gateway
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/openclaw
ExecStart=/root/openclaw/openclaw-gateway serve
Restart=always
RestartSec=10
StandardOutput=append:/root/openclaw/logs/gateway.log
StandardError=append:/root/openclaw/logs/gateway-error.log
LimitNOFILE=65536
MemoryLimit=2G
[Install]
WantedBy=multi-user.target
🚀 Kích hoạt:
# Reload
sudo systemctl daemon-reload
# Enable auto-start
sudo systemctl enable openclaw
# Start
sudo systemctl start openclaw
# Status
sudo systemctl status openclaw
# Logs
sudo journalctl -u openclaw -f
📜 Log Rotation
sudo nano /etc/logrotate.d/openclaw
/root/openclaw/logs/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0644 root root
postrotate
pkill -HUP openclaw-gateway
endscript
}
⚙️ Config Best Practices
# 🔧 ~/.openclaw/config.yaml
# ============================================
# 🚀 OPENCLAW PRODUCTION CONFIG
# 📅 Updated: 2026-03-12
# ============================================
# 🌐 Providers (with failover)
providers:
# 🔵 Primary: ClipProxy
- kind: openai
name: cliproxy-primary
apiKey: ${CLIPROXY_TOKEN} # 🔐 Env var
baseUrl: https://api.clipproxy.com/v1
models:
- cliproxy/claude-sonnet-4-5-20250929
- cliproxy/gemini-3-pro-high
rateLimits:
requestsPerMinute: 60
tokensPerMinute: 100000
timeout: 60s
priority: 1
# 🟣 Backup: Anthropic
- kind: anthropic
name: anthropic-backup
apiKey: ${ANTHROPIC_KEY}
models:
- claude-sonnet-4-5
priority: 2
# 🟠 Fallback: OpenRouter
- kind: openrouter
name: openrouter-fallback
apiKey: ${OPENROUTER_KEY}
baseUrl: https://openrouter.ai/api/v1
priority: 3
# 🤖 Agents
agents:
- id: default
name: Main Agent
model: cliproxy/claude-sonnet-4-5-20250929
fallbackModels:
- claude-sonnet-4-5
- anthropic/claude-sonnet-4
systemPrompt: |
You are a helpful AI assistant.
maxTokens: 4096
temperature: 0.7
memory:
enabled: true
maxMessages: 50
# 🌐 Server
server:
host: 0.0.0.0
port: 28080
maxConcurrentSessions: 10
requestTimeoutSeconds: 120
# 📱 Telegram
telegram:
enabled: true
token: ${TELEGRAM_BOT_TOKEN}
allowedUsers:
- 5365015505
# 📊 Logging
logging:
level: info
format: json
outputs:
- type: file
path: logs/gateway.log
maxSizeMB: 100
maxBackups: 10
# 📈 Metrics
metrics:
enabled: true
port: 9090
🔐 Environment Variables:
# ~/.bashrc
export CLIPROXY_TOKEN="your_token"
export ANTHROPIC_KEY="sk-ant-xxxxx"
export OPENROUTER_KEY="sk-or-xxxxx"
export TELEGRAM_BOT_TOKEN="123456:ABC-xxxxx"
# Reload
source ~/.bashrc
✅ Kết Luận
📌 Tóm Tắt Nhanh
🔧 Khi Gateway Lỗi:
- ✅ Check:
ps aux | grep openclaw - 🔄 Restart:
pkill openclaw && cd ~/openclaw && ./openclaw-gateway serve & - 📜 Log:
tail -f ~/openclaw/logs/gateway.log
🔄 Khi Đổi Provider:
- 📱 Telegram: “Đổi sang ClipProxy token xxx”
- 📝 File:
nano ~/.openclaw/config.yaml→ Sửa → Save → Restart - 🔌 API: Dùng
config.patchendpoint
🏆 Provider Khuyến Nghị:
| Provider | Icon | Use Case |
|---|---|---|
| ClipProxy | 🔵 | Đa năng, nhiều model |
| Anthropic | 🟣 | Tốc độ, trực tiếp |
| OpenRouter | 🟠 | Tiết kiệm, free tier |
✅ Best Practices:
- ✅ Luôn có 2-3 provider backup
- ✅ Setup monitoring tự động
- ✅ Backup config định kỳ
- ✅ Dùng systemd service
- ✅ Dùng env vars cho secrets
- ✅ Check log thường xuyên
- ✅ Test failover trước khi production
🔗 Tài Nguyên Hữu Ích
| Resource | Link |
|---|---|
| 📚 OpenClaw Docs | https://github.com/openclaw/openclaw |
| 🔵 ClipProxy | (Your dashboard) |
| 🟣 Anthropic Console | https://console.anthropic.com/ |
| 🟠 OpenRouter | https://openrouter.ai/ |
| 🔍 YAML Validator | https://www.yamllint.com/ |
📧 Hỗ Trợ
🆘 Nếu gặp vấn đề: – 📜 Check log: ~/openclaw/logs/gateway.log – 🏥 Chạy: ./check-openclaw.sh – 📧 Email: namvuhvq@gmail.com
🚀 Chúc bạn sử dụng OpenClaw hiệu quả!
📅 Version: 2.0 | Cập nhật: 2026-03-12
⭐ Nếu bài viết hữu ích, hãy chia sẻ cho bạn bè!
📊 Token Usage Của Bài Viết Này
- 📝 Độ dài: ~40,000 ký tự
- 💰 Token ước tính: ~15,000 tokens
- ⏱️ Thời gian đọc: ~20 phút
🎯 Các Bài Viết Liên Quan
- 🤖 Cài Đặt OpenClaw Từ Đầu
- 🔐 Bảo Mật OpenClaw Production
- 📊 Monitoring & Logging Best Practices
- ⚡ Tối Ưu Hiệu Năng OpenClaw