# Agentes inteligentes JACK

JACK Intelligent Agents es un marco en Java para el desarrollo de sistemas multiagente. JACK Intelligent Agents fue creado por Agent Oriented Software Pty. Limitado. (AOS) y es una plataforma de agentes de tercera generación que se basa en las experiencias del Sistema de razonamiento procedimental (PRS) y el Sistema de razonamiento multiagente distribuido (dMARS). JACK es uno de los pocos sistemas multiagente que utiliza el modelo de software BDI y proporciona su propio lenguaje de planificación basado en Java y herramientas de planificación gráfica. JACK Intelligent Agents fue desarrollado inicialmente en 1997 por exmiembros del Instituto Australiano de Inteligencia Artificial (AAII o A $^2$ I $^2$ ) que participaron en el diseño, implementación y aplicación de PRS en SRI International y/o dMARS en AAII. La plataforma JACK se escribió para la aplicación comercial del paradigma multiagente (un producto COTS ) para la resolución de problemas complejos y fue la base para iniciar la empresa Agent Oriented Software (AOS), donde sigue siendo el producto insignia.

## Características

JACK Intelligent Agents es una plataforma multiagente comercial madura que ha estado bajo investigación activa, desarrollo y aplicación específica de dominio durante más de 10 años. A continuación se proporciona una lista de las principales características diferenciadoras de la plataforma.
* Tiempo de ejecución del agente : el núcleo de la plataforma es un tiempo de ejecución multiagente extensible. Una vez que se especifican los agentes, planes, eventos, capacidades, etc. específicos del dominio, el núcleo JACK administra la ejecución del sistema, incluido el paso de mensajes, el razonamiento y el meta-razonamiento.
* Lenguaje del plan JACK (JPL) : JACK proporciona un lenguaje de plan específico del agente para escribir planes JACK (el razonamiento discreto ejecutado por los agentes). El lenguaje del plan es una extensión de Java y ofrece comandos como @send y @post para la mensajería entre agentes, así como la gestión de acciones, subtareas y mantenimiento de condiciones. Los planes se compilan en clases de Java para su ejecución en el tiempo de ejecución de JACK, lo que ofrece velocidad y precisión de ejecución.
* Modelo de creencia-deseo-intención : además de un modelo de agente clásico (no BDI), la plataforma realiza el modelo de software BDI, donde las creencias son administradas por conjuntos de creencias encapsulados dentro de los agentes, los deseos son los estados de objetivos que un agente aspira a lograr, y las intenciones son el meta-razonamiento y el razonamiento basado en planes que utilizan los agentes de JACK para lograr el objetivo actual.
* Capacidades : la plataforma proporciona capacidades que son abstracciones de comportamientos comunes que se manifiestan como un complejo de planes y eventos. Las capacidades proporcionan una forma de agrupar conceptualmente comportamientos y acciones comunes y reutilizarlos entre agentes.
* Entorno de desarrollo JACK (JDE) : los sistemas multiagente se pueden escribir en código Java y el lenguaje del plan JACK en un IDE estándar, aunque la plataforma proporciona un IDE centrado en el agente llamado Entorno de desarrollo JACK o JDE. El JDE proporciona herramientas gráficas para escribir planes, conectar planes con agentes, gestionar la comunicación entre agentes, así como compilar y ejecutar. El JDE también proporciona herramientas gráficas para depurar y rastrear la ejecución de planes y el paso de mensajes entre agentes.
* Planes gráficos : una característica clave de JDE es la facilidad para escribir y administrar planes gráficos. Estos son el razonamiento discreto realizado por un agente representado gráficamente como un diagrama de flujo, lo que permite que un programador administre el código realizado en cada paso del gráfico de razonamiento y que el experto en la materia administre el flujo lógico del razonamiento basado en el humano. documentación legible en cada nodo.
* JACK Object Modeller (JACOB) : una tecnología de serialización de objetos utilizada por el tiempo de ejecución de JACK para la inicialización de objetos y la comunicación entre procesos. Los objetos de Java se serializan en texto ASCII legible por humanos, no muy diferente a YAML y XML .
* Independencia de la plataforma : la plataforma JACK está escrita en Java, lo que permite la implementación de sistemas multiagente JACK en la amplia gama de plataformas que admiten la máquina virtual Java . Actualmente, JACK se puede instalar en los sistemas operativos Microsoft Windows solo con una máquina virtual Java de 32 bits, pero también funciona en una máquina virtual Java de 64 bits . En las versiones más recientes de los sistemas operativos Mac OS X (a partir de Mac OS X Lion ), JACK solo puede instalarse mediante un instalador de consola .

## Extensiones

La plataforma JACK se ha ampliado varias veces desde su creación. La mayoría de las extensiones, como JACK Teams y CoJACK, fueron desarrolladas por o en colaboración con AOS.
* JACK Teams : una extensión del modelo de software BDI que facilita que los agentes colaboren en equipos para lograr un objetivo. Al igual que JACK, JACK Teams admite su propio lenguaje de planificación en lo que AOS denomina programación orientada a equipos . JACK Teams está integrado y disponible como parte de la plataforma JACK Intelligent Agents.
* CoJACK : una extensión de la plataforma JACK que agrega una arquitectura cognitiva a los agentes para provocar comportamientos más realistas (similares a los humanos) en entornos virtuales.
* FIPA JACK : una extensión de la plataforma JACK para admitir el lenguaje de comunicaciones de agentes FIPA .
* Prometheus : una metodología de ingeniería de software centrada en agentes para administrar el SDLC de un sistema basado en múltiples agentes. JACK se utilizó como base para la investigación, comparación y prueba de la metodología. Prometheus involucró el desarrollo de Prometheus Design Tool (PDT), que era una herramienta basada en GUI para gestionar las preocupaciones de diseño en el proceso.
* JACK Eclipse Plug-in : Un complemento que facilita el desarrollo de sistemas basados en JACK en el IDE de Eclipse . Específicamente, el complemento agrega capacidades a Eclipse para admitir los tipos de archivos JACK (como .plan, .agent, etc.), así como compatibilidad con el lenguaje del plan JACK.
* JACK WebBot : una extensión que incorpora el núcleo JACK en el servidor web Apache Tomcat que permite interactuar con agentes inteligentes y formular respuestas a solicitudes HTTP (a través de la API de Java Servlet ).