编程

更新守护者

试用

更新守护者是面向Agent平台与已安装技能包的自动更新能力包。它不只是设个每日cron跑 update命令,更解决四个高频痛点:更新引入破坏性变更导致线上崩、更新后无法回滚、 依赖版本冲突、更新时机撞上业务高峰。 核心能力: - 预检干跑:先dry-run检查兼容性,发现breaking change先告警不自动...

它能做什么

更新守护者是面向Agent平台与已安装技能包的自动更新能力包。它不只是设个每日cron跑 update命令,更解决四个高频痛点:更新引入破坏性变更导致线上崩、更新后无法回滚、 依赖版本冲突、更新时机撞上业务高峰。 核心能力: - 预检干跑:先dry-run检查兼容性,发现breaking change先告警不自动应用 - 版本快照:更新前自动快照当前版本与配置,可一键回滚 - 兼容性矩阵:检测新版本与已安装技能/依赖的版本冲突 - 智能调度:按业务低峰期调度更新,避开高峰 - 配置备份:更新前备份配置文件,更新后自动diff校验 - 健康检查:更新后跑健康检查,失败自动回滚 适用场景: - Agent平台与技能包每日自动更新 - 担心更新引入破坏性变更 - 更新后出问题不知怎么回滚 - 多技能依赖同一库的不同版本冲突 - 需要在业务低峰期安全更新 差异化: - 原始版本只设cron跑update,本版补齐"预检+快照+回滚"三段式安全更新 - 移除原仓库特定烙印,通用化适配任意Agent平台与技能包管理器 - 新增兼容性矩阵与依赖冲突检测 - 新增智能调度(业务低峰期) - 新增健康检查失败自动回滚 触发关键词:自动更新、技能更新、版本回滚、破坏性变更、兼容性检查、快照、更新调度

技能文档

更新守护者

自动更新Agent平台与所有已安装技能包,但更新前先预检、先快照,更新后跑健康检查,失败自动回滚。核心信条:更新可以自动,但回滚必须一键。

四大痛点与对策

痛点典型表现本skill对策
破坏性变更更新后技能报错、API不兼容预检干跑 + 兼容性矩阵
无法回滚更新后坏了不知道旧版本号版本快照 + 一键回滚
版本冲突技能A要lib v2,技能B要lib v3依赖冲突检测
时机不当业务高峰期更新导致服务中断智能调度(低峰期)

三段式安全更新流程

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  预检干跑    │ ──→ │  快照+应用   │ ──→ │  健康检查    │
│ dry-run     │     │ snapshot    │     │ health      │
│ 兼容性检查   │     │ apply       │     │ fail→rollback│
└─────────────┘     └─────────────┘     └─────────────┘

第一段:预检干跑

# 1. 检查有哪些更新可用(不应用)
update-manager check --all --dry-run

# 2. 输出示例
# Platform: v2026.1.9 → v2026.1.10 (minor, safe)
# Skill prd: 2.0.3 → 2.0.4 (patch, safe)
# Skill browser: 1.2.0 → 2.0.0 (MAJOR, breaking changes detected!)
#   - Breaking: API renamed fetch() to request()
#   - Affected: 3 other skills depend on browser
# Skill nano: 3.1.0 → 3.1.2 (patch, safe)

# 3. 兼容性矩阵检查
update-manager check-conflicts
# Conflict: skill-A requires lib-x>=2.0, skill-B requires lib-x<2.0
# Recommendation: skip skill-A update or pin lib-x to 1.9

第二段:快照+应用

# 1. 快照当前状态
update-manager snapshot --output ~/.update-snapshots/$(date +%Y%m%d)

# 2. 快照内容
# - platform版本号
# - 所有技能版本号
# - 配置文件备份(~/.config/agent/)
# - 依赖锁文件(package-lock.json / requirements.txt)

# 3. 应用安全更新(跳过breaking change)
update-manager apply --safe-only  # 只应用patch/minor
# 或指定强制
update-manager apply --include browser --force

第三段:健康检查

# 1. 更新后跑健康检查
update-manager health-check

# 2. 检查项
# - 平台启动正常?
# - 所有技能可加载?
# - 关键工作流能跑?
# - 配置文件无diff异常?

# 3. 失败则自动回滚
update-manager health-check --auto-rollback

版本快照与回滚

快照结构

snapshot:
  date: "2026-07-18"
  timestamp: "2026-07-18T04:00:00Z"
  platform:
    name: agent-platform
    version: "2026.1.9"
    install_method: npm  # npm|pnpm|bun|source
  skills:
    - name: prd
      version: "2.0.3"
      path: ~/.skills/prd/
    - name: browser
      version: "1.2.0"
      path: ~/.skills/browser/
  config_files:
    - path: ~/.config/agent/config.json
      hash: sha256:abc123...
    - path: ~/.config/agent/cron.json
      hash: sha256:def456...
  dependencies:
    - name: lib-x
      version: "1.9.0"
      required_by: [skill-A, skill-B]

一键回滚

# 回滚到最近快照
update-manager rollback --latest

# 回滚到指定快照
update-manager rollback --snapshot ~/.update-snapshots/20260718

# 仅回滚指定技能
update-manager rollback --skill browser --to 1.2.0

回滚流程

1. 停止平台服务
2. 恢复平台二进制/包到快照版本
3. 恢复所有技能到快照版本
4. 恢复配置文件(用hash校验完整性)
5. 恢复依赖锁文件
6. 重启平台服务
7. 跑健康检查确认恢复

兼容性矩阵

依赖冲突检测

# 检测规则
conflict_detection:
  - type: version_range
    # 技能A要lib-x>=2.0,技能B要lib-x<2.0 → 冲突
    check: "any two skills require non-overlapping version range of same dep"
    action: skip_update + alert

  - type: breaking_change
    # 技能升级到MAJOR版本,检查其他技能是否依赖旧API
    check: "new major version has breaking API changes"
    action: check_dependents + alert

  - type: peer_dependency
    # 技能声明peerDep,检查宿主版本是否匹配
    check: "skill peerDep range vs platform version"
    action: skip + alert

兼容性矩阵示例

技能依赖lib-x兼容lib-x版本当前lib-x状态
skill-A>=2.02.0-3.01.9.0不兼容(需先升lib-x)
skill-B<2.01.0-1.91.9.0兼容
skill-Cany1.0-3.01.9.0兼容

冲突解决:skill-A与skill-B不能共存于同一lib-x版本。方案:二选一保留,或隔离运行环境。


智能调度

业务低峰期检测

schedule:
  strategy: off_peak
  detection:
    - 检查历史工作流执行日志,找运行最少的时段
    - 默认低峰:凌晨2:00-5:00(按业务调整)
  fallback:
    # 找不到低峰则用固定时间
    cron: "0 4 * * *"
    tz: "Asia/Shanghai"
  blackout:
    # 业务高峰期禁止更新
    periods:
      - "每周一9:00-12:00"  # 周报高峰
      - "每月1日0:00-6:00"  # 月结高峰
      - "节假日全天"

调度示例

# 自动找低峰期
update-manager schedule --auto

# 输出
# Detected off-peak window: 03:00-05:00 daily
# Scheduling updates at 03:30 Asia/Shanghai
# Blackout periods: Mon 9-12, month-start 0-6

# 手动指定
update-manager schedule --cron "0 3 * * *" --tz Asia/Shanghai

配置备份与校验

更新前备份

# 备份配置目录
update-manager backup-config --output ~/.config-backups/$(date +%Y%m%d)

# 备份内容
# - ~/.config/agent/*.json
# - ~/.config/agent/*.yaml
# - ~/.skills/*/config.*
# - 环境变量快照(仅key名,不含value)

更新后校验

# diff配置文件,发现意外变更
update-manager diff-config --before ~/.config-backups/20260718 --after ~/.config/agent/

# 输出
# config.json: 2 keys changed
#   - cron.enabled: true → false  (WARNING: unexpected)
#   - log.level: info → debug
# cron.json: no changes

规则:任何配置项意外变更(非更新日志声明的)都告警。


健康检查

检查项

health_check:
  - id: platform_start
    name: "平台启动"
    check: "agent --version 能正常输出"
    on_fail: rollback

  - id: skills_loadable
    name: "技能可加载"
    check: "遍历~/.skills/,每个技能能正常加载"
    on_fail: rollback_affected

  - id: critical_workflow
    name: "关键工作流可跑"
    check: "跑dry-run测试3个最关键工作流"
    on_fail: rollback

  - id: config_valid
    name: "配置文件有效"
    check: "JSON/YAML语法校验 + schema校验"
    on_fail: restore_config

  - id: deps_consistent
    name: "依赖一致性"
    check: "无版本冲突"
    on_fail: alert

失败自动回滚

update-manager health-check --auto-rollback --notify slack

更新摘要格式

更新完成后收到消息:

更新守护者报告 2026-07-18

平台: v2026.1.9 → v2026.1.10 (minor, 安全)

技能已更新 (3):
- prd: 2.0.3 → 2.0.4
- browser: 1.2.0 → 1.2.1
- nano: 3.1.0 → 3.1.2

技能跳过 (1):
- browser-major: 1.2.0 → 2.0.0 (MAJOR, 检测到breaking change, 需人工确认)

技能已最新 (5):
gemini, sag, things, himalaya, peekaboo

健康检查: 全部通过
快照: ~/.update-snapshots/20260718 (可回滚)

手动命令

# 检查更新不应用
update-manager check --all --dry-run

# 查看当前版本
update-manager list

# 查看平台版本
agent --version

# 手动应用指定技能更新
update-manager apply --skill prd

# 强制应用MAJOR更新(需确认)
update-manager apply --skill browser --force --confirm-breaking

# 回滚
update-manager rollback --latest

# 查看快照列表
update-manager snapshots --list

边界情况与陷阱

  • 更新中途断网:可能半更新状态。用事务式更新(要么全成功要么全回滚)。
  • 配置文件被改:更新可能覆盖用户自定义配置。更新前必备份,更新后diff校验。
  • 依赖锁文件丢失:导致依赖版本漂移。锁文件纳入快照。
  • 磁盘空间不足:更新前检查可用空间。
  • 权限问题:确保更新用户对技能目录有写权限。
  • MAJOR版本跳变:从v1直接跳v3可能漏掉v2的迁移步骤。逐版本升级。

FAQ

Q:更新后平台起不来了怎么办? A:自动健康检查会检测到并触发回滚。手动回滚:update-manager rollback --latest,恢复到更新前快照。

Q:怎么知道哪个技能有breaking change? A:预检干跑阶段会输出。MAJOR版本号变更默认跳过,需手动--force --confirm-breaking

Q:两个技能依赖同一库的不同版本怎么办? A:兼容性矩阵会检测到冲突。方案:二选一保留,或为冲突技能隔离运行环境(容器/虚拟环境)。

Q:更新撞上业务高峰怎么办? A:智能调度会自动检测低峰期(默认凌晨2-5点)。可配blackout时段禁止更新。

Q:配置文件被更新覆盖了怎么办? A:更新前自动备份到~/.config-backups/。更新后diff校验,意外变更会告警。可手动恢复。


故障排查

症状可能原因解决
更新不运行cron未启用检查cron.enabled与Gateway运行状态
更新失败权限/网络/磁盘检查写权限、网络、磁盘空间
更新后崩溃breaking change跑健康检查,自动回滚或手动rollback --latest
技能加载失败依赖冲突跑兼容性矩阵,隔离冲突技能
配置异常更新覆盖~/.config-backups/恢复,加diff告警
半更新状态中途中断update-manager rollback --latest回到一致状态

依赖说明

运行环境

  • Agent平台:支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统:Windows / macOS / Linux
  • 技能包管理器:update-manager CLI(或平台自带等价命令)

第三方依赖

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent内置LLM提供
技能包管理器CLI必需平台自带或独立安装
通知通道(Slack/邮件)集成可选用户自有账号

API Key 配置

  • 本skill基于Markdown指令,无需额外API Key
  • 涉及外部技能源(如私有registry)时,通过环境变量配置访问Token

可用性分类

  • 分类:MD+EXEC(Markdown指令 + CLI执行)
  • 说明:通过自然语言指令驱动Agent调用update-manager完成三段式安全更新

相关技能

每日扫描各 agent workspace 中的 Skill,标记功能重复并维护使用指南。

12 次安装1 星标

服务器健康监控与自动恢复技能。当服务器出现卡顿、崩溃、Bot 连接异常或网关中断时使用此技能。支持:执行健康检查、自动诊断故障、一键恢复 Gateway、清理内存/磁盘、整理日志、检查 OOM Killer 等操作。触发场景包括:服务器变慢、Bot 无响应、日志报 ERROR、内存/磁盘告警、进程消失等任何异常情...

2 次安装

智能更新管家专业版是面向团队与企业的全功能更新编排系统。不仅自发保持Agent运行时与技能最新,更包含多环境更新策略、回滚备份、金丝雀发布、依赖冲突剖析、Breaking. 适用于需要smart update agent相关能力的开发场景,提供结构化的工作流程和配置指引. 该工具经过深度差异化处理,针对用户反馈和使用痛点进行了优化改进,提升了实用性和可操作性.

内容合规审核守卫(v25.0合并content-compliance-checker),三级审核(敏感词→AI语义→平台规则)+U19管道合规步骤(委托risk-detector 10类风险检测)。触发:内容审核/合规检查/敏感词检测/发布前审核/文案审核/U19/风控检查 不触发:内容发布/内容生成/价格调整

2 次安装

积分守卫 Skill — 在执行任何高消耗任务前,自动完成提问优化、积分预估、风险拦截、替代方案推荐, 帮助用户以最少积分完成有实际产出的任务。适用于 WorkBuddy 平台积分管理场景。

3 次安装1 星标

Token 守护者是面向 AI Agent 的 token 成本优化系统,针对"压缩过度损失质量、语义缓存命中率低、缺乏模型路由、预算不可见不可控"四大高频痛点而设计。它用三层缓存(精确匹配/语义匹配/模式匹配)+ 自适应压缩 + 模型路由 + 预算守护,在不牺牲响应质量的前提下降低 50-80% 的 token...