← ClaudeAtlas

compact-guardianlisted

压缩熔断守护。当 memory-lancedb-pro 自动压缩(auto compaction)连续失败 3 次时,熔断机制触发,停止当前 session 的自动压缩并通过 Telegram 通知用户手动 /compact 处理。在记忆压缩失败后,激活此 skill 进行熔断检查。
Deep-pahoehoe114/openclaw-claude-code-integration · ★ 2 · AI & Automation · score 75
Install: claude install-skill Deep-pahoehoe114/openclaw-claude-code-integration
# Compact Guardian — 压缩熔断守护 ## 功能概述 在 `memory-lancedb-pro` 的 `gateway_start` 自动压缩流程中加入熔断保护: 1. **失败计数**:每次 compact 失败 → 调用 `fail` 子命令,计数器 +1 2. **熔断判定**:调用 `guardian` 子命令,count ≥ 3 → `allow: false`,触发熔断 3. **Telegram 通知**:熔断触发时自动发送通知到 Telegram 4. **计数器重置**:手动 `/compact` 成功后 → 调用 `success` 子命令 → 计数器归零 ## 工作原理 ``` gateway_start compact 失败 → compact_guardian.py fail "gateway" → circuit_state.json sessions["gateway"].failures +1 → if failures >= 3: → notify_telegram.py 发送 Telegram 通知 → agentEndAutoCaptureHook: checkCompactGuardian() 返回 false → 当前 session 停止触发自动压缩 ``` ## 核心文件 | 文件 | 作用 | |------|------| | `scripts/compact_guardian.py` | 熔断状态管理器(计数/查询/重置) | | `scripts/notify_telegram.py` | Telegram 通知发送器 | | `~/.openclaw/workspace/skills/compact-guardian/circuit_state.json` | 熔断状态持久化文件 | ## compact_guardian.py 子命令 ```bash # 检查 session 是否被熔断(插件自动调用) python3 scripts/compact_guardian.py guardian <session_id> # → {"allow": false, "failures": 3, "tripped": true, "reason": "..."} # 记录一次压缩失败 python3 scripts/compact_guardian.py fail <session_id> --reason "<错误信息>" # → {"status": "tripped", "failures": 3, "max_failures": 3, "message": "..."} # 记录压缩成功(重置计数器) python3 scripts/compact_guardian.py success <session_id> # → {"status": "reset", "failures": 0, "was_tripped": true} # 重置 session 计数器(session 结束时自动��理) python3 scripts/compact_guardian.py reset <session_id> ``` ## 状态文件格式 `~/.openclaw/workspace/skills/compact-guardian/circuit_state.json`: ```j