Skip to content

OpenClaw 最佳实践

经过验证的使用方法和技巧。


📋 配置最佳实践

1. 安全配置

凭证管理

bash
# ✅ 正确:使用环境变量
export OPENCLAW_FEISHU_SECRET="xxx"

# ❌ 错误:硬编码在配置中
{
  "appSecret": "xxx"  // 不要这样
}

权限控制

json
{
  "channels": {
    "feishu": {
      "groupPolicy": "allowlist",  // ✅ 使用白名单
      "groupAllowFrom": ["user1", "user2"]
    }
  }
}

2. 性能配置

模型选择

json
{
  "models": {
    "default": "qwen-plus",      // 日常使用
    "fallbacks": [
      "qwen-max",                // 复杂任务
      "qwen-turbo"               // 快速响应
    ]
  }
}

会话管理

json
{
  "sessions": {
    "maxConcurrent": 50,         // 最大并发
    "timeout": 3600000,          // 超时时间
    "compaction": {
      "mode": "safeguard",       // 自动压缩
      "threshold": 100           // 消息数阈值
    }
  }
}

💬 对话设计最佳实践

1. 人格定义

好的 SOUL.md

markdown
# SOUL.md

- **Name:** 小助手
- **Creature:** AI 助理
- **Vibe:** 友好/专业/简洁
- **Style:** 
  - 回复简洁,不啰嗦
  - 使用专业术语
  - 主动提供帮助

避免的问题

markdown
# ❌ 太模糊
- Vibe: 好

# ✅ 具体明确
- Vibe: 友好/专业/简洁

2. Prompt 设计

系统 Prompt

markdown
你是一个专业的 AI 助理。

回复要求:
1. 简洁明了,不超过 200 字
2. 使用专业术语
3. 提供实用建议
4. 不确定时说明

用户 Prompt

❌ 太简单:写个总结

✅ 具体明确:请用 300 字总结这篇文章,
   包括:主要观点、数据支持、结论

🛠️ 技能开发最佳实践

1. 技能设计

单一职责

javascript
// ✅ 好:一个技能做一件事
module.exports = {
  name: 'weather',
  description: '查询天气'
};

// ❌ 不好:一个技能做多件事
module.exports = {
  name: 'everything',
  description: '什么都做'  // 不要这样
};

错误处理

javascript
async execute(args, context) {
  try {
    return await doSomething(args);
  } catch (error) {
    console.error('[Skill Error]', error);
    return '抱歉,执行失败,请稍后重试。';
  }
}

2. 技能测试

单元测试

javascript
const assert = require('assert');
const skill = require('./index');

describe('Weather Skill', () => {
  it('should return weather for Beijing', async () => {
    const result = await skill.execute(['北京'], {});
    assert.ok(result.includes('北京'));
  });
});

集成测试

bash
# 测试技能
openclaw skills test weather --args "北京"

# 测试端到端
openclaw message send "天气 北京"

📊 运维最佳实践

1. 监控告警

关键指标

javascript
// 监控脚本
const metrics = {
  responseTime: getResponseTime(),
  errorRate: getErrorRate(),
  memoryUsage: getMemoryUsage()
};

// 告警
if (metrics.errorRate > 0.05) {
  sendAlert('错误率过高');
}

日志管理

bash
# 日志轮转
logrotate /etc/logrotate.d/openclaw

# 日志清理
find /var/log -name "*.log" -mtime +30 -delete

2. 备份恢复

配置备份

bash
# 备份配置
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz \
  ~/.openclaw/openclaw.json \
  ~/.openclaw/workspace/ \
  ~/.openclaw/credentials/

# 上传到云存储
aws s3 cp openclaw-backup.tar.gz s3://bucket/backups/

恢复流程

bash
# 下载备份
aws s3 cp s3://bucket/backups/openclaw-backup.tar.gz .

# 解压恢复
tar -xzf openclaw-backup.tar.gz -C ~/

# 重启服务
openclaw gateway restart

🔒 安全最佳实践

1. 访问控制

配置白名单

json
{
  "channels": {
    "feishu": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["ou_xxx"],
      "dmPolicy": "pairing"
    }
  }
}

命令审批

json
{
  "tools": {
    "elevated": {
      "requireApproval": true,
      "allowList": ["read", "write"]
    }
  }
}

2. 数据保护

敏感数据加密

bash
# 加密存储
gpg --symmetric --cipher-algo AES256 credentials.json

# 设置权限
chmod 600 credentials.json.gpg

定期清理

bash
# 清理会话历史
openclaw sessions clean --older 7d

# 清理日志
find ~/.openclaw/logs -mtime +30 -delete

📈 扩展最佳实践

1. 水平扩展

多实例部署

bash
# 实例 1(端口 18789)
OPENCLAW_PORT=18789 openclaw gateway start

# 实例 2(端口 18790)
OPENCLAW_PORT=18790 openclaw gateway start

# 负载均衡
nginx -s reload

2. 垂直扩展

增加资源

bash
# 增加内存限制
export NODE_OPTIONS="--max-old-space-size=2048"

# 使用更强模型
openclaw models use qwen-max

📋 检查清单

日常检查

  • [ ] 服务状态正常
  • [ ] 日志无 ERROR
  • [ ] 资源使用正常
  • [ ] 备份已完成

每周检查

  • [ ] 更新依赖包
  • [ ] 清理过期数据
  • [ ] 审查安全日志
  • [ ] 性能分析

每月检查

  • [ ] 系统更新
  • [ ] 配置审查
  • [ ] 容量规划
  • [ ] 灾难演练

提示

遵循最佳实践,让系统更稳定可靠!

🟢🐉 泡泡龙

Released under the MIT License.