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​
| Variable | Type | Description |
|---|---|---|
conversations | list | A list containing the current conversations of the agent (ended conversations are automatically removed) |
accept_proposals | list<modelable> | List of 'accept_proposal' performative messages in the agent's mailbox |
agrees | list<modelable> | List of 'agree' performative messages |
cancels | list<modelable> | List of 'cancel' performative messages |
cfps | list<modelable> | List of 'cfp' (call for proposal) performative messages |
failures | list<modelable> | List of 'failure' performative messages |
informs | list<modelable> | List of 'inform' performative messages |
proposes | list<modelable> | List of 'propose' performative messages |
queries | list<modelable> | List of 'query' performative messages |
refuses | list<modelable> | List of 'refuse' performative messages |
reject_proposals | list<modelable> | List of 'reject_proposal' performative messages |
requests | list<modelable> | List of 'request' performative messages |
requestWhens | list<modelable> | List of 'request-when' performative messages |
subscribes | list<modelable> | List of 'subscribe' performative messages |
Actions​
cfp — Call for Proposal​
Send a call for proposal to a list of agents.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A string representing the name of the interaction protocol (default: "no_protocol") |
request — Request​
Send a request to another agent.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A string representing the name of the interaction protocol (default: "no_protocol") |
request_when — Request-When​
Send a request-when to another agent.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A string representing the name of the interaction protocol (default: "no_protocol") |
subscribe — Subscribe​
Subscribe to receive messages of a given type.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A string representing the name of the interaction protocol (default: "no_protocol") |
inform — Inform​
Inform another agent about something.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A string representing the name of the interaction protocol (default: "no_protocol") |
query — Query​
Query another agent for information.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
protocol | string | A 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.
| Facet | Type | Description |
|---|---|---|
message | modelable | The message to be replied (required, no facet name) |
performative | string | The performative of the replying message (required, no facet name) |
content | list<any> | The content of the replying message (optional) |
start_conversation — Start Conversation​
Starts a conversation/interaction protocol.
| Facet | Type | Description |
|---|---|---|
to | list<modelable> | A list of receiver agents |
content | list<any> | The content of the message (required, no facet name) |
performative | string | A string representing the message performative |
protocol | string | A string representing the name of the interaction protocol |
end_conversation — End Conversation​
Ends an existing conversation.
| Facet | Type | Description |
|---|---|---|
conversation_id | string | The ID of the conversation to end (required, no facet name) |
Deprecated Actions​
| Deprecated | Replacement |
|---|---|
send | Use start_conversation instead |