service-registry について
service-registryは、複数の外部サービス接続を管理するレジストリパターンです。統一した実行方法、ヘルスチェック、要件に応じた選択、フェイルオーバーを共通の設定と結果形式で扱えます。
主な機能
- 01サービス登録と認証設定
- 02共通インターフェースでのタスク実行
- 03単一または全サービスのヘルスチェック
- 04タスク要件に応じたサービス選択
- 05正常なサービスへのフェイルオーバー
活用シーン
- 01複数の外部サービス連携の管理
- 02サービス状態と利用可能なサービスの確認
- 03障害時に別の正常なサービスを試行
- 04コンテキストや応答速度の要件に応じた選択
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill service-registryインストール後、Claude Code で/service-registryを入力して読み込まれたか確認します。
同梱ファイルmodules/execution-patterns.mdmodules/service-config.md
詳細
サービスレジストリ
概要
外部サービスへの接続を管理するためのレジストリパターンです。複数のサービス連携にまたがる設定、ヘルスチェック、実行を処理します。
使用する場合
- 複数の外部サービスを管理する場合。
- 一貫した実行インターフェースが必要な場合。
- サービス全体のヘルスモニタリングを行いたい場合。
- サービスのフェイルオーバーロジックを構築する場合。
使用しない場合
- レジストリが不要な単一サービスとの連携
主な概念
サービス設定
@dataclass
class ServiceConfig:
name: str
command: str
auth_method: str # "api_key", "oauth", "token"
auth_env_var: str
quota_limits: dict
models: list[str] = field(default_factory=list)
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
実行結果
@dataclass
class ExecutionResult:
success: bool
stdout: str
stderr: str
exit_code: int
duration: float
tokens_used: int
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
クイックスタート
サービスを登録する
from leyline.service_registry import ServiceRegistry
registry = ServiceRegistry()
registry.register(
"gemini",
ServiceConfig(
name="gemini",
command="gemini",
auth_method="api_key",
auth_env_var="GEMINI_API_KEY",
quota_limits={"rpm": 60, "daily": 1000},
),
)
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
サービス経由で実行する
result = registry.execute(
service="gemini",
prompt="Analyze this code",
files=["src/main.py"],
model="gemini-3-pro",
)
if result.success:
print(result.stdout)
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
ヘルスチェック
# Check single service
status = registry.health_check("gemini")
# Check all services
all_status = registry.health_check_all()
for service, healthy in all_status.items():
print(f"{service}: {'OK' if healthy else 'FAILED'}")
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
サービスの選択
自動選択
# Select best service for task
service = registry.select_service(
requirements={"large_context": True, "fast_response": False}
)
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
フェイルオーバーパターン
def execute_with_failover(prompt: str, files: list) -> ExecutionResult:
for service in registry.get_healthy_services():
result = registry.execute(service, prompt, files)
if result.success:
return result
raise AllServicesFailedError()
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
連携パターン
# In your skill's frontmatter
dependencies: [leyline:service-registry]
確認方法: コマンドに --help フラグを付けて実行し、利用可能かどうかを確認します。
詳細リソース
- サービス設定:設定オプションについては、
modules/service-config.mdを参照してください。 - 実行パターン:高度な使い方については、
modules/execution-patterns.mdを参照してください。
完了条件
- サービスが設定とともに登録されていること。
- ヘルスチェックが成功していること。
- 実行結果が適切に処理されていること。
コメント
Markdown 対応