Agent-oriented software engineering
Esensi Komputasi Berbasis Agen

Agen adalah sistem komputer terenkapsulasi yang berada dalam beberapa lingkungan, dan yang mampu bertindak fleksibel dan otonom dalam lingkungan tersebut untuk memenuhi tujuan desainnya. Ada beberapa poin tentang definisi ini yang memerlukan penjelasan lebih lanjut.
Agen adalah entitas pemecah masalah yang dapat diidentifikasi dengan jelas dengan batasan dan antarmuka yang jelas
Terletak (tertanam) di lingkungan tertentu; agen menerima input yang terkait dengan keadaan lingkungannya melalui sensor dan agen bertindak terhadap lingkungan melalui efektor
Dirancang untuk memenuhi tujuan tertentu: agen memiliki tujuan (sasaran) tertentu untuk dicapai
Otonom: agen memiliki kontrol atas keadaan internalnya dan atas perilakunya sendiri
Mampu menunjukkan perilaku penyelesaian masalah yang fleksibel dalam mengejar tujuan desainnya: agen harus reaktif (mampu merespons secara tepat waktu terhadap perubahan yang terjadi di lingkungannya) dan proaktif (mampu secara oportunistik mengadopsi tujuan baru)
Secara umum, agen dapat dilihat sebagai entitas perangkat lunak dengan karakteristik berikut:
Otonom (autonomous): Agen tidak secara pasif tunduk pada aliran kontrol eksternal global dalam aksinya. Yaitu, agen memiliki aktivitas pelaksanaan internal sendiri, dan berorientasi pro-aktif untuk pencapaian tugas tertentu.
Keberadaannya (situatedness) : Agen melakukan aksinya saat berada di lingkungan tertentu, baik komputasi maupun fisik, dan mampu merasakan dan mempengaruhi lingkungan tersebut
Sosialitas (sociality): Dalam sebagian besar kasus, agen mengeksekusi di lingkungan operasional terbuka yang menyelenggarakan eksekusi berbagai agen, yang mungkin milik para pemangku kepentingan yang berbeda. Dalam Multi-Agent Systems (MAS), perilaku global berasal dari interaksi antara agen-agen penyusunnya. Bahkan, agen dapat berkomunikasi atau berkoordinasi satu sama lain baik untuk mencapai tujuan bersama atau karena ini diperlukan bagi mereka untuk mencapai tujuan mereka sendiri
Ada dua poin yang secara kualitatif membedakan interaksi agen dari yang terjadi dalam paradigma rekayasa perangkat lunak lainnya. Pertama, interaksi yang berorientasi agen terjadi melalui bahasa berkomunikasi agen tingkat tinggi (deklaratif). Akibatnya, interaksi dilakukan pada tingkat pengetahuan: dalam hal tujuan (goal) mana yang harus diikuti, pada saat apa, dan oleh siapa. Kedua, karena agen adalah pemecah masalah yang fleksibel, yang beroperasi dalam lingkungan di mana mereka hanya memiliki kontrol parsial dan dapat diamati, interaksi perlu ditangani dengan cara yang sama fleksibelnya. Dengan demikian, agen membutuhkan alat komputasi untuk membuat keputusan yang bergantung pada konteks tentang sifat dan ruang lingkup interaksi mereka dan untuk memulai (dan menanggapi) interaksi yang tidak diramalkan pada waktu desain. Dalam kebanyakan kasus, agen bertindak untuk mencapai tujuan baik atas nama individu / perusahaan atau sebagai bagian dari inisiatif pemecahan masalah yang lebih luas. Jadi, ketika agen berinteraksi biasanya ada beberapa konteks organisasi yang mendasari. Konteks ini mendefinisikan sifat hubungan antara agen.