Los agentes realizan el trabajo de la implementación, que libera al servidor de la tarea. Todos los procesos, incluido el empaquetado, la configuración y los despliegues solicitados por el servidor de IBM UrbanCode Deploy se ejecutan en el hardware asignado a los agentes. Cuando se inicia un agente instalado, abre una conexión del socket con el servidor de IBM UrbanCode Deploy. La comunicación entre el servidor y los agentes utiliza un protocolo basado en JMS (Java™ Message Service). La comunicación se puede proteger mediante SSL, con autenticación opcional mutua basada en claves para cada punto final. Este protocolo de comunicación no tiene estado y resiste las detenciones de la red (las ventajas de la falta de estado se explican más adelante).
Aunque caracterizamos un agente como un proceso simple, técnicamente consta de dos procesos: un proceso trabajador y un proceso supervisor. El proceso trabajador es un proceso multihebra que ejecuta el trabajo de despliegue cuando recibe los mandatos del servidor. Los mandatos de trabajo provienen de pasos de plug-in y proporcionan una integración perfecta con numerosas herramientas de terceros. El supervisor es un servicio que gestiona el proceso trabajador: inicios y detenciones, gestión de los reinicios, actualizaciones y seguridad, por ejemplo. Los agentes se actualizan en pocas ocasiones porque su funcionalidad se deriva de los plug-ins, que se pueden actualizar cuando se desee. Una vez instalado un agente, se puede gestionar desde la aplicación web IBM UrbanCode Deploy.
Los agentes son una parte importante de la escalabilidad en IBM UrbanCode Deploy. Cuando se añaden agentes, el rendimiento y la capacidad del sistema aumentan de un modo casi exponencial y, de esta forma, pueden escalarse para ajustarse incluso a las empresas más grandes.