ADK for TypeScript: API Reference
    Preparing search index...

    Class InvocationContext

    An invocation context represents the data of a single invocation of an agent.

    An invocation: 1. Starts with a user message and ends with a final response. 2. Can contain one or multiple agent calls. 3. Is handled by runner.runAsync().

    An invocation runs an agent until it does not request to transfer to another agent.

    An agent call: 1. Is handled by agent.runAsync(). 2. Ends when agent.runAsync() ends.

    An LLM agent call is an agent with a BaseLLMFlow. An LLM agent call can contain one or multiple steps.

    An LLM agent runs steps in a loop until:

    1. A final response is generated.
    2. The agent transfers to another agent.
    3. endInvocation is set to true by any callbacks or tools.

    A step:

    1. Calls the LLM only once and yields its response.
    2. Calls the tools and yields their responses if requested.

    The summarization of the function response is considered another step, since it is another llm call. A step ends when it's done calling llm and tools, or if endInvocation is set to true at any time.

       ┌─────────────────────── invocation ──────────────────────────┐
    ┌──────────── llm_agent_call_1 ────────────┐ ┌─ agent_call_2 ─┐
    ┌──── step_1 ────────┐ ┌───── step_2 ──────┐
    [call_llm] [call_tool] [call_llm] [transfer]

    Constructors

    Properties

    a2aMetadata?: Record<string, unknown>

    Request-level metadata passed from an incoming A2A request or caller.

    abortSignal?: AbortSignal
    activeStreamingTools?: Record<string, ActiveStreamingTool>

    The running streaming tools of this invocation.

    The agent driving this invocation.

    Unset when the root being run is a bare BaseNode — a Workflow handed straight to the Runner — because there is no agent in play at that level. Nodes deeper in the graph that are agents get their own contexts with this set. Mirrors adk-python, whose field is BaseAgent | BaseNode | None and which passes None on the node path.

    Most code reaches this from inside an agent's own execution, where it is always set; prefer requireAgent there, so a broken invariant fails by name rather than as a property access on undefined.

    artifactService?: SessionArtifactService
    branch?: string

    The branch of the invocation context.

    The format is like agent_1.agent_2.agent_3, where agent_1 is the parent of agent_2, and agent_2 is the parent of agent_3.

    Branch is used when multiple sub-agents shouldn't see their peer agents' conversation history.

    credentialService?: BaseCredentialService
    endInvocation: boolean

    Whether to end this invocation. Set to true in callbacks or tools to terminate this invocation.

    eventQueue?: AsyncQueue<Event>

    An optional channel into which a running tool can push events to be interleaved into the agent's output stream. Set by the LLM flow around tool execution so a NodeTool (running a node/workflow) can surface the node's intermediate and interrupt events. Cleared once tools finish.

    invocationId: string

    The id of this invocation context.

    isolationScope?: string

    Workflow: the isolation scope of the node this context runs in. Events carrying a different scope are withheld from this agent's LLM request.

    liveRequestQueue?: LiveRequestQueue

    The live request queue feeding the model on the bidirectional (live) path. Set only for invocations started via runner.runLive.

    liveSessionResumptionHandle?: string

    The most recent session resumption handle observed on the live path. Updated as the server emits resumption updates so a reconnect can restore server-side state instead of replaying history. Mutable by design.

    memoryService?: BaseMemoryService
    nodeToolDepth: number

    Nesting depth of node-as-tool (NodeTool) executions in this invocation. Incremented each time a node runs as a tool (via a depth+1 clone), so NodeTool can bound node -> tool -> node recursion.

    pluginManager: PluginManager

    The manager for keeping track of plugins in this invocation.

    runConfig?: RunConfig

    Configurations for live agents under this invocation.

    session: Session

    The current session of this invocation context.

    sessionService?: BaseSessionService
    transcriptionCache?: TranscriptionEntry[]

    Caches necessary, data audio or contents, that are needed by transcription.

    userContent?: Content

    The user content that started this invocation.

    workflowInstructionScope?: WorkflowInstructionScope

    Workflow: field-resolution scope for {Class.field} / <Class.field from node> instruction placeholders (set by LLMAgentWrapper).

    Accessors

    Methods