Abstract
The execution of Belief-Desire-Intention (BDI) agents in a Multi-Agent System (MAS) can be practically implemented on top of low-level concurrency mechanisms that impact on efficiency, determinism, and reproducibility. We argue that developers should specify the MAS behaviour independently of the execution model, and choose or configure the concurrency model later on, according to the specific needs of their target domain, leaving the MAS specification unaffected. We identify patterns for mapping the agent execution over the underlying concurrency abstractions, and investigate which concurrency models are supported by some of the most commonly used BDI platforms. Although most frameworks support multiple concurrency models, we find that they mostly hide them under the hood, making them opaque to the developer, and actually limiting the possibility of fine-tuning the MAS.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Agha, G.A.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press Series in Artificial Intelligence. MIT Press, Cambridge (1986). https://doi.org/10.7551/mitpress/1086.001.0001
Baiardi, M., Burattini, S., Ciatto, G., Pianini, D.: JaKtA: BDI agent-oriented programming in pure Kotlin. In: Malvone, V., Murano, A. (eds.) EUMAS 2023, vol. 14282, pp. 49–65. Springer, Heidelberg (2023). https://doi.org/10.1007/978-3-031-43264-4_4
Baiardi, M., Ciatto, G.: BDI Languages Concurrency Model Survey Repository: v1.0.0 (2024) https://doi.org/10.5281/zenodo.10948573
Bainomugisha, E., Carreton, A.L., Cutsem, T.V., Mostinckx, S., Meuter, W.D.: A survey on reactive programming. ACM Comput. Surv. 45(4), 52:1–52:34 (2013). https://doi.org/10.1145/2501654.2501666
Bandini, S., Manzoni, S., Vizzari, G.: Agent Based Modeling and Simulation, pp. 184–197. Springer, New York (2009). https://doi.org/10.1007/978-0-387-30440-3_12
Batty, M.: Compositional relaxed concurrency. Phil. Trans. Roy. Soc. A: Math. Phys. Eng. Sci. 375(2104), 20150406 (2017). https://doi.org/10.1098/rsta.2015.0406
Bellifemine, F., Caire, G., Greenwood, D.: Developing Multi-Agent Systems with JADE. Wiley, Hoboken (2007). https://doi.org/10.1002/9780470058411
Böhm, C., Jacopini, G.: Flow diagrams, Turing machines and languages with only two formation rules. Commun. ACM 9(5), 366–371 (1966). https://doi.org/10.1145/355592.365646
Bordini, R., Hübner, J., Wooldridge, M.: Programming Multi-Agent Systems in AgentSpeak Using Jason. Wiley Series in Agent Technologies. Wiley, Hoboken (2007). https://doi.org/10.1002/9780470061848
Bratman, M.E., Israel, D.J., Pollack, M.E.: Plans and resource-bounded practical reasoning. Comput. Intell. 4, 349–355 (1988). https://doi.org/10.1111/J.1467-8640.1988.TB00284.X
Buettner, D., Kunkel, J., Ludwig, T.: Using non-blocking I/O operations in high performance computing to reduce execution times. In: Ropo, M., Westerholm, J., Dongarra, J. (eds.) EuroPVM/MPI 2009. LNCS, vol. 5759, pp. 134–142. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03770-2_20
Calegari, R., Ciatto, G., Mascardi, V., Omicini, A.: Logic-based technologies for multi-agent systems: a systematic literature review. Auton. Agents Multi-Agent Syst. 35(1), 1:1–1:67 (2021). https://doi.org/10.1007/s10458-020-09478-3
Christie, S.H., Singh, M.P., Chopra, A.K.: Kiko: programming agents to enact interaction models. In: Proceedings of the 2023 International Conference on Autonomous Agents and Multiagent Systems (AAMAS 2023), pp. 1154–1163. IFAAMAS, London (2023). https://www.ifaamas.org/Proceedings/aamas2023/pdfs/p1154.pdf
Collier, R.W., Russell, S., Lillis, D.: Reflecting on agent programming with AgentSpeak(L). In: Chen, Q., Torroni, P., Villata, S., Hsu, J., Omicini, A. (eds.) PRIMA 2015. LNCS (LNAI), vol. 9387, pp. 351–366. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-25524-8_22
Dabek, F., Zeldovich, N., Kaashoek, F., Mazières, D., Morris, R.: Event-driven programming for robust software. In: Proceedings of the 10th Workshop on ACM SIGOPS European Workshop, EW 10, pp. 186–189. ACM, New York (2002). https://doi.org/10.1145/1133373.1133410
Dadel, P., Zielinski, K.: Evolution of reactive streams API for context-aware mobile applications. Comput. Inf. 35(4), 852–869 (2016). http://www.cai.sk/ojs/index.php/cai/article/view/3379
Dastani, M.: 2apl: a practical agent programming language. Auton. Agents Multi Agent Syst. 16(3), 214–248 (2008)
Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965). https://doi.org/10.1145/365559.365617
D’Urso, F., Longo, C.F., Santoro, C.: Programming intelligent IoT systems with a Python-based declarative tool. In: Proceedings of the 1st Workshop on Artificial Intelligence and Internet of Things co-located with the 18th International Conference of the Italian Association for Artificial Intelligence, 2019. CEUR Workshop Proceedings, vol. 2502, pp. 68–81. CEUR-WS.org (2019). https://ceur-ws.org/Vol-2502/paper5.pdf
Elizarov, R., Belyaev, M.A., Akhin, M., Usmanov, I.: Kotlin coroutines: design and implementation. In: Onward! 2021: Proceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Virtual Event/Chicago, IL, USA, 20–22 October 2021, pp. 68–84. ACM (2021). https://doi.org/10.1145/3486607.3486751
Gregori, M.E., Cámara, J.P., Bada, G.A.: A jabber-based multi-agent system platform. In: 5th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2006), Hakodate, Japan, 8–12 May 2006, pp. 1282–1284. ACM (2006). https://doi.org/10.1145/1160633.1160866
Hindriks, K.V.: Programming rational agents in GOAL. In: El Fallah Seghrouchni, A., Dix, J., Dastani, M., Bordini, R.H. (eds.) Multi-Agent Programming, pp. 119–157. Springer, Boston, MA (2009). https://doi.org/10.1007/978-0-387-89299-3_4
Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.C.: Agent programming in 3apl. Auton. Agents Multi Agent Syst. 2(4), 357–401 (1999)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978). https://doi.org/10.1145/359576.359585
Husaini, S.F.: Using the Java native interface. XRDS: Crossroads ACM Maga. Students 4(2), 18–23 (1997). https://doi.org/10.1145/332100.332105
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978). https://doi.org/10.1145/359545.359563
Ling, Y., Mullen, T., Lin, X.: Analysis of optimal thread pool size. ACM SIGOPS Oper. Syst. Rev. 34(2), 42–55 (2000). https://doi.org/10.1145/346152.346320
Loring, M.C., Marron, M., Leijen, D.: Semantics of asynchronous JavaScript. In: Ancona, D. (ed.) Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages, Vancouver, BC, Canada, 23–27 October 2017, pp. 51–62. ACM (2017). https://doi.org/10.1145/3133841.3133846
Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10235-3
Odell, J.: Objects and agents compared. J. Object Technol. 1(1), 41–53 (2002). https://doi.org/10.5381/JOT.2002.1.1.C4
Omicini, A., Ricci, A., Viroli, M.: Artifacts in the A &A meta-model for multi-agent systems. Auton. Agents Multi-Agent Syst. 17(3), 432–456 (2008). https://doi.org/10.1007/s10458-008-9053-x
Palanca, J., Rincon, J.A., Carrascosa, C., Julián, V., Terrasa, A.: A flexible agent architecture in SPADE. In: PAAMS 2022, Proceedings. Lecture Notes in Computer Science, vol. 13616, pp. 320–331. Springer, Heidelberg (2022). https://doi.org/10.1007/978-3-031-18192-4_26
Pokahr, A., Braubach, L., Lamersdorf, W.: Jadex: a BDI reasoning engine. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) Multi-Agent Programming. MSASSO, vol. 15, pp. 149–174. Springer, Boston, MA (2005). https://doi.org/10.1007/0-387-26350-0_6
Rao, A.S.: AgentSpeak(L): BDI agents speak out in a logical computable language. In: Van de Velde, W., Perram, J.W. (eds.) MAAMAW 1996. LNCS, vol. 1038, pp. 42–55. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0031845
Reisig, W.: Petri Nets: An Introduction, EATCS Monographs on Theoretical Computer Science, vol. 4. Springer, Heidelberg (1985). https://doi.org/10.1007/978-3-642-69968-9
Ricci, A., Santi, A.: Concurrent object-oriented programming with agent-oriented abstractions: the ALOO approach. In: Proceedings of AGERE!@SPLASH 2013, pp. 127–138. ACM (2013). https://doi.org/10.1145/2541329.2541333
Ricci, A., Santi, A.: From actors and concurrent objects to agent-oriented programming in simpAL. In: Agha, G., et al. (eds.) Concurrent Objects and Beyond. LNCS, vol. 8665, pp. 408–445. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44471-9_17
Rodriguez, S., Gaud, N., Galland, S.: SARL: a general-purpose agent-oriented programming language. In: The 2014 IEEE/WIC/ACM International Conference on Intelligent Agent Technology. IEEE, Warsaw (2014). https://doi.org/10.1109/WI-IAT.2014.156
Shoham, Y.: Agent-oriented programming. Artif. Intell. 60(1), 51–92 (1993). https://doi.org/10.1016/0004-3702(93)90034-9
de Silva, L.: An operational semantics for true concurrency in BDI agent systems. In: EAAI 2020, pp. 7119–7126. AAAI Press (2020). https://doi.org/10.1609/AAAI.V34I05.6199
de Silva, L., Meneguzzi, F., Logan, B.: BDI agent architectures: a survey. In: Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence, IJCAI 2020, pp. 4914–4921. ijcai.org (2020). https://doi.org/10.24963/ijcai.2020/684
Wielemaker, J., Huang, Z., van der Meij, L.: SWI-Prolog and the web. Theory Pract. Log. Program. 8(3), 363–392 (2008). https://doi.org/10.1017/S1471068407003237
Winikoff, M.: JACK\(^{\rm TM}\) intelligent agents: an industrial strength platform. In: Bordini, R.H., Dastani, M., Dix, J., El Fallah Seghrouchni, A. (eds.) Multi-Agent Programming. MSASSO, vol. 15, pp. 175–193. Springer, Boston, MA (2005). https://doi.org/10.1007/0-387-26350-0_7
Wooldridge, M.J., Jennings, N.R.: Intelligent agents: theory and practice. Knowl. Eng. Rev. 10(2), 115–152 (1995). https://doi.org/10.1017/S0269888900008122
Zatelli, M.R., Ricci, A., Hübner, J.F.: Evaluating different concurrency configurations for executing multi-agent systems. In: Baldoni, M., Baresi, L., Dastani, M. (eds.) EMAS 2015. LNCS (LNAI), vol. 9318, pp. 212–230. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-26184-3_12
Acknowledgements
This work has been partially supported by: (i) “WOOD4.0 - Woodworking Machines for Industry 4.0”, Emilia-Romagna CUP E69J22007520009; (ii) “FAIR–Future Artificial Intelligence Research”, Spoke 8 “Pervasive AI” (PNRR, M4C2, Investimento 1.3, Partenariato Esteso PE00000013), funded by the EC under the NextGenerationEU programme; (iii) “ENGINES - ENGineering INtElligent Systems around intelligent agent technologies” project funded by the Italian MUR program “PRIN 2022” (G.A. 20229ZXBZM), and (iv) 2023 PhD scholarship (PNRR M4C2, Investimento 3.3 DM 352/2022), co-funded by the European Commission and AUSL della Romagna. Also, the authors would like to thank all the researchers and developers who answered our request for comments for their invaluable help.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix: Framework Maintainers Interview
Appendix: Framework Maintainers Interview

Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Baiardi, M., Burattini, S., Ciatto, G., Pianini, D., Ricci, A., Omicini, A. (2024). On the External Concurrency of Current BDI Frameworks for MAS. In: Briola, D., Cardoso, R.C., Logan, B. (eds) Engineering Multi-Agent Systems. EMAS 2024. Lecture Notes in Computer Science(), vol 15152. Springer, Cham. https://doi.org/10.1007/978-3-031-71152-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-71152-7_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-71151-0
Online ISBN: 978-3-031-71152-7
eBook Packages: Computer ScienceComputer Science (R0)