hermes - ✅(Solved) Fix [Feature]: Add configuration support for OpenAI Responses API text verbosity [1 pull requests, 1 participants]

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…
GitHub stats
NousResearch/hermes-agent#20203Fetched 2026-05-06 06:38:03
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
labeled ×5cross-referenced ×1

Error Message

This is lower-level and error-prone, and for the Responses API the correct shape is a top-level text field rather than chat-completions-style extra_body. A first-class config option would be safer and clearer.

Root Cause

  • Do not send this field to providers/transports that do not support it.
  • Document clearly that this is currently an OpenAI GPT / Responses API feature, not a universal verbosity setting.
  • Keep it separate from:
    • agent.reasoning_effort, because verbosity changes answer length/detail, not reasoning depth.
    • display.* or agent.verbose, because those affect Hermes UI/log/tool progress verbosity, not model output.
    • prompt/personality configuration, because this is a provider-native request parameter.

Fix Action

Fixed

PR fix notes

PR #20258: feat(openai): support Responses text verbosity

Description (problem / solution / changelog)

Summary\n- Adds agent.text_verbosity config for OpenAI Responses API.\n- Sends top-level text.verbosity only for OpenAI Responses runtimes.\n- Leaves xAI/Grok and other non-supporting providers untouched.\n- Keeps service_tier and request_overrides merged.\n\n## Tests\n- uv run pytest tests/agent/test_text_verbosity.py -q\n- uv run ruff check agent/text_verbosity.py agent/codex_responses_adapter.py agent/transports/codex.py tests/agent/test_text_verbosity.py\n- python3 -m compileall agent/text_verbosity.py agent/codex_responses_adapter.py agent/transports/codex.py run_agent.py cli.py gateway/run.py tui_gateway/server.py cron/scheduler.py tests/agent/test_text_verbosity.py\n- git diff --check\n\nCloses #20203

Changed files

  • agent/codex_responses_adapter.py (modified, +20/-1)
  • agent/text_verbosity.py (added, +59/-0)
  • cli.py (modified, +31/-8)
  • cron/scheduler.py (modified, +5/-1)
  • gateway/run.py (modified, +39/-8)
  • hermes_cli/config.py (modified, +3/-0)
  • run_agent.py (modified, +10/-1)
  • tests/agent/test_text_verbosity.py (added, +77/-0)
  • tui_gateway/server.py (modified, +9/-0)
  • website/docs/user-guide/configuration.md (modified, +11/-0)
RAW_BUFFERClick to expand / collapse

Problem or Use Case

OpenAI GPT models that use the Responses API support a text.verbosity request parameter with values such as low, medium, and high. This lets users control how terse or expansive the model’s final natural-language responses should be without rewriting prompts or changing reasoning effort.

Hermes currently exposes related-but-different controls:

  • agent.reasoning_effort controls thinking/reasoning behavior.
  • agent.verbose / display verbosity controls Hermes UI/tool-progress output.
  • /fast / agent.service_tier controls service tier / priority behavior.

None of these configure OpenAI’s text.verbosity.

This creates a gap for OpenAI GPT users who want Hermes to be consistently concise or consistently detailed at the model-response level. For example, I may want a gateway or Discord/Telegram Hermes instance to use low verbosity by default so answers stay short, while still preserving high reasoning effort for correctness.

This feature is specifically OpenAI/Responses-API-oriented. It should not imply that every provider supports the same parameter, and Hermes should avoid sending unsupported provider-specific request fields to non-OpenAI backends.

Proposed Solution

Add a first-class configuration option for OpenAI Responses API text verbosity, likely near the existing agent-level generation controls:

agent:
  text_verbosity: ""  # empty/default = provider default; options: low, medium, high

Recommended behavior:

  • Accept only "", low, medium, and high.
  • Empty/unset should omit the request field and preserve current behavior.
  • When set and the active transport/provider supports OpenAI Responses API text.verbosity, include the following top-level request field:
{
  "text": {
    "verbosity": "low"
  }
}
  • Do not send this field to providers/transports that do not support it.
  • Document clearly that this is currently an OpenAI GPT / Responses API feature, not a universal verbosity setting.
  • Keep it separate from:
    • agent.reasoning_effort, because verbosity changes answer length/detail, not reasoning depth.
    • display.* or agent.verbose, because those affect Hermes UI/log/tool progress verbosity, not model output.
    • prompt/personality configuration, because this is a provider-native request parameter.

High-level implementation guidance:

  1. Add agent.text_verbosity to the default config and config documentation.
  2. Add a small parser/validator similar in spirit to the existing service-tier or reasoning-effort parsing.
  3. Load the value in CLI and gateway startup paths alongside reasoning_config / service_tier.
  4. When building request overrides for a turn, merge the verbosity setting into the request overrides only when appropriate.
  5. In the Responses API transport, ensure the resulting request includes top-level text: {"verbosity": <value>}.
  6. Avoid using extra_body for this in the Responses API path; OpenAI expects text as a top-level Responses API field.
  7. Add tests that verify:
    • unset/empty config preserves current request payloads;
    • low, medium, and high are accepted;
    • invalid values are ignored or warned about;
    • OpenAI Responses payloads include text.verbosity;
    • non-supporting providers do not receive the OpenAI-specific field.

A possible implementation detail is to reuse the existing request_overrides plumbing, since the Responses transport already merges top-level request overrides. Care should be taken to merge with any existing request overrides, such as service-tier / fast-mode overrides, rather than replacing them.

Alternatives Considered

  1. Use prompting/personality instructions such as “be concise.”

    This works partially, but it is less reliable and mixes provider-native generation controls into the system prompt. OpenAI provides text.verbosity specifically so callers can control output detail without changing prompts.

  2. Use raw extra_body configuration.

    This is lower-level and error-prone, and for the Responses API the correct shape is a top-level text field rather than chat-completions-style extra_body. A first-class config option would be safer and clearer.

Feature Type

Configuration option

Scope

Medium (few files, < 300 lines)

Contribution

  • I'd like to implement this myself and submit a PR

Debug Report (optional)

extent analysis

TL;DR

Add a text_verbosity configuration option to control OpenAI GPT model response verbosity.

Guidance

  • Introduce a new configuration option agent.text_verbosity with allowed values low, medium, and high to control the verbosity of OpenAI GPT model responses.
  • Update the Responses API transport to include the text.verbosity field in the request payload when the text_verbosity option is set.
  • Ensure that the text_verbosity option is only sent to OpenAI providers that support it, and not to other providers.
  • Add tests to verify the correct behavior of the text_verbosity option, including validation of allowed values and correct inclusion in the request payload.

Example

agent:
  text_verbosity: "low"

This configuration option would result in the following request payload:

{
  "text": {
    "verbosity": "low"
  }
}

Notes

The implementation should take care to merge the text_verbosity setting with existing request overrides, such as service-tier or fast-mode overrides, rather than replacing them.

Recommendation

Apply the proposed solution by adding the text_verbosity configuration option and updating the Responses API transport to include the text.verbosity field in the request payload. This will provide a clear and reliable way to control the verbosity of OpenAI GPT model responses.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

hermes - ✅(Solved) Fix [Feature]: Add configuration support for OpenAI Responses API text verbosity [1 pull requests, 1 participants]