Skip to main content

On the External Concurrency of Current BDI Frameworks for MAS

  • Conference paper
  • First Online:
Engineering Multi-Agent Systems (EMAS 2024)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://archive.is/zF1FL.

  2. 2.

    https://archive.ph/Hozbl.

  3. 3.

    https://archive.is/El3fE.

  4. 4.

    https://archive.is/5KBqn.

References

  1. 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

  2. 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

    Chapter  Google Scholar 

  3. Baiardi, M., Ciatto, G.: BDI Languages Concurrency Model Survey Repository: v1.0.0 (2024) https://doi.org/10.5281/zenodo.10948573

  4. 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

  5. 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

  6. 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

    Article  Google Scholar 

  7. Bellifemine, F., Caire, G., Greenwood, D.: Developing Multi-Agent Systems with JADE. Wiley, Hoboken (2007). https://doi.org/10.1002/9780470058411

  8. 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

    Article  Google Scholar 

  9. 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

  10. 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

    Article  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. 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

  13. 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

  14. 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

    Chapter  Google Scholar 

  15. 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

  16. 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

  17. Dastani, M.: 2apl: a practical agent programming language. Auton. Agents Multi Agent Syst. 16(3), 214–248 (2008)

    Article  Google Scholar 

  18. Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965). https://doi.org/10.1145/365559.365617

    Article  Google Scholar 

  19. 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

  20. 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

  21. 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

  22. 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

    Chapter  Google Scholar 

  23. 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)

    Article  Google Scholar 

  24. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978). https://doi.org/10.1145/359576.359585

    Article  Google Scholar 

  25. 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

  26. 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

    Article  Google Scholar 

  27. 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

    Article  Google Scholar 

  28. 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

  29. Milner, R. (ed.): A Calculus of Communicating Systems. LNCS, vol. 92. Springer, Heidelberg (1980). https://doi.org/10.1007/3-540-10235-3

    Book  Google Scholar 

  30. Odell, J.: Objects and agents compared. J. Object Technol. 1(1), 41–53 (2002). https://doi.org/10.5381/JOT.2002.1.1.C4

    Article  Google Scholar 

  31. 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

    Article  Google Scholar 

  32. 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

  33. 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

    Chapter  Google Scholar 

  34. 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

    Chapter  Google Scholar 

  35. 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

  36. 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

  37. 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

    Chapter  Google Scholar 

  38. 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

  39. Shoham, Y.: Agent-oriented programming. Artif. Intell. 60(1), 51–92 (1993). https://doi.org/10.1016/0004-3702(93)90034-9

    Article  MathSciNet  Google Scholar 

  40. 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

  41. 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

  42. 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

    Article  MathSciNet  Google Scholar 

  43. 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

    Chapter  Google Scholar 

  44. 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

    Article  Google Scholar 

  45. 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

    Chapter  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Samuele Burattini .

Editor information

Editors and Affiliations

Appendix: Framework Maintainers Interview

Appendix: Framework Maintainers Interview

figure ac

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics