Skip to main content

openhands.controller.agent

Agent Objects

class Agent(ABC)

DEPRECATED

This abstract base class is an general interface for an agent dedicated to executing a specific instruction and allowing human interaction with the agent during execution. It tracks the execution status and maintains a history of interactions.

complete

@property
def complete() -> bool

Indicates whether the current instruction execution is complete.

Returns:

  • complete (bool): True if execution is complete; False otherwise.

step

@abstractmethod
def step(state: 'State') -> 'Action'

Starts the execution of the assigned instruction. This method should be implemented by subclasses to define the specific execution logic.

reset

def reset() -> None

Resets the agent's execution status and clears the history. This method can be used to prepare the agent for restarting the instruction or cleaning up before destruction.

register

@classmethod
def register(cls, name: str, agent_cls: Type['Agent'])

Registers an agent class in the registry.

Arguments:

  • name (str): The name to register the class under.
  • agent_cls (Type['Agent']): The class to register.

Raises:

  • AgentAlreadyRegisteredError: If name already registered

get_cls

@classmethod
def get_cls(cls, name: str) -> Type['Agent']

Retrieves an agent class from the registry.

Arguments:

  • name (str): The name of the class to retrieve

Returns:

  • agent_cls (Type['Agent']): The class registered under the specified name.

Raises:

  • AgentNotRegisteredError: If name not registered

list_agents

@classmethod
def list_agents(cls) -> list[str]

Retrieves the list of all agent names from the registry.

Raises:

  • AgentNotRegisteredError: If no agent is registered