优雅降级与有用消息模式Skill graceful-degradation

本技能介绍如何在服务不可用时实现优雅降级,通过检查可用性、缓存结果和提供操作指南,确保系统在部分功能缺失时仍能正常运行。适用于软件开发中的错误处理和用户体验优化,关键词:优雅降级、服务可用性、缓存、备用消息、错误处理。

DevOps 0 次安装 0 次浏览 更新于 3/14/2026

name: graceful-degradation description: 优雅降级与有用消息 user-invocable: false

优雅降级与有用消息

当可选服务不可用时,通过可操作的备用消息优雅地降级。

模式

在开始时检查可用性,缓存结果,并提供有用的消息,解释缺少什么以及如何修复它。

应该做的

  • 尽早检查服务可用性(在浪费计算资源之前)
  • 为会话缓存健康检查结果(例如,60秒的TTL)
  • 提供可操作的备用消息:
    • 缺少什么服务
    • 哪些功能降级
    • 如何启用服务
  • 在可能的情况下,以减少的功能继续运行

不应该做的

  • 静默失败或返回空结果
  • 每次调用都检查可用性(缓存它)
  • 假设用户知道如何启动缺失的服务

示例:LMStudio检查模式

let lmstudioAvailable: boolean | null = null;
let lastCheck = 0;
const CACHE_TTL = 60000; // 60秒

async function checkLMStudio(): Promise<boolean> {
  const now = Date.now();
  if (lmstudioAvailable !== null && now - lastCheck < CACHE_TTL) {
    return lmstudioAvailable;
  }

  try {
    const response = await fetch('http://localhost:1234/v1/models', {
      signal: AbortSignal.timeout(2000)
    });
    lmstudioAvailable = response.ok;
  } catch {
    lmstudioAvailable = false;
  }
  lastCheck = now;
  return lmstudioAvailable;
}

// 用法
if (!await checkLMStudio()) {
  return {
    result: 'continue',
    message: `LMStudio 在 localhost:1234 不可用。

要启用 Godel-Prover 策略建议:
1. 从 https://lmstudio.ai/ 安装 LMStudio
2. 加载 "Goedel-Prover-V2-8B" 模型
3. 在端口 1234 上启动本地服务器

继续运行,无需AI辅助策略...`
  };
}

备用消息模板

[服务] 在 [端点] 不可用。

要启用 [功能]:
1. [安装/启动步骤]
2. [配置步骤,如果需要]
3. [验证步骤]

继续运行,无需 [降级功能]...

源会话

  • 本次会话:LMStudio可用性检查,60秒缓存和有用备用消息
  • 174e0ff3:环境变量调试 - 打印计算路径以进行故障排除