OpenClaw 改造指南:打造属于你的 AI 助手
OpenClaw 最大的魅力在于可扩展性。这篇我们来讲如何根据自己的需求,改造和增强 OpenClaw 的能力。
扩展的三种方式
OpenClaw 提供了三个层次的扩展能力,从简单到复杂:
配置(Config) → 技能(Skills) → 插件(Plugins)
就像装修房子:
• 配置:调整家具摆放(最简单)
• 技能:买新家电(中等难度)
• 插件:改造房屋结构(最复杂)
第一层:配置驱动(最简单)
多 Agent 配置
假设你有两个身份:
• 工作中:严谨、专业
• 生活中:轻松、幽默
可以配置两个 Agent:
{
agents:{
list:[
{
id:"work",
name:"工作助手",
model:"anthropic/claude-opus-4-6",// 用最强的模型
workspace:"~/.openclaw/workspace-work"
},
{
id:"personal",
name:"生活助手",
model:"anthropic/claude-sonnet-4-5",// 用更快的模型
workspace:"~/.openclaw/workspace-personal"
}
]
},
bindings:[
// 工作群的消息 → 工作助手
{agentId:"work",match:{channel:"slack"}},
// 其他的消息 → 生活助手
{agentId:"personal",match:{channel:"whatsapp"}}
]
}
人格设定(SOUL.md)
在每个 workspace 创建 SOUL.md:
工作助手:
## 身份
我是专业的工作助手,帮助处理技术问题和项目事务。
## 说话风格
- 技术问题:详细、准确、提供代码示例
- 项目问题:条理清晰、 actionable
## 边界
- 不讨论个人隐私
- 不执行危险命令
- 不确定时先确认再行动
生活助手:
## 身份
我是你的生活伙伴,陪你聊天、推荐电影音乐。
## 说话风格
- 轻松幽默
- 会用表情包和梗
- 像朋友一样交流
工具权限控制
限制 Agent 能做什么:
{
agents:{
list:[
{
id:"family",// 给孩子用的 Agent
tools:{
allow:["read","web_search","tts"],// 只能读和搜索
deny:["exec","write","edit"]// 禁止执行和写入
}
}
]
}
}
第二层:Skills(技能)
什么是 Skills?
Skills 是封装好的"超能力",让 Agent 能完成特定任务。
类比: 就像给手机安装 App:
• 安装天气 App → 能查天气
• 安装地图 App → 能导航
• 安装 Skills → Agent 获得新能力
创建自己的 Skill
场景: 你想让 Agent 能查公司内部的员工信息
步骤 1:创建目录
mkdir-p ~/.openclaw/skills/company-directory
步骤 2:编写 SKILL.md
# company-directory
查询公司内部员工信息。
## 使用场景
当用户询问同事联系方式、部门信息时:
1. 确认用户有权限(已登录公司账号)
2. 查询内部 API
3. 返回格式化的信息
## 示例
用户:"张三在哪个部门?"
→ 查询内部系统
→ 回复:"张三在产品部,邮箱 zhangsan@company.com"
## 工具
-`exec`: 调用内部 CLI 工具查询
-`read`: 读取本地员工名录(脱敏版)
步骤 3:添加工具脚本(可选)
如果查询比较复杂,可以写个脚本:
# ~/.openclaw/skills/company-directory/query.py
import sys
import requests
defquery_employee(name):
# 调用内部 API
resp = requests.get(f"https://internal-api.com/employees?name={name}")
return resp.json()
if __name__ =="__main__":
name = sys.argv[1]
result = query_employee(name)
print(result)
步骤 4:安装到工作区
ln-s ~/.openclaw/skills/company-directory \
~/.openclaw/workspace/skills/company-directory
从 ClawHub 安装现成 Skills
# 搜索天气技能
clawhub search weather
# 安装
clawhub install weather
# 更新所有技能
clawhub update
第三层:Plugins(插件)
什么时候需要写 Plugin?
Skills 不够用时,比如:
• 需要添加全新的聊天通道(如企业微信)
• 需要深度集成某个系统
• 需要修改核心行为
简单 Plugin 示例
场景: 添加一个自定义通道(比如钉钉)
目录结构:
openclaw-plugin-dingtalk/
├── package.json
├── index.ts
└── src/
├── dingtalk.ts
└── types.ts
package.json:
{
"name":"openclaw-plugin-dingtalk",
"version":"1.0.0",
"openclaw":{
"plugin":{
"id":"dingtalk",
"name":"DingTalk Channel"
}
}
}
核心代码:
// src/dingtalk.ts
import{ Channel, Message }from'@openclaw/sdk';
exportclassDingTalkChannelimplementsChannel{
id ='dingtalk';
asyncinitialize(config:any){
// 初始化钉钉 SDK
this.client =newDingTalkClient({
appKey: config.appKey,
appSecret: config.appSecret
});
}
asyncsend(message: Message){
// 发送消息到钉钉
awaitthis.client.sendMessage({
chatId: message.chatId,
content: message.content
});
}
asyncstartListening(handler){
// 监听钉钉消息
this.client.onMessage((msg)=>{
handler({
channel:'dingtalk',
sender: msg.senderStaffId,
content: msg.text.content
});
});
}
}
安装:
openclaw plugins install ./openclaw-plugin-dingtalk
自动化扩展
Cron 定时任务
场景: 每天早上 9 点自动发日报
{
cron:{
enabled:true,
jobs:[
{
id:"morning-report",
schedule:"0 9 * * 1-5",// 工作日 9 点
prompt:"生成昨日工作总结并发送到工作群",
agentId:"work"
}
]
}
}
Webhook 集成
场景: GitHub 有 PR 时自动审查
{
hooks:{
enabled:true,
mappings:[
{
match:{path:"github",event:"pull_request"},
action:"agent",
agentId:"code-review",
prompt:"审查这个 PR:{{payload.pull_request.html_url}}"
}
]
}
}
外部工具集成
Shell 脚本
场景: 自动备份工作目录
# ~/.openclaw/workspace/tools/backup.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="$HOME/backups/$DATE"
mkdir-p"$BACKUP_DIR"
tar-czf"$BACKUP_DIR/workspace.tar.gz"-C"$HOME/.openclaw" workspace
echo"备份完成:$BACKUP_DIR"
Agent 可以通过 exec 调用:
你:运行备份
Agent:执行 backup.sh → 返回"备份完成"
Python 脚本
场景: 数据分析
# ~/.openclaw/workspace/tools/analyze.py
import pandas as pd
import sys
defanalyze_csv(path):
df = pd.read_csv(path)
return{
"行数":len(df),
"列数":len(df.columns),
"统计": df.describe().to_dict()
}
if __name__ =="__main__":
print(analyze_csv(sys.argv[1]))
最佳实践
1. 从简单开始
不要一上来就写 Plugin:
1. 先尝试用配置解决
2. 不够用了再写 Skills
3. 最后才考虑 Plugin
2. 版本管理
# 技能版本控制
cd ~/.openclaw/skills/my-skill
git init
gitadd.
git commit -m"Initial skill"
# 工作区版本控制
cd ~/.openclaw/workspace
git init
gitadd AGENTS.md SOUL.md skills/
git commit -m"Workspace setup"
3. 测试
# 测试配置
openclaw doctor
# 测试 Agent
openclaw agent run --agenttest--prompt"测试"
4. 文档
每个扩展都要写清楚:
• 用途是什么
• 怎么用
• 有什么限制
总结
改造 OpenClaw 就像装修房子:
• 配置:调整布局(简单、快速)
• Skills:添置家具(中等、实用)
• Plugins:改造结构(复杂、强大)
建议从配置开始,逐步深入。记住:不要为了扩展而扩展,解决实际问题最重要。
夜雨聆风