Agentgeoriënteerd programmeren (AOP) is een nieuw programmeerparadigma waarbij een systeem wordt opgebouwd uit agenten, ook wel een multi-agent systeem genoemd. In agentgeoriënteerd programmeren werken verschillende agenten samen om individuele doelen te bereiken. Deze structuur van samenwerking kan zeer complex zijn (zoals het globale internet), of zeer simpel. De rol van deze agentprogramma's is het controleren van de evolutie van de agent z'n staat. We kunnen AOP wel niet zien als een logische programmeertaal, abstracte gebruiken en gedachtenkronkels zijn niet uitgesloten.

Elementen van agentgeoriënteerd programmeren
Volgens Prof. Y. Shoham (1993) heeft een agentgeoriënteerd programma drie elementen nodig om volledig te zijn: 
 Een afgebakende taal met een duidelijke syntaxis en semantiek om de staat van de verschillende componenten te verduidelijken.
 Het gebruik van een agentprogrammeertaal
 Een ‘agentifier’ die neutrale apparaten omzet naar programmeerbare agents.

AOP versus OOP
Het agentgeoriënteerd programmeren kan gezien worden als een spin-off van het objectgeoriënteerd programmeren (OOP). Er is echter een groot verschil; OOP geeft ons een systeem dat opgebouwd is uit verschillende modules (functies) die in staat zijn met elkaar te communiceren en deze data te verwerken op hun individuele manier. AOP specialiseert zich in het framework door de staat van de modules (agents) verschillende componenten mee te geven zoals geloof (geloof van hun bestaan, de wereld, etc.), capaciteiten en besluiten. Deze componenten krijgen elk een eigen syntaxis.

Platformen

Er bestaan verscheidene platforms waarmee agentsystemen ontwikkeld kunnen worden. Een voorbeeld is JADE wat geschreven is in Java. Een ander platform is JACK, een commercieel platform voor multi-agent systemen. JACK is eveneens geschreven in Java.

De Foundation for Intelligent Physical Agents ontwikkelt standaarden voor agentgeoriënteerde software.

Literatuur
 ‘’Agent Oriented Programming’’, Y. Shoham, Journal of Artificial Intelligence 60 (1), pp. 51-92, 1993. [PDF] 

Software engineering
Kunstmatige intelligentie
Programmeerparadigma