Skip to main content
Version: 🚧 Alpha 🚧

FIPA Skill

Extension: gama.extension.fipa

The FIPA skill offers primitives and built-in variables which enable agents to communicate with each other using the FIPA (Foundation of Intelligent Physical Agents) interaction protocol.

To use this skill, declare it in the species definition:

species my_species skills: [fipa] {
...
}

Variables​

VariableTypeDescription
conversationslistA list containing the current conversations of the agent (ended conversations are automatically removed)
accept_proposalslist<modelable>List of 'accept_proposal' performative messages in the agent's mailbox
agreeslist<modelable>List of 'agree' performative messages
cancelslist<modelable>List of 'cancel' performative messages
cfpslist<modelable>List of 'cfp' (call for proposal) performative messages
failureslist<modelable>List of 'failure' performative messages
informslist<modelable>List of 'inform' performative messages
proposeslist<modelable>List of 'propose' performative messages
querieslist<modelable>List of 'query' performative messages
refuseslist<modelable>List of 'refuse' performative messages
reject_proposalslist<modelable>List of 'reject_proposal' performative messages
requestslist<modelable>List of 'request' performative messages
requestWhenslist<modelable>List of 'request-when' performative messages
subscribeslist<modelable>List of 'subscribe' performative messages

Actions​

cfp — Call for Proposal​

Send a call for proposal to a list of agents.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

request — Request​

Send a request to another agent.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

request_when — Request-When​

Send a request-when to another agent.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

subscribe — Subscribe​

Subscribe to receive messages of a given type.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

inform — Inform​

Inform another agent about something.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

query — Query​

Query another agent for information.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
protocolstringA string representing the name of the interaction protocol (default: "no_protocol")

reply — Reply​

Reply to a message. This action should only be used to reply a message in a 'no-protocol' conversation and with a 'user-defined performative'. For performatives supported by GAMA (i.e., standard FIPA performatives), please use the action with the same name as the performative. For example, to reply with a 'request' performative, use request.

FacetTypeDescription
messagemodelableThe message to be replied (required, no facet name)
performativestringThe performative of the replying message (required, no facet name)
contentlist<any>The content of the replying message (optional)

start_conversation — Start Conversation​

Starts a conversation/interaction protocol.

FacetTypeDescription
tolist<modelable>A list of receiver agents
contentlist<any>The content of the message (required, no facet name)
performativestringA string representing the message performative
protocolstringA string representing the name of the interaction protocol

end_conversation — End Conversation​

Ends an existing conversation.

FacetTypeDescription
conversation_idstringThe ID of the conversation to end (required, no facet name)

Deprecated Actions​

DeprecatedReplacement
sendUse start_conversation instead

See Also​