mcpField
G
graceful-degradation

graceful-degradation

github.com/parcadei开发3.9k601 次安装39 周前更新
代码仓库

关于 graceful-degradation

一项用于应对可选服务不可用的技能,帮助开发者在服务缺失时继续工作。它强调缓存可用性检查,并说明功能降级情况及恢复方法。

主要功能

  1. 01尽早检查服务可用性
  2. 02缓存会话内的健康检查结果
  3. 03提供可执行的回退说明
  4. 04在功能受限时继续运行

适用场景

  1. 01处理本地服务不可用
  2. 02说明功能降级及恢复步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/parcadei/continuous-claude-v3 --skill graceful-degradation

安装后在 Claude Code 中输入/graceful-degradation确认已加载。

详细介绍

降级处理并提供有帮助的消息

当可选服务不可用时,应优雅降级,并提供可执行的备用提示。

模式

在开始时检查服务是否可用,缓存检查结果,并提供有帮助的提示,说明缺少什么以及如何修复。

应做

  • 尽早检查服务是否可用(避免浪费计算资源)
  • 在会话期间缓存健康检查结果(例如,TTL 为 60s)
  • 提供可执行的备用提示,说明:
    • 缺少什么服务
    • 哪些功能会受影响
    • 如何启用该服务
  • 尽可能以精简功能继续运行

不应做

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

示例:LMStudio 检查模式

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

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;
}

// Usage
if (!await checkLMStudio()) {
  return {
    result: 'continue',
    message: `LMStudio not available at localhost:1234.

To enable Godel-Prover tactic suggestions:
1. Install LMStudio from https://lmstudio.ai/
2. Load "Goedel-Prover-V2-8B" model
3. Start the local server on port 1234

Continuing without AI-assisted tactics...`
  };
}

备用提示模板

[Service] not available at [endpoint].

To enable [feature]:
1. [Step to install/start]
2. [Configuration step if needed]
3. [Verification step]

Continuing without [degraded feature]...

源会话

  • 本次会话:检查 LMStudio 是否可用,缓存 60s,并提供有帮助的备用提示
  • 174e0ff3:调试环境变量——打印计算出的路径以便排查问题

评论

支持 Markdown