pub struct WorkflowAgent { /* private fields */ }Expand description
An SupportsAgentRun that wraps a Workflow and exposes it through the agent
interface. Rust analogue of WorkflowAgent.
Implementations§
Source§impl WorkflowAgent
impl WorkflowAgent
Sourcepub fn new(workflow: Workflow, name: impl Into<String>) -> WorkflowAgent
pub fn new(workflow: Workflow, name: impl Into<String>) -> WorkflowAgent
Wrap workflow as an agent named name.
Sourcepub fn with_id(self, id: impl Into<String>) -> WorkflowAgent
pub fn with_id(self, id: impl Into<String>) -> WorkflowAgent
Set an explicit id.
Sourcepub fn with_description(self, description: impl Into<String>) -> WorkflowAgent
pub fn with_description(self, description: impl Into<String>) -> WorkflowAgent
Set a description.
Sourcepub fn description(&self) -> Option<&str>
pub fn description(&self) -> Option<&str>
The agent description, if any.
Sourcepub fn run_stream_with_thread(
&self,
messages: Vec<Message>,
session: Option<AgentSession>,
) -> Pin<Box<dyn Stream<Item = Result<AgentResponseUpdate, Error>> + Send>>
pub fn run_stream_with_thread( &self, messages: Vec<Message>, session: Option<AgentSession>, ) -> Pin<Box<dyn Stream<Item = Result<AgentResponseUpdate, Error>> + Send>>
Stream the workflow’s agent activity and, once the stream completes,
fire session‘s context providers’ after_run hook the way
Agent::run_stream does:
messages and the response messages reconstructed from the emitted
updates are passed through. An infallible inherent convenience; the
object-safe SupportsAgentRun::run_stream trait method wraps this in
Ok(..).
Mirrors Python’s WorkflowAgent.run_stream, which likewise only
notifies the thread of new messages after the stream is exhausted — it
does not feed the session’s prior history back into the workflow’s own
input (see SupportsAgentRun::run on this type for the same convention on the
non-streaming path).
Because a history provider’s storage is shared via Arc, the
write-back is observable on the original session through any clone of
it once the returned stream is fully consumed (same pattern as
Agent’s).
Sourcepub fn as_tool(&self) -> ToolDefinition
pub fn as_tool(&self) -> ToolDefinition
Wrap this workflow-agent as a ToolDefinition callable by another
agent (mirrors Agent::as_tool).
The tool takes a single task string and returns the response text.
Trait Implementations§
Source§impl Clone for WorkflowAgent
impl Clone for WorkflowAgent
Source§fn clone(&self) -> WorkflowAgent
fn clone(&self) -> WorkflowAgent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl SupportsAgentRun for WorkflowAgent
impl SupportsAgentRun for WorkflowAgent
Source§fn run_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<AgentSession>,
options: Option<AgentRunOptions>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<AgentResponseUpdate, Error>> + Send>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
WorkflowAgent: 'async_trait,
fn run_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<AgentSession>,
options: Option<AgentRunOptions>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<AgentResponseUpdate, Error>> + Send>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
WorkflowAgent: 'async_trait,
Real streaming override: maps the workflow’s live events to agent
updates as they happen, with the session’s context providers notified
on completion. Per-run AgentRunOptions are not supported (the
wrapped workflow’s executors carry their own options); non-empty
options are ignored with a warning.
Source§fn run<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<&'life1 mut AgentSession>,
) -> Pin<Box<dyn Future<Output = Result<AgentResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
WorkflowAgent: 'async_trait,
fn run<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<&'life1 mut AgentSession>,
) -> Pin<Box<dyn Future<Output = Result<AgentResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
WorkflowAgent: 'async_trait,
Source§fn create_session(&self) -> AgentSession
fn create_session(&self) -> AgentSession
Source§fn run_with_options<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<&'life1 mut AgentSession>,
options: AgentRunOptions,
) -> Pin<Box<dyn Future<Output = Result<AgentResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn run_with_options<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: Vec<Message>,
session: Option<&'life1 mut AgentSession>,
options: AgentRunOptions,
) -> Pin<Box<dyn Future<Output = Result<AgentResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
AgentRunOptions over
the agent’s build-time defaults. Read moreSource§fn display_name(&self) -> String
fn display_name(&self) -> String
name if set, else id.