aea.aea
This module contains the implementation of an autonomous economic agent (AEA).
AEA Objects
class AEA(Agent)
This class implements an autonomous economic agent.
__
init__
| __init__(identity: Identity, wallet: Wallet, resources: Resources, loop: Optional[AbstractEventLoop] = None, period: float = 0.05, execution_timeout: float = 0, max_reactions: int = 20, error_handler_class: Optional[Type[AbstractErrorHandler]] = None, decision_maker_handler_class: Optional[Type[DecisionMakerHandler]] = None, skill_exception_policy: ExceptionPolicyEnum = ExceptionPolicyEnum.propagate, connection_exception_policy: ExceptionPolicyEnum = ExceptionPolicyEnum.propagate, loop_mode: Optional[str] = None, runtime_mode: Optional[str] = None, default_ledger: Optional[str] = None, currency_denominations: Optional[Dict[str, str]] = None, default_connection: Optional[PublicId] = None, default_routing: Optional[Dict[PublicId, PublicId]] = None, connection_ids: Optional[Collection[PublicId]] = None, search_service_address: str = DEFAULT_SEARCH_SERVICE_ADDRESS, storage_uri: Optional[str] = None, **kwargs, ,) -> None
Instantiate the agent.
Arguments:
identity
: the identity of the agentwallet
: the wallet of the agent.resources
: the resources (protocols and skills) of the agent.loop
: the event loop to run the connections.period
: period to call agent's actexecution_timeout
: amount of time to limit single act/handle to execute.max_reactions
: the processing rate of envelopes per tick (i.e. single loop).decision_maker_handler_class
: the class implementing the decision maker handler to be used.skill_exception_policy
: the skill exception policy enumloop_mode
: loop_mode to choose agent run loop.runtime_mode
: runtime mode (async, threaded) to run AEA in.default_ledger
: default ledger idcurrency_denominations
: mapping from ledger id to currency denominationdefault_connection
: public id to the default connectiondefault_routing
: dictionary for default routing.connection_ids
: active connection ids. Default: consider all the ones in the resources.search_service_address
: the address of the search service used.storage_uri
: optional uri to set generic storagekwargs
: keyword arguments to be attached in the agent context namespace.
Returns:
None
get_
build_
dir
| @classmethod
| get_build_dir(cls) -> str
Get agent build directory.
context
| @property
| context() -> AgentContext
Get (agent) context.
resources
| @property
| resources() -> Resources
Get resources.
resources
| @resources.setter
| resources(resources: "Resources") -> None
Set resources.
filter
| @property
| filter() -> Filter
Get the filter.
active_
behaviours
| @property
| active_behaviours() -> List[Behaviour]
Get all active behaviours to use in act.
setup
| setup() -> None
Set up the agent.
Performs the following:
- loads the resources (unless in programmatic mode)
- calls setup() on the resources
Returns:
None
act
| act() -> None
Perform actions.
Calls act() of each active behaviour.
Returns:
None
active_
connections
| @property
| active_connections() -> List[Connection]
Return list of active connections.
get_
multiplexer_
setup_
options
| get_multiplexer_setup_options() -> Optional[Dict]
Get options to pass to Multiplexer.setup.
Returns:
dict of kwargs
handle_
envelope
| handle_envelope(envelope: Envelope) -> None
Handle an envelope.
- fetching the protocol referenced by the envelope, and
- returning an envelope to sender if the protocol is unsupported, using the error handler, or
- returning an envelope to sender if there is a decoding error, using the error handler, or
- returning an envelope to sender if no active handler is available for the specified protocol, using the error handler, or
- handling the message recovered from the envelope with all active handlers for the specified protocol.
Arguments:
envelope
: the envelope to handle.
Returns:
None
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.
teardown
| teardown() -> None
Tear down the agent.
Performs the following:
- tears down the resources.
Returns:
None
get_
task_
result
| get_task_result(task_id: int) -> AsyncResult
Get the result from a task.
Returns:
async result for task_id
enqueue_
task
| enqueue_task(func: Callable, args: Sequence = (), kwds: Optional[Dict[str, Any]] = None) -> int
Enqueue a task with the task manager.
Arguments:
func
: the callable instance to be enqueuedargs
: the positional arguments to be passed to the function.kwds
: the keyword arguments to be passed to the function. :return the task id to get the the result.
Raises:
ValueError
: if the task manager is not running.