hermes - 💡(How to fix) Fix [Bug]: MiniMax/DeepSeek V4 XML tool calls are rendered as text instead of executed in Web UI/gateway

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…

Fix Action

Fix / Workaround

Workarounds Tried

Code Example

<minimax:tool_call>
  <invoke name="terminal">
    <parameter name="command">cmd /c "feishu --help"</parameter>
  </invoke>
</minimax:tool_call>

---

[Calling tool: execute_code with arguments: {...}]
RAW_BUFFERClick to expand / collapse

Bug Description

When using Hermes Agent via hermes-web-ui on Windows, tool calls are sometimes rendered directly as assistant text instead of being parsed and executed.

This happens with MiniMax-M2.7 and also appears with DeepSeek V4 / deepseek-v4-flash style models. The visible output includes raw tool-call text such as:

<minimax:tool_call>
  <invoke name="terminal">
    <parameter name="command">cmd /c "feishu --help"</parameter>
  </invoke>
</minimax:tool_call>

or:

[Calling tool: execute_code with arguments: {...}]

The tool is not executed, the conversation stops, and the raw tool-call markup is shown in the chat UI.

Steps to Reproduce

  1. Run Hermes Agent on Windows 11.
  2. Start hermes-web-ui.
  3. Use MiniMax-M2.7 or DeepSeek V4 / deepseek-v4-flash as the main model.
  4. Ask the agent to perform a tool task, for example:
    • inspect a local file
    • run a terminal command
    • install/check a CLI tool
  5. Observe that the assistant sometimes emits raw tool-call markup instead of executing the tool.

Expected Behavior

Hermes should parse the model's tool-call format and execute the corresponding tool. Raw tool-call markup should not be shown as normal assistant text.

Actual Behavior

The raw tool-call markup is displayed in the Web UI as a normal assistant message, and the tool call is not executed.

Environment

  • OS: Windows 11
  • Hermes Agent: v0.14.0
  • hermes-web-ui: v0.5.28
  • Python: 3.13.2
  • OpenAI SDK: 2.24.0
  • Models tested:
    • MiniMax-M2.7 via minimax-cn
    • deepseek-v4-flash via OpenAI-compatible custom provider

Notes

This seems related to issue #12090, but it is reproducible in hermes-web-ui/gateway on Windows and not only Telegram.

MiniMax uses XML-style tool calls such as <minimax:tool_call>. DeepSeek V4 also appears to use a newer XML/DSML-style tool-call format. It looks like some Hermes agent loop or gateway path does not normalize these provider-specific tool-call formats into Hermes internal tool calls.

Workarounds Tried

  • Reinstalled Hermes Agent cleanly
  • Reinstalled hermes-web-ui
  • Tried hermes-web-ui v0.5.22 and v0.5.28
  • Set agent.tool_use_enforcement: always
  • Restarted gateway and Web UI
  • Created new sessions

The issue still occurs.

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 - 💡(How to fix) Fix [Bug]: MiniMax/DeepSeek V4 XML tool calls are rendered as text instead of executed in Web UI/gateway