OpenClaw 中文版从零到一:安装、配置飞书机器人与实战全指南

目录

[一、OpenClaw 是什么](#一、OpenClaw 是什么)

[1.1 项目简介](#1.1 项目简介)

[1.2 核心能力](#1.2 核心能力)

[1.3 使用场景示例](#1.3 使用场景示例)

[1.4 中文社区资源](#1.4 中文社区资源)

[二、环境准备:安装 Node.js](#二、环境准备:安装 Node.js)

[2.1 为什么需要 Node.js](#2.1 为什么需要 Node.js)

[2.2 下载与安装](#2.2 下载与安装)

[2.3 安装验证](#2.3 安装验证)

[2.4 常见问题排查](#2.4 常见问题排查)

[三、安装 OpenClaw 中文版](#三、安装 OpenClaw 中文版)

[3.1 Windows 一键安装](#3.1 Windows 一键安装)

[3.2 macOS / Linux 一键安装](#3.2 macOS / Linux 一键安装)

[3.3 通用 npm 安装方式](#3.3 通用 npm 安装方式)

[3.4 安装验证](#3.4 安装验证)

四、启动引导与基础配置

[4.1 进入新手引导](#4.1 进入新手引导)

[4.2 配置模型供应商与 API Key](#4.2 配置模型供应商与 API Key)

[4.3 配置聊天通道 ------ 以飞书机器人为例](#4.3 配置聊天通道 —— 以飞书机器人为例)

[4.4 技能配置与钩子(可选)](#4.4 技能配置与钩子(可选))

五、飞书机器人创建全流程

[5.1 创建企业自建应用](#5.1 创建企业自建应用)

[5.2 添加机器人能力](#5.2 添加机器人能力)

[5.3 配置权限](#5.3 配置权限)

[5.4 发布与获取凭证](#5.4 发布与获取凭证)

[5.5 回到终端完成配置](#5.5 回到终端完成配置)

[5.6 配置事件与回调](#5.6 配置事件与回调)

六、启动与使用

[6.1 启动网关](#6.1 启动网关)

[6.2 打开 Web Dashboard](#6.2 打开 Web Dashboard)

[6.3 常用命令速查](#6.3 常用命令速查)

七、实战测试

[7.1 桌面文件操作](#7.1 桌面文件操作)

[7.2 实时新闻查询](#7.2 实时新闻查询)

[7.3 代码生成(贪吃蛇游戏)](#7.3 代码生成(贪吃蛇游戏))

[7.4 网页操作与截图](#7.4 网页操作与截图)

八、课程总结与进阶方向

总结

进阶方向


一、OpenClaw 是什么

1.1 项目简介

OpenClaw 是一个开源 AI 智能体(Agent)平台,核心理念是让大语言模型不仅能「说话」,更能「做事」。它通过一套标准化的工具调用框架,赋予 AI 操作真实计算机环境的能力------包括但不限于执行 Shell 命令、操控浏览器、读写文件、调用 API 等。

中文社区地址: https://www.moltcn.com/

简而言之,OpenClaw 的定位可以用一句话概括:

把你的自然语言指令,转化为计算机上的真实操作。

1.2 核心能力

OpenClaw 的核心能力矩阵如下:

自动化操作

  • 自动操控浏览器(打开网页、截图、填表、点击)
  • 自动创建/编辑/删除文件
  • 执行系统命令与脚本

代码能力

  • 根据需求自动编写代码
  • 创建并运行完整的程序项目
  • 支持多种编程语言(Python、JavaScript、HTML 等)

办公自动化

  • 通过飞书、WhatsApp、Telegram、Discord、iMessage 等通道接入
  • 处理文档、表格、消息等办公场景
  • 支持通过 Gateway 网关统一调度

插件生态

  • 技能插件系统,可扩展 AI 的能力边界
  • 社区共享的技能与工作流

1.3 使用场景示例

以下是几个典型的使用场景,帮助你理解 OpenClaw 的实际价值:

场景 用户指令 AI 执行动作
文件操作 "帮我在桌面创建一个 txt 文件,写上会议纪要" 自动在桌面创建文件并写入内容
信息检索 "帮我查询今天的科技新闻" 自动打开浏览器、搜索、汇总结果
代码生成 "帮我用 Python 写一个贪吃蛇游戏" 自动生成完整可运行的代码并保存
网页操作 "帮我打开百度,截图发给我" 自动打开网页、截图、发送图片

1.4 中文社区资源

OpenClaw 中文社区提供了丰富的本地化支持:


二、环境准备:安装 Node.js

2.1 为什么需要 Node.js

OpenClaw 基于 Node.js 运行时构建。Node.js 是一个开源的、跨平台的 JavaScript 运行环境,OpenClaw 使用它来执行核心逻辑、管理插件系统以及运行 Gateway 网关服务。

版本要求:Node.js v22 或更高版本(LTS 推荐)

2.2 下载与安装

下载地址: https://nodejs.org/zh-cn/download/

安装步骤(Windows):

复制代码
步骤 1 → 访问 Node.js 官网
步骤 2 → 选择 LTS(长期支持)版本,下载 Windows Installer (.msi)
步骤 3 → 双击安装包,一路点击 Next
步骤 4 → 等待安装完成

安装步骤(macOS):

复制代码
步骤 1 → 访问 Node.js 官网
步骤 2 → 选择 LTS 版本,下载 macOS Installer (.pkg)
步骤 3 → 双击安装包,按提示完成安装

安装步骤(Linux - Ubuntu/Debian):

复制代码
# 使用 NodeSource 仓库安装 Node.js 22.x
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

2.3 安装验证

打开终端(Windows 下为 PowerShell 或 CMD),输入以下命令:

复制代码
# 验证 Node.js 版本
node -v
# 预期输出示例:v22.22.1

# 验证 npm 版本
npm -v
# 预期输出示例:10.9.0

如果两条命令均返回版本号(如 v22.x.x10.x.x),说明 Node.js 环境已就绪。

2.4 常见问题排查

Q:执行 node -v 提示「不是内部或外部命令」 A:说明 Node.js 未正确安装或未加入系统 PATH。请重新安装并确保勾选「Add to PATH」选项,或重启终端后再试。

Q:已有旧版本 Node.js(低于 v22),是否需要升级? A:是的,OpenClaw 要求 v22+。建议直接从官网下载最新 LTS 版本覆盖安装,或使用版本管理工具 nvm 进行升级:

复制代码
# 使用 nvm 安装 Node.js 22(macOS/Linux)
nvm install 22
nvm use 22

三、安装 OpenClaw 中文版

OpenClaw 中文版的安装脚本会自动处理依赖关系,包括检测 Node.js 环境、自动安装(如缺失)、配置 npm 注册表等。

3.1 Windows 一键安装

以管理员身份打开 PowerShell,执行以下命令:

python 复制代码
iwr -useb https://clawd.org.cn/install.ps1 -OutFile install.ps1; ./install.ps1 -Registry https://registry.npmmirror.com

命令解析:

参数 / 命令 作用
iwr -useb Invoke-WebRequest 的缩写,下载脚本文件
-OutFile install.ps1 将下载内容保存为本地文件
./install.ps1 执行安装脚本
-Registry 指定使用国内 npm 镜像源,加速下载

常见错误处理:

如果遇到「无法加载文件,因为在此系统上禁止运行脚本」的错误:

python 复制代码
# 先解除执行策略限制
Set-ExecutionPolicy RemoteSigned

# 然后重新执行安装命令
iwr -useb https://clawd.org.cn/install.ps1 -OutFile install.ps1; ./install.ps1 -Registry https://registry.npmmirror.com

安全提示: Set-ExecutionPolicy RemoteSigned 允许运行本地脚本和已签名的远程脚本,是 PowerShell 开发场景下常用的策略配置。

3.2 macOS / Linux 一键安装

macOS 和 Linux 使用 Shell 脚本安装,该脚本会自动检测并安装 Node.js(如缺失):

python 复制代码
curl -fsSL https://clawd.org.cn/install.sh | bash -s -- --registry https://registry.npmmirror.com

命令解析:

部分 作用
curl -fsSL 下载安装脚本(-f 失败静默、-s 静默模式、-S 显示错误、-L 跟随重定向)
` bash -s --`
--registry 传入安装脚本的参数,指定国内 npm 镜像

3.3 通用 npm 安装方式

如果 Node.js 已经安装好,也可以直接使用 npm 安装:

python 复制代码
# macOS / Linux 需要加 sudo
sudo npm install -g openclaw-cn@latest --registry https://registry.npmmirror.com

# Windows(管理员 PowerShell)
npm install -g openclaw-cn@latest --registry https://registry.npmmirror.com

说明: -g 表示全局安装,@latest 表示安装最新版本,--registry 指定镜像源。

3.4 安装验证

安装完成后,验证 OpenClaw 是否可用:

python 复制代码
# 查看版本
openclaw-cn --version

# 查看帮助
openclaw-cn --help

如果输出版本号和帮助信息,说明安装成功。


四、启动引导与基础配置

4.1 进入新手引导

安装完成后,执行以下命令进入交互式引导模式:

复制代码
openclaw-cn onboard 

引导流程将依次完成以下配置:

python 复制代码
选择模型供应商 → 输入 API Key → 选择模型
       ↓
选择聊天通道 → 配置通道凭证
       ↓
配置技能插件(可选)
       ↓
配置启动钩子(可选)
       ↓
完成初始化

4.2 配置模型供应商与 API Key

在引导过程中,系统会要求你选择模型供应商。目前中文版支持的主要供应商包括:

供应商 说明 适用场景
阿里云百炼 阿里云提供的大模型服务平台 国内访问稳定,支持多种模型
DeepSeek DeepSeek 系列模型 性价比高,推理能力强

配置步骤:

python 复制代码
步骤 1 → 在引导界面中选择供应商(如「阿里云百炼」或「DeepSeek」)
步骤 2 → 输入对应的 API Key(从供应商平台获取)
步骤 3 → 选择具体使用的模型(如 deepseek-chat、qwen-plus 等)

提示: API Key 通常在对应平台的「控制台 → API 密钥管理」中创建和获取。请妥善保管,不要泄露给他人。

4.3 配置聊天通道 ------ 以飞书机器人为例

「通道」是 AI 接收和发送消息的入口。OpenClaw 支持多种通道,包括:

  • 飞书(Lark)
  • WhatsApp
  • Telegram
  • Discord
  • iMessage

本教程以飞书机器人为例,详细介绍从零创建到配置完成的全流程。具体步骤见下一章节。

4.4 技能配置与钩子(可选)

技能配置: 可以在引导阶段跳过,后续通过命令手动添加。技能插件用于扩展 AI 的特定能力(如操作特定软件、对接特定 API 等)。

启动钩子: 钩子功能允许其他服务调用你的 OpenClaw 实例。如果是个人使用或学习阶段,建议跳过。

完成所有引导步骤后,按空格键 再按回车键即可跳过剩余可选项,完成初始化。


五、飞书机器人创建全流程

本章节详细介绍如何在飞书开放平台创建企业自建应用,并将其接入 OpenClaw。

5.1 创建企业自建应用

操作入口: https://open.feishu.cn/app

python 复制代码
步骤 1 → 打开飞书开放平台
步骤 2 → 点击「创建企业自建应用」
步骤 3 → 填写「应用名称」(如:OpenClaw 助手)
步骤 4 → 填写「应用描述」(如:AI 智能体助手)
步骤 5 → 点击确认创建

5.2 添加机器人能力

应用创建完成后,需要为其添加「机器人」能力:

python 复制代码
步骤 1 → 进入应用详情页
步骤 2 → 左侧菜单找到「应用能力」
步骤 3 → 点击「添加应用能力」
步骤 4 → 选择「机器人」并确认添加

5.3 配置权限

飞书机器人需要一组权限才能正常收发消息、操作文档等。OpenClaw 提供了完整的权限配置 JSON,可以通过批量导入一键完成。

操作路径: 应用详情 → 权限管理 → 批量导入/导出权限

完整权限配置 JSON:

python 复制代码
{
  "scopes": {
    "tenant": [
      "aily:file:read",
      "aily:file:write",
      "application:application.app_message_stats.overview:readonly",
      "application:application:self_manage",
      "application:bot.menu:write",
      "base:app:copy",
      "base:app:create",
      "base:app:read",
      "base:app:update",
      "base:collaborator:create",
      "base:collaborator:delete",
      "base:collaborator:read",
      "base:dashboard:copy",
      "base:dashboard:read",
      "base:field:create",
      "base:field:delete",
      "base:field:read",
      "base:field:update",
      "base:field_group:create",
      "base:form:read",
      "base:form:update",
      "base:record:create",
      "base:record:delete",
      "base:record:read",
      "base:record:retrieve",
      "base:record:update",
      "base:role:create",
      "base:role:delete",
      "base:role:read",
      "base:role:update",
      "base:table:create",
      "base:table:delete",
      "base:table:read",
      "base:table:update",
      "base:view:read",
      "base:view:write_only",
      "base:workflow:read",
      "base:workflow:write",
      "bitable:app",
      "bitable:app:readonly",
      "board:whiteboard:node:create",
      "board:whiteboard:node:delete",
      "board:whiteboard:node:read",
      "board:whiteboard:node:update",
      "cardkit:card:write",
      "contact:contact.base:readonly",
      "contact:user.employee_id:readonly",
      "corehr:file:download",
      "docs:doc",
      "docs:doc:readonly",
      "docs:document.comment:create",
      "docs:document.comment:read",
      "docs:document.comment:update",
      "docs:document.comment:write_only",
      "docs:document.content:read",
      "docs:document.media:download",
      "docs:document.media:upload",
      "docs:document.subscription",
      "docs:document.subscription:read",
      "docs:document:copy",
      "docs:document:export",
      "docs:document:import",
      "docs:event.document_deleted:read",
      "docs:event.document_edited:read",
      "docs:event.document_opened:read",
      "docs:event:subscribe",
      "docs:permission.member",
      "docs:permission.member:auth",
      "docs:permission.member:create",
      "docs:permission.member:delete",
      "docs:permission.member:readonly",
      "docs:permission.member:retrieve",
      "docs:permission.member:transfer",
      "docs:permission.member:update",
      "docs:permission.setting",
      "docs:permission.setting:read",
      "docs:permission.setting:readonly",
      "docs:permission.setting:write_only",
      "docx:document",
      "docx:document.block:convert",
      "docx:document:create",
      "docx:document:readonly",
      "docx:document:write_only",
      "drive:drive",
      "drive:drive.metadata:readonly",
      "drive:drive.search:readonly",
      "drive:drive:readonly",
      "drive:drive:version",
      "drive:drive:version:readonly",
      "drive:export:readonly",
      "drive:file",
      "drive:file.like:readonly",
      "drive:file.meta.sec_label.read_only",
      "drive:file:download",
      "drive:file:readonly",
      "drive:file:upload",
      "drive:file:view_record:readonly",
      "event:ip_list",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.members:bot_access",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:resource",
      "sheets:spreadsheet",
      "sheets:spreadsheet.meta:read",
      "sheets:spreadsheet.meta:write_only",
      "sheets:spreadsheet:create",
      "sheets:spreadsheet:read",
      "sheets:spreadsheet:readonly",
      "sheets:spreadsheet:write_only",
      "slides:presentation:create",
      "slides:presentation:read",
      "slides:presentation:update",
      "slides:presentation:write_only",
      "space:document.event:read",
      "space:document:delete",
      "space:document:move",
      "space:document:retrieve",
      "space:document:shortcut",
      "space:folder:create",
      "wiki:member:create",
      "wiki:member:retrieve",
      "wiki:member:update",
      "wiki:node:copy",
      "wiki:node:create",
      "wiki:node:move",
      "wiki:node:read",
      "wiki:node:retrieve",
      "wiki:node:update",
      "wiki:setting:read",
      "wiki:setting:write_only",
      "wiki:space:read",
      "wiki:space:retrieve",
      "wiki:space:write_only",
      "wiki:wiki",
      "wiki:wiki:readonly"
    ],
    "user": [
      "aily:file:read",
      "aily:file:write",
      "contact:contact.base:readonly",
      "im:chat.access_event.bot_p2p_chat:read"
    ]
  }
}

权限说明: 上述权限涵盖了即时通讯(im:*)、云文档(docs:*docx:*)、云空间(drive:*)、多维表格(bitable:*)、电子表格(sheets:*)、知识库(wiki:*)等飞书核心模块的读写能力,确保 OpenClaw 能够全面执行办公自动化任务。

5.4 发布与获取凭证

python 复制代码
步骤 1 → 在应用详情页,点击「版本管理与发布」
步骤 2 → 点击「创建版本」,填写版本号与更新说明
步骤 3 → 提交审核并发布(企业内部应用通常即时生效)
步骤 4 → 进入「凭证与基础信息」页面
步骤 5 → 复制「App ID」和「App Secret」

重要: App Secret 是敏感凭证,请勿泄露或提交到公开代码仓库。

5.5 回到终端完成配置

在 OpenClaw 的引导流程中,当提示输入飞书凭证时,依次粘贴:

python 复制代码
App ID:     你复制的 App ID
App Secret: 你复制的 App Secret

输入完成后,OpenClaw 会自动完成与飞书的连接配置。

5.6 配置事件与回调

回到飞书开放平台,完成最后的事件订阅配置:

python 复制代码
步骤 1 → 进入应用详情 → 「事件与回调」
步骤 2 → 连接方式选择「长连接」模式,保存设置
步骤 3 → 添加事件订阅:选择「接收消息」事件(im.message.receive_v1)
步骤 4 → 保存配置

为什么选择长连接模式? 长连接(WebSocket)模式无需公网 IP 和域名,适合本地开发和个人使用场景。OpenClaw 会主动与飞书服务器建立持久连接来接收消息。


六、启动与使用

6.1 启动网关

网关(Gateway)是 OpenClaw 的消息中转枢纽,负责与各聊天通道(如飞书)保持连接并转发消息。

python 复制代码
openclaw-cn gateway 

执行后,终端会显示网关的运行状态和连接信息。保持此终端窗口不要关闭。

6.2 打开 Web Dashboard

另开一个终端窗口,执行:

复制代码
openclaw-cn dashboard 

终端会输出一个本地访问链接(通常为 http://localhost:xxxx),在浏览器中打开即可进入 OpenClaw 的 Web 管理界面。

在 Dashboard 中你可以:

  • 直接与 AI 对话
  • 查看任务执行日志
  • 管理配置与技能

6.3 常用命令速查

以下是 OpenClaw 中文版的常用命令汇总:

python 复制代码
# ---- 基础命令 ----
openclaw-cn --version          # 查看版本
openclaw-cn --help             # 查看帮助

# ---- 引导与配置 ----
openclaw-cn onboard            # 进入新手引导
openclaw-cn config             # 查看当前配置
openclaw-cn config set <key> <value>  # 设置配置项

# ---- 运行命令 ----
openclaw-cn gateway            # 启动网关(消息通道)
openclaw-cn dashboard          # 启动 Web 管理界面

# ---- 任务执行 ----
openclaw-cn run "<你的指令>"    # 直接执行一条任务

# ---- 技能管理 ----
openclaw-cn skill list         # 查看已安装技能
openclaw-cn skill install <name>  # 安装技能插件

七、实战测试

7.1 桌面文件操作

测试目标: 验证 OpenClaw 能否操作本地文件系统。

在 Dashboard 或飞书机器人中输入:

复制代码
帮我在桌面上创建一个txt文件,写一行字:我特别喜欢你 

预期行为:

python 复制代码
用户发出指令
    ↓
OpenClaw 解析意图:创建文件 → 写入内容 → 保存到桌面
    ↓
AI 调用文件系统工具执行操作
    ↓
桌面出现新 txt 文件,内容为「我特别喜欢你」
    ↓
AI 回复执行结果

如果桌面成功出现文件且内容正确,说明文件操作能力测试通过。

7.2 实时新闻查询

测试目标: 验证 OpenClaw 的信息检索与浏览器操控能力。

输入指令:

复制代码
帮我查询最新科技新闻并输出 

预期行为:

python 复制代码
用户发出指令
    ↓
OpenClaw 启动浏览器 → 访问新闻网站
    ↓
自动抓取最新新闻标题与摘要
    ↓
整理格式后返回给用户

7.3 代码生成(贪吃蛇游戏)

测试目标: 验证 OpenClaw 的代码生成与项目创建能力。

手机飞书端输入:

复制代码
帮我写个贪吃蛇程序,用Python代码 

预期行为:

python 复制代码
用户发出指令
    ↓
OpenClaw 分析需求:Python 贪吃蛇游戏
    ↓
自动生成完整的 Python 代码文件
    ↓
(可选)自动安装依赖并运行
    ↓
返回代码文件或运行截图

生成的代码示例(OpenClaw 可能输出类似代码):

python 复制代码
import pygame
import random
import sys

# 初始化
pygame.init()

# 常量定义
CELL_SIZE = 20
GRID_WIDTH = 30
GRID_HEIGHT = 20
WIDTH = CELL_SIZE * GRID_WIDTH
HEIGHT = CELL_SIZE * GRID_HEIGHT
FPS = 10

# 颜色定义
BLACK = (0, 0, 0)
GREEN = (0, 200, 0)
DARK_GREEN = (0, 150, 0)
RED = (220, 50, 50)
WHITE = (255, 255, 255)
GRAY = (40, 40, 40)

# 方向
UP = (0, -1)
DOWN = (0, 1)
LEFT = (-1, 0)
RIGHT = (1, 0)


class Snake:
    def __init__(self):
        self.body = [(GRID_WIDTH // 2, GRID_HEIGHT // 2)]
        self.direction = RIGHT
        self.grow = False

    def move(self):
        head_x, head_y = self.body[0]
        dx, dy = self.direction
        new_head = (head_x + dx, head_y + dy)
        self.body.insert(0, new_head)
        if not self.grow:
            self.body.pop()
        else:
            self.grow = False

    def change_direction(self, new_dir):
        # 防止反向移动
        opposite = (-self.direction[0], -self.direction[1])
        if new_dir != opposite:
            self.direction = new_dir

    def check_collision(self):
        head = self.body[0]
        # 撞墙
        if head[0] < 0 or head[0] >= GRID_WIDTH or head[1] < 0 or head[1] >= GRID_HEIGHT:
            return True
        # 撞自己
        if head in self.body[1:]:
            return True
        return False


class Food:
    def __init__(self, snake_body):
        self.position = self._random_pos(snake_body)

    def _random_pos(self, snake_body):
        while True:
            pos = (random.randint(0, GRID_WIDTH - 1), random.randint(0, GRID_HEIGHT - 1))
            if pos not in snake_body:
                return pos

    def respawn(self, snake_body):
        self.position = self._random_pos(snake_body)


def draw_grid(surface):
    for x in range(0, WIDTH, CELL_SIZE):
        pygame.draw.line(surface, GRAY, (x, 0), (x, HEIGHT))
    for y in range(0, HEIGHT, CELL_SIZE):
        pygame.draw.line(surface, GRAY, (0, y), (WIDTH, y))


def main():
    screen = pygame.display.set_mode((WIDTH, HEIGHT))
    pygame.display.set_caption("贪吃蛇 - OpenClaw 生成")
    clock = pygame.time.Clock()
    font = pygame.font.SysFont("simhei", 24)

    snake = Snake()
    food = Food(snake.body)
    score = 0
    game_over = False

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if game_over:
                    if event.key == pygame.K_SPACE:
                        snake = Snake()
                        food = Food(snake.body)
                        score = 0
                        game_over = False
                    continue
                if event.key == pygame.K_UP:
                    snake.change_direction(UP)
                elif event.key == pygame.K_DOWN:
                    snake.change_direction(DOWN)
                elif event.key == pygame.K_LEFT:
                    snake.change_direction(LEFT)
                elif event.key == pygame.K_RIGHT:
                    snake.change_direction(RIGHT)

        if not game_over:
            snake.move()

            # 吃食物
            if snake.body[0] == food.position:
                snake.grow = True
                score += 10
                food.respawn(snake.body)

            # 碰撞检测
            if snake.check_collision():
                game_over = True

        # 绘制
        screen.fill(BLACK)
        draw_grid(screen)

        # 绘制蛇
        for i, segment in enumerate(snake.body):
            color = GREEN if i == 0 else DARK_GREEN
            rect = pygame.Rect(
                segment[0] * CELL_SIZE, segment[1] * CELL_SIZE,
                CELL_SIZE - 1, CELL_SIZE - 1
            )
            pygame.draw.rect(screen, color, rect)

        # 绘制食物
        food_rect = pygame.Rect(
            food.position[0] * CELL_SIZE, food.position[1] * CELL_SIZE,
            CELL_SIZE - 1, CELL_SIZE - 1
        )
        pygame.draw.rect(screen, RED, food_rect)

        # 绘制分数
        score_text = font.render(f"得分: {score}", True, WHITE)
        screen.blit(score_text, (10, 10))

        if game_over:
            over_text = font.render("游戏结束! 按空格键重新开始", True, WHITE)
            text_rect = over_text.get_rect(center=(WIDTH // 2, HEIGHT // 2))
            screen.blit(over_text, text_rect)

        pygame.display.flip()
        clock.tick(FPS)


if __name__ == "__main__":
    main()

运行方式: 先安装 pygame(pip install pygame),然后运行 python snake.py

7.4 网页操作与截图

前置配置: 首先需要开启飞书机器人私聊权限,确保手机端可以与机器人直接对话。

python 复制代码
# 配置飞书通道的私聊策略为开放
openclaw-cn config set channels.feishu.dmPolicy "open"

# 重启网关使配置生效
openclaw-cn gateway

手机飞书端输入:

复制代码
帮我打开百度网页,并进行截图,发给我 

预期行为:

python 复制代码
用户发出指令
    ↓
OpenClaw 启动无头浏览器
    ↓
自动打开 www.baidu.com
    ↓
对页面进行截图
    ↓
将截图图片通过飞书消息发送给用户

八、课程总结与进阶方向

总结

通过本教程,我们完成了以下完整链路:

python 复制代码
环境准备(Node.js v22+)
    ↓
安装 OpenClaw 中文版
    ↓
新手引导配置(模型供应商 + API Key)
    ↓
接入飞书机器人(创建应用 → 配置权限 → 发布 → 事件订阅)
    ↓
启动网关与 Dashboard
    ↓
实战验证(文件操作 / 新闻查询 / 代码生成 / 网页截图)

OpenClaw 的核心价值在于:它将大语言模型的「理解能力」与计算机的「执行能力」连接起来,让 AI 不再只是回答问题的工具,而是能够真正替你完成任务的数字员工。

进阶方向

如果你希望进一步探索 OpenClaw 的能力,以下是一些值得尝试的进阶方向:

多通道接入: 除了飞书,还可以接入 WhatsApp、Telegram、Discord 等通道,实现跨平台的 AI 助手。

技能插件开发: OpenClaw 的插件系统允许你自定义技能,让 AI 掌握更多特定领域的能力。

工作流编排: 将多个任务串联为自动化工作流,实现更复杂的业务逻辑。

团队协作: 通过钩子(Hook)功能,让团队成员共享同一个 OpenClaw 实例的能力。

安全与权限管理: 在生产环境中使用时,注意配置合适的权限策略,避免 AI 执行危险操作。

相关推荐
视***间4 小时前
全栈算力矩阵,全域智能赋能——视程空间六大产品系列,构建边缘智能完整生态
人工智能·机器人·智慧城市·边缘计算·ai算力·终端算力
Gerardisite4 小时前
企业微信消息回调接口
python·机器人·企业微信
梦想的旅途25 小时前
基于 RPA 自动化技术的私域机器人助手构建指南
microsoft·机器人·自动化·企业微信·rpa
传说故事19 小时前
【论文阅读】RoboAgent: 通过语义增强和动作分块实现机器人操作的泛化与效率
论文阅读·机器人·agent
小熊猫程序猿1 天前
Datawhale 具身智能基础与机器人控制(一)
机器人
qcx231 天前
【人形机器人产业入门】06 人形机器人触觉传感器自研vs外购:Figure 03 自研背后的产业逻辑与 10 家整机厂概率推演
人工智能·机器人
视***间1 天前
视程空间AIR系列——小体积藏强芯,赋能机器人/机器狗全域落地
大数据·人工智能·机器人·机器狗·ai算力·视程空间
才兄说1 天前
机器人二次开发机器狗巡检?全区域路径覆盖
机器人
Michaelwubo1 天前
OpenClaw(Clawdbot)附飞书对接教程
飞书