Skip to main content

Agent

Struct Agent 

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

Stable public entry point for agent execution.

Wraps an AgentRuntime and provides:

Clone is cheap (inner is Arc).

Implementations§

Source§

impl Agent

Source

pub fn from_runtime(runtime: Arc<AgentRuntime>) -> Self

Wrap an existing AgentRuntime in an Agent.

Source

pub fn builder() -> AgentBuilder

Return a new builder.

Source

pub async fn execute( &self, session: &mut Session, req: ExecuteRequest, ) -> Result<()>

Execute the agent loop with the given request.

Source

pub async fn execute_direct( &self, session: &mut Session, req: ExecuteRequest, ) -> Result<()>

Execute a caller-owned session under a complete logical-session activation lifecycle.

Server/child entry points already own an external runner reservation and therefore use execute plus their existing terminal handshake. Direct SDK callers have no runner registry, so this wrapper registers the current run before entering the provider loop, marks it finalizing immediately after return, migrates any terminal-window legacy ingress, and lets the router reserve at most one successor for work the completed reasoning turn did not admit.

Source

pub async fn begin_direct_execution( &self, target_session_id: &str, ) -> Result<DirectExecutionLease>

Acquire direct logical-session ownership before an SDK facade performs pre-execution work such as replaying an approved mutating tool.

Source

pub async fn execute_direct_registered( &self, session: &mut Session, req: ExecuteRequest, lease: DirectExecutionLease, ) -> Result<()>

Execute and finalize a direct run whose ownership was acquired by begin_direct_execution.

Source

pub fn storage(&self) -> &Arc<dyn Storage>

Access the shared storage backend.

Source

pub fn persistence(&self) -> &Arc<dyn RuntimeSessionPersistence>

Access the runtime persistence adapter for non-authoritative saves.

Source

pub fn session_inbox(&self) -> Option<&Arc<dyn SessionInboxPort>>

Source

pub async fn admit_session_inbox_at_safe_boundary( &self, session: &mut Session, ) -> usize

Execute the same durable SessionInbox boundary used by the agent loop before its first provider call. Actor workers use this after embedding initial RunSpec deliveries, so those messages cannot race the first reasoning context.

Source

pub fn activation_router(&self) -> Option<&Arc<SessionActivationRouter>>

Source

pub fn session_messenger(&self) -> Option<&Arc<SessionMessenger>>

Source

pub fn default_tools(&self) -> &Arc<dyn ToolExecutor>

Access the runtime’s default tool executor (the root/full tool surface assembled at build time).

Exposed so callers can compose additional one-off dispatches against the SAME executor the loop itself uses — e.g. re-executing a single previously-gated tool call after a permission approval — without forking or reaching into AgentLoopConfig (which stays unconstructible outside the engine). This is a read-only accessor alongside storage() / persistence(); it does not touch the sealed loop config.

Trait Implementations§

Source§

impl Clone for Agent

Source§

fn clone(&self) -> Agent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Agent

§

impl !UnwindSafe for Agent

§

impl Freeze for Agent

§

impl Send for Agent

§

impl Sync for Agent

§

impl Unpin for Agent

§

impl UnsafeUnpin for Agent

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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