关于 graceful-degradation
一项用于应对可选服务不可用的技能,帮助开发者在服务缺失时继续工作。它强调缓存可用性检查,并说明功能降级情况及恢复方法。
主要功能
- 01尽早检查服务可用性
- 02缓存会话内的健康检查结果
- 03提供可执行的回退说明
- 04在功能受限时继续运行
适用场景
- 01处理本地服务不可用
- 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