Agent Graceful Degradation(Agent优雅降级)是指当AI Agent系统遇到资源不足、服务故障或负载过高时,不是直接报错或停止服务,而是有策略地降低服务质量,保持核心功能可用。就像一个人在疲劳时会降低工作强度,但不会直接"罢工"。
| 触发条件 | 降级级别 | 降级动作 |
|---|---|---|
| Token预算接近上限 | Level 1 | 切换到更便宜的模型 |
| 模型提供商429错误 | Level 1 | 切换到备用模型提供商 |
| 响应时间 > 30秒 | Level 2 | 禁用重型工具(浏览器、子Agent) |
| 连续错误 > 5次 | Level 2 | 暂停自动任务,只处理手动请求 |
| 系统资源不足 | Level 3 | 返回缓存结果,暂停所有新任务 |
| 所有模型不可用 | Level 3 | 返回预设错误消息 |
# OpenClaw fallback模型配置
# 当主模型不可用时,自动降级到备用模型
agents:
list:
- id: "miaoquai"
model: "claude-sonnet-4" # Level 0: 最优模型
fallbacks:
- "gpt-4o" # Level 1: 备用模型
- "claude-haiku-4" # Level 2: 更快更便宜
- "gpt-4o-mini" # Level 3: 最低成本
# 根据系统负载动态调整可用工具
# 在SKILL.md中定义降级规则
## 降级策略
当系统处于降级模式时:
- 禁用 browser 工具(节省资源)
- 禁用 sessions_spawn(停止子Agent)
- 限制 web_search 结果数从10降到3
- 禁用非核心的exec命令
降级模式下可用工具:
- read/write/edit(文件操作)
- web_fetch(轻量网页获取)
- message(消息发送)
- session_status(状态查询)
# 降级模式下的内容生成策略
正常模式:
- AI新闻日报:10条新闻,每条详细分析
- 踩坑实录:2000字深度文章
- 术语百科:完整定义+代码示例+相关链接
降级模式:
- AI新闻日报:5条新闻,简要摘要
- 踩坑实录:800字精简版
- 术语百科:核心定义+简要说明
最小模式:
- AI新闻日报:3条热点 + "查看更多请访问网站"
- 踩坑实录:暂停生成
- 术语百科:返回已有页面
#!/bin/bash
# 自动降级检测与执行
# 检查Token预算
DAILY_TOKENS=$(cat /tmp/openclaw-daily-tokens 2>/dev/null || echo 0)
BUDGET_LIMIT=500000
USAGE_PCT=$((DAILY_TOKENS * 100 / BUDGET_LIMIT))
if [ $USAGE_PCT -gt 95 ]; then
echo "🔴 Token预算即将耗尽 ($USAGE_PCT%),进入Level 3降级"
# 切换到最小模式
cp ~/.openclaw/config-minimal.yaml ~/.openclaw/config.yaml
elif [ $USAGE_PCT -gt 80 ]; then
echo "🟡 Token预算使用较高 ($USAGE_PCT%),进入Level 1降级"
# 切换到经济模式
cp ~/.openclaw/config-economy.yaml ~/.openclaw/config.yaml
fi
openclaw gateway restart
| 策略 | 效果 | 用户体验 | 适用场景 |
|---|---|---|---|
| 限流 | 控制请求速率 | 可能排队等待 | 流量突增 |
| 熔断 | 快速失败 | 直接报错 | 持续故障 |
| 降级 | 降低服务质量 | 功能受限但可用 | 资源不足 |
三者组合使用 — 限流是第一道防线,降级是第二道,熔断是最后手段。理想情况下:限流控制流量 → 超限时降级 → 降级后仍过载则熔断。
陷阱1:降级无感知 — 用户不知道Agent已经降级,还以为是正常水平。应该在降级时告知用户"当前处于经济模式"。
陷阱2:降级后不恢复 — 触发降级后忘记恢复正常模式,Agent一直以低性能运行。应该设置自动恢复机制。
陷阱3:降级策略太激进 — 一降级就禁用所有功能,用户体验极差。应该保持核心功能可用。
1. 定义清晰的降级级别 — 每个级别明确列出哪些功能可用、哪些禁用。
2. 自动化降级和恢复 — 通过监控指标自动触发降级,指标恢复后自动解除。
3. 保持核心功能 — 无论降到哪一级,核心功能(接收消息、基本回复)必须可用。
4. 通知用户 — 降级时告知用户,设置预期,避免误解。
5. 记录降级事件 — 每次降级都要记录原因、时间、持续时长,用于后续优化。