OpenClaw 使用指南:用 Skills 实现 AI 全自动操控电脑#
在 AI 浪潮席卷全球的今天,我们不再满足于让 AI 仅仅回答问题——我们希望 AI 能够真正帮我们干活。OpenClaw 正是这样一个框架:它让大语言模型(LLM)拥有"手脚",通过可插拔的 Skills(技能) 系统,让 AI 代理能够执行文件操作、运行命令、自动化浏览器、管理进程……几乎所有你能用鼠标键盘做的事,OpenClaw 都能让 AI 替你完成。
一、OpenClaw 是什么?#
OpenClaw 是一个开源、自托管的 AI 自动化框架,其核心理念是将大语言模型变成能够实际操作计算机和应用程序的"动手助手"。
1.1 核心特性#
| 特性 | 说明 |
|---|---|
| 自托管 & 隐私优先 | 所有数据和 API Key 保存在本地,不上传到第三方服务 |
| 模型无关 | 支持 GPT-4、Claude、DeepSeek、Gemini,以及本地部署的开源模型(如 LLaMA、Qwen) |
| Skills 插件系统 | 通过模块化的 Skill 插件扩展 AI 能力,社区已积累数千个 Skill |
| 多渠道接入 | 可通过 WhatsApp、Telegram、Discord、iMessage 等渠道与 AI 代理交互 |
| 跨平台 | 支持 Windows、macOS、Linux |
| Python SDK | 提供完整的 Python SDK,便于二次开发和集成 |
1.2 核心架构#
┌─────────────────────────────────────────────────┐
│ 用户接入层 │
│ Telegram / Discord / WhatsApp / API / CLI │
└───────────────────┬─────────────────────────────┘
│
┌───────────────────▼─────────────────────────────┐
│ OpenClaw 网关(Gateway) │
│ - 消息路由 - 会话管理 - 权限控制 │
└───────────────────┬─────────────────────────────┘
│
┌───────────────────▼─────────────────────────────┐
│ AI 代理引擎(Agent Engine) │
│ LLM(GPT / Claude / DeepSeek / 本地模型) │
│ - 意图理解 - 任务规划 - 多步骤推理 │
└───────────────────┬─────────────────────────────┘
│ 调用
┌───────────────────▼─────────────────────────────┐
│ Skills(技能)层 │
│ 文件技能 │ Shell技能 │ 浏览器技能 │ 系统技能 │ ... │
└─────────────────────────────────────────────────┘AI 代理作为"大脑"负责理解用户意图并规划任务,Skills 则是一双双"手",负责真实地在操作系统层面执行动作。
二、安装与快速上手#
2.1 安装 OpenClaw#
# 全局安装 OpenClaw CLI
npm install -g openclaw@latest
# 初始化向导(配置 AI 模型 API Key、接入渠道等)
openclaw onboard按照向导提示输入 AI 模型的 API Key(支持 OpenAI、Anthropic、DeepSeek 等),并选择接入渠道(可以先选择 CLI 本地测试模式)。
2.2 安装 Python SDK(可选)#
如果需要在 Python 代码中编程调用 OpenClaw,可以安装 SDK:
pip install openclaw-sdk
# 如果需要 FastAPI 集成
pip install "openclaw-sdk[fastapi]"2.3 启动代理#
# 启动 OpenClaw 网关
openclaw start
# 查看代理状态
openclaw status启动成功后,你可以通过配置的渠道(如 Telegram Bot)或者直接通过 CLI 与 AI 代理对话:
openclaw chat "帮我列出桌面上的所有文件"三、Skills 系统详解#
Skills 是 OpenClaw 的灵魂所在。一个 Skill 本质上是一个描述 AI 能做什么、以及如何执行的模块,通常包含:
SKILL.md:用自然语言描述这个 Skill 的功能、使用场景和参数- 执行脚本:Python、Node.js 或 Shell 脚本,实现具体的操作逻辑
3.1 Skills 的工作原理#
用户请求 → LLM 理解意图 → 匹配最合适的 Skill → 提取参数 → 执行脚本 → 返回结果以"帮我把桌面上的所有 .log 文件移动到 /tmp/logs 目录"为例:
- LLM 分析意图:文件批量移动操作
- 匹配到
file-managerSkill - 提取参数:
source=~/Desktop/*.log,destination=/tmp/logs - 执行 Python 脚本完成移动
- 返回操作结果摘要
3.2 Skills 的安装#
通过官方的 ClawHub 可以一键安装社区 Skill:
# 搜索可用 Skill
npx clawhub@latest search file
# 安装指定 Skill
npx clawhub@latest install file-manager
npx clawhub@latest install shell-executor
npx clawhub@latest install browser-automation
# 查看已安装的 Skill
openclaw skills list四、核心 Skills:操作电脑的各种能力#
下面重点介绍 OpenClaw 中最常用的几类 Skill,它们赋予了 AI 代理操控电脑的各种能力。
4.1 文件操作技能(File Skills)#
文件 Skill 让 AI 可以像有经验的用户一样管理文件系统。
能做什么:
- 读取文件内容(支持 txt、json、csv、markdown、代码文件等)
- 写入 / 追加文件内容
- 批量重命名、移动、复制、删除文件
- 按条件搜索文件(按名称、大小、修改时间)
- 解压缩文件(zip、tar.gz 等)
- 监听目录变化并触发自动化流程
示例 Skill 脚本(Python):
# skill: file-manager/read_file.py
import sys
import json
def read_file(file_path: str) -> dict:
"""读取文件内容并返回"""
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
return {"success": True, "content": content, "lines": content.count('\n') + 1}
except FileNotFoundError:
return {"success": False, "error": f"文件不存在: {file_path}"}
except Exception as e:
return {"success": False, "error": str(e)}
if __name__ == "__main__":
params = json.loads(sys.argv[1])
result = read_file(params["file_path"])
print(json.dumps(result, ensure_ascii=False))实际对话示例:
用户:读取 /home/lee/project/config.json 的内容,告诉我数据库配置是什么
AI:正在读取文件... 文件中数据库配置如下:
host: 127.0.0.1
port: 3306
database: mydb
username: root4.2 Shell 命令技能(Shell Skills)#
Shell Skill 是最强大也是最危险的技能之一,它让 AI 直接在终端执行命令。
能做什么:
- 执行任意 Shell/Bash/PowerShell 命令
- 运行脚本文件(
.sh、.py、.js) - 安装/卸载软件包(
apt、brew、pip、npm) - 管理服务(
systemctl start/stop/restart) - 查看系统日志(
journalctl、tail -f) - 定时任务管理(
crontab)
示例 SKILL.md(技能描述文件):
# Shell 命令执行技能
## 功能说明
在用户的操作系统上执行 Shell 命令,返回命令输出结果。
## 使用场景
- 用户需要运行系统命令
- 用户需要查看命令输出(如系统状态、进程列表)
- 用户需要安装软件或管理服务
## 参数
- command (string, required): 要执行的 Shell 命令
- timeout (int, optional): 超时时间(秒),默认 30
- working_dir (string, optional): 工作目录
## 安全限制
- 禁止执行 rm -rf / 等危险命令
- 禁止访问敏感目录
- 所有命令执行前需用户确认(高危操作)实际对话示例:
用户:帮我看一下当前有哪些 Java 进程在运行
AI:正在执行命令...
$ ps aux | grep java
结果显示有 3 个 Java 进程:
1. PID 12345 - Spring Boot 应用(端口 8080)
2. PID 23456 - Kafka Broker
3. PID 34567 - Elasticsearch⚠️ 安全提示:Shell Skill 默认会对高危操作(如删除文件、修改系统配置)进行二次确认,建议在配置文件中设置命令白名单和黑名单。
4.3 浏览器自动化技能(Browser Skills)#
基于 Playwright 或 Puppeteer 实现,让 AI 像真人一样操作浏览器。
能做什么:
- 自动打开网页、点击按钮、填写表单
- 截取网页截图
- 爬取网页内容(支持动态渲染的 JavaScript 页面)
- 自动登录和表单提交
- 监控网页变化(如价格监控、新闻追踪)
- 下载文件
示例 Skill 脚本(Node.js + Playwright):
// skill: browser-automation/scrape_page.js
const { chromium } = require('playwright');
async function scrapePage(url, selector) {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
try {
await page.goto(url, { waitUntil: 'networkidle' });
// 提取指定选择器的文本内容
const content = await page.$$eval(selector, elements =>
elements.map(el => el.textContent.trim()).filter(Boolean)
);
// 截图保存
await page.screenshot({ path: '/tmp/screenshot.png' });
return { success: true, content, screenshotPath: '/tmp/screenshot.png' };
} finally {
await browser.close();
}
}
const params = JSON.parse(process.argv[2]);
scrapePage(params.url, params.selector || 'body')
.then(result => console.log(JSON.stringify(result)));实际对话示例:
用户:帮我查一下 GitHub 上 OpenClaw 项目今天的 Star 数量
AI:正在打开 GitHub 页面...
已获取数据:OpenClaw 项目当前 Star 数量为 12,847⭐
(截图已保存到 /tmp/screenshot.png)4.4 系统控制技能(System Control Skills)#
系统控制 Skill 让 AI 可以管理操作系统级别的资源和设置。
能做什么:
- 获取系统信息(CPU、内存、磁盘使用率)
- 管理系统进程(查看、杀死进程)
- 控制系统服务(启动/停止 systemd 服务)
- 修改系统设置(网络配置、防火墙规则)
- 调整电源管理(休眠、关机、重启)
- 管理用户和权限
Python SDK 调用示例:
from openclaw_sdk import OpenClawClient
client = OpenClawClient(base_url="http://localhost:3000")
# 获取系统资源使用情况
response = client.execute_skill(
skill="system-monitor",
action="get_resources",
params={}
)
print(response.result)
# 输出示例:
# {
# "cpu_percent": 23.5,
# "memory_used_gb": 8.2,
# "memory_total_gb": 16.0,
# "disk_used_gb": 120.3,
# "disk_total_gb": 512.0
# }实际对话示例:
用户:我的电脑最近有点卡,帮我查一下哪些进程占用内存最多
AI:正在分析系统进程...
内存占用 TOP 5:
1. Google Chrome - 3.2 GB (20.0%)
2. Java (IDEA) - 2.1 GB (13.1%)
3. Docker Desktop - 1.8 GB (11.2%)
4. Slack - 0.9 GB (5.6%)
5. Zoom - 0.7 GB (4.4%)
建议:Chrome 有 24 个标签页,可以考虑关闭不常用的标签页以释放内存。4.5 进程与任务调度技能(Process & Scheduling Skills)#
能做什么:
- 后台运行脚本或程序
- 设置定时任务(类 Cron 功能)
- 监控任务执行状态
- 任务队列管理
- 进程守护(crash 后自动重启)
定时任务示例:
用户:帮我每天早上 9 点自动备份 ~/Documents 到 ~/Backup
AI:好的,我来为你创建一个定时备份任务。
已创建定时任务:
┌───────── 分钟 (0)
│ ┌────── 小时 (9)
│ │ ┌──── 日期 (*)
│ │ │ ┌── 月份 (*)
│ │ │ │ ┌ 星期 (*)
0 9 * * * rsync -av ~/Documents ~/Backup/$(date +%Y%m%d)
任务 ID: backup-docs-daily
首次执行时间: 明天 09:00:004.6 代码执行技能(Code Execution Skills)#
能做什么:
- 在安全沙箱中运行 Python / JavaScript / Go / Bash 代码片段
- 自动安装代码依赖
- 捕获并解析代码输出
- 数据处理和分析(支持 pandas、numpy 等)
- 生成图表(matplotlib、Chart.js)
实际对话示例:
用户:我有一个 data.csv,帮我计算每列的平均值和标准差,并画一个柱状图
AI:好的,正在处理数据...
[执行 Python 代码]
统计结果:
| 列名 | 平均值 | 标准差 |
|---------|---------|---------|
| sales | 15234.5 | 3421.2 |
| visits | 8921.3 | 1234.6 |
| orders | 456.7 | 89.3 |
柱状图已生成并保存至 /tmp/chart.png 📊五、多步骤任务:Skills 的协同编排#
OpenClaw 真正强大的地方在于,AI 可以自动将复杂任务分解为多个步骤,依次调用不同的 Skill,完成端到端的自动化工作流。
示例:自动化代码审查
用户:帮我审查一下今天提交到 main 分支的所有代码改动
AI 执行步骤:
Step 1: [Shell Skill] git log --since=today --oneline --merges
→ 找到 3 个 PR 合并提交
Step 2: [Shell Skill] git diff HEAD~3 HEAD --name-only
→ 发现 12 个文件变更
Step 3: [File Skill] 读取每个变更文件的内容
→ 加载 2,341 行代码
Step 4: [LLM 分析] 对代码逐文件进行审查
→ 识别出 3 处潜在问题
Step 5: [File Skill] 将审查报告写入 code_review_report.md
审查完成!发现以下问题:
1. UserService.java:45 - 存在 SQL 注入风险(未使用参数化查询)
2. OrderController.java:78 - 接口未做权限校验
3. CacheManager.java:123 - 缓存键可能冲突(未加命名空间)六、自定义 Skill 开发#
如果现有社区 Skill 不满足需求,可以轻松创建自己的 Skill。
6.1 Skill 目录结构#
my-custom-skill/
├── SKILL.md # 技能描述(AI 用来理解何时调用此技能)
├── main.py # 主执行脚本
├── requirements.txt # Python 依赖
└── config.json # 技能配置(可选)6.2 SKILL.md 编写要点#
SKILL.md 是 AI 用来理解这个 Skill 能做什么、何时应该调用它的核心文件:
# 企业内部系统查询技能
## 功能说明
查询公司内部 OA 系统中的员工信息、请假记录和绩效数据。
## 使用场景
- 用户询问某员工的联系方式或部门信息
- 用户需要查询请假申请状态
- 用户需要查看项目绩效报告
## 参数
- query_type (string): 查询类型,可选值: employee_info | leave_record | performance
- employee_id (string, optional): 员工工号
- date_range (string, optional): 日期范围,格式 YYYY-MM-DD/YYYY-MM-DD
## 返回值
JSON 格式的查询结果
## 注意事项
- 需要配置 OA_API_KEY 环境变量
- 只能查询有权限的数据6.3 执行脚本编写#
# my-custom-skill/main.py
import sys
import json
import os
import requests
def query_oa_system(query_type: str, employee_id: str = None, date_range: str = None) -> dict:
"""查询 OA 系统"""
api_key = os.environ.get("OA_API_KEY")
if not api_key:
return {"success": False, "error": "未配置 OA_API_KEY 环境变量"}
base_url = "https://oa.company.internal/api"
headers = {"Authorization": f"Bearer {api_key}"}
if query_type == "employee_info":
resp = requests.get(f"{base_url}/employees/{employee_id}", headers=headers)
return {"success": True, "data": resp.json()}
elif query_type == "leave_record":
params = {"employee_id": employee_id}
if date_range:
start, end = date_range.split("/")
params.update({"start_date": start, "end_date": end})
resp = requests.get(f"{base_url}/leaves", params=params, headers=headers)
return {"success": True, "data": resp.json()}
return {"success": False, "error": f"不支持的查询类型: {query_type}"}
if __name__ == "__main__":
params = json.loads(sys.argv[1])
result = query_oa_system(**params)
print(json.dumps(result, ensure_ascii=False))6.4 安装自定义 Skill#
# 将 Skill 目录放到 OpenClaw Skills 目录下
cp -r my-custom-skill ~/.openclaw/skills/
# 或者使用 CLI 安装本地 Skill
openclaw skills install ./my-custom-skill
# 验证安装
openclaw skills list七、Python SDK 进阶用法#
对于需要在 Python 项目中集成 OpenClaw 的场景,SDK 提供了完整的编程接口:
from openclaw_sdk import OpenClawClient, Agent
from openclaw_sdk.pipelines import Pipeline, SkillStep
# 连接到 OpenClaw 网关
client = OpenClawClient(
base_url="http://localhost:3000",
api_key="your-api-key"
)
# 创建一个自动化管道
pipeline = Pipeline(client=client)
pipeline.add_step(SkillStep(
skill="shell-executor",
action="run",
params={"command": "git log --oneline -10"}
))
pipeline.add_step(SkillStep(
skill="llm-analyzer",
action="analyze",
params={"prompt": "分析以上 git 提交记录,总结最近的开发重点"}
))
pipeline.add_step(SkillStep(
skill="file-manager",
action="write",
params={"path": "/tmp/git_summary.md"}
))
# 执行管道
result = pipeline.run()
print(result.final_output)
# 调度定时任务
client.schedule_task(
name="daily-report",
cron="0 18 * * 1-5", # 工作日每天下午 6 点
pipeline=pipeline
)八、安全性与最佳实践#
8.1 权限控制#
OpenClaw 支持细粒度的权限配置,建议在生产环境中严格设置:
# ~/.openclaw/config.toml
[security]
# 需要二次确认的操作类型
require_confirmation = ["file_delete", "system_shutdown", "install_package"]
# 禁止执行的命令模式(正则)
command_blacklist = [
"rm -rf /",
"dd if=",
"mkfs",
"> /dev/sd"
]
# 只允许访问的目录
allowed_paths = [
"~/Documents",
"~/Downloads",
"~/Projects",
"/tmp"
]
# Skills 白名单(只允许使用以下 Skills)
allowed_skills = [
"file-manager",
"shell-executor",
"browser-automation"
]8.2 日志与审计#
所有 Skill 的执行都会记录详细日志,方便审计和排障:
# 查看最近的操作日志
openclaw logs --tail 50
# 按技能过滤
openclaw logs --skill shell-executor --since 1h
# 日志格式示例:
# 2026-03-08 10:23:45 [INFO] skill=shell-executor action=run
# command="ps aux | grep java"
# exit_code=0
# duration=0.23s
# triggered_by=user:lee8.3 最佳实践总结#
- 最小权限原则:只开放当前任务真正需要的 Skills,避免过度授权
- 高危操作确认:对删除文件、修改系统配置等操作开启二次确认
- 沙箱执行:代码执行类 Skill 建议在 Docker 容器中运行
- 定期审计日志:检查 AI 的操作记录,确保没有异常行为
- 版本锁定:在生产环境中锁定 Skill 版本,避免社区更新带来意外变化
- 本地模型优先:处理敏感数据时,优先使用本地部署的开源模型
九、总结#
OpenClaw 通过其精心设计的 Skills 系统,将大语言模型从一个"会聊天的 AI"升级为一个真正能操控计算机、完成实际工作的 AI 代理。
| Skills 类型 | 核心能力 | 典型场景 |
|---|---|---|
| 文件操作 Skills | 读写、搜索、批量处理文件 | 日志分析、文档整理 |
| Shell 命令 Skills | 执行系统命令、管理服务 | 服务运维、环境配置 |
| 浏览器自动化 Skills | 网页抓取、表单填写、截图 | 数据采集、自动化测试 |
| 系统控制 Skills | 进程管理、资源监控 | 系统运维、性能排查 |
| 任务调度 Skills | 定时任务、守护进程 | 自动化报告、定时备份 |
| 代码执行 Skills | 运行代码、数据处理 | 数据分析、自动化脚本 |
每一个 Skill 都是 AI 能力的一次扩展,而多个 Skill 的协同则让 AI 能够完成复杂的多步骤自动化工作流。随着社区 Skill 生态的不断壮大,OpenClaw 正在成为开发者和技术人员的终极 AI 助手。
如果你对 AI 自动化感兴趣,不妨现在就动手安装 OpenClaw,体验让 AI 真正"动起来"的感觉!
参考资源:
通过邮件回复



