aea.agent
This module contains the implementation of a generic agent.
Agent Objects
class Agent(AbstractAgent, WithLogger)
This class provides an abstract base class for a generic agent.
__
init__
| __init__(identity: Identity, connections: List[Connection], loop: Optional[AbstractEventLoop] = None, period: float = 1.0, loop_mode: Optional[str] = None, runtime_mode: Optional[str] = None, storage_uri: Optional[str] = None, logger: Logger = _default_logger) -> None
Instantiate the agent.
Arguments:
identity
: the identity of the agent.connections
: the list of connections of the agent.loop
: the event loop to run the connections.period
: period to call agent's actloop_mode
: loop_mode to choose agent run loop.runtime_mode
: runtime mode to up agent.storage_uri
: optional uri to set generic storage
Returns:
None
connections
| @property
| connections() -> List[Connection]
Return list of connections.
storage_
uri
| @property
| storage_uri() -> Optional[str]
Return storage uri.
active_
connections
| @property
| active_connections() -> List[Connection]
Return list of active connections.
is_
running
| @property
| is_running() -> bool
Get running state of the runtime and agent.
is_
stopped
| @property
| is_stopped() -> bool
Get running state of the runtime and agent.
get_
multiplexer_
setup_
options
| get_multiplexer_setup_options() -> Optional[Dict]
Get options to pass to Multiplexer.setup.
Returns:
dict of kwargs
identity
| @property
| identity() -> Identity
Get the identity.
inbox
| @property
| inbox() -> InBox
Get the inbox.
The inbox contains Envelopes from the Multiplexer. The agent can pick these messages for processing.
outbox
| @property
| outbox() -> OutBox
Get the outbox.
The outbox contains Envelopes for the Multiplexer. Envelopes placed in the Outbox are processed by the Multiplexer.
name
| @property
| name() -> str
Get the agent name.
tick
| @property
| tick() -> int
Get the tick or agent loop count.
Each agent loop (one call to each one of act(), react(), update()) increments the tick.
handle_
envelope
| handle_envelope(envelope: Envelope) -> None
Handle an envelope.
Arguments:
envelope
: the envelope to handle.
Returns:
None
period
| @property
| period() -> float
Get a period to call act.
runtime
| @property
| runtime() -> BaseRuntime
Get the runtime.
start
| start() -> None
Start the agent.
Performs the following:
- calls connect() on the multiplexer (unless in debug mode), and
- calls setup(), and
- calls start() on the liveness, and
- enters the agent main loop.
While the liveness of the agent is not stopped it continues to loop over:
- increment the tick,
- call to act(),
- sleep for specified timeout,
- call to react(),
- call to update().
Returns:
None
stop
| stop() -> None
Stop the agent.
Performs the following:
- calls stop() on the liveness, and
- calls teardown(), and
- calls disconnect() on the multiplexer.
Returns:
None
state
| @property
| state() -> RuntimeStates
Get state of the agent's runtime.
Returns:
RuntimeStates
get_
periodic_
tasks
| get_periodic_tasks() -> Dict[Callable, Tuple[float, Optional[datetime.datetime]]]
Get all periodic tasks for agent.
Returns:
dict of callable with period specified
get_
message_
handlers
| get_message_handlers() -> List[Tuple[Callable[[Any], None], Callable]]
Get handlers with message getters.
Returns:
List of tuples of callables: handler and coroutine to get a message
exception_
handler
| exception_handler(exception: Exception, function: Callable) -> bool
Handle exception raised during agent main loop execution.
Arguments:
exception
: exception raisedfunction
: a callable exception raised in.
Returns:
bool, propagate exception if True otherwise skip it.