关于 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