Checking the trait Agent:
pub trait Agent: Send + Sync {
/// Runs the autonomous agent loop to complete the given task.
fn run(&self, task: String) -> BoxFuture<Result<String, AgentError>>;
}
It simply provides only one method 'run' which returns str; How can I define an agent which returns streamable values?