hermes - 💡(How to fix) Fix Feature: Abbreviate multi-step tool invocation chains in conversation history [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#15514Fetched 2026-04-26 05:26:57
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×3

This is especially impactful for A2A use cases where one message can cascade into many internal searches and fetches. Reducing verbosity would significantly improve conversation readability without sacrificing the richness of the agent's reasoning process.


Filed from Hermes Agent session — 2026-04-25

Root Cause

This is especially impactful for A2A use cases where one message can cascade into many internal searches and fetches. Reducing verbosity would significantly improve conversation readability without sacrificing the richness of the agent's reasoning process.


Filed from Hermes Agent session — 2026-04-25

Code Example

🔍 web_search: \"hermes-a2a agent to agent communicati...\"
📄 web_extract: \"https://dev.to/rapidclaw/implementing...\"
🔍 web_search: \"hermes a2a plugin openclaw agent sess...\"
📄 web_extract: \"https://github.com/NousResearch/herme...\"
🔍 web_search: \"\\"hermes-a2a\\" plugin agent communicati...\"
📄 web_extract: \"https://unit42.paloaltonetworks.com/a...\"

---

🔍 [searching 3 sources, extracting 3 pages...] → result summary
RAW_BUFFERClick to expand / collapse

Problem

When Hermes uses A2A (Agent-to-Agent) communication, a single user message can trigger a long chain of internal tool calls that get fully expanded in the conversation history, making it unreadable.

Example — a user sends one link to read:

🔍 web_search: \"hermes-a2a agent to agent communicati...\"
📄 web_extract: \"https://dev.to/rapidclaw/implementing...\"
🔍 web_search: \"hermes a2a plugin openclaw agent sess...\"
📄 web_extract: \"https://github.com/NousResearch/herme...\"
🔍 web_search: \"\\"hermes-a2a\\" plugin agent communicati...\"
📄 web_extract: \"https://unit42.paloaltonetworks.com/a...\"

This is one user message, but it produces 6 expanded tool call blocks, burying the actual answer.

Proposed Solution

Introduce a conversation view mode that collapses internal tool chains into a single abbreviated summary line, e.g.:

🔍 [searching 3 sources, extracting 3 pages...] → result summary

This is similar to how Claude Code abbreviates multi-step tool execution in its output.

Suggested Implementation

  1. Detect chains: When 3+ tool calls fire within a short window (e.g., same agent turn, no user message between them), group them as a "chain"
  2. Abbreviate the chain: Replace the full tool blocks with a one-line summary showing the intent and count, e.g. "🔍 web_search × 3, 📄 web_extract × 3"
  3. Expand on demand: Allow users to expand the full chain if they want to see the details
  4. Configurable: Make this a user preference (on by default, or off for users who want full transparency)

Alternatives Considered

  • Just truncating long chains (loses information)
  • Hiding tool calls entirely (defeats the purpose of visibility)

Context

This is especially impactful for A2A use cases where one message can cascade into many internal searches and fetches. Reducing verbosity would significantly improve conversation readability without sacrificing the richness of the agent's reasoning process.


Filed from Hermes Agent session — 2026-04-25

extent analysis

TL;DR

Implement a conversation view mode that collapses internal tool chains into a single abbreviated summary line to improve conversation readability.

Guidance

  • Identify and group tool calls that fire within a short window (e.g., same agent turn, no user message between them) as a "chain" to determine which calls to collapse.
  • Replace full tool blocks with a one-line summary showing the intent and count, such as "🔍 web_search × 3, 📄 web_extract × 3", to abbreviate the chain.
  • Consider making this feature configurable as a user preference, allowing users to choose between collapsed and expanded views.
  • To verify the effectiveness of this solution, test it with various A2A use cases and measure the impact on conversation readability.

Example

A possible implementation could involve modifying the conversation rendering logic to check for chains of tool calls and replace them with a summary line, such as:

if tool_calls_in_chain > 2:
    summary_line = f"🔍 web_search × {web_search_count}, 📄 web_extract × {web_extract_count}"
    render_summary_line(summary_line)
else:
    render_full_tool_blocks()

Notes

This solution assumes that the conversation history is rendered dynamically and that the tool calls are tracked and stored in a way that allows for easy identification of chains.

Recommendation

Apply the proposed workaround by implementing the conversation view mode that collapses internal tool chains, as it provides a good balance between readability and information preservation.

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 Feature: Abbreviate multi-step tool invocation chains in conversation history [1 participants]