最佳实践

最佳实践

学习如何有效、安全和高效地使用 OpenClaw。

安全最佳实践

1. 使用配对模式

生产部署始终使用配对模式:

{
  "dmPolicy": "pairing",
  "whitelist": []
}

明确批准新联系人:

openclaw pairing approve whatsapp ABC123

2. 加密敏感数据

为存储的会话启用加密:

{
  "memory": {
    "persistence": {
      "encryption": true,
      "encryptionKey": "env:OPENCLAW_ENCRYPTION_KEY"
    }
  }
}

生成强加密密钥:

openssl rand -base64 32
export OPENCLAW_ENCRYPTION_KEY="your-generated-key"

3. 使用环境变量

永远不要在配置文件中硬编码密钥:

{
  "channels": [
    {
      "type": "telegram",
      "botToken": "env:TELEGRAM_BOT_TOKEN"
    }
  ]
}

4. 限制技能权限

仅授予技能必要的权限:

{
  "skills": {
    "permissions": {
      "weather-api": ["network"],
      "file-manager": ["filesystem:read"],
      "peekaboo": ["screen-capture"]
    }
  }
}

5. 启用审计日志

跟踪所有重要事件:

{
  "audit": {
    "enabled": true,
    "logFile": "~/.openclaw/audit.log",
    "events": ["message", "skill", "config", "session"]
  }
}

6. 定期安全更新

保持 OpenClaw 更新:

# 更新到最新版本
npm update -g openclaw

# 检查安全公告
openclaw security check

性能最佳实践

1. 选择正确的模型

平衡成本、速度和质量:

{
  "agent": {
    "model": "claude-sonnet-4-6"
  }
}

模型选择指南:

  • claude-haiku-4-5:快速、低成本、简单任务
  • claude-sonnet-4-6:平衡,推荐用于大多数用例
  • claude-opus-4-6:最高质量、复杂推理

2. 优化上下文大小

减少上下文以获得更快的响应:

{
  "context": {
    "maxMessages": 30,
    "maxTokens": 4000,
    "strategy": "summarization"
  }
}

3. 使用适当的思考级别

不要对简单查询使用高思考级别:

# 简单查询 - 使用低思考级别
openclaw agent --message "2+2 等于多少?" --thinking low

# 复杂推理 - 使用高思考级别
openclaw agent --message "设计一个分布式系统" --thinking xhigh

4. 启用自动清理

防止内存泄漏:

{
  "sessions": {
    "ttl": 86400,
    "autoCleanup": true,
    "cleanupInterval": 3600,
    "maxSessions": 1000
  }
}

5. 使用会话隔离

分离上下文以获得更好的性能:

{
  "sessions": {
    "isolation": "per-channel"
  }
}

配置最佳实践

1. 使用配置文件

为不同环境创建单独的配置:

# 开发环境
openclaw gateway --config ./config.dev.json

# 预发布环境
openclaw gateway --config ./config.staging.json

# 生产环境
openclaw gateway --config ./config.prod.json

2. 版本控制配置

跟踪配置更改(不包含密钥):

# .gitignore
config.prod.json
.env
*.key

保留模板:

// config.template.json
{
  "agent": {
    "model": "claude-sonnet-4-6"
  },
  "channels": [
    {
      "type": "telegram",
      "botToken": "env:TELEGRAM_BOT_TOKEN"
    }
  ]
}

3. 验证配置

部署前始终验证:

openclaw config validate

4. 备份配置

定期备份:

# 备份配置
cp ~/.openclaw/config.json ~/.openclaw/config.backup.json

# 带时间戳的备份
cp ~/.openclaw/config.json ~/.openclaw/config.$(date +%Y%m%d).json

5. 记录自定义设置

添加注释以解释自定义配置:

{
  "agent": {
    "temperature": 0.3,
    "_comment": "低温度以获得事实性、一致的响应"
  }
}

多代理路由最佳实践

1. 分离个人和工作

为不同上下文使用不同的代理:

{
  "routing": {
    "whatsapp:+1234567890": {
      "agent": "personal",
      "systemPrompt": "你是我的个人助手。要随意和友好。"
    },
    "slack:#work": {
      "agent": "work",
      "systemPrompt": "你是一个专业的工作助手。要正式和精确。"
    }
  }
}

2. 优化每个代理的设置

根据用例定制每个代理:

{
  "routing": {
    "telegram:@research": {
      "agent": "research",
      "model": "claude-opus-4-6",
      "thinkingLevel": "xhigh",
      "context": {
        "maxMessages": 200
      }
    },
    "slack:#support": {
      "agent": "support",
      "model": "claude-haiku-4-5",
      "thinkingLevel": "low",
      "context": {
        "maxMessages": 20
      }
    }
  }
}

3. 使用基于模式的路由

使用通配符简化路由:

{
  "routing": {
    "slack:#eng-*": "engineering",
    "slack:#design-*": "design",
    "whatsapp:*": "personal"
  }
}

技能管理最佳实践

1. 安装前审查技能

始终检查技能详情:

openclaw skill info peekaboo

审查:

  • 所需权限
  • 环境变量
  • 作者声誉
  • 用户评论

2. 固定技能版本

在生产环境中使用特定版本:

openclaw skill install peekaboo@1.2.0

3. 定期更新技能

保持技能更新以获得安全性和功能:

# 检查更新
openclaw skill outdated

# 更新特定技能
openclaw skill update peekaboo

# 更新所有技能
openclaw skill update --all

4. 最小化已安装的技能

仅安装您实际使用的技能:

# 列出已安装的技能
openclaw skill list

# 卸载未使用的技能
openclaw skill uninstall unused-skill

5. 本地测试���能

生产前测试新技能:

# 在开发配置中测试
openclaw agent --config ./config.dev.json --message "测试新技能"

渠道管理最佳实践

1. 从一个渠道开始

从单个渠道开始,逐步扩展:

{
  "channels": [
    {
      "type": "telegram",
      "enabled": true,
      "botToken": "env:TELEGRAM_BOT_TOKEN"
    }
  ]
}

2. 为不同目的使用单独的渠道

不要混合个人和工作渠道:

{
  "channels": [
    {
      "type": "whatsapp",
      "enabled": true,
      "phoneNumber": "+1234567890",
      "purpose": "personal"
    },
    {
      "type": "slack",
      "enabled": true,
      "botToken": "env:SLACK_BOT_TOKEN",
      "purpose": "work"
    }
  ]
}

3. 监控渠道健康

定期检查渠道状态:

openclaw channel status

4. 优雅地处理渠道故障

配置重试和回退:

{
  "channels": [
    {
      "type": "telegram",
      "enabled": true,
      "retry": {
        "maxAttempts": 3,
        "backoff": "exponential"
      }
    }
  ]
}

上下文管理最佳实践

1. 使用适当的上下文策略

根据用例选择:

{
  "context": {
    "strategy": "hybrid"
  }
}

策略选择:

  • sliding-window:快速、低成本、短对话
  • summarization:平衡、中等对话
  • hybrid:最佳质量、长对话

2. 设置合理的限制

平衡记忆和性能:

{
  "context": {
    "maxMessages": 100,
    "maxTokens": 8000
  }
}

3. 需要时清除上下文

为新主题重置上下文:

# 在聊天中
/reset

# 通过 CLI
openclaw session reset <会话ID>

4. 监控上下文大小

检查上下文使用情况:

# 在聊天中
/status

监控和调试最佳实践

1. 开发期间启用详细日志

openclaw gateway --verbose

2. 使用结构化日志

启用 JSON 日志以便于解析:

{
  "logging": {
    "level": "info",
    "format": "json",
    "file": "~/.openclaw/logs/openclaw.log"
  }
}

3. 监控网关健康

# 检查网关状态
openclaw gateway status

# 查看指标
openclaw metrics

4. 设置警报

监控关键事件:

# 示例:错误警报
tail -f ~/.openclaw/logs/openclaw.log | grep ERROR | mail -s "OpenClaw 错误" admin@example.com

5. 定期日志轮换

防止磁盘空间问题:

{
  "logging": {
    "maxSize": "100MB",
    "maxFiles": 10,
    "compress": true
  }
}

部署最佳实践

1. 使用守护进程模式

安装为系统服务:

openclaw onboard --install-daemon

2. 配置自动重启

确保网关在故障时重启:

# systemd (Linux)
sudo systemctl enable openclaw

# launchd (macOS)
#  --install-daemon 自动配置

3. 设置资源限制

防止资源耗尽:

{
  "gateway": {
    "maxConnections": 1000,
    "maxMemory": "2GB",
    "maxCPU": "80%"
  }
}

4. 使用健康检查

监控网关可用性:

# 健康检查端点
curl http://localhost:18789/health

5. 规划灾难恢复

定期备份:

# 备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
cp ~/.openclaw/config.json ~/backups/config.$DATE.json
openclaw session backup --output ~/backups/sessions.$DATE.json

成本优化最佳实践

1. 使用适当的模型

不要对简单任务使用 Opus:

{
  "routing": {
    "slack:#support": {
      "model": "claude-haiku-4-5"
    },
    "slack:#research": {
      "model": "claude-opus-4-6"
    }
  }
}

2. 启用摘要

减少令牌使用:

{
  "context": {
    "summarization": true,
    "summaryThreshold": 30
  }
}

3. 设置令牌限制

防止失控的成本:

{
  "agent": {
    "maxTokens": 2048
  }
}

4. 监控使用情况

跟踪 API 使用:

openclaw usage report --month 2026-03

5. 使用缓存

缓存常见响应:

{
  "cache": {
    "enabled": true,
    "ttl": 3600
  }
}

故障排除最佳实践

1. 首先检查日志

tail -f ~/.openclaw/logs/openclaw.log

2. 验证配置

openclaw config validate
openclaw config show

3. 测试连接

# 测试网关
curl http://localhost:18789/health

# 测试渠道
openclaw channel test telegram

4. 隔离问题

单独测试组件:

# 仅测试代理
openclaw agent --message "测试"

# 测试特定渠道
openclaw message send --channel telegram --to @username --message "测试"

5. 寻求帮助

遇到困难时:

  • 查看文档
  • 搜索 GitHub 问题
  • 在社区中提问
  • 包含日志和配置(不包含密钥)

下一步