A shell agent that runs its sub-agents in sequence.

Hierarchy (view full)

Constructors

Properties

name: string

The agent's name. Agent name must be a valid identifier and unique within the agent tree. Agent name cannot be "user", since it's reserved for end-user's input.

description: string = ""

Description about the agent's capability. The model uses this to determine whether to delegate control to the agent. One-line description is enough and preferred.

parentAgent?: BaseAgent

The parent agent of this agent. Note that an agent can ONLY be added as sub-agent once. If you want to add one agent twice as sub-agent, consider to create two agent instances with identical config, but with different name and add them to the agent tree.

subAgents: BaseAgent[] = []

The sub-agents of this agent.

beforeAgentCallback?: BeforeAgentCallback

Callback or list of callbacks to be invoked before the agent run. When a list of callbacks is provided, the callbacks will be called in the order they are listed until a callback does not return undefined.

Args: callbackContext: The callback context.

Returns: Content | undefined: The content to return to the user. When the content is present, the agent run will be skipped and the provided content will be returned to user.

afterAgentCallback?: AfterAgentCallback

Callback or list of callbacks to be invoked after the agent run. When a list of callbacks is provided, the callbacks will be called in the order they are listed until a callback does not return undefined.

Args: callbackContext: The callback context.

Returns: Content | undefined: The content to return to the user. When the content is present, the provided content will be used as agent response and appended to event history as agent response.

Accessors

Methods

  • Core logic to run this agent via video/audio-based conversation

    Compared to the non-live case, live agents process a continuous stream of audio or video, so there is no way to tell if it's finished and should pass to the next agent or not. So we introduce a task_completed() function so the model can call this function to signal that it's finished the task and we can move on to the next agent.

    Parameters

    Returns AsyncGenerator<Event, void, unknown>