# Send Self-Upgrade (Tianyi) to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tianyi-self-upgrade",
    "name": "Self-Upgrade (Tianyi)",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/fffdz/tianyi-self-upgrade",
    "canonicalUrl": "https://clawhub.ai/fffdz/tianyi-self-upgrade",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/tianyi-self-upgrade",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tianyi-self-upgrade",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tianyi-self-upgrade"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tianyi-self-upgrade",
    "downloadUrl": "https://openagent3.xyz/downloads/tianyi-self-upgrade",
    "agentUrl": "https://openagent3.xyz/skills/tianyi-self-upgrade/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tianyi-self-upgrade/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tianyi-self-upgrade/agent.md"
  }
}
```
## Documentation

### Self-Upgrade 技能

OpenClaw 系统的自我维护和升级能力。

### 安全分级

风险等级操作类型执行策略低风险日志清理、状态检查、配置格式化自动执行中风险配置字段更新、技能包安装需用户确认高风险服务重启、文件删除、版本升级必须用户明确授权

### 升级策略

向后兼容优先: 保留旧配置字段（标记 deprecated）而非直接删除
可回滚: 重大变更前自动备份
渐进式: 分步执行，每步验证后再继续

### 1. 版本检查

# 检查当前版本
openclaw --version

# 检查配置版本
$config = Get-Content ~\\.openclaw\\openclaw.json | ConvertFrom-Json
$config.meta.lastTouchedVersion

### 2. 配置迁移

检测并迁移废弃字段：

# 示例：authToken → auth.token
if ($config.gateway.authToken) {
    $config.gateway.auth = @{ token = $config.gateway.authToken }
    $config.gateway.PSObject.Properties.Remove('authToken')
}

### 3. 依赖检查

# 检查必要技能
$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

### 4. 自动修复

运行内置诊断：

openclaw doctor --fix

### 5. 备份与回滚

# 备份配置
$backupPath = "~\\.openclaw\\backups\\openclaw-$(Get-Date -Format 'yyyyMMdd-HHmmss').json"
Copy-Item ~\\.openclaw\\openclaw.json $backupPath

# 回滚命令
Copy-Item $backupPath ~\\.openclaw\\openclaw.json

### scripts/self-upgrade.ps1

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
}

### references/upgrade-history.md

记录每次升级的详细信息，用于追溯和回滚。

### references/config-schema.md

配置文件的 schema 定义，用于验证迁移正确性。

### 触发条件

以下情况应触发本技能：

用户执行 openclaw doctor --fix
检测到配置字段已废弃（如 authToken）
版本升级后首次启动
技能加载失败（缺失或格式错误）
定期维护（如每周一次健康检查）

### 输出格式

升级报告应包含：

升级摘要: 执行了哪些变更
备份位置: 回滚所需信息
验证结果: 升级后状态检查
后续建议: 需要用户注意的事项

示例：

【升级报告】
时间：2026-02-26 21:30:00
模式：自动（低风险）

【执行变更】
✅ 迁移 gateway.authToken → gateway.auth.token
✅ 格式化配置文件
✅ 清理过期日志（>7 天）

【备份位置】
~\\.openclaw\\backups\\openclaw-20260226-213000.json

【验证结果】
✅ 配置验证通过
✅ 网关运行正常
✅ 技能加载正常

【后续建议】
无需用户操作

### 禁止自动执行的操作

❌ 删除用户数据文件
❌ 修改 API 密钥/令牌（除非明确授权迁移）
❌ 卸载已安装的技能
❌ 更改网络配置（端口、绑定地址）

### 必须备份的操作

✅ 配置文件修改
✅ 技能包安装/更新
✅ 依赖包升级

### 回滚机制

所有自动变更必须支持回滚：

# 回滚到指定备份
.\\self-upgrade.ps1 -RollbackTo "20260226-213000"
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: fffdz
- Version: 1.0.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-30T16:55:25.780Z
- Expires at: 2026-05-07T16:55:25.780Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/tianyi-self-upgrade)
- [Send to Agent page](https://openagent3.xyz/skills/tianyi-self-upgrade/agent)
- [JSON manifest](https://openagent3.xyz/skills/tianyi-self-upgrade/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/tianyi-self-upgrade/agent.md)
- [Download page](https://openagent3.xyz/downloads/tianyi-self-upgrade)