mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-14 09:11:54 +00:00
fix(cli): gate tool-rendering paths with tool_progress_mode, not quiet_mode
quiet_mode was being used to suppress tool-result display when tool_progress_mode was 'off'. But quiet_mode also gates operational status messages, so users with /verbose + tool-progress off lost all status output. Adds a dedicated tool_progress_mode attribute to AIAgent; the tool_executor result-rendering path gates on tool_progress_mode != 'off'. The CLI passes its tool_progress_mode through agent setup and the tool-progress cycle command syncs it onto the live agent. Fixes #33860.
This commit is contained in:
parent
4129092fda
commit
550b72dd87
5 changed files with 10 additions and 1 deletions
|
|
@ -169,6 +169,7 @@ def init_agent(
|
||||||
save_trajectories: bool = False,
|
save_trajectories: bool = False,
|
||||||
verbose_logging: bool = False,
|
verbose_logging: bool = False,
|
||||||
quiet_mode: bool = False,
|
quiet_mode: bool = False,
|
||||||
|
tool_progress_mode: str = "all",
|
||||||
ephemeral_system_prompt: str = None,
|
ephemeral_system_prompt: str = None,
|
||||||
log_prefix_chars: int = 100,
|
log_prefix_chars: int = 100,
|
||||||
log_prefix: str = "",
|
log_prefix: str = "",
|
||||||
|
|
@ -280,6 +281,7 @@ def init_agent(
|
||||||
agent.save_trajectories = save_trajectories
|
agent.save_trajectories = save_trajectories
|
||||||
agent.verbose_logging = verbose_logging
|
agent.verbose_logging = verbose_logging
|
||||||
agent.quiet_mode = quiet_mode
|
agent.quiet_mode = quiet_mode
|
||||||
|
agent.tool_progress_mode = tool_progress_mode
|
||||||
agent.ephemeral_system_prompt = ephemeral_system_prompt
|
agent.ephemeral_system_prompt = ephemeral_system_prompt
|
||||||
agent.platform = platform # "cli", "telegram", "discord", "whatsapp", etc.
|
agent.platform = platform # "cli", "telegram", "discord", "whatsapp", etc.
|
||||||
agent._user_id = user_id # Platform user identifier (gateway sessions)
|
agent._user_id = user_id # Platform user identifier (gateway sessions)
|
||||||
|
|
|
||||||
|
|
@ -702,7 +702,7 @@ def execute_tool_calls_concurrent(agent, assistant_message, messages: list, effe
|
||||||
if agent._should_emit_quiet_tool_messages():
|
if agent._should_emit_quiet_tool_messages():
|
||||||
cute_msg = _get_cute_tool_message_impl(name, args, tool_duration, result=function_result)
|
cute_msg = _get_cute_tool_message_impl(name, args, tool_duration, result=function_result)
|
||||||
agent._safe_print(f" {cute_msg}")
|
agent._safe_print(f" {cute_msg}")
|
||||||
elif not agent.quiet_mode:
|
elif getattr(agent, "tool_progress_mode", "all") != "off":
|
||||||
_preview_str = _multimodal_text_summary(function_result)
|
_preview_str = _multimodal_text_summary(function_result)
|
||||||
if agent.verbose_logging:
|
if agent.verbose_logging:
|
||||||
print(f" ✅ Tool {i+1} completed in {tool_duration:.2f}s")
|
print(f" ✅ Tool {i+1} completed in {tool_duration:.2f}s")
|
||||||
|
|
|
||||||
4
cli.py
4
cli.py
|
|
@ -7669,6 +7669,10 @@ class HermesCLI(CLIAgentSetupMixin, CLICommandsMixin):
|
||||||
|
|
||||||
if self.agent:
|
if self.agent:
|
||||||
self.agent.reasoning_callback = self._current_reasoning_callback()
|
self.agent.reasoning_callback = self._current_reasoning_callback()
|
||||||
|
# Keep the live agent's tool_progress_mode in sync so the
|
||||||
|
# tool_executor rendering path reflects the new mode this turn,
|
||||||
|
# without waiting for an agent rebuild.
|
||||||
|
self.agent.tool_progress_mode = self.tool_progress_mode
|
||||||
|
|
||||||
# Use raw ANSI codes via _cprint so the output is routed through
|
# Use raw ANSI codes via _cprint so the output is routed through
|
||||||
# prompt_toolkit's renderer. self.console.print() with Rich markup
|
# prompt_toolkit's renderer. self.console.print() with Rich markup
|
||||||
|
|
|
||||||
|
|
@ -355,6 +355,7 @@ class CLIAgentSetupMixin:
|
||||||
disabled_toolsets=self.disabled_toolsets,
|
disabled_toolsets=self.disabled_toolsets,
|
||||||
verbose_logging=self.verbose,
|
verbose_logging=self.verbose,
|
||||||
quiet_mode=not self.verbose,
|
quiet_mode=not self.verbose,
|
||||||
|
tool_progress_mode=getattr(self, "tool_progress_mode", "all"),
|
||||||
ephemeral_system_prompt=self.system_prompt if self.system_prompt else None,
|
ephemeral_system_prompt=self.system_prompt if self.system_prompt else None,
|
||||||
prefill_messages=self.prefill_messages or None,
|
prefill_messages=self.prefill_messages or None,
|
||||||
reasoning_config=self.reasoning_config,
|
reasoning_config=self.reasoning_config,
|
||||||
|
|
|
||||||
|
|
@ -358,6 +358,7 @@ class AIAgent:
|
||||||
save_trajectories: bool = False,
|
save_trajectories: bool = False,
|
||||||
verbose_logging: bool = False,
|
verbose_logging: bool = False,
|
||||||
quiet_mode: bool = False,
|
quiet_mode: bool = False,
|
||||||
|
tool_progress_mode: str = "all",
|
||||||
ephemeral_system_prompt: str = None,
|
ephemeral_system_prompt: str = None,
|
||||||
log_prefix_chars: int = 100,
|
log_prefix_chars: int = 100,
|
||||||
log_prefix: str = "",
|
log_prefix: str = "",
|
||||||
|
|
@ -430,6 +431,7 @@ class AIAgent:
|
||||||
save_trajectories=save_trajectories,
|
save_trajectories=save_trajectories,
|
||||||
verbose_logging=verbose_logging,
|
verbose_logging=verbose_logging,
|
||||||
quiet_mode=quiet_mode,
|
quiet_mode=quiet_mode,
|
||||||
|
tool_progress_mode=tool_progress_mode,
|
||||||
ephemeral_system_prompt=ephemeral_system_prompt,
|
ephemeral_system_prompt=ephemeral_system_prompt,
|
||||||
log_prefix_chars=log_prefix_chars,
|
log_prefix_chars=log_prefix_chars,
|
||||||
log_prefix=log_prefix,
|
log_prefix=log_prefix,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue