NousResearch/hermes-agent

Tool result content coerced to string for API compliance

Cluster 31435 · agent. Data as of

1 open item. Fix merged in #61787 on 10 Jul 2026. Check it covers your case.

The short answer

1open issue
0open PRs
7items grouped
Known?
Yes. 7 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #61787. 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
1 issue and 0 PRs.

Multiple fixes addressing a bug where tool/plugin results returned as dicts or non-string types were sent raw to OpenAI-compatible providers, causing HTTP 400 errors. Changes enforce that role=tool message content is serialized to a string before transmission.

Open issues1

  • Issue#48244Dict tool results sent as raw JSON object → OpenAI-compatible providers reject (HTTP 400 / GLM 1210), exhausting fallback

Open PRs0

No open pull requests.

Fixes on record

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

  • #61787 fix(tools): enforce registry result contract

    merged to main

    files: tests/tools/test_registry.py, tools/registry.py

4 PRs closed without merging

From the close comments: PR volume cleanup 1 · done elsewhere 1 · merged via another change 1 · other 1

  • #31459 fix: coerce role=tool message content to string (workflow-engine + defensive sanitizer) · other
  • #31770 fix(agent): coerce tool-result content to string for OpenAI wire format · done elsewhere → f8361d2, #61787
  • #48354 fix(agent): coerce non-string tool result content to JSON (#48244) · merged via another change → #31770, #48244, #31435
  • #51671 fix(agent,cli): tool message spec compliance and callable entry point handling · PR volume cleanup → #48244
Closed issues · 1
  • Closed#31435tool message content must be string: plugin tools returning dict cause upstream 400 (Z.ai error 1210, OpenAI/Manifest fallback_exhausted)
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.30: 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
#61787
Closed issues
1
Attempts
4 PRs closed without merging
Fix link checked
10 Jul 2026

For your agent

The same facts, typed.