# A2A ACL
Make explicit the nature of the communicative act in the the A2A protocol by illocution/performative tags in messages.

This repository contains:
 * The specification of the MOSAICO A2A ACL protocol as an extension of the A2A protocol (directory `specification`).
 * A library of functions to support the MOSAICO A2A ACL protocol extension (in Python).
 * A library of classes to help building agents that use the MOSAICO A2A ACL protocol extension (in Python).

# Features
 * Agents that send and receive messages with an illocution/performative on top of A2A.
 * Simply describe A2A agent cards and skills in an interface file in a dedicated format.
 * Targets that are not declared in the interface are private and ignored from incoming messages.
 * Extension of the A2A protocol that supports _tell_, _achieve_, and _ask_ performatives.
 * Asynchronous answers for _achieve_ messages (to request some actions and optionally answer later).
 * Different codecs can be used to encode/decode the content of the messages.


# Examples and Documentation

Some examples are given in the `sample_agents` and `tests` directories. 


# Requirements
This module relies on the A2A Protocol (package `a2a-sdk`). 


