
本文旨在分享一个实践:如何通过自托管的 OpenClaw 及其 Skills 功能,实现对家庭服务器群(Home Lab)与智能家居的智能化、自动化控制,从而突破单一平台(如小米米家)的功能限制。通过将复杂的运维环境、监控系统以及各类API封装为结构化的 Skills,我们就能打造一个能够主动分析故障、用灯光“可视化”运维进度,并通过智能音箱播报新闻的 家庭 AI Agent。
背景
作为一名家庭服务器(Home Lab)的长期维护者,我一直在同时管理着多台设备和小型智能家居系统。随着服务数量的增长,传统的手动运维和被动响应的“智能家居”模式开始显得捉襟见肘。你是否也发现,很多时候问题悬而未决,仅仅是因为配置自动化流程太过麻烦?
我的 Home Lab 已稳定运行五年,其上部署了各种服务。同时,我使用 Home Assistant 来统一管理家中的 IoT 设备。为了保障可观测性,我还搭建了 Prometheus 和 Grafana,并配置了相应的硬件与软件告警。
但问题随之而来:当手机收到告警通知后,我仍然需要手动登录服务器进行排查。如果身在外地,用手机进行远程排障不仅效率低下,体验也相当糟糕。这正是引入 AI Agent 的价值所在——理想情况下,我只需下达目标,它就能替我完成后续所有操作。
要让 OpenClaw 胜任家庭管理员一职,它至少需要掌握以下三类核心技能:
- Home Lab 环境知识:包括服务器清单、服务部署详情、监控架构等。
- Home Assistant 控制能力:用以操作智能家居设备。
- Prometheus API 调用能力:用于查询系统监控指标。
使用场景
1. Home Lab 故障排查与根因分析
设想这样一个场景:当服务器 CPU 使用率或温度过高告警触发时,我可以直接要求 AI Agent:“查找 192.168.1.14 上最耗 CPU 的服务,并通过智能音箱告诉我结果。”
它会自动查询监控数据,分析排序,并最终通过音箱进行语音播报,让我无需查看屏幕也能立即了解核心问题。

2. Home Lab “氛围灯光秀大师”
另一项有趣的应用是让运维过程“可视化”。例如,当我需要重启某台关键服务器时,可以命令 Agent:“重启 192.168.1.108,并立即关闭书房的灯光。等电脑启动完成、服务初始化就绪后,再把灯打开。”
这样,当我在书房时,灯光的变化就成了一种直观的服务器启动进度条。

3. AI 驱动的智能家居控制
除了运维,AI 也能让日常生活更便利。比如,我可以在早晨洗漱时,让 Agent:“总结 Hacker News (https://news.ycombinator.com/) 的新闻,翻译成中文,并用智能音箱读给我听。”
这样一来,获取科技动态就像收听广播一样简单自然。

Skills 设计
为了实现上述功能,首要任务是将我的 Home Lab 环境“教”给 OpenClaw。这包括所有 Linux 主机列表、每台机器上的服务、监控系统细节以及必须遵守的运维规则。显然,我不应该把这些冗长的信息直接塞进 LLM 的上下文窗口——那会快速耗尽 Token 且效率低下。
Anthropic 的 Skills 规范为此提供了优雅的解决方案:将特定领域的知识封装成独立的 Skill 文档,让 OpenClaw 在需要时按需加载,这极大地提升了 AI Agent 的上下文利用效率和专业性。
注意:以下 Skill 代码片段为了便于阅读,做了适当简化。
Home Lab 环境 Skill
核心设计思路如下:
- 通过 Bash 和 SSH 命令控制 Home Lab 中的机器。
- 所有 Linux 主机使用同一用户名,且配置了 SSH 免密登录。
- Prometheus 实例运行在 192.168.1.74:9090。
- 优先从 Prometheus 查询指标,仅在无法获取数据时才通过 SSH 获取实时信息。
- 对网关等关键机器默认设置为只读访问。
- 执行任何会修改系统状态的命令前,必须请求用户确认。
我特别在 Skill 中强调了两条运维规范,这相当于为 AI 定义了行为准则:
- 执行前必须先解释行动计划。
- 所有可能改变系统状态的操作必须征求用户确认。
Skill 存放路径:~/openclaw/workspace/skills/home-lab/SKILL.md
核心内容节选:
---
name: home-lab
description: Control the home lab where you(personal assistant running inside OpenClaw) are running on
---
# Home Lab
Control home lab Linux machines via bash and SSH commands.
## Conduct of Code
Always provide a clear, high-level explanation of your action plan before executing the first step. Let the user understand and confirm the plan before proceeding.
Always request confirmation before executing any command that may change system state, such as rebooting the OS, modifying configuration files, or restarting services. Clearly explain what the command does and why it is necessary before asking for confirmation.
## Home Lab Environment
All Linux machines use the same username: `mark`. SSH login does not require a password.
### Linux Machines
- 192.168.1.58 : Raspberry Pi, always on
- 192.168.1.68 : Raspberry Pi, always on
- 192.168.1.108 : Raspberry Pi, always on
- 192.168.1.14 : X86_64 server
### Observability and Monitoring
A Prometheus instance runs on 192.168.1.74:9090. Metrics are collected by Node Exporter on each machine.
When users request metrics (temperature, CPU usage, memory usage, disk usage), first query Prometheus. Only execute remote SSH commands if the required metrics cannot be found in Prometheus.
If you are unfamiliar with the Prometheus API, load the `prometheus-api` Skill.
Note that Prometheus metrics may not always be real-time. If real-time data is required, execute a remote SSH command.
Home Assistant Skill
基于 Home Assistant 官方 API 文档,我创建了一个 Webhook,专门用于向小米智能音箱发送语音通知。随后,在 Skill 中详细说明了调用方法。
例如,通过智能音箱播报的 curl 命令示例:
curl -s -X POST $HA_URL/api/webhook/ai-speak \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $HA_TOKEN" \
-d '{"msg": "需要播报的内容"}'
此外,该 Skill 还封装了列出智能设备、控制开关、调节灯光亮度等常用操作,均通过标准的 Home Assistant REST API 实现。
Skill 内容节选:
---
name: homeassistant
description: Control Home Assistant - smart plugs, lights, scenes, automations.
homepage: https://www.home-assistant.io/
metadata: {"clawdis":{"emoji":"🏠","requires":{"bins":["curl"],"env":["HA_TOKEN"]},"primaryEnv":"HA_TOKEN"}}
---
# Home Assistant
Control smart home devices via Home Assistant API.
## Quick Commands
### Smart Speaker Integration 🔊
There is a smart speaker you can control. You can control it to speech any text to the user. You can use it to send notification to user at home.
```bash
curl -s -X POST $HA_URL/api/webhook/ai-speak -H "Content-Type: application/json" -H "Authorization: Bearer $HA_TOKEN" -d '{"msg": "The message you want to speech to user"}'
### Prometheus API Skill
这个 Skill 基于 Prometheus 官方 API 文档封装而成。装备此技能后,Agent 便能够直接查询 CPU 使用率、设备温度、内存与磁盘状态等关键监控指标,甚至可以与 Alertmanager 结合,为实现更复杂的自动化运维流程奠定基础。对于希望深入探索 **运维/DevOps** 自动化的朋友,这类技能的设计思路非常值得参考。
## 未来使用场景
### 主动型 Agent
目前的 Agent 主要处于“被动响应”模式。下一步,我期望它能进化成“主动监控与处理”的形态。用户只需用自然语言描述期望的系统行为,Agent 就能自动将其转化为具体的监控规则、告警规则和自动化动作。
例如,通过将 OpenClaw 的 Webhook 集成到 Prometheus Alertmanager 中,可以实现:
* 告警自动触发故障排查流程。
* Agent 主动进行根因分析。
* 在必要时执行预定义的修复操作。
这意味着,当系统出现异常时,Agent 不仅仅是发送一条通知,而是直接开始分析和尝试解决问题。
### 管理我的家居物品
我还在运行一个自托管的家庭物品管理系统 Homebox。未来,我希望能用自然语言来管理它。比如,当我购入新设备时,只需对 Agent 说:“我新买了一台 iPhone 15 Pro Max,请把它添加到我的家庭物品清单里。”这将是 **AI** 融入日常生活的又一个实用场景。
## 总结
通过将 Home Lab 环境知识、Prometheus 监控系统和 Home Assistant API 分别封装为结构化的 Skills,OpenClaw 成功地将传统的“手动运维 + 被动智能家居”模式,升级为一个由 **AI 编排驱动** 的自动化系统。它不仅能够分析服务器故障、将运维过程趣味化、语音播报网络信息,更重要的是,它为构建“主动式 AI 运维与智能家居控制”体系提供了一个清晰且可扩展的架构范式。如果你也对打造个性化的智能家庭中枢感兴趣,欢迎在 **[云栈社区](https://yunpan.plus)** 的 **[人工智能](https://yunpan.plus/f/29-1)** 板块交流更多关于 Agent 和自动化集成的想法。
## 安全风险警告
**重要提示**:赋予 AI Agent 在您的 Home Lab 中执行命令并控制智能家居的权限,会引入显著的安全风险。潜在的攻击者可能利用该 Agent 获取未授权访问、造成破坏或窃取敏感信息。请务必仅从可信来源获取 Skill,并在安装前仔细审查其代码。强烈建议在权限受限的沙箱环境中运行此类 Agent,以最大限度降低潜在风险。
> 本文内容基于个人实践,首发于我的博客。