你是否厌倦了半夜服务器宕机时,还需要爬起来打开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聊天环境设计。