Skip to main content

SimpleToolContext

Struct SimpleToolContext 

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

A lightweight ToolContext with sensible defaults for non-agent callers.

Implements ReadonlyContext, CallbackContext, and ToolContext with minimal configuration. Construct via SimpleToolContext::new with a caller name; all other fields use safe defaults.

Implementations§

Source§

impl SimpleToolContext

Source

pub fn new(caller_name: impl Into<String>) -> Self

Create a new context with the given caller name.

Generates unique UUIDs for invocation_id and function_call_id. The caller name is returned by both agent_name() and app_name().

Source

pub fn with_function_call_id(self, id: impl Into<String>) -> Self

Override the default function call ID.

By default a UUID is generated at construction. Use this builder method to provide a specific ID instead.

Source

pub fn with_session_id(self, id: impl Into<String>) -> Self

Attach the session that owns this tool call.

This is useful for desktop shells, test harnesses, and other callers that execute tools outside the full agent loop but still need session-aware callbacks such as MCP elicitation.

Trait Implementations§

Source§

impl CallbackContext for SimpleToolContext

Source§

fn artifacts(&self) -> Option<Arc<dyn Artifacts>>

Returns the artifact store, if one is configured.
Source§

fn tool_outcome(&self) -> Option<ToolOutcome>

Returns structured metadata about the most recent tool execution. Available in after-tool callbacks and plugin hooks. Returns None when not in a tool execution context.
Source§

fn tool_name(&self) -> Option<&str>

Returns the name of the tool about to be executed. Available in before-tool and after-tool callback contexts.
Source§

fn tool_input(&self) -> Option<&Value>

Returns the input arguments for the tool about to be executed. Available in before-tool and after-tool callback contexts.
Source§

fn shared_state(&self) -> Option<Arc<SharedState>>

Returns the shared state for parallel agent coordination. Returns None when not running inside a ParallelAgent with shared state enabled.
Source§

impl ReadonlyContext for SimpleToolContext

Source§

fn invocation_id(&self) -> &str

Returns the current invocation identifier.
Source§

fn agent_name(&self) -> &str

Returns the name of the currently executing agent.
Source§

fn user_id(&self) -> &str

Returns the user identifier for this session.
Source§

fn app_name(&self) -> &str

Returns the application name for this session.
Source§

fn session_id(&self) -> &str

Returns the session identifier.
Source§

fn branch(&self) -> &str

Returns the current conversation branch.
Source§

fn user_content(&self) -> &Content

Returns the user’s input content for this invocation.
Source§

fn try_app_name(&self) -> Result<AppName, AdkError>

Returns the application name as a typed AppName. Read more
Source§

fn try_user_id(&self) -> Result<UserId, AdkError>

Returns the user identifier as a typed UserId. Read more
Source§

fn try_session_id(&self) -> Result<SessionId, AdkError>

Returns the session identifier as a typed SessionId. Read more
Source§

fn try_invocation_id(&self) -> Result<InvocationId, AdkError>

Returns the invocation identifier as a typed InvocationId. Read more
Source§

fn try_identity(&self) -> Result<AdkIdentity, AdkError>

Returns the stable session-scoped AdkIdentity triple. Read more
Source§

fn try_execution_identity(&self) -> Result<ExecutionIdentity, AdkError>

Returns the full per-invocation ExecutionIdentity. Read more
Source§

impl ToolContext for SimpleToolContext

Source§

fn function_call_id(&self) -> &str

Returns the function call ID for this tool invocation.
Source§

fn actions(&self) -> EventActions

Get the current event actions. Returns an owned copy for thread safety.
Source§

fn set_actions(&self, actions: EventActions)

Set the event actions (e.g., to trigger escalation or skip summarization).
Source§

fn search_memory<'life0, 'life1, 'async_trait>( &'life0 self, _query: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryEntry>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Searches memory for entries matching the query.
Source§

fn emit_progress<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _stream: &'life1 str, _chunk: &'life2 str, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

Emit streaming progress output during long-running tool execution. Read more
Source§

fn user_scopes(&self) -> Vec<String>

Returns the scopes granted to the current user for this invocation. Read more
Source§

fn get_secret<'life0, 'life1, 'async_trait>( &'life0 self, _name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, AdkError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: Sync + 'async_trait,

Retrieve a secret by name from the configured secret provider. Read more
Source§

fn get_secret_for_purpose<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, name: &'life1 str, purpose: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, AdkError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: Sync + 'async_trait,

Resolves a secret, stating why it is needed. 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, 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<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