小龙虾openclaw Docker 生产环境详细部署教程

生产环境准备

服务器要求

资源 最低配置 推荐配置 生产环境
CPU 1核 2核 4核+
内存 1GB 2GB 4GB+
存储 10GB 20GB 50GB+
网络 1Mbps 10Mbps 100Mbps+

系统优化

1. 优化Docker配置

编辑 /etc/docker/daemon.json

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "live-restore": true,
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 10
}

重启Docker:

sudo systemctl restart docker

2. 优化系统参数

编辑 /etc/sysctl.conf

# 网络优化
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

# 文件描述符
fs.file-max = 65535

应用配置:

sudo sysctl -p

3. 增加文件描述符限制

编辑 /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

🔒 安全配置

1. 使用只读配置文件

# 创建配置文件
cat > openclaw.json << 'EOF'
{
  "providers": {
    "bailian": {
      "apiKey": "YOUR_API_KEY"
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "bailian/qwen-turbo"
      }
    }
  }
}
EOF

# 设置权限
chmod 600 openclaw.json

2. 使用环境变量存储敏感信息

创建 .env 文件:

# API配置
OPENCLAW_API_KEY=YOUR_API_KEY

# 安全配置
OPENCLAW_ENABLE_TELEMETRY=false
OPENCLAW_LOG_LEVEL=warn

设置权限:

chmod 600 .env

3. 使用非root用户

# 创建非root用户
docker run -d \
  --name openclaw \
  -p 18789:18789 \
  -u 1000:1000 \
  -v $(pwd)/data:/home/openclaw/.openclaw \
  openclaw/openclaw:latest

4. 限制容器资源

# 启动容器(限制资源)
docker run -d \
  --name openclaw \
  --cpus="2" \
  --memory="2g" \
  --memory-swap="2g" \
  --pids-limit 100 \
  -p 18789:18789 \
  -v $(pwd)/data:/home/openclaw/.openclaw \
  openclaw/openclaw:latest

5. 使用Docker Compose生产配置

创建 docker-compose.prod.yml

version: '3.8'

services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "18789:18789"
    volumes:
      - ./openclaw.json:/home/openclaw/.openclaw/openclaw.json:ro
      - ./data:/home/openclaw/.openclaw/data
    environment:
      - OPENCLAW_LOG_LEVEL=warn
      - OPENCLAW_ENABLE_TELEMETRY=false
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 2G
        reservations:
          cpus: '1'
          memory: 1G
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:18789/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - openclaw-network

networks:
  openclaw-network:
    driver: bridge

启动:

# 启动生产环境
docker-compose -f docker-compose.prod.yml up -d

# 查看状态
docker-compose -f docker-compose.prod.yml ps

6. 使用HTTPS(Nginx反向代理)

获取SSL证书

使用Let’s Encrypt:

# 安装certbot
sudo apt install -y certbot python3-certbot-nginx

# 获取证书
sudo certbot certonly --standalone -d openclaw.example.com

配置Nginx

创建 nginx.conf

server {
    listen 80;
    server_name openclaw.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name openclaw.example.com;

    ssl_certificate /etc/letsencrypt/live/openclaw.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/openclaw.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://openclaw:18789;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
    }

    # 限制请求大小
    client_max_body_size 10M;
}

启动Nginx

# 启动OpenClaw
docker run -d \
  --name openclaw \
  --network openclaw-network \
  -p 18789:18789 \
  -v $(pwd)/data:/home/openclaw/.openclaw \
  openclaw/openclaw:latest

# 启动Nginx
docker run -d \
  --name nginx \
  --network openclaw-network \
  -p 80:80 \
  -p 443:443 \
  -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
  -v /etc/letsencrypt:/etc/letsencrypt:ro \
  nginx:alpine

⚡ 性能优化

1. 使用多阶段构建

创建 Dockerfile

# 构建阶段
FROM node:22-alpine AS builder

WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build

# 运行阶段
FROM node:22-alpine AS runner

WORKDIR /app

# 复制构建产物
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./

# 使用非root用户
RUN addgroup -g 1001 -S nodejs
RUN adduser -S openclaw -u 1001
USER openclaw

EXPOSE 18789

CMD ["node", "dist/index.js"]

2. 优化日志配置

# 启动容器(限制日志大小)
docker run -d \
  --name openclaw \
  --log-driver json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  -p 18789:18789 \
  openclaw/openclaw:latest

3. 使用缓存优化

version: '3.8'

services:
  openclaw:
    image: openclaw/openclaw:latest
    volumes:
      - ./data:/home/openclaw/.openclaw/data
      - ./cache:/home/openclaw/.cache
    environment:
      - NODE_ENV=production
      - CACHE_ENABLED=true

4. 使用Redis缓存(可选)

version: '3.8'

services:
  redis:
    image: redis:alpine
    container_name: redis
    command: redis-server --appendonly yes
    volumes:
      - ./redis-data:/data
    restart: unless-stopped

  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    depends_on:
      - redis
    ports:
      - "18789:18789"
    environment:
      - REDIS_HOST=redis
      - REDIS_PORT=6379
    restart: unless-stopped

🔁 高可用部署

1. 使用负载均衡

version: '3.8'

services:
  nginx:
    image: nginx:alpine
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - openclaw1
      - openclaw2

  openclaw1:
    image: openclaw/openclaw:latest
    container_name: openclaw1
    volumes:
      - ./data1:/home/openclaw/.openclaw
    restart: unless-stopped

  openclaw2:
    image: openclaw/openclaw:latest
    container_name: openclaw2
    volumes:
      - ./data2:/home/openclaw/.openclaw
    restart: unless-stopped

2. 使用Docker Swarm

# 初始化Swarm
docker swarm init

# 创建服务
docker service create \
  --name openclaw \
  --replicas 3 \
  --publish 18789:18789 \
  openclaw/openclaw:latest

# 查看服务
docker service ls

# 扩缩容
docker service scale openclaw=5

3. 使用Kubernetes

创建 deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: openclaw
spec:
  replicas: 3
  selector:
    matchLabels:
      app: openclaw
  template:
    metadata:
      labels:
        app: openclaw
    spec:
      containers:
      - name: openclaw
        image: openclaw/openclaw:latest
        ports:
        - containerPort: 18789
        resources:
          limits:
            memory: "2Gi"
            cpu: "1000m"
          requests:
            memory: "1Gi"
            cpu: "500m"
        volumeMounts:
        - name: data
          mountPath: /home/openclaw/.openclaw
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: openclaw-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: openclaw
spec:
  selector:
    app: openclaw
  ports:
  - port: 18789
    targetPort: 18789
  type: LoadBalancer

📊 监控和日志

1. 使用Docker健康检查

# 启动容器(启用健康检查)
docker run -d \
  --name openclaw \
  --health-cmd="curl -f http://localhost:18789/health || exit 1" \
  --health-interval=30s \
  --health-timeout=10s \
  --health-retries=3 \
  -p 18789:18789 \
  openclaw/openclaw:latest

# 查看健康状态
docker inspect --format='{{json .State.Health}}' openclaw

2. 使用Prometheus监控

创建 prometheus.yml

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'openclaw'
    static_configs:
      - targets: ['openclaw:18789']

启动Prometheus:

version: '3.8'

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'

  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "18789:18789"

3. 使用Grafana可视化

version: '3.8'

services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - ./grafana-data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin

  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "18789:18789"

4. 集中式日志收集(ELK Stack)

version: '3.8'

services:
  elasticsearch:
    image: elasticsearch:8.0.0
    container_name: elasticsearch
    environment:
      - discovery.type=single-node
    volumes:
      - ./es-data:/usr/share/elasticsearchasticsearch/data

  logstash:
    image: logstash:8.0.0
    container_name: logstash
    volumes:
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on:
      - elasticsearch

  kibana:
    image: kibana:8.0.0
    container_name: kibana
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch

  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "18789:18789"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

💾 备份和恢复

1. 自动备份脚本

创建 backup.sh

#!/bin/bash

BACKUP_DIR="./backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="openclaw-backup-${BACKUP_DIR}.tar.gz"

mkdir -p ${BACKUP_DIR}

# 备份数据
tar -czf ${BACKUP_DIR}/${BACKUP_FILE} ./data

# 删除30天前的备份
find ${BACKUP_DIR} -name "openclaw-backup-*.tar.gz" -mtime +30 -delete

echo "Backup created: ${BACKUP_DIR}/${BACKUP_FILE}"

设置权限:

chmod +x backup.sh

2. 定时备份

使用cron:

# 编辑crontab
crontab -e

添加定时任务:

# 每天凌晨2点备份
0 2 * * * /path/to/backup.sh >> /var/log/openclaw-backup.log 2>&1

3. 恢复数据

# 解压备份
tar -xzf backups/openclaw-backup-20260222_020000.tar.gz

# 启动容器(恢复数据)
docker run -d \
  --name openclaw \
  -p 18789:18789 \
  -v $(pwd)/data:/home/openclaw/.openclaw \
  openclaw/openclaw:latest

🔄 自动更新

1. 使用Watchtower自动更新镜像

version: '3.8'

services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_SCHEDULE=0 0 * * *

  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "18789:18789"
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

2. 手动更新脚本

创建 update.sh

#!/bin/bash

# 拉取最新镜像
docker pull openclaw/openclaw:latest

# 停止并删除旧容器
docker stop openclaw
docker rm openclaw

# 启动新容器
docker run -d \
  --name openclaw \
  --restart unless-stopped \
  -p 18789:18789 \
  -v $(pwd)/data:/home/openclaw/.openclaw \
  openclaw/openclaw:latest

echo "OpenClaw updated successfully!"

⚠️ 常见问题

Q: 容器频繁重启?

A: 检查容器状态和日志:

# 查看容器状态
docker ps -a

# 查看容器日志
docker logs openclaw

# 查看退出代码
docker inspect openclaw | grep ExitCode

常见原因:

  • 内存不足 → 增加内存限制
  • 配置错误 → 检查 openclaw.json
  • 健康检查失败 → 检查健康检查配置

Q: 性能下降?

A: 优化措施:

  1. 增加资源限制

    docker update --cpus="2" --memory="2g" openclaw
  2. 优化日志配置

    docker run --log-opt max-size=10m --log-opt max-file=3
  3. 使用缓存

    environment:
      - CACHE_ENABLED=true

Q: 如何查看资源使用?

A:

# 实时查看资源使用
docker stats openclaw

# 查看详细信息
docker inspect openclaw

# 查看磁盘使用
docker system df

API 配置详解

OpenClaw 需要配置大模型 API 才能运行,本文详细介绍各平台的配置方法

快速开始(推荐)

新手推荐使用配置向导自动生成配置:

# 运行配置向导
openclaw onboard --install-daemon

向导会自动:

  1. 检测环境和依赖
  2. 引导选择 API 提供商
  3. 帮助获取 API Key
  4. 自动生成配置文件
  5. 验证配置正确性

使用配置模板

如果你需要手动配置,可以使用我们提供的配置模板:

# 1. 下载教程模板
templates

# 2. 查看模板目录
ls templates/

# 3. 查看模板使用指南
cat templates/README.md

模板文件说明:

文件 说明 使用方法
openclaw-template.json OpenClaw 主配置模板 复制到 ~/.openclaw/openclaw.json
env-template.txt 环境变量模板 复制到 ~/.openclaw/.env

快速使用模板:

# 复制主配置模板
cp templates/openclaw-template.json ~/.openclaw/openclaw.json

# 复制环境变量模板
cp templates/env-template.txt ~/.openclaw/.env

# 设置正确权限(重要!)
chmod 600 ~/.openclaw/openclaw.json
chmod 600 ~/.openclaw/.env

# 编辑配置文件,填写你的 API Key
nano ~/.openclaw/openclaw.json
nano ~/.openclaw/.env

详细模板使用说明请查看:templates/README.md

配置技巧

多模型切换

OpenClaw 支持配置多个模型提供商,可以在不同场景使用不同模型:

{
  "providers": {
    "siliconflow": {
      "api_key": "sk-xxx",
      "base_url": "https://api.siliconflow.cn/v1",
      "models": {
        "default": "deepseek-ai/DeepSeek-V3",
        "coding": "Qwen/Qwen2.5-72B-Instruct"
      }
    },
    "zhipu": {
      "api_key": "xxx",
      "base_url": "https://open.bigmodel.cn/api/paas/v4",
      "models": {
        "default": "GLM-4-Plus"
      }
    }
  },
  "default_provider": "siliconflow"
}

成本优化建议

  1. 日常对话:使用 DeepSeek-V3 等高性价比模型
  2. 编程任务:使用专门的编程模型(如 Qwen-Code)
  3. 复杂推理:使用 GLM-4-Plus 或 Qwen-Max
  4. 批量处理:使用轻量模型降低成本

常见问题

Q: API Key 保存在哪里?

A: OpenClaw 的配置文件位于 ~/.openclaw/config.json,API Key 会安全存储在此文件中。

Q: 如何查看 API 使用量?

A: 登录各平台控制台查看,OpenClaw 也提供 openclaw usage 命令查看统计。

Q: 多个 API Key 如何管理?

A: 可以配置多个提供商,通过环境变量或配置文件切换。

TTS 语音配置

OpenClaw v2026.4.25 全面升级了 TTS 语音系统,支持多种语音提供商。

快速配置

# 启用 TTS
openclaw config set tts.enabled true

# 设置提供商 (推荐 Azure Speech)
openclaw config set tts.provider azure

# 设置语音角色
openclaw config set tts.voice zh-CN-XiaoxiaoNeural

# 测试 TTS
/tts latest

提供商选择建议

提供商 推荐场景 价格
Azure Speech 企业级应用 中等
Xiaomi 中文场景 便宜
Volcengine 中文场景 中等
ElevenLabs 高质量需求 较贵

详细配置指南

TTS 语音配置指南

OpenClaw v2026.4.25 全面升级了 TTS(Text-to-Speech)语音系统,支持多种语音提供商和高级功能。本指南将帮助你配置和使用 TTS 功能。

🎯 核心功能

主要特性

  • 多提供商支持: Azure Speech、Xiaomi、Volcengine、ElevenLabs 等
  • 语音角色: 支持个性化语音角色配置
  • 会话级控制: 每个聊天可以独立配置 TTS
  • 自动语音: 支持自动将消息转换为语音

新增命令

  • /tts latest – 语音朗读最新消息
  • /tts on – 开启自动 TTS
  • /tts off – 关闭自动 TTS
  • /tts voice <voice_name> – 切换语音角色

🔧 基础配置

1. 配置 TTS 提供商

在 ~/.openclaw/openclaw.json 中添加 TTS 配置:

{
  "tts": {
    "enabled": true,
    "provider": "azure",
    "voice": "zh-CN-XiaoxiaoNeural",
    "autoTts": false
  }
}

2. 使用命令行配置

# 启用 TTS
openclaw config set tts.enabled true

# 设置提供商
openclaw config set tts.provider azure

# 设置语音角色
openclaw config set tts.voice zh-CN-XiaoxiaoNeural

# 关闭自动 TTS
openclaw config set tts.autoTts false

3. 验证配置

# 查看 TTS 配置
openclaw config get tts

# 测试 TTS 功能
/tts latest

🎤 提供商配置

Azure Speech (推荐)

Azure Speech 是微软提供的高质量语音服务,支持多种语言和语音角色。

配置步骤

  1. 获取 API 密钥

    • 访问 Azure Portal
    • 创建 Speech 资源
    • 获取 API 密钥和区域
  2. 配置 OpenClaw

    # 设置 Azure Speech 配置
    openclaw config set tts.provider azure
    openclaw config set tts.azure.apiKey "your-api-key"
    openclaw config set tts.azure.region "eastasia"
  3. 选择语音角色

    # 中文女声
    openclaw config set tts.voice zh-CN-XiaoxiaoNeural
    
    # 中文男声
    openclaw config set tts.voice zh-CN-YunxiNeural
    
    # 英文女声
    openclaw config set tts.voice en-US-JennyNeural

支持的语音角色

语言 女声 男声
中文 zh-CN-XiaoxiaoNeural zh-CN-YunxiNeural
英文 en-US-JennyNeural en-US-GuyNeural
日文 ja-JP-NanamiNeural ja-JP-KeitaNeural
韩文 ko-KR-SunHiNeural ko-KR-InJoonNeural

Xiaomi (小米语音)

小米语音合成是小米提供的中文语音服务,适合中文场景。

配置步骤

  1. 获取 API 密钥

  2. 配置 OpenClaw

    # 设置 Xiaomi 配置
    openclaw config set tts.provider xiaomi
    openclaw config set tts.xiaomi.apiKey "your-api-key"
  3. 选择语音角色

    # 中文女声
    openclaw config set tts.voice xiaomi-female
    
    # 中文男声
    openclaw config set tts.voice xiaomi-male

Volcengine (火山引擎)

火山引擎是字节跳动提供的云服务,支持高质量中文语音合成。

配置步骤

  1. 获取 API 密钥

  2. 配置 OpenClaw

    # 设置 Volcengine 配置
    openclaw config set tts.provider volcengine
    openclaw config set tts.volcengine.apiKey "your-api-key"
    openclaw config set tts.volcengine.appId "your-app-id"
  3. 选择语音角色

    # 中文女声
    openclaw config set tts.voice volcengine-female
    
    # 中文男声
    openclaw config set tts.voice volcengine-male

ElevenLabs v3

ElevenLabs 提供高质量的语音合成,支持语音克隆和情感控制。

配置步骤

  1. 获取 API 密钥

    • 访问 ElevenLabs
    • 注册账号并获取 API 密钥
  2. 配置 OpenClaw

    # 设置 ElevenLabs 配置
    openclaw config set tts.provider elevenlabs
    openclaw config set tts.elevenlabs.apiKey "your-api-key"
  3. 选择语音角色

    # 使用预设语音
    openclaw config set tts.voice elevenlabs-rachel
    
    # 使用自定义语音(需要先克隆)
    openclaw config set tts.voice elevenlabs-custom-id

🎭 语音角色配置

使用预设角色

OpenClaw 提供多种预设语音角色:

# 查看可用语音角色
openclaw tts voices list

# 使用预设角色
openclaw config set tts.voice zh-CN-XiaoxiaoNeural

自定义语音角色

ElevenLabs 语音克隆

  1. 上传音频样本

    # 上传音频文件进行克隆
    openclaw tts clone --name "my-voice" --file "sample.wav"
  2. 使用克隆的语音

    # 使用自定义语音
    openclaw config set tts.voice "cloned:my-voice"

SSML 语音控制

使用 SSML(Speech Synthesis Markup Language)控制语音效果:

<speak>
  <prosody rate="slow" pitch="+10%">
    这是一个慢速高音的示例。
  </prosody>
  
  <break time="500ms"/>
  
  <prosody rate="fast" pitch="-10%">
    这是一个快速低音的示例。
  </prosody>
</speak>

🔄 自动 TTS 配置

会话级自动 TTS

在聊天中开启自动 TTS:

# 开启当前会话自动 TTS
/tts on

# 关闭当前会话自动 TTS
/tts off

# 查看当前会话 TTS 状态
/tts status

全局自动 TTS

配置全局自动 TTS:

# 开启全局自动 TTS
openclaw config set tts.autoTts true

# 关闭全局自动 TTS
openclaw config set tts.autoTts false

代理级自动 TTS

为特定代理配置自动 TTS:

{
  "agents": {
    "defaults": {
      "tts": {
        "autoTts": true,
        "voice": "zh-CN-XiaoxiaoNeural"
      }
    }
  }
}

💬 WhatsApp TTS 集成

语音朗读最新消息

在 WhatsApp 中使用 TTS:

# 朗读最新消息
/tts latest

# 朗读指定数量的消息
/tts latest 5

自动语音回复

配置 WhatsApp 自动语音回复:

{
  "channels": {
    "whatsapp": {
      "tts": {
        "autoReply": true,
        "voice": "zh-CN-XiaoxiaoNeural"
      }
    }
  }
}

🔍 故障排除

常见问题

1. TTS 不工作

症状: 使用 /tts 命令没有声音

解决方案:

# 检查 TTS 配置
openclaw config get tts

# 检查提供商配置
openclaw config get tts.azure  # 或其他提供商

# 测试提供商连接
openclaw tts test

2. 语音质量差

症状: 合成的语音不自然

解决方案:

  • 尝试不同的语音角色
  • 调整语速和音调参数
  • 升级到更高质量的提供商

3. 延迟高

症状: TTS 合成需要很长时间

解决方案:

  • 使用本地 CLI 提供商
  • 选择更快的语音角色
  • 检查网络连接

4. 语言支持问题

症状: 某些语言不支持

解决方案:

  • 检查提供商的语言支持列表
  • 使用支持目标语言的提供商
  • 考虑使用多语言提供商

调试命令

# 查看 TTS 详细日志
openclaw logs tts

# 测试 TTS 提供商
openclaw tts test --provider azure

# 查看可用语音
openclaw tts voices list --provider azure

# 重置 TTS 配置
openclaw config unset tts

📊 性能优化

选择合适的提供商

提供商 延迟 质量 价格 推荐场景
Azure Speech 企业级应用
Xiaomi 中文场景
Volcengine 中文场景
ElevenLabs 极高 高质量需求
Local CLI 极低 免费 本地部署

缓存优化

启用 TTS 缓存减少重复合成:

{
  "tts": {
    "cache": {
      "enabled": true,
      "maxSize": "100MB",
      "ttl": "7d"
    }
  }
}

并发控制

配置并发 TTS 请求:

{
  "tts": {
    "concurrency": {
      "max": 5,
      "queue": true
    }
  }
}

🔐 安全考虑

API 密钥安全

  • 使用环境变量存储 API 密钥
  • 定期轮换 API 密钥
  • 限制 API 密钥权限
# 使用环境变量
export TTS_API_KEY="your-api-key"
openclaw config set tts.azure.apiKey "$TTS_API_KEY"

访问控制

配置 TTS 访问控制:

{
  "tts": {
    "access": {
      "allowedUsers": ["user1", "user2"],
      "deniedUsers": ["user3"]
    }
  }
}

📚 参考资料

全是干货-通过学AI技术实现人生进阶教程 Youtube同步更新查看

欢迎 Star 收藏,持续关注 AI Agent 领域发展!🚀