Skip to main content

SequentialBuilder

Struct SequentialBuilder 

Source
pub struct SequentialBuilder { /* private fields */ }
Expand description

Builder for a sequential pipeline of agents. Rust analogue of SequentialBuilder. Each participant sees the running conversation and appends its reply; the final conversation is yielded as output.

Implementations§

Source§

impl SequentialBuilder

Source

pub fn new() -> SequentialBuilder

Create an empty builder.

Source

pub fn participants( self, agents: impl IntoIterator<Item = Arc<dyn SupportsAgentRun>>, ) -> SequentialBuilder

Set the ordered list of participants.

Source

pub fn add(self, agent: Arc<dyn SupportsAgentRun>) -> SequentialBuilder

Append a participant to the pipeline.

Source

pub fn name(self, name: impl Into<String>) -> SequentialBuilder

Set the workflow name.

Source

pub fn output_from( self, ids: impl IntoIterator<Item = impl Into<String>>, ) -> SequentialBuilder

Designate participants (by SupportsAgentRun::id) whose turn output becomes a terminal WorkflowEvent::Output event, resolved to the pipeline’s internal executor ids at build time and forwarded to WorkflowBuilder::output_from.

When neither this nor Self::intermediate_output_from is called, the builder preserves its current default: only the last participant yields output. Once either is called, only the designated participants yield at all — every participant still forwards the running conversation to the next stage regardless of designation, so the pipeline itself is unaffected.

Rejected at build() if an id does not match any registered participant, or overlaps Self::intermediate_output_from.

Source

pub fn intermediate_output_from( self, ids: impl IntoIterator<Item = impl Into<String>>, ) -> SequentialBuilder

Designate participants (by SupportsAgentRun::id) whose turn output becomes a non-terminal WorkflowEvent::Intermediate event rather than the workflow’s final output. See Self::output_from for the full designation semantics.

Source

pub fn with_request_info(self) -> SequentialBuilder

Opt in to post-agent human approval: every participant’s turn pauses the workflow (a WorkflowEvent::RequestInfo event, surfaced as a PendingRequest) until a response is supplied. An empty response approves the reply and the pipeline continues to the next participant; a non-empty response is treated as revision feedback and re-invokes that participant, pausing again — repeating until approved. Rust analogue of upstream’s post-agent .with_request_info() (see UPSTREAM_DRIFT.md §12), implemented via AgentApprovalExecutor. Default (not called): no pausing, matching prior behavior.

Source

pub fn build(self) -> Result<Workflow, Error>

Validate and build the sequential workflow.

Trait Implementations§

Source§

impl Default for SequentialBuilder

Source§

fn default() -> SequentialBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more