Community코딩 & 개발github.com

nancealeuronic154/openclaw-provider-manager

AI 모델 제공자를 관리하여 모델을 자동으로 발견하고, 사용량 한도를 추적하며, 에이전트 전체에서 실패 시 모델을 자동으로 전환합니다.

openclaw-provider-manager란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code, Cursor, Codex 등)에서 여러 AI 모델 제공자를 관리하는 복잡성을 추상화합니다. 주된 목적은 개발자 또는 AI 에이전트 사용자가 수동 개입 없이도 사용 가능한 모델을 자동으로 발견하고, 각 제공자의 사용량 한도를 실시간으로 추적하며, 특정 모델이 실패할 경우(예: 속도 제한, 할당량 초과, 일시적 오류) 다른 모델로 자동 전환하는 것입니다. 이는 여러 제공자나 모델을 사용하는 에이전트 워크플로우에서 가동 중단 시간을 줄이고 운영 효율성을 높입니다. OpenClaw 생태계와 통합되어 있으며, `provider-manager`라는 핵심 구성 요소를 통해 에이전트가 동적으로 모델을 선택하고 전환할 수 있도록 지원합니다. SKILL.md 문서를 기반으로 하여 설정 파일을 읽고, API 호출을 통해 제공자 상태를 확인하며, 실패 감지 및 장애 조치(failover) 로직을 구현합니다. 주요 기능으로는 제공자 등록, 모델 목록 캐싱, 사용량 한도 모니터링, 자동 재시도 및 폴백(fallback) 정책 적용이 포함됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add nancealeuronic154/openclaw-provider-manager

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

openclaw-provider-manager은(는) 무엇을 하나요?

AI 모델 제공자를 관리하여 모델을 자동으로 발견하고, 사용량 한도를 추적하며, 에이전트 전체에서 실패 시 모델을 자동으로 전환합니다.

개요

이 스킬은 다음과 같은 기능을 제공합니다:

  • 자동 모델 발견: 등록된 제공자에서 사용 가능한 모델을 자동으로 검색하고 캐싱합니다.
  • 사용량 한도 추적: 각 제공자의 API 사용량 한도와 현재 사용량을 실시간으로 모니터링합니다.
  • 자동 장애 조치: 특정 모델 호출이 실패할 경우 대체 모델로 자동 전환합니다.
  • 제공자 관리: 여러 AI 모델 제공자(예: OpenAI, Anthropic, 로컬 모델)를 중앙에서 관리합니다.

지원 플랫폼

  • Claude Code
  • Cursor
  • Codex
  • OpenClaw 기반 에이전트

설치

  1. 저장소를 클론합니다:
git clone https://github.com/nancealeuronic154/openclaw-provider-manager.git
  1. 의존성을 설치합니다:
cd openclaw-provider-manager
pip install -r requirements.txt
  1. 환경 변수를 설정합니다:
export PROVIDER_CONFIG_PATH="./config/providers.yaml"
export CACHE_DIR="./.cache/providers"

설정

providers.yaml 파일에 제공자를 정의합니다:

providers:
  - name: openai
    api_key: ${OPENAI_API_KEY}
    base_url: "https://api.openai.com/v1"
    models:
      - gpt-4
      - gpt-3.5-turbo
    rate_limit:
      max_requests: 100
      window_seconds: 60

  - name: anthropic
    api_key: ${ANTHROPIC_API_KEY}
    base_url: "https://api.anthropic.com/v1"
    models:
      - claude-3-opus
      - claude-3-sonnet
    rate_limit:
      max_requests: 50
      window_seconds: 60

사용법

기본 사용

from provider_manager import ProviderManager

manager = ProviderManager()

# 사용 가능한 모델 목록 가져오기
models = manager.list_available_models()
print(models)

# 특정 모델 호출 (실패 시 자동 전환)
response = manager.call_model(
    model="gpt-4",
    prompt="Hello, world!",
    fallback_models=["gpt-3.5-turbo", "claude-3-sonnet"]
)
print(response)

CLI 사용

# 사용 가능한 모델 나열
openclaw-provider-manager list-models

# 특정 제공자 확인
openclaw-provider-manager check-provider anthropic

# 사용량 한도 보기
openclaw-provider-manager usage-limits

API 참조

ProviderManager

  • __init__(config_path: str = None): 설정 파일 경로를 사용하여 관리자 초기화.
  • list_available_models() -> List[str]: 모든 제공자에서 사용 가능한 모델 목록 반환.
  • call_model(model: str, prompt: str, fallback_models: List[str] = None) -> str: 모델을 호출하고 실패 시 대체 모델 사용.
  • get_provider_status(provider_name: str) -> dict: 특정 제공자의 상태(사용량, 한도 등) 반환.
  • add_provider(config: dict): 새 제공자를 동적으로 추가.

RateLimiter

  • check_limit(provider_name: str) -> bool: 제공자가 현재 한도에 도달했는지 확인.
  • increment_usage(provider_name: str): 제공자 사용량 증가.

장애 조치 로직

  1. 기본 모델 호출 시도.
  2. 실패 시(HTTP 429, 500, 시간 초과 등) fallback_models 목록에 있는 다음 모델로 전환.
  3. 모든 대체 모델이 실패하면 ModelNotAvailable 예외 발생.
  4. 실패 통계를 기록하여 향후 라우팅 결정에 활용.

예제

다양한 시나리오에 대한 자세한 예제는 examples/ 디렉토리를 참조하세요.

기여

기여는 환영합니다! 자세한 내용은 CONTRIBUTING.md를 읽어주세요.

라이선스

MIT

관련 스킬