OpenClaw 高级配置
本教程涵盖 OpenClaw 的高级配置选项、性能优化、插件开发和生产部署方案。
环境配置详解
OpenClaw 的 .env 文件支持丰富的配置项。以下是完整的配置参考:
bash
# ===== 基础配置 =====
OPENCLAW_PORT=3000
OPENCLAW_HOST=0.0.0.0
OPENCLAW_ENV=production
SECRET_KEY=your-random-secret-key-here
# ===== 数据库 =====
DATABASE_URL=postgresql://user:pass@localhost:5432/openclaw
# ===== 日志 =====
LOG_LEVEL=info
LOG_FORMAT=json
LOG_FILE=./logs/openclaw.log
# ===== 模型配置 =====
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-xxxxxxxx
OPENAI_API_BASE=https://api.openai.com/v1
OPENAI_MODEL=gpt-4
# ===== 向量数据库 =====
VECTOR_DB=chroma
CHROMA_HOST=localhost
CHROMA_PORT=8000
# ===== 缓存 =====
CACHE_ENABLED=true
CACHE_PROVIDER=redis
REDIS_URL=redis://localhost:6379
数据库配置
默认使用 SQLite,生产环境推荐使用 PostgreSQL 或 MySQL。
切换到 PostgreSQL
- 安装 PostgreSQL 并创建数据库:
bash
# 创建数据库和用户
sudo -u postgres psql
CREATE DATABASE openclaw;
CREATE USER openclaw_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE openclaw TO openclaw_user;
\q
- 修改
.env:
bash
DATABASE_URL=postgresql://openclaw_user:your_password@localhost:5432/openclaw
- 执行数据库迁移:
bash
npm run db:migrate
切换到 MySQL
bash
# 创建数据库
mysql -u root -p
CREATE DATABASE openclaw CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'openclaw_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON openclaw.* TO 'openclaw_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
bash
# .env 配置
DATABASE_URL=mysql://openclaw_user:your_password@localhost:3306/openclaw
模型配置
多模型配置
OpenClaw 支持同时配置多个 LLM 提供商,在不同应用中使用不同模型:
bash
# OpenAI
OPENAI_API_KEY=sk-xxxxxxxx
OPENAI_MODEL=gpt-4
# Anthropic Claude
ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
ANTHROPIC_MODEL=claude-3-sonnet-20240229
# 通义千问
DASHSCOPE_API_KEY=sk-xxxxxxxx
DASHSCOPE_MODEL=qwen-max
# 文心一言
WENXIN_API_KEY=xxxxxxxx
WENXIN_SECRET_KEY=xxxxxxxx
WENXIN_MODEL=ernie-bot-4
本地模型部署
OpenClaw 支持通过 Ollama 使用本地模型,无需 API Key:
bash
# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 2. 下载模型
ollama pull llama3
ollama pull qwen2
# 3. 配置 OpenClaw
# .env
LLM_PROVIDER=ollama
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=llama3
性能优化
缓存配置
启用缓存可以显著减少重复请求的响应时间和 API 调用成本:
bash
# 启用 Redis 缓存
CACHE_ENABLED=true
CACHE_PROVIDER=redis
REDIS_URL=redis://localhost:6379
CACHE_TTL=3600
# 语义缓存(相似问题命中缓存)
SEMANTIC_CACHE_ENABLED=true
SEMANTIC_CACHE_THRESHOLD=0.95
并发处理
调整并发参数以适应不同的负载场景:
bash
# 并发配置
MAX_CONCURRENT_REQUESTS=50
REQUEST_TIMEOUT=30000
QUEUE_MAX_SIZE=1000
# 模型调用并发限制
LLM_MAX_CONCURRENT=10
LLM_RATE_LIMIT=60
安全配置
生产环境必须配置的安全选项:
bash
# 安全配置
SECRET_KEY=your-very-long-random-secret-key
CORS_ORIGINS=https://yourdomain.com
RATE_LIMIT_ENABLED=true
RATE_LIMIT_MAX=100
RATE_LIMIT_WINDOW=60000
# HTTPS(推荐使用反向代理处理)
FORCE_HTTPS=true
# API 认证
API_KEY_ENABLED=true
API_KEY_HEADER=X-API-Key
安全最佳实践:
- 使用强随机字符串作为 SECRET_KEY
- 限制 CORS 来源为您的域名
- 启用速率限制防止滥用
- 使用 HTTPS 加密传输
- 定期轮换 API Key 和密钥
- 不要将
.env文件提交到版本控制
插件开发
OpenClaw 支持通过插件扩展功能。插件目录结构:
text
plugins/
my-plugin/
index.js # 插件入口
package.json # 插件配置
README.md # 插件说明
插件入口文件示例:
javascript
module.exports = {
name: 'my-plugin',
version: '1.0.0',
description: '我的自定义插件',
// 插件初始化
async init(openclaw) {
console.log('插件已加载');
},
// 注册自定义工具
tools: [
{
name: 'get_weather',
description: '获取天气信息',
parameters: {
city: { type: 'string', description: '城市名称' }
},
async execute({ city }) {
// 调用天气 API
const response = await fetch(
`https://api.weather.com/v1/${city}`
);
return await response.json();
}
}
]
};
安装插件:
bash
# 安装插件
npm run plugin:install -- --path ./plugins/my-plugin
# 查看已安装插件
npm run plugin:list
# 卸载插件
npm run plugin:remove -- --name my-plugin
生产部署
推荐使用 Docker 部署 OpenClaw:
bash
# 使用 Docker Compose 一键部署
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f openclaw
docker-compose.yml 示例:
yaml
version: '3.8'
services:
openclaw:
image: openclaw/openclaw:latest
ports:
- "3000:3000"
env_file: .env
depends_on:
- postgres
- redis
restart: always
postgres:
image: postgres:15
environment:
POSTGRES_DB: openclaw
POSTGRES_USER: openclaw_user
POSTGRES_PASSWORD: your_password
volumes:
- pgdata:/var/lib/postgresql/data
restart: always
redis:
image: redis:7-alpine
restart: always
volumes:
pgdata:
监控与运维
bash
# 查看系统状态
npm run status
# 查看资源使用
npm run metrics
# 数据库备份
npm run db:backup -- --output ./backups/
# 数据库恢复
npm run db:restore -- --input ./backups/backup-2024.sql
# 清理过期数据
npm run cleanup -- --days 30
# 导出对话日志
npm run export:logs -- --format csv --output ./exports/
建议配置定时备份:
bash
# 添加 crontab 定时任务(每天凌晨 2 点备份)
crontab -e
0 2 * * * cd /path/to/openclaw && npm run db:backup -- --output ./backups/