diff --git a/crates/goose/src/agents/agent.rs b/crates/goose/src/agents/agent.rs index f09be38c..55507e40 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}; @@ -871,7 +872,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 95343795..f3ee70ef 100644 --- a/crates/goose/src/message.rs +++ b/crates/goose/src/message.rs @@ -423,6 +423,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);