#!/bin/bash set -euo pipefail echo "===== OpenClaw 启动脚本 v2.3 (简化版) =====" echo "启动时间: $(date)" echo "" echo "=== 1. 初始化环境与目录 ===" mkdir -p /root/.openclaw/{agents/main/sessions,credentials,sessions,skills} echo "目录结构创建完成。" echo "" echo "=== 2. 从备份恢复数据 ===" if python3 /app/sync.py restore; then echo "✓ 数据恢复完成。" else echo "⚠️ 数据恢复失败,继续启动。" >&2 fi echo "" echo "=== 3. 检查与安装技能 ===" SKILLS=("openclaw-tavily-search") INSTALLED_SKILLS=() for skill in "${SKILLS[@]}"; do echo "处理技能: $skill" is_installed=false # 检查是否已安装 if clawhub list 2>/dev/null | grep -q "$skill"; then echo " ✓ 已安装" is_installed=true # 检查是否已存在目录 elif [ -d "/app/skills/$skill" ] || [ -d "/root/.openclaw/skills/$skill" ]; then echo " ✓ 目录已存在" is_installed=true # 尝试安装 else echo " 🔧 尝试安装..." if clawhub install "$skill"; then echo " ✓ 安装成功" is_installed=true else echo " ⚠️ 安装失败" >&2 fi fi [ "$is_installed" = true ] && INSTALLED_SKILLS+=("$skill") done echo "" echo "=== 4. 配置 API 地址与生成主配置 ===" # 清理 API 地址 CLEAN_BASE="${OPENAI_API_BASE%/}" CLEAN_BASE="${CLEAN_BASE%/chat/completions}" CLEAN_BASE="${CLEAN_BASE%/v1}" CLEAN_BASE="${CLEAN_BASE}/v1" echo "API 地址: $CLEAN_BASE" # 生成主配置 cat > /root/.openclaw/openclaw.json <