跳过正文
  1. 2026s/

OpenClaw 使用指南:用 Skills 实现 AI 全自动操控电脑

x
作者
x
熟练掌握Spring Boot、Spring Cloud等Java技术栈,专注于分布式系统设计与微服务架构。热爱技术分享,探索编程之美。
目录

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 目录"为例:

  1. LLM 分析意图:文件批量移动操作
  2. 匹配到 file-manager Skill
  3. 提取参数:source=~/Desktop/*.logdestination=/tmp/logs
  4. 执行 Python 脚本完成移动
  5. 返回操作结果摘要

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: root

4.2 Shell 命令技能(Shell Skills)
#

Shell Skill 是最强大也是最危险的技能之一,它让 AI 直接在终端执行命令。

能做什么:

  • 执行任意 Shell/Bash/PowerShell 命令
  • 运行脚本文件(.sh.py.js
  • 安装/卸载软件包(aptbrewpipnpm
  • 管理服务(systemctl start/stop/restart
  • 查看系统日志(journalctltail -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:00

4.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:lee

8.3 最佳实践总结
#

  1. 最小权限原则:只开放当前任务真正需要的 Skills,避免过度授权
  2. 高危操作确认:对删除文件、修改系统配置等操作开启二次确认
  3. 沙箱执行:代码执行类 Skill 建议在 Docker 容器中运行
  4. 定期审计日志:检查 AI 的操作记录,确保没有异常行为
  5. 版本锁定:在生产环境中锁定 Skill 版本,避免社区更新带来意外变化
  6. 本地模型优先:处理敏感数据时,优先使用本地部署的开源模型

九、总结
#

OpenClaw 通过其精心设计的 Skills 系统,将大语言模型从一个"会聊天的 AI"升级为一个真正能操控计算机、完成实际工作的 AI 代理

Skills 类型核心能力典型场景
文件操作 Skills读写、搜索、批量处理文件日志分析、文档整理
Shell 命令 Skills执行系统命令、管理服务服务运维、环境配置
浏览器自动化 Skills网页抓取、表单填写、截图数据采集、自动化测试
系统控制 Skills进程管理、资源监控系统运维、性能排查
任务调度 Skills定时任务、守护进程自动化报告、定时备份
代码执行 Skills运行代码、数据处理数据分析、自动化脚本

每一个 Skill 都是 AI 能力的一次扩展,而多个 Skill 的协同则让 AI 能够完成复杂的多步骤自动化工作流。随着社区 Skill 生态的不断壮大,OpenClaw 正在成为开发者和技术人员的终极 AI 助手。

如果你对 AI 自动化感兴趣,不妨现在就动手安装 OpenClaw,体验让 AI 真正"动起来"的感觉!


参考资源:

通过邮件回复

相关文章

AI的发展与现状:从传统机器学习到MCP与Skills的新纪元

AI的发展与现状:从传统机器学习到MCP与Skills的新纪元 # 人工智能(Artificial Intelligence, AI)作为21世纪最具革命性的技术之一,正在深刻地改变着我们的生活方式、工作模式和社会结构。从早期的专家系统到如今的大语言模型,AI技术经历了多个发展阶段,而近期MCP(Model Context Protocol)和Skills的出现,更是将AI应用推向了新的高度。

MCP的AI上下文管理心得

MCP的AI上下文管理心得 # 在使用 MCP(Model Context Protocol,模型上下文协议)构建 AI 应用的过程中,上下文管理是绕不开的核心话题。无论是对话系统、代码助手还是知识库问答,上下文的质量直接决定了 AI 响应的准确性和连贯性。本文结合实际使用经验,聊一聊在 MCP 体系下做好 AI 上下文管理的一些心得。

常见排序算法

常见排序算法 # 排序算法是计算机科学中最基础也是最重要的算法之一。本文介绍几种常见的排序算法,并给出 Java 实现。

TLS非对称加密流程详解:从握手到对称加密通信

TLS非对称加密流程详解:从握手到对称加密通信 # TLS(Transport Layer Security,传输层安全协议)是互联网上最广泛使用的安全协议之一,它为客户端和服务器之间的通信提供了加密、身份验证和数据完整性保护。本文将详细介绍TLS握手过程中客户端和服务端的具体操作,包括CA证书验证、密钥交换,直到最终生成AES对称加密密钥进行正常通信的完整流程。

使用Debian作为路由器:完整配置指南

使用Debian作为路由器:完整配置指南 # 在企业环境或高级家庭网络中,使用Linux系统(特别是Debian)作为路由器可以提供更强大的功能、更高的灵活性和更好的性能。本文将详细介绍如何将Debian配置为功能完整的路由器,包括DHCP服务、DNS服务、NAT配置、IPv6中继、网桥设置等核心功能。

spring三级缓存介绍

6 分钟
Spring的三级缓存介绍 Spring框架在处理单例Bean的创建和依赖注入时,使用了三级缓存机制来管理Bean的生命周期和解决潜在的循环依赖问题。这些缓存主要定义在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry类中。下面结合源码进行详细介绍。

Java GC进化路程

4 分钟
1. 概述 # 本博客中我们将展示不同JVM垃圾回收(GC)实现的基本原理。然后我们将学习如何在应用程序中启动特定类型的垃圾回收。

部署基于artalk的评论系统

1 分钟
部署基于artalk的评论系统 # 在现代博客和网站中,评论系统是与读者互动的重要工具。Artalk 是一个开源的评论系统,具有轻量级、易于集成和高度可定制的特点。本文将介绍如何在 Hugo 博客中部署基于 Artalk 的评论系统。