Daily-scans agent workspaces, flags duplicate skills, and keeps user-facing guides in sync.
Coding
更新守护者
Try it更新守护者是面向Agent平台与已安装技能包的自动更新能力包。它不只是设个每日cron跑 update命令,更解决四个高频痛点:更新引入破坏性变更导致线上崩、更新后无法回滚、 依赖版本冲突、更新时机撞上业务高峰。 核心能力: - 预检干跑:先dry-run检查兼容性,发现breaking change先告警不自动...
What it does
更新守护者是面向Agent平台与已安装技能包的自动更新能力包。它不只是设个每日cron跑 update命令,更解决四个高频痛点:更新引入破坏性变更导致线上崩、更新后无法回滚、 依赖版本冲突、更新时机撞上业务高峰。 核心能力: - 预检干跑:先dry-run检查兼容性,发现breaking change先告警不自动应用 - 版本快照:更新前自动快照当前版本与配置,可一键回滚 - 兼容性矩阵:检测新版本与已安装技能/依赖的版本冲突 - 智能调度:按业务低峰期调度更新,避开高峰 - 配置备份:更新前备份配置文件,更新后自动diff校验 - 健康检查:更新后跑健康检查,失败自动回滚 适用场景: - Agent平台与技能包每日自动更新 - 担心更新引入破坏性变更 - 更新后出问题不知怎么回滚 - 多技能依赖同一库的不同版本冲突 - 需要在业务低峰期安全更新 差异化: - 原始版本只设cron跑update,本版补齐"预检+快照+回滚"三段式安全更新 - 移除原仓库特定烙印,通用化适配任意Agent平台与技能包管理器 - 新增兼容性矩阵与依赖冲突检测 - 新增智能调度(业务低峰期) - 新增健康检查失败自动回滚 触发关键词:自动更新、技能更新、版本回滚、破坏性变更、兼容性检查、快照、更新调度
The skill document
更新守护者
自动更新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.0 | 2.0-3.0 | 1.9.0 | 不兼容(需先升lib-x) |
| skill-B | <2.0 | 1.0-1.9 | 1.9.0 | 兼容 |
| skill-C | any | 1.0-3.0 | 1.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 API | API | 必需 | 由Agent内置LLM提供 |
| 技能包管理器 | CLI | 必需 | 平台自带或独立安装 |
| 通知通道(Slack/邮件) | 集成 | 可选 | 用户自有账号 |
API Key 配置
- 本skill基于Markdown指令,无需额外API Key
- 涉及外部技能源(如私有registry)时,通过环境变量配置访问Token
可用性分类
- 分类:MD+EXEC(Markdown指令 + CLI执行)
- 说明:通过自然语言指令驱动Agent调用update-manager完成三段式安全更新
Related skills
服务器健康监控与自动恢复技能。当服务器出现卡顿、崩溃、Bot 连接异常或网关中断时使用此技能。支持:执行健康检查、自动诊断故障、一键恢复 Gateway、清理内存/磁盘、整理日志、检查 OOM Killer 等操作。触发场景包括:服务器变慢、Bot 无响应、日志报 ERROR、内存/磁盘告警、进程消失等任何异常情...
智能更新管家专业版是面向团队与企业的全功能更新编排系统。不仅自发保持Agent运行时与技能最新,更包含多环境更新策略、回滚备份、金丝雀发布、依赖冲突剖析、Breaking. 适用于需要smart update agent相关能力的开发场景,提供结构化的工作流程和配置指引. 该工具经过深度差异化处理,针对用户反馈和使用痛点进行了优化改进,提升了实用性和可操作性.
内容合规审核守卫(v25.0合并content-compliance-checker),三级审核(敏感词→AI语义→平台规则)+U19管道合规步骤(委托risk-detector 10类风险检测)。触发:内容审核/合规检查/敏感词检测/发布前审核/文案审核/U19/风控检查 不触发:内容发布/内容生成/价格调整
积分守卫 Skill — 在执行任何高消耗任务前,自动完成提问优化、积分预估、风险拦截、替代方案推荐, 帮助用户以最少积分完成有实际产出的任务。适用于 WorkBuddy 平台积分管理场景。
Token 守护者是面向 AI Agent 的 token 成本优化系统,针对"压缩过度损失质量、语义缓存命中率低、缺乏模型路由、预算不可见不可控"四大高频痛点而设计。它用三层缓存(精确匹配/语义匹配/模式匹配)+ 自适应压缩 + 模型路由 + 预算守护,在不牺牲响应质量的前提下降低 50-80% 的 token...