News

CloudClaw:用WhatsApp自然语言管理AWS EC2,告别深夜控制台

CloudClaw:用WhatsApp自然语言管理AWS EC2,告别深夜控制台

你是否厌倦了半夜服务器宕机时,还需要爬起来打开AWS控制台进行操作?现在,一个名为CloudClaw的项目提供了一个优雅的解决方案:通过WhatsApp,使用自然语言就能直接管理你的AWS EC2虚拟机。这个创新工具让云资源管理变得像发消息一样简单。

CloudClaw的核心功能是允许用户在WhatsApp中输入如“停止虚拟机”、“检查Web服务器CPU”或“列出所有实例”等指令,然后由OpenClaw负责解析、执行并返回结果。其工作流程精巧而高效:WhatsApp消息首先通过OpenClaw网关(通常运行在macOS上,利用Linked Devices协议)传输,接着路由到自定义的cloud-manager AgentSkill。这个Skill会调用aws_manager.py脚本,该脚本利用AWS SDK (boto3) 与AWS EC2和CloudWatch进行交互。最终,操作结果会回复到WhatsApp聊天中,并且本地的实时仪表盘(localhost:8080)也会每10秒自动更新。

CloudClaw支持多种自然语言命令,并且OpenClaw的底层大语言模型(LLM)能够理解用户意图,而不仅仅是精确的指令匹配。这意味着“启动我的生产服务器”和“启动Web服务器”都能被正确识别并执行。以下是支持的主要操作及它们的功能:

  • 启动虚拟机 / 启动服务器:启动EC2实例,持续轮询直至运行状态,并返回实例IP地址。
  • 停止虚拟机 / 关闭服务器:优雅地停止实例,并在停止后确认。
  • 重启虚拟机 / 重启服务器:重启实例,并给出预计时间。
  • 列出虚拟机 / 显示所有服务器:列出所有EC2实例,显示其状态、类型和IP地址。
  • 检查CPU:从CloudWatch获取5分钟/1小时/24小时内的CPU使用百分比。
  • 检查内存:通过CloudWatch Agent获取内存使用情况。
  • 状态:提供AWS云健康报告。

OpenClaw在CloudClaw中扮演着核心骨干的角色。它是如何赋能这个项目的呢?

1. 自定义AgentSkill — cloud-manager/SKILL.md

OpenClaw的Skill系统允许开发者编写一个SKILL.md文件,用于向AI Agent描述工具的功能、何时使用以及如何调用。这构成了CloudClaw的“大脑”。这个Skill文件明确指示OpenClaw:

  • 哪些消息应该触发云操作(通过自然语言触发规则)。
  • 是路由到AWS、GCP还是两者。
  • 如何通过内置的exec工具调用Python脚本。
  • 如何格式化适合WhatsApp的回复。

例如,SKILL.md的元数据部分定义了Skill的名称、描述、是否可供用户调用,以及关键的触发词列表:

---
name: cloud-manager
description: >
Manages AWS EC2 instances and GCP Compute Engine instances via natural language.
user-invocable: true
triggers:
- start vm
- stop vm
- restart vm
- list vms
- check cpu
- check memory
- cloud status
metadata:
openclaw:
requires:
bins: ["python3"]
---

SKILL.md的其余部分包含用纯Markdown编写的NLP路由规则和响应格式指令,OpenClaw会据此精确执行操作。

2. Python脚本 — boto3

OpenClaw的exec工具允许Skill运行shell命令和Python脚本。为此,开发者编写了aws_manager.py脚本,它利用boto3库完成以下任务:

  • 调用ec2.start_instances()ec2.stop_instances()ec2.reboot_instances()进行实例启停和重启。
  • 使用ec2.describe_instances()来列出实例信息。
  • 调用cloudwatch.get_metric_statistics()获取CPU和内存指标。
  • 实现轮询循环,等待状态变更并返回最终结果。

该脚本返回经过精心格式化、包含emoji的简洁输出,专为WhatsApp聊天环境设计。

↗ 阅读原文