La programación de agentes involucra tanto el encapsulamiento de sus comportamientos como el de su estado mental. Estas características nos han llevado a utilizar lenguajes orientados a objetos para programar sistemas multi-agentes.
Los lenguajes orientados a objetos han mostrado poseer varias de las características necesarias para
codificar funciones clásicas de agentes. Sin embargo, cuando estados mentales complejos deben ser administrados, la programación lógica ha mostrado ser una mejor alternativa para la implementación de actitudes mentales.
En consecuencia, viejas ideas con relación a lenguajes multi-paradigmas (Ishikawa, 1986) (Fukunaga, 1986) (Mello, 1987) aparecen como una posible solución a la programación de agentes.
Esta es parte de una explicación basica de lo que se intenta crear con la programación orientada a agentes, para aquellos que tienen algun conocimiento en programación orientada a objetos, le es fácil notar que, incluyendo la lógica dentro de un algoritmo, este podría realizar una especie de razonamiento simple, y la reacción de cada objeto dentro del programa, podría tener distintas respuestas a diferentes variables que le fueran administradas.