agent-tk
WARNING auKsys/5 has been released as stable, but this documentation has not been fully updated with changes since auKsys/4. In case of questions or mistakes, you can use the support project.
WARNING this page documents an upcoming component, in early phases of development, subject to change and not ready for production.
agent-tk
(agent-toolkit/task-knowledge) is a library to implement light weight task and knowledge base agent. It provides abstract interfaces to integrate knowledge and decision process. The decision process in agent-tk
is based on the delegation system proposed in [1].
agent-tk
is currently developed for providing support to the matks simulator, and it is planned to extend it for support IOT systems in the future.
Gitlab repository is at https://gitlab.com/auksys/agent_tk/.
Overview
The figure below provides an overview of an agent as defined in agent-tk
:
On a high level, an agent is composed of three group of systems:
definitions
contains static metadata describing the agents, in particular, itscapabilities
.resources
contains dynamic information about the agent and its environment.knowledge base
is used to store information about the past and the current state of the world.agent-tk
can use a simple in-memory store or connect to an instance of kDB.states
contains a snapshot of the current state of the robot, such as position/velocity. Theplatform
is sending update to thestates
.resources
contains the resources of the agent: sensors, actuators… This module allow to lock the resources to avoid concurrent use.
components
contains active module involves in decision or in execution of task.execution
contains a queue of tasks to be executed by the agent. It interracts with the low-level platform.decision
takes decision on the feasibility and cost of executing a given task. It use asimulator
to estimate the cost of a task.delegation
module is used to distribute task among agent. This module can receivegoal/tst
to execute from the agent or it received call for proposal (CFP) from other agents. Upon receiving a CFP, thedelegation
module ask thedecision
module for a cost and feasability to execute a given CFP.
Interfacing with agent-tk (via MQTT)
The delegation system of agents-tk
also uses the following topics:
delegation/send_cfp
is used by the delegation module to broadcast a call for proposals by other agent.delegation/send_offer
is used by the delegation module to answer a CFP with a cost proposal.delegation/send_proposal_acceptance
is used by the delegation module to select a proposal.delegation/send_execution_acceptance
is used by the delegation module to confirm that the proposal acceptance has been received and that the agent will execute the mission.delegation/cancel_acceptance
is used to cancel the acceptance, this is send if noexecution acceptance
is received.
The default way to send tasks to an agent-tk
agent is using the delegation protocol. However, in case it is not desirable to interract directly with protocol, agent-tk
provides a delegation server called agent-tk-delegation-server
which uses a MQTT-based service call to start a delegation, using the following topic:
delegation_server/delegate
send a request to delegate a Goal or a TST. This rely on theMQTT v5 Request-Response Pattern
, and requires that the correlation ID and response topics are set.
References
High-level Mission Specification and Planning for Collaborative Unmanned Aircraft Systems using Delegation. Doherty, Patrick and Heintz, Fredrik and Kvarnström, Jonas. Unmanned Systems. 2013. DOI: 10.1142/S2301385013500052