← 스킬 목록으로 돌아가기

rate-limiter-toolkit

v1.0.0 approved AI/ML ⬇ 8 1일 전
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o rate-limiter-toolkit.skill   "https://aiskillstore.io/v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "b6e3a261-8573-445c-8a6f-900a40a4bfc8",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

Track, check, and manage API rate limit state for agents calling external APIs — token bucket simulation, backoff strategy, and usage reporting

# rate-limit # backoff # token-bucket # api-management # retry # agent-tools # openai # anthropic

기본 정보

소유자 👤 aiskillstore-team 카테고리 AI/ML 등록일 2026-05-13 최종 업데이트 2026-05-14 최신 버전 1.0.0 패키지 날짜 2026-05-14 검증 상태 approved 다운로드 수 8회 체크섬 (SHA256) 7858b5e8dbc498872f71bd2b8f3b437b38ee2018fc437bf3fbde7ba8dee168ae

⚡ AGENT INFO USK v3

Capabilities
rate_limit_tracking api_backoff_strategy token_bucket_simulation agent_api_management retry_coordination
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=OpenClaw GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=ClaudeCode GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=Cursor GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=GeminiCLI GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=CodexCLI GET /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install rate-limiter-toolkit
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install rate-limiter-toolkit --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip rate-limiter-toolkit.skill -d ~/.claude/commands/rate-limiter-toolkit/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/rate-limiter-toolkit
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip rate-limiter-toolkit-agent-skill-*.skill -d ~/.claude/skills/rate-limiter-toolkit/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip rate-limiter-toolkit-cursor-*.skill -d ~/.cursor/skills/rate-limiter-toolkit/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/rate-limiter-toolkit/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip rate-limiter-toolkit-geminicli-*.skill -d ~/.gemini/skills/rate-limiter-toolkit/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/rate-limiter-toolkit/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip rate-limiter-toolkit-codexcli-*.skill -d ~/.codex/skills/rate-limiter-toolkit/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/rate-limiter-toolkit/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp rate-limiter-toolkit.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 AI 에이전트의 API Rate Limit 관리를 위한 안전하고 잘 구현된 툴킷입니다. 선언된 권한을 준수하며 악의적인 동작이 없습니다.
판단 근거

제출된 스킬 패키지는 AI 에이전트의 API Rate Limit 관리를 위한 툴킷으로, 메타데이터와 코드 모두 보안 검수 기준을 충족합니다. 1. **권한 준수:** 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`, `env_vars: []`로 명확하게 선언되어 있으며, 제공된 `main.py` 및 `lib/core.py` 코드에서 이 권한들을 위반하는 어떠한 외부 통신, 파일 시스템 접근, 또는 서브프로세스 실행 시도도 발견되지 않았습니다. `os` 모듈은 경로 조작(`os.path.dirname`, `os.path.abspath`)에만 사용되며, 이는 안전한 범위 내입니다. 정적 분석 결과 또한 `red_flags_found: []` 및 `forbidden_exec_files_found: []`로 권한 준수를 뒷받침합니다. 2. **악의적 목적 없음:** 코드는 Rate Limit 추적, 확인, 백오프 계산, 토큰 버킷 시뮬레이션, 보고 등 스킬의 명시된 목적에만 충실합니다. 데이터 탈취, 시스템 파괴, 또는 난독화의 징후는 전혀 없습니다. 코드는 가독성이 높고 명확하게 작성되었습니다. 3. **외부 통신 없음:** 선언된 권한에 따라 외부 네트워크 통신을 수행하는 코드가 없으며, 이는 스킬의 목적과 일치합니다. 4. **사용자 데이터 무단 수집/전송 없음:** 스킬은 입력으로 받은 `payload`와 내부 `state` 객체를 기반으로 연산을 수행하고 결과를 `stdout`으로 반환합니다. 외부 통신이 없으므로 사용자 데이터를 무단으로 수집하거나 전송할 수 있는 메커니즘이 없습니다. 5. **코드 품질:** 코드는 `main.py`에서 액션을 디스패치하고 `lib/core.py`에서 핵심 로직을 처리하는 모듈화된 구조를 가지고 있습니다. 입력 유효성 검사 및 구조화된 에러 응답 처리가 잘 되어 있으며, `re`, `time`, `datetime` 등 표준 라이브러리를 적절하게 사용하여 Rate Limit 관련 계산 및 헤더 파싱 로직을 구현했습니다. 코드 품질은 스킬의 목적에 부합하며 안정적으로 동작할 것으로 판단됩니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-05-14 ⬇ 8
v1.0.0 approved 2026-05-13 ⬇ 0

사용 예시 (Examples) 8 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

Track OpenAI RPM limit

Register and update rate limit state for OpenAI RPM after a response

📥 입력
{
  "action": "track",
  "current_usage": 12,
  "limit_type": "rpm",
  "limit_value": 60,
  "provider": "openai",
  "window_reset_at": 1715700060.0
}
📤 출력
{
  "ok": true,
  "state": {
    "providers": {
      "openai": {
        "rpm": {
          "limit": 60,
          "reset_at": 1715700060.0,
          "usage": 12,
          "utilization": 0.2
        }
      }
    }
  }
}
Check if request can proceed

Check whether the next API call can be made without hitting rate limits

📥 입력
{
  "action": "check",
  "limit_type": "rpm",
  "provider": "openai",
  "state": {
    "providers": {
      "openai": {
        "rpm": {
          "limit": 60,
          "reset_at": 1715700060.0,
          "usage": 55,
          "utilization": 0.917
        }
      }
    }
  }
}
📤 출력
{
  "can_proceed": true,
  "ok": true,
  "state": {
    "providers": {
      "openai": {
        "rpm": {
          "limit": 60,
          "reset_at": 1715700060.0,
          "usage": 55,
          "utilization": 0.917
        }
      }
    }
  },
  "wait_seconds": 0
}
Parse X-RateLimit headers from response

Extract rate limit state from standard HTTP response headers

📥 입력
{
  "action": "track",
  "headers": {
    "x-ratelimit-limit-requests": "50",
    "x-ratelimit-remaining-requests": "38",
    "x-ratelimit-reset-requests": "2024-05-14T12:01:00Z"
  },
  "provider": "anthropic"
}
📤 출력
{
  "ok": true,
  "state": {
    "providers": {
      "anthropic": {
        "requests": {
          "limit": 50,
          "reset_at": 1715688060.0,
          "usage": 12,
          "utilization": 0.24
        }
      }
    }
  }
}
Calculate exponential backoff after 429

Compute backoff delay after receiving a 429 response, attempt 3

📥 입력
{
  "action": "backoff",
  "attempt": 3,
  "provider": "openai",
  "retry_after": 10,
  "strategy": "jitter"
}
📤 출력
{
  "backoff_seconds": 10.0,
  "note": "Retry-After header takes priority over calculated backoff",
  "ok": true,
  "strategy_used": "retry_after"
}
Simulate token bucket for batch planning

Simulate whether a batch of 10 requests fits within token bucket constraints

📥 입력
{
  "action": "simulate",
  "bucket_capacity": 100,
  "refill_rate": 2.0,
  "requests": [
    {
      "timestamp": 0.0,
      "tokens": 20
    },
    {
      "timestamp": 1.0,
      "tokens": 20
    },
    {
      "timestamp": 2.0,
      "tokens": 20
    },
    {
      "timestamp": 3.0,
      "tokens": 20
    },
    {
      "timestamp": 4.0,
      "tokens": 20
    }
  ]
}
📤 출력
{
  "ok": true,
  "simulation": {
    "accepted": 5,
    "rejected": 0,
    "timeline": [
      {
        "accepted": true,
        "bucket_after": 80.0,
        "timestamp": 0.0,
        "tokens": 20
      }
    ],
    "total": 5
  }
}
Report all provider states

Get a summary of all tracked providers with utilization and estimated exhaustion time

📥 입력
{
  "action": "report",
  "state": {
    "providers": {
      "anthropic": {
        "rpm": {
          "limit": 50,
          "reset_at": 1715700060.0,
          "usage": 5,
          "utilization": 0.1
        }
      },
      "openai": {
        "rpm": {
          "limit": 60,
          "reset_at": 1715700060.0,
          "usage": 45,
          "utilization": 0.75
        }
      }
    }
  }
}
📤 출력
{
  "ok": true,
  "report": {
    "anthropic": {
      "rpm": {
        "limit": 50,
        "status": "ok",
        "usage": 5,
        "utilization": 0.1
      }
    },
    "openai": {
      "rpm": {
        "limit": 60,
        "status": "warning",
        "usage": 45,
        "utilization": 0.75
      }
    }
  }
}
Error - invalid action

Returns structured error when unknown action is given

📥 입력
{
  "action": "unknown_action"
}
📤 출력
{
  "error": {
    "code": "INVALID_ACTION",
    "message": "Unknown action \u0027unknown_action\u0027. Valid actions: track, check, backoff, simulate, report"
  },
  "ok": false
}
Check with near-full bucket triggers wait

When usage is at 100%, check returns wait time until window reset

📥 입력
{
  "action": "check",
  "limit_type": "rpm",
  "provider": "google",
  "state": {
    "providers": {
      "google": {
        "rpm": {
          "limit": 30,
          "reset_at": 1715700120.0,
          "usage": 30,
          "utilization": 1.0
        }
      }
    }
  }
}
📤 출력
{
  "can_proceed": false,
  "ok": true,
  "wait_seconds": 60.0
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/b6e3a261-8573-445c-8a6f-900a40a4bfc8/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성