hermes - 💡(How to fix) Fix model-providers: ProviderProfile hook methods lack documented contract and test harness [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The ProviderProfile class allows subclasses to override hooks such as build_extra_body, build_api_kwargs_extras, and thinking_config translation (used by Gemini, OpenRouter, etc.), but there is no documented contract, required vs optional methods list, or minimal test harness for these hooks.

Root Cause

The ProviderProfile class allows subclasses to override hooks such as build_extra_body, build_api_kwargs_extras, and thinking_config translation (used by Gemini, OpenRouter, etc.), but there is no documented contract, required vs optional methods list, or minimal test harness for these hooks.

Fix Action

Fixed

RAW_BUFFERClick to expand / collapse

Summary

The ProviderProfile class allows subclasses to override hooks such as build_extra_body, build_api_kwargs_extras, and thinking_config translation (used by Gemini, OpenRouter, etc.), but there is no documented contract, required vs optional methods list, or minimal test harness for these hooks.

Reproduction

  1. Attempt to implement a custom model-provider plugin that needs per-provider request shaping.
  2. Discover that the only guidance is scattered examples in existing plugins with no formal spec.

Expected behavior

A clear contract in the developer docs + a small test template that new providers can use to validate their hook implementations.

Actual behavior

Hook behavior is only visible by reading existing plugin source; no contract or test guidance exists.

Environment

  • Hermes Agent (current main)
  • Affects anyone building advanced model-provider plugins (especially for reasoning/thinking models or custom OpenAI-compatible endpoints)

Evidence

  • website/docs/developer-guide/model-provider-plugin.md mentions overriding hooks for "per-provider quirks" but provides no contract.
  • plugins/model-providers/openrouter/__init__.py and Gemini examples show real usage.
  • No test file under tests/providers/ exercises the hook interface generically.
  • No prior issue found for this documentation/test gap.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

A clear contract in the developer docs + a small test template that new providers can use to validate their hook implementations.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING