pub struct InvocationContext { /* private fields */ }Expand description
Runtime context for a single agent invocation.
Holds the agent, session, identity, and optional services (artifacts, memory,
secrets) needed during execution. Created by the Runner for
each run() call.
Implementations§
Source§impl InvocationContext
impl InvocationContext
Sourcepub fn new_typed(
invocation_id: String,
agent: Arc<dyn Agent>,
user_id: UserId,
app_name: AppName,
session_id: SessionId,
user_content: Content,
session: Arc<dyn AdkSession>,
) -> Result<Self>
pub fn new_typed( invocation_id: String, agent: Arc<dyn Agent>, user_id: UserId, app_name: AppName, session_id: SessionId, user_content: Content, session: Arc<dyn AdkSession>, ) -> Result<Self>
Create a new invocation context from validated typed identifiers.
Sourcepub fn new(
invocation_id: String,
agent: Arc<dyn Agent>,
user_id: String,
app_name: String,
session_id: String,
user_content: Content,
session: Arc<dyn AdkSession>,
) -> Result<Self>
pub fn new( invocation_id: String, agent: Arc<dyn Agent>, user_id: String, app_name: String, session_id: String, user_content: Content, session: Arc<dyn AdkSession>, ) -> Result<Self>
Create a new invocation context from raw string identifiers.
Validates and converts the string identifiers into typed wrappers.
Prefer new_typed when you already have validated types.
Sourcepub fn with_mutable_session_typed(
invocation_id: String,
agent: Arc<dyn Agent>,
user_id: UserId,
app_name: AppName,
session_id: SessionId,
user_content: Content,
session: Arc<MutableSession>,
) -> Result<Self>
pub fn with_mutable_session_typed( invocation_id: String, agent: Arc<dyn Agent>, user_id: UserId, app_name: AppName, session_id: SessionId, user_content: Content, session: Arc<MutableSession>, ) -> Result<Self>
Create an invocation context that reuses an existing mutable session and validated typed identifiers.
Sourcepub fn with_mutable_session(
invocation_id: String,
agent: Arc<dyn Agent>,
user_id: String,
app_name: String,
session_id: String,
user_content: Content,
session: Arc<MutableSession>,
) -> Result<Self>
pub fn with_mutable_session( invocation_id: String, agent: Arc<dyn Agent>, user_id: String, app_name: String, session_id: String, user_content: Content, session: Arc<MutableSession>, ) -> Result<Self>
Create an InvocationContext with an existing MutableSession. This allows sharing the same mutable session across multiple contexts (e.g., for agent transfers).
Sourcepub fn with_branch(self, branch: String) -> Self
pub fn with_branch(self, branch: String) -> Self
Set the event branch identifier for this context.
Sourcepub fn with_artifacts(self, artifacts: Arc<dyn Artifacts>) -> Self
pub fn with_artifacts(self, artifacts: Arc<dyn Artifacts>) -> Self
Attach an artifact storage service to this context.
Sourcepub fn with_memory(self, memory: Arc<dyn Memory>) -> Self
pub fn with_memory(self, memory: Arc<dyn Memory>) -> Self
Attach a memory service for RAG/semantic search.
Sourcepub fn with_run_config(self, config: RunConfig) -> Self
pub fn with_run_config(self, config: RunConfig) -> Self
Set the run configuration (streaming mode, history limits, etc.).
Sourcepub fn with_request_context(self, ctx: RequestContext) -> Self
pub fn with_request_context(self, ctx: RequestContext) -> Self
Set the request context from the server’s auth middleware bridge.
When set, user_id() returns request_context.user_id (overriding
the session-scoped identity), and user_scopes() returns
request_context.scopes. This is the explicit authenticated user
override — RequestContext remains separate from ExecutionIdentity
and AdkIdentity (it does not carry session or invocation IDs).
Set the shared state for parallel agent coordination.
Sourcepub fn with_secret_service(self, service: Arc<dyn SecretService>) -> Self
pub fn with_secret_service(self, service: Arc<dyn SecretService>) -> Self
Set the secret service for runtime secret retrieval.
When configured, tools can call ctx.get_secret("name") to retrieve
secrets from the configured provider (e.g., AWS Secrets Manager,
Azure Key Vault, GCP Secret Manager).
Sourcepub fn mutable_session(&self) -> &Arc<MutableSession>
pub fn mutable_session(&self) -> &Arc<MutableSession>
Get a reference to the mutable session. This allows the Runner to apply state deltas when events are processed.
Trait Implementations§
Source§impl CallbackContext for InvocationContext
impl CallbackContext for InvocationContext
Source§fn artifacts(&self) -> Option<Arc<dyn Artifacts>>
fn artifacts(&self) -> Option<Arc<dyn Artifacts>>
None when not running inside a ParallelAgent with shared state enabled.Source§fn tool_outcome(&self) -> Option<ToolOutcome>
fn tool_outcome(&self) -> Option<ToolOutcome>
None when not in a tool execution context.Source§fn tool_name(&self) -> Option<&str>
fn tool_name(&self) -> Option<&str>
Source§fn tool_input(&self) -> Option<&Value>
fn tool_input(&self) -> Option<&Value>
Source§impl InvocationContext for InvocationContext
impl InvocationContext for InvocationContext
Source§fn run_config(&self) -> &RunConfig
fn run_config(&self) -> &RunConfig
Source§fn end_invocation(&self)
fn end_invocation(&self)
Source§fn user_scopes(&self) -> Vec<String>
fn user_scopes(&self) -> Vec<String>
Source§fn request_metadata(&self) -> HashMap<String, Value>
fn request_metadata(&self) -> HashMap<String, Value>
Source§fn get_secret<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_secret<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl ReadonlyContext for InvocationContext
impl ReadonlyContext for InvocationContext
Source§fn invocation_id(&self) -> &str
fn invocation_id(&self) -> &str
Source§fn agent_name(&self) -> &str
fn agent_name(&self) -> &str
Source§fn session_id(&self) -> &str
fn session_id(&self) -> &str
Source§fn user_content(&self) -> &Content
fn user_content(&self) -> &Content
Source§fn try_invocation_id(&self) -> Result<InvocationId, AdkError>
fn try_invocation_id(&self) -> Result<InvocationId, AdkError>
InvocationId. Read moreSource§fn try_identity(&self) -> Result<AdkIdentity, AdkError>
fn try_identity(&self) -> Result<AdkIdentity, AdkError>
AdkIdentity triple. Read moreSource§fn try_execution_identity(&self) -> Result<ExecutionIdentity, AdkError>
fn try_execution_identity(&self) -> Result<ExecutionIdentity, AdkError>
ExecutionIdentity. Read more