ClawHub Skills 技能自动更新(Auto-Updater Skill)技能使用参考手册
概述
Auto-Updater Skill(技能自动更新)技能可实现每日自动检查并更新Clawdbot本体及所有已安装的技能,通过Cron定时任务执行更新流程,并向用户推送更新摘要,清晰展示更新内容及状态。
功能说明
该技能通过配置定时Cron任务,完成以下核心操作:
- 更新Clawdbot本体(根据安装方式选择对应更新命令,如npm全局安装/源码安装);
- 更新所有已安装的ClawdHub技能;
- 向用户推送结构化的更新摘要,包含版本变化、更新成功/失败状态等信息。
👤 作者:maximeprades
👉 Skills 下载地址:auto-updater-1.0.0.zip
快速上手
方式1:通过指令快速配置
向Clawdbot发送如下指令,一键配置每日自动更新:
为我配置Clawdbot及所有技能的每日自动更新
方式2:手动添加Cron定时任务
通过命令行执行以下指令,手动创建定时更新任务(推荐默认配置):
## 添加每日自动更新的Cron任务
clawdbot cron add \
--name "Daily Auto-Update" \ # 任务名称:每日自动更新
--cron "0 4 * * *" \ # 执行时间:每天凌晨4点(Cron表达式)
--tz "America/Los_Angeles" \ # 时区:洛杉矶时区(可自定义)
--session isolated \ # 隔离会话执行,避免干扰主会话
--wake now \ # 立即唤醒任务配置
--deliver \ # 推送更新结果
--message "执行每日自动更新流程:
1. 检查并更新Clawdbot:
- npm全局安装:执行 npm update -g clawdbot@latest
- 源码安装:执行 clawdbot update
- 更新后执行:clawdbot doctor --yes(自动应用迁移)
2. 更新所有技能:
- 执行:clawdhub update --all
3. 反馈更新摘要,包含:
- Clawdbot更新前后的版本号
- 技能更新列表(名称 + 旧版本 → 新版本)
- 执行过程中遇到的所有错误信息
请将更新摘要清晰格式化后反馈给用户。"
配置自定义选项
自定义执行时间
修改Cron表达式,调整更新任务的执行时间:
--cron "0 6 * * *" # 改为每天早上6点执行(默认4点)
自定义时区
替换时区参数,适配不同地区的时间:
--tz "Europe/London" # 改为伦敦时区
自定义消息推送渠道
指定推送渠道(如Telegram)和接收人:
--provider telegram --to "@username" # 通过Telegram推送给指定用户名
改为每周更新
调整Cron表达式,设置为每周日凌晨4点执行:
--cron "0 4 * * 0" # 每周日凌晨4点执行
更新工作原理
1. Clawdbot本体更新
根据Clawdbot的安装方式,自动选择对应更新命令:
方式1:npm/pnpm/bun全局安装
## npm全局安装更新
npm update -g clawdbot@latest
## 或pnpm全局安装更新
pnpm update -g clawdbot@latest
## 或bun全局安装更新
bun update -g clawdbot@latest
方式2:源码安装(Git克隆)
## 源码安装的更新命令
clawdbot update
重要:无论哪种安装方式,更新后都需执行
clawdbot doctor --yes,自动应用数据库迁移及配置更新。
2. 技能更新
通过ClawdHub工具批量更新所有已安装的技能:
## 更新所有已安装的ClawdHub技能
clawdhub update --all
该命令会对比本地技能版本与ClawdHub注册表中的最新版本,自动更新有新版本的技能。
更新摘要格式
更新完成后,用户会收到结构化的更新摘要,示例如下:
🔄 每日自动更新完成
**Clawdbot版本**:已更新至 v2026.1.10(原版本 v2026.1.9)
**已更新技能(3个)**:
- prd: 2.0.3 → 2.0.4
- browser: 1.2.0 → 1.2.1
- nano-banana-pro: 3.1.0 → 3.1.2
**已为最新版本的技能(5个)**:
gemini, sag, things-mac, himalaya, peekaboo
本次更新无异常。
手动操作命令
1. 检查更新(仅检测,不实际更新)
## 模拟更新所有技能,仅输出更新计划,不执行实际更新
clawdhub update --all --dry-run
2. 查看已安装技能版本
## 列出所有已安装的ClawdHub技能及版本
clawdhub list
3. 查看Clawdbot当前版本
## 输出Clawdbot的当前版本号
clawdbot --version
4. 验证Cron任务配置
## 列出所有已配置的Cron任务,确认自动更新任务已添加
clawdbot cron list
进阶配置:自定义更新脚本(可选)
对于复杂的部署环境,可创建自定义更新脚本,实现更灵活的更新逻辑:
步骤1:创建更新脚本文件
在~/.clawdbot/scripts/目录下创建auto-update.sh文件,内容如下(带中文注释):
#!/bin/bash
set -e # 遇到错误立即退出
## 定义日志文件路径(自动创建日志目录)
LOG_FILE="${HOME}/.clawdbot/logs/auto-update.log"
mkdir -p "$(dirname "$LOG_FILE")" # 确保日志目录存在
## 日志函数:输出带时间戳的日志到日志文件
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}
## 记录更新开始日志
log "开始执行Clawdbot自动更新流程..."
## 捕获更新前的Clawdbot版本(若获取失败则显示unknown)
CLAWDBOT_VERSION_BEFORE=$(clawdbot --version 2>/dev/null || echo "unknown")
## 根据安装方式执行Clawdbot更新
log "开始更新Clawdbot本体..."
if command -v npm &> /dev/null && npm list -g clawdbot &> /dev/null; then
# npm全局安装:执行npm更新
npm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
elif command -v pnpm &> /dev/null && pnpm list -g clawdbot &> /dev/null; then
# pnpm全局安装:执行pnpm更新
pnpm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
elif command -v bun &> /dev/null; then
# bun全局安装:执行bun更新
bun update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
else
# 源码安装:执行内置update命令
log "检测为源码安装,执行clawdbot update更新"
clawdbot update 2>&1 | tee -a "$LOG_FILE" || true
fi
## 执行doctor命令,自动应用迁移(忽略执行失败)
log "执行clawdbot doctor,应用数据库/配置迁移..."
clawdbot doctor --yes 2>&1 | tee -a "$LOG_FILE" || true
## 捕获更新后的Clawdbot版本
CLAWDBOT_VERSION_AFTER=$(clawdbot --version 2>/dev/null || echo "unknown")
## 更新所有ClawdHub技能(忽略执行失败)
log "开始更新所有ClawdHub技能..."
SKILL_OUTPUT=$(clawdhub update --all 2>&1) || true
echo "$SKILL_OUTPUT" >> "$LOG_FILE"
## 记录更新完成日志
log "Clawdbot自动更新流程执行完毕。"
## 输出结构化的更新摘要(供Clawdbot解析)
echo "---UPDATE_SUMMARY_START---"
echo "clawdbot_before: $CLAWDBOT_VERSION_BEFORE"
echo "clawdbot_after: $CLAWDBOT_VERSION_AFTER"
echo "skill_output: $SKILL_OUTPUT"
echo "---UPDATE_SUMMARY_END---"
步骤2:赋予脚本执行权限
chmod +x ~/.clawdbot/scripts/auto-update.sh
步骤3:检测Clawdbot安装类型(辅助脚本)
#!/bin/bash
## 检测Clawdbot的安装类型,用于适配更新逻辑
## 检测是否为npm全局安装
npm list -g clawdbot 2>/dev/null && echo "npm-global"
## 检测是否为源码安装(Git克隆)
[ -d ~/.clawdbot/.git ] || [ -f /opt/clawdbot/.git/config ] && echo "source-install"
## 检测是否为pnpm全局安装
pnpm list -g clawdbot 2>/dev/null && echo "pnpm-global"
## 检测是否为bun全局安装
bun pm ls -g 2>/dev/null | grep clawdbot && echo "bun-global"
故障排除
问题1:自动更新任务未执行
排查步骤:
- 检查Cron功能是否启用:查看配置文件中
cron.enabled是否为true; - 确认Clawdbot Gateway持续运行(需后台常驻);
- 检查Cron任务是否存在:执行
clawdbot cron list; - 查看更新日志:
cat ~/.clawdbot/logs/auto-update.log。
问题2:更新执行失败
更新摘要会包含具体错误信息,常见错误及解决方案:
| 错误类型 | 原因 | 解决方案 |
|---|---|---|
| EACCES(权限拒绝) | 执行用户无写入权限 | 1. 使用sudo执行更新命令;2. 修复目录权限(如chown -R $USER ~/.clawdbot) |
| 网络超时 | 网络连接不稳定 | 1. 检查网络连通性;2. 手动重试更新命令;3. 调整Cron执行时间避开网络高峰 |
| Git冲突(源码安装) | 源码目录有未提交的修改 | 执行clawdbot update --force强制更新 |
| 包依赖冲突 | 第三方依赖版本不兼容 | 执行clawdbot doctor诊断并修复依赖问题 |
问题3:技能更新无响应
排查步骤:
- 检查ClawdHub注册表连接:
clawdhub list是否能正常输出技能列表; - 确认技能目录可写:
ls -l ~/.clawdbot/skills; - 执行手动更新测试:
clawdhub update --all --dry-run。
禁用自动更新
方式1:删除Cron任务
## 删除名为“Daily Auto-Update”的定时任务
clawdbot cron remove "Daily Auto-Update"
方式2:临时禁用Cron功能
修改Clawdbot配置文件(JSON格式):
{
"cron": {
"enabled": false
}
}

免费 AI IDE


更多建议: