
OpenClaw
实践分享v1.0



OpenClaw是什么


OpenClaw 是一款开源的本地自托管个人 AI 智能体(Agent)平台,前身为 Clawdbot/Moltbot。其核心是基于 TypeScript 开发的命令行应用,持续运行在用户自有硬件上,可执行 shell 命令、管理文件并协调多步骤工作流程。它将 AI 模型(大脑)与本地执行环境(身体)彻底解耦:对话记录、工具执行、会话状态等调度逻辑全部保留在用户自己的设备上。通过单一Gateway网关进程,可同时连接 WhatsApp、Telegram、飞书等多种聊天平台,实现跨渠道统一交互。




Skills介绍


什么是Skills
Skills 是可复用的能力组件,让你无需从头构建每项功能,而是将特定功能(如调用 API、查询数据库、检索文档或执行工作流)封装成 Agent 可按需调用的模块。这种方式使 Agent 逻辑更整洁灵活,也更容易随时间扩展,而无需重写核心架构。
用一句话类比:Tools(工具)是OpenClaw的器官,决定它能做什么;Skills(技能)是说明书,教会它如何组合工具完成具体任务。
Skills的文件结构

一个 Skill = 一个文件夹 + 一个 SKILL.md
SKILL.md = YAML 元数据(触发) + Markdown 指令
复杂内容丢进 scripts、references、assets,正文保持极简
Skills的加载与优先级
OpenClaw加载内置Skills以及可选的本地覆盖项,并在加载时根据环境、配置和二进制文件的存在与否进行过滤。Skills的加载来源及优先级从高到低依次为:工作区Skills(<workspace>/skills)→ 用户目录Skills(~/.openclaw/skills)→ 内置Skills。此外,还可以通过配置skills.load.extraDirs指定额外的Skill目录(优先级最低)。
Skills生效的三个前提条件
要让一个Skill真正起作用,需同时满足三个条件:配置(是否允许OpenClaw执行相关命令)、安装(对应的工具或桥接程序是否已安装在机器上)、授权(是否已登录并授权第三方服务)。三者缺一不可:Skills只是说明书,能否实际运行取决于这三个条件。
多Agent场景下的Skills管理
在多Agent配置中,每个Agent拥有独立的工作区,Per-Agent Skills仅对该Agent可见;共享Skills存放在 ~/.openclaw/skills,对同一台机器上所有Agent可见。
Skills生态:ClawHub
ClawHub是OpenClaw的公开Skills注册中心,可在https://clawhub.com浏览,用于发现、安装、更新和备份 Skills。目前ClawHub上已有超过26,193个(截至文档编写时间)可下载的Skills,覆盖笔记、邮件、社交媒体、开发、智能家居等场景。
安全注意事项
在使用第三方Skills时,需注意:审查来源(查看创建者信誉和GitHub Star数)、检查权限(仅授予Skill运行所必需的最小权限)、验证范围(确保Skill仅执行你信任其代为操作的行为)、隔离测试(在隔离环境中先行测试)。



OpenClaw实践案例


从OpenClaw的特性出发,本次实践咱们主要分享下面的案例:
安装开源skills。
每天早上八点,把Github当下最热门的前5个开源项目,整理成报告。
打开携程网站,查询上海浦东到北京大兴的机票信息,并且返回查询结果。
读取个人电脑的账单Email,整理账单。
上传功能设计书到指定目录上,读取指定目录下的代码规范文件,生成代码。
根据系统现有的代码,生成设计书。
开发自定义skills,实现word转pdf。
PS:在某些场景,效果对AI大模型自身的能力依赖比较大,比如:5和6两个案例。
案例1:安装开源Skills
核心能力:Skills的文件结构、安装配置ClawHub、离线安装Skills
实现过程:
方法一(命令行模式,需要联网)
需要先登陆到安装OpenClaw的机器的命令行窗口,这里使用RHEL版本的系统。
1.需要先登陆到安装OpenClaw的机器的命令行窗口,这里使用RHEL版本的系统。

2. 搜索Skills

3. 安装Skills

4. 更新Skills

5. 通过OpenClaw Config配置自动安装
编辑配置文件~/.openclaw/openclaw.json,添加skills配置,在重启OpenClaw后自动安装。

方法二(渠道模式,需要联网)
这里选择飞书作为渠道,只需要使用自然语言的方式,让Open Claw帮忙安装需要的Skills。


方法三(离线模式)
1. 获取Skills
使用能上网的电脑先访问ClawHub官网,搜索你需要的Skill,进入Skill详情页,点击下载zip包。

2. 上传Skills,解压zip包
把第1步下载到的zip包上传到安装OpenClaw的机器,目录为~/.openclaw/skills,使用unzip命令解压Skill包到对应的目录下。

通过对话的方式让OpenClaw安装Skill。

3. 重启OpenClaw
方法四(WebUI图形化管理)
如果OpenClaw安装在其他机器,访问Control UI管理界面,可以通过配置https证书方式访问,或者使用SSL隧道的方式通过http访问。
1. 访问Control UI管理界面

上面包含三块Skill:Workspace Skills、Built-in Skills、Extra Skills。
2. 管理已安装 Skills
在上面搜索已经安装的skill,可以失效不需要的skill,或者更改skill使用的api_key。

案例2:Github热门项目定时整理
核心能力:定时任务、联网搜索、浏览器自动化
实现过程
目标:实现每天早上8点定期抓取当天 GitHub Trending Top 10 的开源项目。
我们与通过飞书机器人对话,向 OpenClaw 下达如下指令:

OpenClaw 回复如下:

检查定时任务
在终端输入 openclaw dashboard 打开 OpenClaw Gateway 界面,切换到“定时任务”之后确认刚刚的定时任务是否已经创建:

验证结果

案例3:机票查询
核心能力:联网搜索、浏览器自动化
实现过程
安装 Playwright skill:clawhub install --yes playwright
设计提示词:

启动专属浏览器实例:

启动后检查登陆用户如果是 openclaw 就说明启动成功:

执行机票查询
将提示词通过飞书机器人传递给 OpenClaw 之后得到如下回复:


可以看到 OpenClaw 已经把航班信息以表格的形式收集到了。监控整个执行过程,我们发现 OpenClaw 在控制浏览器打开携程页面,输入起始地和目的地,滚动页面自动加载更多结果,真正实现了自动化处理。

总结
本案例重点利用到了 OpenClaw 控制浏览器进行自动化流程操作,其中需要从 ClawHub 安装 Playwright 作为自动化辅助工具。同时,提示词中也要明确给大模型定义明确的要求和约束,防止大模型进行“自我发挥”。
要点回顾:
提示词约束,如:对于数据获取,不要臆想、不要猜测、不知道就返回不知道
提示词要点,如:当你成功打开页面之后,需要不断的向下滚动页面直到不能再滚动,从而使页面加载到所有的航班信息
打开专属浏览器实例:openclaw browser --browser-profile "openclaw" start
安装 Playwright skill:clawhub install --yes playwright

OpenClaw 需要读取邮件内容,并提取“发票 PDF 文件下载”的下载链接,然后下载发票 PDF 文件,最后识别 PDF 文件中的开票信息。
提示词(改进前)
提示词内容需要包含以下关键信息:
1. 从哪里获取信息:邮件APP
2. 邮件的时间范围:2个月之内
3. 开票邮件特征:来自京东且邮件内容包含“电子发票”关键字
4. 发票信息获取方式:点击下载链接获取PDF文档,解析PDF文档提取开票信息
初版提示词如下:

验证结果(改进前)
打开飞书机器人,将初版提示词发送给 OpenClaw 如下:

其中的关键回复内容如下:

但实际的发票下载链接可以直接打开并下载,显然 OpenClaw 并没有正确获取发票的下载链接,我们的提示词需要改进。
接下来针对目前的问题与 OpenClaw 进一步对话:

回复如下:


再次检查结果发现 OpenClaw 已经成功提取了两个月内的 PDF 发票中的信息。
提示词(改进后)
经过改进后,最终版的提示词如下:

验证结果(改进后)
运行结果如下:

导出成 Markdown 文件之后如下(数据已脱敏):
京东电子发票汇总表(2个月内)
统计时间: 2026年3月16日发票数量: 9张时间范围: 2026年1月26日 - 2026年3月14日

总结
OpenClaw 的推理过程需要结束 AI 大模型,而复杂的问题往往需要多轮渐进式的对话才能得到正确的答案。本案例涉及到的 OpenClaw 能力如下:
1. 邮件读取自动化
2. PDF 内容解析
案例5:代码生成
核心能力:目录文件操作、编码模型配置(Claude)
实现过程:
目标
OpenClaw 可以需求说明书生成可执行代码。
先决条件
1. OpenClaw 最新版已安装且网关已启动
2. OpenClaw 已配置飞书消息通道
3. OpenClaw 已配置适合 Coding 的大模型,本文使用 anthropic/claude-sonnet-4-6
实验过程
一、准备需求说明书






保存成文档 file_parse_platform_tdd.docx
二、设计提示词
需求说明书中注明是使用 FastAPI + Python的方式组织项目代码,为了进一步测试模型的代码生成能力,我们在提示词中进行调整,使其机遇 SpringBoot + Vue 来生成代码,提示词如下:

三、验证结果
使用提示词通过飞书与 OpenClaw 交互:

OpenClaw 响应如下:

从回复内容上看,代码项目已经生成到 ~/.openclaw/workspace/file_parse_platform_tdd_java ,代码结构如下图所示:

其中 frontend 目录为 Vue 前端项目子目录。
五、运行+错误修复
初次运行需要安装 openjdk-17, Maven和 NodeJS 等工具,安装过程忽略。假设全部安装部署完成之后,我们来分别启动后端和前端如下:
后端运行+修复
使用 mvn spring-boot:run 命令启动后端服务,但运行报错:

将问题抛给 OpenClaw,给出修复建议:

再次启动运行,成功。

前端运行+修复
使用 npm run dev 启动前端如下:

但外部无法访问:

再次将问题扔给 OpenClaw:

OpenClaw 自动修复:

如此反复了3~4轮之后,前端项目已可以正常工作:

总结
既有代码生成需求文档的场景中,生成文档的质量主要取决于 OpenClaw 所使用的大模型的编码能力,推荐使用 Claude Code 的模型进行生成。此外,初次生成的代码并不完美,需要几轮的测试和修复之后才可以正常工作。但即使是这样,对于像 POC 之类的需要快速生成原型的场景,OpenClaw 也会解决大量的时间,显著地提高了效率。
案例6:设计书生成
核心能力:编码模型配置(Claude)
实现过程:
目标
OpenClaw 可以读取指定代码库目录,根据代码目录结果以及源代码方向生成需求规格说明书。
先决条件
OpenClaw 最新版已安装且网关已启动
OpenClaw 已配置飞书消息通道
OpenClaw 已配置适合 Coding 的大模型,本文使用 anthropic/claude-sonnet-4-6
实验过程
一、准备需求规格模板
Python 类开发技术设计文档
技术设计文档章节规范
概述(Overview)
需求分析(Requirements)
架构设计(Architecture Design)
类设计(Class Design)
接口设计(Interface Design)
数据设计(Data Design)
关键算法与逻辑(Key Algorithms & Logic)
异常处理设计(Exception Handling)
依赖与集成(Dependencies & Integration)
测试设计(Test Design)
性能与优化(Performance)
变更记录(Revision History)
将以上内容保存为 python_design_doc_slim.docx
二、准备代码
本文以 https://code.choerodon.com.cn/ora-ai-innovate/paddleocr-proxy 代码仓为例,假设该项目已经被克隆到 OpenClaw 所在服务器的 /opt/paddleocr-api-4ai 位置。

三、设计提示词
提示词在设计过程中并不需要那么考究,包含以下信息即可:
源代码位置
需求规格说明书位置(可在飞书作为附件上传)
输出的需求规格说明书的格式
提示词如下:

四、验证结果
使用提示词通过飞书与 OpenClaw 交互:

OpenClaw 回复分析过程:

OpenClaw 发送最终的需求规格说明书文档:

最终文档部分截图如下:



整体上生成质量较高,这主要取决于配置给 OpenClaw 的大模型在 Coding 方面的能力。
总结
既有代码生成需求文档的场景中,生成文档的质量主要取决于 OpenClaw 所使用的大模型的编码能力,推荐使用 Claude Code 的模型进行生成。此外,在提示词方面要注意包含关键指导性内容,例如源代码位置,文档模板位置等等。
案例7:自定义Skills开发
核心能力:针对不同场景,自主定制一个或者一系列Skills
实现过程:
1. 创建目录
Skills 位于你的工作区中,通常是 ~/.openclaw/workspace/skills/。为你的 Skill 创建一个新文件夹:

2. 定义 SKILL.md
在该目录中创建一个 SKILL.md 文件。此文件使用 YAML frontmatter 作为元数据,使用 Markdown 作为指令。


执行转换主要脚本 scripts/convert.py


执行转换主要脚本 scripts/convert_libreoffice.py



3. 刷新openclaw或重启gateway

至此完成自定义skill开发
4. 理解完整自定义过程,可以使用openclaw去给我们创建skill,参考:
1.通过”用skill方式“唤醒创建skill功能

2.输出效果不满意,通过指定方式调整skill


陈润伯

刘洪玉
审核:邓金边
编辑:朱思聪

夜雨聆风