OpenClaw 实战案例:构建完整的个人助手

通过前面的教程,我们已经学习了 OpenClaw 的各个方面。现在,让我们将这些知识整合起来,构建一个功能完整的个人 AI 助手。本文将详细介绍如何从零开始构建一个实用的 AI 助手系统。

项目概述

目标

构建一个智能个人助手,具备以下功能:

  • 多渠道接入:支持 Telegram、WhatsApp、Slack
  • 日程管理:创建、查看、提醒日程
  • 信息查询:天气、新闻、时间等
  • 自动化任务:定时生成报告、检查系统状态
  • 语音交互:支持语音唤醒和对话
  • 安全控制:DM 配对和权限管理

系统架构

架构图

┌─────────────────────────────────────┐
│         OpenClaw Gateway            │
│                                     │
│  ┌──────────┐  ┌──────────┐         │
│  │Channels  │  │ Sessions │         │
│  │-Telegram │  │ Manager  │         │
│  │-WhatsApp │  │          │         │
│  │-Slack    │  │  Memory  │         │
│  └────┬─────┘  └────┬─────┘         │
│       │              │              │
│       └──────┬───────┘              │
│              │                      │
│  ┌───────────▼───────────┐          │
│  │     Router            │          │
│  │  - personal-assistant │          │
│  │  - coder             │          │
│  │  - messenger         │          │
│  └───────┬───────────────┘          │
│          │                          │
│  ┌───────▼───────────────┐          │
│  │     Tools            │          │
│  │  - web_search        │          │
│  │  - web_fetch         │          │
│  │  - exec              │          │
│  │  - calendar          │          │
│  └───────────────────────┘          │
│                                     │
│  ┌──────────┐  ┌──────────┐         │
│  │ Automation│ │  Voice   │         │
│  │   Cron   │  │  Wake    │         │
│  └──────────┘  └──────────┘         │
└─────────────────────────────────────┘

配置网关

基础配置

创建 ~/.openclaw/openclaw.json

{
  "gateway": {
    "port": 18789,
    "host": "0.0.0.0",
    "verbose": false
  },
  "models": {
    "default": "openai/gpt-4o",
    "failover": {
      "enabled": true,
      "providers": [
        {
          "provider": "openai",
          "model": "gpt-4o",
          "priority": 1
        },
        {
          "provider": "anthropic",
          "model": "claude-3-5-sonnet-20241022",
          "priority": 2
        }
      ]
    }
  }
}

配置多 Agent

Agent 列表

配置三个 Agent,分别处理不同类型的任务:

{
  "agents": {
    "list": [
      {
        "id": "personal-assistant",
        "name": "Personal Assistant",
        "description": "我的个人助手,处理日常任务",
        "model": "openai/gpt-4o",
        "tools": {
          "profile": "full"
        },
        "session": {
          "timeout": 3600,
          "maxHistoryLength": 50
        }
      },
      {
        "id": "coder",
        "name": "Code Assistant",
        "description": "编程助手,处理代码相关任务",
        "model": "openai/gpt-4o",
        "tools": {
          "profile": "coding"
        }
      },
      {
        "id": "messenger",
        "name": "Message Bot",
        "description": "消息机器人,仅发送通知",
        "model": "openai/gpt-3.5-turbo",
        "tools": {
          "profile": "messaging"
        }
      }
    ]
  }
}

配置渠道

Telegram

作为主要的交互渠道:

{
  "channels": {
    "telegram": {
      "token": "YOUR_TELEGRAM_BOT_TOKEN",
      "dmPolicy": "pairing",
      "agent": "personal-assistant"
    }
  }
}

WhatsApp

作为备用渠道:

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "authType": "qr",
      "dmPolicy": "pairing",
      "agent": "personal-assistant"
    }
  }
}

Slack

用于工作通知:

{
  "channels": {
    "slack": {
      "token": "xoxb-YOUR_SLACK_TOKEN",
      "dmPolicy": "pairing",
      "agent": "messenger"
    }
  }
}

配置 Web 工具

搜索配置

配置 Perplexity 搜索:

{
  "tools": {
    "web": {
      "search": {
        "enabled": true,
        "provider": "perplexity",
        "apiKey": "pplx-YOUR_API_KEY",
        "maxResults": 5,
        "cache": {
          "enabled": true,
          "ttl": 900
        }
      },
      "fetch": {
        "enabled": true,
        "timeout": 10000,
        "cache": {
          "enabled": true,
          "ttl": 3600
        }
      }
    }
  }
}

配置自动化

定时任务

创建多个定时任务:

{
  "automation": {
    "cron": [
      {
        "name": "morning-report",
        "description": "每日晨报",
        "schedule": "0 9 * * 1-5",
        "enabled": true,
        "agent": "personal-assistant",
        "message": "发送晨报:天气、日程、新闻摘要",
        "timezone": "Asia/Shanghai"
      },
      {
        "name": "health-check",
        "description": "系统健康检查",
        "schedule": "0 */6 * * *",
        "enabled": true,
        "agent": "coder",
        "message": "检查服务器健康状态"
      },
      {
        "name": "weekly-report",
        "description": "周报",
        "schedule": "0 17 * * 5",
        "enabled": true,
        "agent": "personal-assistant",
        "message": "生成周报:本周总结和下周计划"
      }
    ]
  }
}

配置语音

语音唤醒

在 macOS 上启用语音唤醒:

{
  "nodes": {
    "voicewake": {
      "enabled": true,
      "wakeWord": "Hey Assistant",
      "sensitivity": 0.5,
      "autoListen": true
    },
    "talk": {
      "enabled": true,
      "sttProvider": "openai",
      "ttsProvider": "openai",
      "voice": "alloy",
      "language": "zh-CN"
    }
  }
}

配置安全

工具权限

限制敏感工具的使用:

{
  "tools": {
    "exec": {
      "security": "ask"
    },
    "process": {
      "security": "ask"
    }
  }
}

部署系统

安装 OpenClaw

# 安装 OpenClaw
$ curl -fsSL https://openclaw.ai/install.sh | bash

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

启动网关

# 启动网关
$ openclaw gateway start

# 检查状态
$ openclaw gateway status

使用场景

场景 1:日程管理

通过 Telegram 管理日程:

用户: 添加日程:明天下午 3 点开会
AI: 已添加日程:明天下午 3 点开会

用户: 查看今天的日程
AI: 今天的日程:
- 10:00 - 11:00 团队会议
- 15:00 - 16:00 项目评审

场景 2:信息查询

查询实时信息:

用户: 今天的天气怎么样?
AI: [搜索天气]
AI: 今天天气晴朗,气温 25°C,适合外出。

用户: 今天的科技新闻有什么?
AI: [搜索科技新闻]
AI: 今天的科技新闻要点:
1. OpenAI 发布新模型 GPT-4o...
2. Google 宣布新功能...

场景 3:语音交互

通过语音与助手交互:

用户: Hey Assistant, 现在几点了?
AI: 现在是下午 3 点 15 分。

场景 4:自动化报告

定时生成报告并发送到 Telegram:

AI: 📅 每日晨报

🌤️ 天气:晴朗,25°C

📋 日程:
- 10:00 - 11:00 团队会议
- 15:00 - 16:00 项目评审

📰 新闻摘要:
- OpenAI 发布新模型...
- Google 宣布新功能...

场景 5:代码助手

通过 Slack 请求代码帮助:

用户: @coder 帮我写一个 Python 函数,计算斐波那契数列
Coder: 这是一个计算斐波那契数列的函数:

```python
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
```

如果你想使用更高效的版本,可以这样写:

```python
def fibonacci_iterative(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a
```

监控和维护

监控日志

# 查看实时日志
$ openclaw gateway logs --follow

定期诊断

# 运行诊断
$ openclaw doctor

更新系统

# 更新 OpenClaw
$ curl -fsSL https://openclaw.ai/install.sh | bash

扩展功能

添加新工具

开发自定义工具扩展功能:

  • 日历集成
  • 邮件发送
  • 文件管理
  • 系统监控

添加新渠道

集成更多聊天平台:

  • Discord
  • Feishu(飞书)
  • WeChat(通过插件)

最佳实践

性能优化

  • 启用缓存减少重复请求
  • 限制会话历史长度
  • 使用更快的模型处理简单任务
  • 合理配置并发请求

安全管理

  • 定期审查配对列表
  • 使用环境变量存储 API Key
  • 限制工具权限
  • 启用敏感操作审批

备份和恢复

  • 定期备份配置文件
  • 备份会话数据
  • 记录重要配置变更

总结

通过这个实战案例,我们构建了一个功能完整的个人 AI 助手系统。这个系统集成了多渠道接入、日程管理、信息查询、自动化任务、语音交互和安全控制等功能。你可以根据实际需求进一步扩展和定制。

系列教程汇总

  1. OpenClaw 入门完全指南:你的个人 AI 助手
  2. OpenClaw 安装与部署完整指南
  3. OpenClaw 平台插件配置:连接 20+ 聊天平台
  4. OpenClaw 工具插件使用:让你的 AI 助手无所不能
  5. OpenClaw 自定义技能开发:打造专属 AI 助手
  6. OpenClaw 网关详解:架构与配置
  7. OpenClaw 模型配置:多提供商管理
  8. OpenClaw 工作流自动化:Cron 任务与定时执行
  9. OpenClaw 会话管理:多会话与内存管理
  10. OpenClaw 语音功能:语音唤醒与对话模式
  11. OpenClaw 安全策略:DM 配对与权限控制
  12. OpenClaw Web 工具:网络搜索与内容抓取
  13. OpenClaw 插件开发:创建自定义插件
  14. OpenClaw 故障排查:常见问题与解决方案
  15. OpenClaw 实战案例:构建完整的个人助手(本文)

相关资源

发表回复

后才能评论