Skip to main content

Overview

LLMAgent extends BaseAgent with an LLM pipeline and automatic tool registration. Subclasses implement build_llm() to provide an LLM service and define tools with the @tool decorator.

Configuration

Inherits all parameters from BaseAgent.
str
required
Unique name for this agent.
AgentBus
required
The AgentBus for inter-agent communication.
bool
default:"False"
Whether the agent starts active. Defaults to False (unlike BaseAgent which defaults to True), since LLM agents typically wait to be activated via handoff.
tuple[str, ...] | None
default:"None"
Bridge configuration. See BaseAgent for details.
bool
default:"True"
Whether to defer frames queued during tool execution until all tools complete. When True, any frames queued via queue_frame() while a @tool method is running are held in an internal queue and delivered automatically once the last tool finishes.

Properties

Inherits all properties from BaseAgent.

tool_call_active

True when one or more @tool methods are executing.

Abstract Methods

build_llm

Return the LLM service for this agent. Subclasses must implement this to provide a configured LLMService (e.g. OpenAILLMService, AnthropicLLMService). Tool registration is handled automatically; do not register @tool methods here. Returns: An LLMService instance.

Methods

build_tools

Return the tools for this agent’s LLM. By default, returns all methods decorated with @tool. Override to provide additional or different tools. Returns: List of tool functions.

create_llm

Create the LLM with tools registered. Calls build_llm() and registers all @tool decorated methods. Each tool is automatically wrapped with inflight tracking for frame deferral. Override to customize the LLM setup. Returns: The configured LLMService.

on_activated

Configure the LLM with tools and activation messages. When args contains messages, they are appended to the LLM context. When args contains run_llm (defaults to True when messages are set), the LLM is triggered after appending.

handoff_to

Hand off to another agent. When called from a @tool handler, pass params.result_callback to ensure any pending LLM output is fully delivered before handing off.

end

Request a graceful end of the session. When called from a @tool handler, pass params.result_callback to ensure any pending LLM output is fully delivered before ending.

process_deferred_tool_frames

Process deferred frames before they are flushed. Called after all in-flight tools complete, before the deferred frames are queued into the pipeline. Override to inspect, modify, reorder, or filter the frames. Returns: The frames to queue. Return the list as-is for default behavior.