Background review agent missing custom provider credentials

NousResearch/hermes-agent · cluster 3233 · agent

Data as of

Nothing open on GitHub. Fix merged in #16099. Check it covers your case.

The short answer

0open issues
0open PRs
8items grouped
Known?
Yes. 8 related items grouped here, 4 issues already closed.
Fix event
A fix was merged to main in PR #16099. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this unresolved. That is separate from the fix event.
Still open
Nothing open on GitHub.

Multiple reports and fixes address background review agents failing when custom API endpoints, api_key, or base_url are not forwarded from the parent agent's configuration. Covers 403 errors, missing provider config, and related credential propagation issues.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #16099 fix(run_agent): background review fork inherits parent's live runtime

    merged to main

    files: run_agent.py

    Show the diff
    • run_agent.py
      @@ -3154,12 +3154,25 @@ def _run_review():
                       with open(os.devnull, "w") as _devnull, \
                            contextlib.redirect_stdout(_devnull), \
                            contextlib.redirect_stderr(_devnull):
      +                    # Inherit the parent agent's live runtime (provider, model,
      +                    # base_url, api_key, api_mode) so the fork uses the exact
      +                    # same credentials the main turn is using.  Without this,
      +                    # AIAgent.__init__ re-runs auto-resolution from env vars,
      +                    # which fails for OAuth-only providers, session-scoped
      +                    # creds, or credential-pool setups where the resolver can't
      +                    # reconstruct auth from scratch -- producing the spurious
      +                    # "No LLM provider configured" warning at end of turn.
      +                    _parent_runtime = self._current_main_runtime()
                           review_agent = AIAgent(
                               model=self.model,
                               max_iterations=8,
                               quiet_mode=True,
                               platform=self.platform,
                               provider=self.provider,
      +                        api_mode=_parent_runtime.get("api_mode") or None,
      +                        base_url=_parent_runtime.get("base_url") or None,
      +                        api_key=[redacted:secret-assignment]"api_key") or None,
      +                        credential_pool=[redacted:secret-assignment] "_credential_pool", None),
                               parent_session_id=self.session_id,
                           )
                           review_agent._memory_write_origin = "background_review"

3 PRs closed without merging

From the close comments: done elsewhere 2 · superseded by another PR 1

  • #3235 Fix background review 403 · done elsewhere → e3901d5, #3233, #16099, #3210
  • #15645 fix(run_agent): forward api_key/base_url/api_mode to background review agent (#15543) · superseded by another PR → #16099, #15645
  • #15884 fix: pass base_url and api_key to background review AIAgent · done elsewhere → e3901d5, #16099, #15645
Closed issues · 4
  • Closed#3233[Bug]: Background review agents get 403 on providers with custom API endpoints
  • Closed#15543Background Review Agent Fails with Custom Providers (Missing api_key/base_url)
  • Closed#15882_spawn_background_review doesn't pass base_url / api_key — context length detection fails for custom/fallback endpoints
  • Closed#16123Bug: Background review fails with No LLM provider configured when using custom providers
How this cluster was grouped
  • Link evidence (partly structural links): 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.29: the share of item 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.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
agent
Merged PRs
#16099
Closed issues
4
Attempts
3 PRs closed without merging
Fix link checked
26 Apr 2026

For your agent

The same facts, typed.