ClawHub Skills 技能自动更新(Auto-Updater Skill)技能使用参考手册

2026-03-04 18:14 更新

概述

Auto-Updater Skill(技能自动更新)技能可实现每日自动检查并更新Clawdbot本体及所有已安装的技能,通过Cron定时任务执行更新流程,并向用户推送更新摘要,清晰展示更新内容及状态。

功能说明

该技能通过配置定时Cron任务,完成以下核心操作:

  1. 更新Clawdbot本体(根据安装方式选择对应更新命令,如npm全局安装/源码安装);
  2. 更新所有已安装的ClawdHub技能;
  3. 向用户推送结构化的更新摘要,包含版本变化、更新成功/失败状态等信息。

👤 作者: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:自动更新任务未执行

排查步骤:

  1. 检查Cron功能是否启用:查看配置文件中cron.enabled是否为true
  2. 确认Clawdbot Gateway持续运行(需后台常驻);
  3. 检查Cron任务是否存在:执行clawdbot cron list
  4. 查看更新日志: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:技能更新无响应

排查步骤:

  1. 检查ClawdHub注册表连接:clawdhub list是否能正常输出技能列表;
  2. 确认技能目录可写:ls -l ~/.clawdbot/skills
  3. 执行手动更新测试:clawdhub update --all --dry-run

禁用自动更新

方式1:删除Cron任务

## 删除名为“Daily Auto-Update”的定时任务
clawdbot cron remove "Daily Auto-Update"

方式2:临时禁用Cron功能

修改Clawdbot配置文件(JSON格式):

{
  "cron": {
    "enabled": false
  }
}

参考资源

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号