# NousResearch/hermes-agent · Client-side rate limiting and RPM throttling proposals

## Open now

- 5 issues, 1 PR open on GitHub.
- #5449: Track rate limit headers for proactive throttling
- #7489: feat(agent): RPM-based pre-emptive throttling using x-ratelimit response headers
- #31802: Feature Request: Configurable per-minute rate limiting (RPM) for models to prevent 429 errors
- #56419: \[Feature\]: Configurable Client-Side API Rate Limit Management and Smart Request Scheduling
- #58061: Feature request: provider-level rate limiter / throttle for fragile free endpoints
- PR #128816: feat(agent): per-provider max_in_flight and requests_per_minute request admission

These issues and pull requests discuss adding configurable, client-side rate limiting features—including RPM caps and use of x-ratelimit response headers—to proactively throttle requests and avoid hitting provider rate limits. The members cover both feature requests and proposed implementations around the same theme.

## TL;DR

- 7 member(s): 5 open issue(s), 0 closed issue(s), 1 open PR(s), 0 merged PR(s), 1 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.23`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #5449: Track rate limit headers for proactive throttling
- #7489: feat(agent): RPM-based pre-emptive throttling using x-ratelimit response headers
- #31802: Feature Request: Configurable per-minute rate limiting (RPM) for models to prevent 429 errors
- #56419: \[Feature\]: Configurable Client-Side API Rate Limit Management and Smart Request Scheduling
- #58061: Feature request: provider-level rate limiter / throttle for fragile free endpoints

## Prior & competing PRs

- **#7490: feat(agent): pre-emptive RPM throttling using x-ratelimit response headers**. closed without merge · fix tier `suggested`
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#7479`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#128816: feat(agent): per-provider max_in_flight and requests_per_minute request admission**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `2a96312c80`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `0466a04bc874983551569fa08810869def4b550b`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2d2da997d0053d6b4d8611a73dc81bd942be6a1f`, `b682e165f96e9bacdc01c319fb98dacaa58b897d`, `fa129b5e97c050c764675e9712be76c0e7a855ae`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `2a96312c801f7876deac5e62e65fa9b711d9d0bf`, `#128816`, `#172554`, `#128816`, `#110358`, `#110383`
  - files: `agent/auxiliary_client.py`, `agent/chat_completion_helpers.py`, `agent/chat_completion_stream_monitor.py`, `agent/codex_runtime.py`, `agent/llm_concurrency.py`, `agent/rate_limit_credits.py`, `agent/relay_llm.py`, `cli-config.yaml.example`, `hermes_cli/config_providers.py`, `tests/agent/test_llm_concurrency.py`, `website/docs/user-guide/configuration.md`, `website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/configuration.md`

## Fix status

- No merged fix on record.
- Subsystem: `agent`
