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を入力して読み込まれたか確認します。
詳細
有用なメッセージで適切に縮退する
オプションのサービスが利用できない場合は、対処方法を示すメッセージを提供し、適切に縮退します。
パターン
最初に利用可能かどうかを確認し、その結果をキャッシュして、不足しているものと解決方法を説明する有用なメッセージを提供します。
DO
- サービスの利用可能性を早めに確認します(計算リソースを無駄にする前に)
- セッション中はヘルスチェックの結果をキャッシュします(例:TTL 60 秒)
- 対処方法を示すメッセージを提供します:
- 不足しているサービス
- 機能がどのように制限されるか
- サービスを有効にする方法
- 可能な場合は、機能を制限して処理を続行します
DON'T
- 何も通知せずに失敗したり、空の結果を返したりしません
- 呼び出しのたびに利用可能かどうかを確認しません(キャッシュしてください)
- ユーザーが不足しているサービスの起動方法を知っていると決めつけません
例: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]...
ソースセッション
- このセッション:60 秒間キャッシュする LMStudio の利用可能性チェックと、有用なフォールバック
- 174e0ff3:環境変数のデバッグ — トラブルシューティング用に計算されたパスを出力
コメント
Markdown 対応