Install
openclaw skills install tianyi-self-upgradeOpenClaw 自我迭代升级技能。使用场景:配置自动修复、技能更新、依赖安装、版本检查、问题预防性修复。支持安全模式(需用户确认)和自动模式(低风险操作自动执行)。
openclaw skills install tianyi-self-upgradeOpenClaw 系统的自我维护和升级能力。
| 风险等级 | 操作类型 | 执行策略 |
|---|---|---|
| 低风险 | 日志清理、状态检查、配置格式化 | 自动执行 |
| 中风险 | 配置字段更新、技能包安装 | 需用户确认 |
| 高风险 | 服务重启、文件删除、版本升级 | 必须用户明确授权 |
# 检查当前版本
openclaw --version
# 检查配置版本
$config = Get-Content ~\.openclaw\openclaw.json | ConvertFrom-Json
$config.meta.lastTouchedVersion
检测并迁移废弃字段:
# 示例:authToken → auth.token
if ($config.gateway.authToken) {
$config.gateway.auth = @{ token = $config.gateway.authToken }
$config.gateway.PSObject.Properties.Remove('authToken')
}
# 检查必要技能
$requiredSkills = @('healthcheck', 'skill-creator', 'auto-diagnostic')
foreach ($skill in $requiredSkills) {
if (-not (Test-Path "skills\$skill\SKILL.md")) {
Write-Host "[MISSING] Skill: $skill"
}
}
# 检查 npm 包版本
npm list -g openclaw
运行内置诊断:
openclaw doctor --fix
# 备份配置
$backupPath = "~\.openclaw\backups\openclaw-$(Get-Date -Format 'yyyyMMdd-HHmmss').json"
Copy-Item ~\.openclaw\openclaw.json $backupPath
# 回滚命令
Copy-Item $backupPath ~\.openclaw\openclaw.json
param(
[switch]$Auto, # 自动模式(低风险操作)
[switch]$DryRun, # 仅预览,不执行
[string]$BackupDir = "~\.openclaw\backups"
)
$ErrorActionPreference = "Stop"
$ConfigPath = "~\.openclaw\openclaw.json"
# 1. 创建备份
if (-not $DryRun) {
if (-not (Test-Path $BackupDir)) {
New-Item -ItemType Directory -Path $BackupDir | Out-Null
}
$backupPath = Join-Path $BackupDir "openclaw-$(Get-Date -Format 'yyyyMMdd-HHmmss').json"
Copy-Item $ConfigPath $backupPath
Write-Host "[OK] Backup created: $backupPath" -ForegroundColor Green
}
# 2. 检查配置
try {
$config = Get-Content $ConfigPath -Raw | ConvertFrom-Json
Write-Host "[OK] Config is valid JSON" -ForegroundColor Green
} catch {
Write-Host "[ERROR] Config is invalid: $($_.Exception.Message)" -ForegroundColor Red
exit 1
}
# 3. 迁移废弃字段
$migrated = $false
if ($config.gateway.authToken) {
Write-Host "[MIGRATE] gateway.authToken → gateway.auth.token" -ForegroundColor Yellow
if (-not $DryRun) {
$config.gateway.auth = @{ token = $config.gateway.authToken }
$config.gateway.PSObject.Properties.Remove('authToken')
$migrated = $true
}
}
# 4. 保存变更
if ($migrated -and -not $DryRun) {
$config | ConvertTo-Json -Depth 10 | Set-Content $ConfigPath
Write-Host "[OK] Config updated" -ForegroundColor Green
# 验证
openclaw doctor --fix
}
# 5. 检查技能
$skillsPath = "D:\workspace\openclaw_ceo\skills"
if (Test-Path $skillsPath) {
$skills = Get-ChildItem $skillsPath -Directory | Select-Object -ExpandProperty Name
Write-Host "[OK] Found $($skills.Count) skills: $($skills -join ', ')" -ForegroundColor Green
}
记录每次升级的详细信息,用于追溯和回滚。
配置文件的 schema 定义,用于验证迁移正确性。
以下情况应触发本技能:
openclaw doctor --fixauthToken)升级报告应包含:
示例:
【升级报告】
时间:2026-02-26 21:30:00
模式:自动(低风险)
【执行变更】
✅ 迁移 gateway.authToken → gateway.auth.token
✅ 格式化配置文件
✅ 清理过期日志(>7 天)
【备份位置】
~\.openclaw\backups\openclaw-20260226-213000.json
【验证结果】
✅ 配置验证通过
✅ 网关运行正常
✅ 技能加载正常
【后续建议】
无需用户操作
所有自动变更必须支持回滚:
# 回滚到指定备份
.\self-upgrade.ps1 -RollbackTo "20260226-213000"