diff --git a/crates/goose/src/agents/agent.rs b/crates/goose/src/agents/agent.rs index c0e83fb8063d..e65954729d49 100644 --- a/crates/goose/src/agents/agent.rs +++ b/crates/goose/src/agents/agent.rs @@ -6,6 +6,7 @@ use std::sync::Arc; use anyhow::{anyhow, Result}; use futures::stream::BoxStream; use futures::{stream, FutureExt, Stream, StreamExt, TryStreamExt}; +use uuid::Uuid; use crate::agents::extension::{ExtensionConfig, ExtensionError, ExtensionResult, ToolInfo}; use crate::agents::extension_manager::{get_parameter_names, ExtensionManager}; @@ -877,7 +878,9 @@ impl Agent { continue; } - let message_tool_response = Arc::new(Mutex::new(Message::user())); + let message_tool_response = Arc::new(Mutex::new(Message::user().with_id( + format!("msg_{}", Uuid::new_v4()) + ))); let mut frontend_tool_stream = self.handle_frontend_tool_requests( &frontend_requests, diff --git a/crates/goose/src/message.rs b/crates/goose/src/message.rs index 699b67aa1ff6..cac65f715e9c 100644 --- a/crates/goose/src/message.rs +++ b/crates/goose/src/message.rs @@ -372,6 +372,11 @@ impl Message { } } + pub fn with_id>(mut self, id: S) -> Self { + self.id = Some(id.into()); + self + } + /// Add any MessageContent to the message pub fn with_content(mut self, content: MessageContent) -> Self { self.content.push(content);