mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix(cli, agent): improve streaming handling and state management
- Updated _stream_delta method in HermesCLI to handle None values, flushing the stream and resetting state for clean tool execution. - Enhanced quiet mode handling in AIAgent to ensure proper display closure before tool execution, preventing display issues with intermediate streamed content. These changes improve the robustness of the streaming functionality and ensure a smoother user experience during tool interactions.
This commit is contained in:
parent
0e3b7b6a39
commit
76bc27199f
2 changed files with 23 additions and 3 deletions
16
run_agent.py
16
run_agent.py
|
|
@ -4838,7 +4838,7 @@ class AIAgent:
|
|||
spinner.stop(cute_msg)
|
||||
elif self.quiet_mode:
|
||||
self._vprint(f" {cute_msg}")
|
||||
elif self.quiet_mode and not self._has_stream_consumers():
|
||||
elif self.quiet_mode:
|
||||
face = random.choice(KawaiiSpinner.KAWAII_WAITING)
|
||||
emoji = _get_tool_emoji(function_name)
|
||||
preview = _build_tool_preview(function_name, function_args) or function_name
|
||||
|
|
@ -6568,7 +6568,19 @@ class AIAgent:
|
|||
self._vprint(f" ┊ 💬 {clean}")
|
||||
|
||||
messages.append(assistant_msg)
|
||||
|
||||
|
||||
# Close any open streaming display (response box, reasoning
|
||||
# box) before tool execution begins. Intermediate turns may
|
||||
# have streamed early content that opened the response box;
|
||||
# flushing here prevents it from wrapping tool feed lines.
|
||||
# Only signal the display callback — TTS (_stream_callback)
|
||||
# should NOT receive None (it uses None as end-of-stream).
|
||||
if self.stream_delta_callback:
|
||||
try:
|
||||
self.stream_delta_callback(None)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
_msg_count_before_tools = len(messages)
|
||||
self._execute_tool_calls(assistant_message, messages, effective_task_id, api_call_count)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue