Tool calls emitted as text instead of executing

NousResearch/hermes-agent · cluster 741 · agent

Data as of

3 open items. Fix merged in #115798. Check it covers your case.

The short answer

2open issues
1open PR
27items grouped
Known?
Yes. 27 related items grouped here, 10 issues already closed.
Fix event
A fix was merged to main in PR #115798. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PR #115798. That is separate from the fix event.
Still open
2 issues and 1 PR.

Multiple models (DeepSeek, MiniMax, Qwen, Anthropic, Hermes) emit tool calls as raw text or XML rather than structured function calls, causing them to leak into output or be dropped. Issues and fixes address parsing, fallback extraction, and stripping of these malformed tool call representations across gateways and the agent loop.

Open issues2

  • Issue#12090[Bug]: Minimax tool calls being sent to telegram instead of executing
  • Issue#54283deepseek.v3.2 leaks raw DSML tool call XML into Telegram output

Open PRs1

  • PR#98764fix(bedrock): stop deepseek.v3.2 leaking tool-call scaffolding into the text channel

Fixes on record

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

  • #115798 fix(codex): leaked shell-JSON tool call continues the turn instead of ending it as a final answer (#56920, salvage #56958)

    merged to main

    files: agent/codex_responses_adapter.py, tests/agent/test_codex_responses_adapter.py

13 PRs closed without merging

From the close comments: duplicate 2 · superseded by another PR 2 · closed without comment 1 · done elsewhere 1 · merged via another change 1 · other 6

  • #742 fix: recover tool calls output as text by Hermes models · closed without comment
  • #13431 fix: recover inline Hermes tool calls · superseded by another PR → #12112
  • #13446 fix: Feishu gateway tool calls not executing with DashScope/Qwen (#13031) · done elsewhere → 7569007, #13031
  • #14601 fix: Step 3.5 Flash tool call fallback parser + orphan </think> strip… · other → #741
  • #15473 fix: parse DeepSeek-V4 DSML tool calls from response content (#15453) · other → #7628, #7588
Show 8 more
  • #47473 fix(anthropic): salvage text-embedded tool calls not promoted to tool_use · other → #47472
  • #47518 fix(anthropic): salvage text invoke tool calls · duplicate → #47473, #47472
  • #47853 fix(anthropic): salvage tool calls from text blocks when tool_use blocks missing · duplicate → #47473, #47472, #47518
  • #52322 fix(anthropic): salvage text-embedded antml tool calls not promoted to tool_use · other → #47472
  • #56958 [codex] Treat leaked Codex shell JSON as incomplete · merged via another change → cdac150, #115798, #56920, #56958
  • #59309 fix(agent): recover leaked clarify JSON envelopes · other → 36ac69e, #59291, #19253
  • #59601 fix(agent): strip hallucinated tool-call JSON from assistant content before delivery (#59291) · superseded by another PR → #59309, #59291
  • #59669 fix(gateway): strip tool-call-shaped JSON envelope from Telegram output (#59291) · other → 02fa999, #59291, #59309, #59669
Closed issues · 10
  • Closed#741[Bug]: Model outputs tool calls as text instead of using native function calling
  • Closed#8965Tool calls rendered as raw XML instead of being executed (Ollama cloud models via proxy)
  • Closed#13031[Bug] Feishu gateway: model outputs tool calls as plain text, never executes -- CLI works fine
  • Closed#15453[Bug]: Tool calls not parsed correctly with DeepSeek-V4
  • Closed#27834[Bug]: MiniMax/DeepSeek V4 XML tool calls are rendered as text instead of executed in Web UI/gateway
  • Closed#29115Feature: Content-bound tool call extraction layer (fallback for models emitting tool calls as text/XML)
  • Closed#35935MiniMax provider: tool calls output as plain text instead of executing
  • Closed#47472[bug] anthropic_messages: tool calls emitted as text (not promoted to tool_use) are dropped, agent loop halts without executing the tool
  • Closed#56920[Bug]: Codex OAuth can print shell JSON instead of executing tool calls
  • Closed#59291Tool-call-shaped JSON envelope leaks into Telegram output when a local model emits it as assistant text
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.07: 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
#115798
Closed issues
10
Attempts
13 PRs closed without merging
Fix link checked
19 Sep 2026

For your agent

The same facts, typed.