Introducción
Desde la aparición de la versión 4 de ChatGPT, si tienes una cuenta de ChatGPT Plus (la suscripción cuesta unos 20€ al mes), puedes crear tu propio agente, que no es más que una instancia de ChatGPT que configuras/entrenas para que realice una/s tarea/s mejor que lo que haría el ChatGPT “general”. Esta característica es muy necesaria ya que el ChatGPT que usamos de forma general olvida toda la personalización cada vez que cierras la conversación. Por ejemplo, si le has dicho que te dé las respuestas en verso, lo hará hasta que termine la conversación o comience una nueva. Los agentes vienen a cubrir esta “deficiencia” y además incluyen las “acciones” que no son más que la habilidad de poder interactuar con cualquier servicio que disponga de un sistema de comunicación http/https (webservice de cualquier tipo).
Es importante aclarar que el hecho de personalizar un agente (de ChatGPT) para realizar una/s tarea/s concreta/s no significa que deje de poder hacer todo lo que hace fantásticamente bien la instancia general, simplemente estás complementando su funcionamiento para que te ayude mejor en ciertas tareas que necesitas.
Dentro de unos meses, OpenAI (la empresa creadora de ChatGPT) liberará toda la potencia de su nuevo modelo ChatGPT 4o que, entre muchas y fantásticas capacidades, tendrá la de escuchar y hablar, de manera que podrás mantener una conversación con él de forma natural, sin tener que escribir lo que quieres. Esto acercará muchísimo el tener tu propio asistente personal que te acompañe en cualquier momento del día (no solo cuando puedas estar pendiente de tu dispositivo móvil). Solo tendrás que desbloquear el móvil y preguntarle lo que se te ocurra en ese momento e incluso le podrás enseñar lo que necesites con la cámara del móvil.
Así pues, empezar a configurar tu propio agente es una tarea que proporcionará mucha utilidad.
Objetivo
Como seguramente explicaré en otro artículo (que llevo posponiendo demasiado tiempo), he domotizado muchas partes del piso donde vivo (luces, cortinas, alarma, TV, equipo de música…). El asistente de voz que incorpora el sistema domótico (Home Assistant) tiene algunas carencias y la más molesta es que si no digo exactamente alguna de las órdenes que tiene configuradas o no las pronuncio de forma pausada y clara (poco natural), se equivoca y no sabe qué hacer.
Así pues, la primera utilidad práctica que le he encontrado a los agentes de ChatGPT es la de suplir al asistente que puedes tener en el sistema domótico de casa.
Mi intención es combinar toda la potencia de la domótica (Home Assistant es el mejor sistema domótico que conozco) y toda la potencia del mejor modelo LLM (hasta hoy) para crear el asistente personal “definitivo” (me he emocionado un poco, ¿verdad? 😉 )
Pero en este artículo me centraré en explicar cómo configurar un agente de ChatGPT y dejaré para otro artículo toda la configuración que se ha tenido que hacer para el caso particular de querer controlar la domótica de casa.
Requisitos
Esta suscripción a ChatGPT Plus no solo te da la posibilidad de crear agentes (que no es poco) sino que te permite muchas más interacciones con ChatGPT que la cuenta básica (con la que más de una vez he tenido que esperar un rato para seguir usándolo porque ya había llegado al límite). También te permite probar las funcionalidades de los nuevos modelos antes que sin la suscripción.

Por otro lado, también necesitamos tener acceso a algún tipo de servicio que proporcione una interfaz http/https con el que interactuar. En el caso del ejemplo tengo mi instalación de Home Assistant que permite la comunicación vía WebHooks y API Rest, pero podría servir, por ejemplo, un servicio abierto de meteorología, de resultados deportivos, etc.
Creación del agente
Imagino que con el tiempo la interfaz web de ChatGPT cambiará y estas indicaciones dejarán de ser válidas, pero como los lectores son muy listos, estoy seguro de que lo sabrán encontrar igualmente ;-).
Hoy en día, tendréis que entrar en “Explora los GPTs”

Allí encontraréis un buscador de agentes GPT que han publicado otras personas. Podéis encontrar de todos los “colores”. Podéis buscar si hay alguno que os pueda ser útil, como por ejemplo el “SQL Expert”, pero lo que nos interesa es crear uno personal, por lo tanto haremos clic en el botón de la esquina superior derecha (al lado de vuestro avatar)

La siguiente pantalla veréis que se divide en dos columnas. A la izquierda la parte de configuración del agente (nombre, imagen, descripción, instrucciones…) y a la derecha podréis probar cómo reaccionará a vuestras órdenes la configuración que le habéis dado.

La utilidad de la foto y del nombre es obvia y no necesitan mucha explicación. En la descripción tendréis que resumir la funcionalidad que le daréis al agente.
El siguiente campo (Instrucciones) es más muy importante. Debéis explicar detalladamente cómo se debe comportar el agente, qué rol tiene y también qué debe hacer en función de vuestras órdenes.

Debéis ser lo más específicos posible, pero no os preocupéis porque el agente es capaz de aprender por sí mismo. De hecho, a medida que vais hablando con él, el propio agente irá añadiendo indicaciones en este campo para poder recordarlas más adelante, pero si queréis configurarlo de forma rápida y tener un buen punto de partida, podéis detallarlo vosotros mismos.

Si os fijáis, en el final del texto le estoy indicando que la entidad que contiene la temperatura de mi despacho es “climate.despatx_nau”. Como lo tiene guardado en este texto, siempre que le pida algo relacionado con la temperatura de mi despacho ya sabe que lo tiene que relacionar con esta entidad del Home Assistant.
Interpretación de las intenciones
Como os comentaba, otro punto importante es la capacidad de ChatGPT de interpretar tus intenciones. Como veréis en el texto de la imagen anterior, le he configurado que si le doy la instrucción de “voy a dormir” debe ejecutar la acción “anarADormirPerAssistent” pero realmente no es necesario decirle la instrucción literal, como si fuera una orden. Si le digo algo similar en lenguaje natural también es capaz de relacionar mi intención con alguna de las instrucciones que tiene configuradas.

Aprendizaje
Los agentes GPT son capaces de aprender qué hacer según las instrucciones que les facilites. Por ejemplo, en la imagen 6, en la segunda línea de las instrucciones le he comentado qué debe hacer cuando le indique que estoy saliendo de casa.
Tanto si deseo darle una instrucción nueva, como si quiero modificar lo que debe hacer, le puedo decir en lenguaje natural y él mismo cambiará el texto que lo configura a sí mismo (las instrucciones) para reflejar lo que le estás explicando.


Acciones
Las acciones son otro punto muy importante de un agente ya que son las que permiten interactuar con servicios externos al agente. Es la parte más potente y a la vez la parte más técnica y complicada de la configuración de un agente. Requiere conocer el funcionamiento del webservice del servicio al que queremos acceder desde el agente GPT.
Fijaos en la imagen 5. Para que el agente pueda interactuar con un servicio externo se debe marcar la casilla de “Navegación web” y posteriormente configurar las acciones, haciendo clic en el botón “Crear nueva acción”.
Por ejemplo, si miramos la documentación de la API REST de Home Assistant (el software que gestiona la domótica de casa), veremos que para consultar el valor de un sensor debo hacer una petición a la dirección https://<nombre_del_dominio>/api/states/<nombre_de_la_entidad> y que además, en la cabecera de la petición debemos poner el token.
El token es una cadena alfanumérica que nos debe facilitar el proveedor del servicio que queremos que interactúe con nuestro agente (en este caso nuestra instalación de Home Assistant).

Por tanto, el primer paso será revisar cuál es el mecanismo de seguridad que nos pide el webservice que queremos que nuestro agente utilice.
En este aspecto las opciones de ChatGPT son bastante completas y no deberíais tener problemas para configurarlo correctamente.
Así pues, una vez tengamos claro qué requisitos de seguridad nos exige el webservice que debemos consultar, haremos clic en el botón de “Crear nueva acción” (imagen 5) y en la pantalla que nos aparezca, a la derecha de la casilla donde ponemos el nombre de la acción, haremos clic en el icono de la rueda dentada para que nos aparezca la ventana de la imagen siguiente.

Imagen 11: Configuración de seguridad para acceder a un webservice externo
El siguiente campo que veremos nos pide el esquema. En este campo le debemos pasar el esquema de los tipos de peticiones que querremos realizar, en formato Open API. Como es una estructura relativamente nueva, si no sabéis cómo se debe crear, podréis utilizar otro agente GPT para que os genere el código necesario.
Para hacerlo, debéis entrar en la sección de “Explora los GPTs” (imagen 2) y buscar un GPT especializado en configurar las acciones de agentes GPT y pedirle que os cree la estructura en OPEN API de la llamada que tengáis que usar.

Ahora solo os queda copiar el código que os ha generado dentro del campo “esquema” de la acción. Si la estructura es correcta, veréis que os aparece el nombre y un botón en la parte inferior para que podamos probar la petición.

Y ahora ya lo tenéis todo:
– En la imagen 6 podéis ver que en las instrucciones ya le había dicho que la entidad que mide la temperatura de mi despacho se llama “climate.despatx_nau”, por lo tanto ya sabe qué entidad consultar.
– Acabamos de configurarle la acción que sirve para ver el estado de una entidad.
Ahora viene la prueba de fuego… Como se ve en la imagen siguiente, le pido que me diga la temperatura que hay en mi despacho y me responde correctamente


Si quisierais añadir más “operaciones” a la acción solo tendríais que saber cómo se realiza la petición y pedirle al agente que nos ha creado antes la estructura en Open API que os añada a la estructura que nos ha proporcionado, el nuevo tipo de petición, y sustituir el código que os va proporcionando en el campo “Esquema” de vuestro agente.
Conclusiones
Hoy en día, cuando hay muchísimos servicios en la nube que disponen de algún tipo de webservice que permite comunicar servicios entre sí, el poder configurar un asistente con la potencia de ChatGPT para interactuar con ellos nos abre un universo de posibilidades.
Por ejemplo, utilizando el webservice de Booking podríamos crear un agente que no solo nos cree una ruta turística para visitar alguna zona en N días, sino que sería capaz de reservarnos los hoteles que cumplan con nuestros criterios. También podría resultar útil crear un agente que nos diga los eventos culturales en nuestra zona y nos compre las entradas usando el webservice de TicketMaster. Tal vez aún necesitemos poder navegar por las webs de estos servicios para tener una idea más clara de lo que queremos, pero si ya la tenemos, podríamos reservar la estancia o la entrada para un espectáculo sin tener que perder tiempo buscando lo que necesitamos en una pantalla de móvil.
Por ejemplo, podríamos estar en un bar con los amigos y coincidir en querer ver una película juntos. Si tuviéramos configurado un agente con nuestras preferencias (ciudad, cines preferidos y entre qué horas y/o filas nos gusta ver las películas…) y decirle por voz que busque cines donde proyecten la película comentada para el sábado que viene. El agente podría hacer la búsqueda gracias a alguno de los servicios configurados y preguntarte si deseas reservar el asiento y, en caso afirmativo, realizar la reserva (si la plataforma lo permite) y crear el evento en los calendarios de los asistentes para que no se olviden.
Y lo que es mejor, como se pueden configurar tantas acciones como se desee en un mismo agente, podríamos crear un “súper asistente” que hiciera las dos anteriores (reserva de hoteles y de eventos).
Algunas de estas posibilidades ya las teníamos disponibles con los asistentes tradicionales (Alexa y Google) utilizando “skills”, pero si los habéis probado, os habréis dado cuenta de que son muy limitados, ya que no son capaces ni de aprender ni de entender vuestras intenciones si no usáis algunas de las instrucciones preconfiguradas. ¿Cuántos de vosotros tenéis un Alexa y en el mejor de los casos lo usáis únicamente para saber el estado de vuestras compras de Amazon, la climatología y poner música?
Ahora prefiero seguir controlando la domótica utilizando la voz con los asistentes que ofrece Home Assistant ya que son capaces de ejecutar las instrucciones mucho más rápido que el agente GPT (pendiente de investigar si quizá hay alguna configuración de red que esté afectando) aunque tenga que repetir la instrucción un par de veces. Quizás hacia octubre/noviembre de 2024, cuando ya estén disponibles las nuevas características de voz de ChatGPT 4o, sea más eficiente y haga el cambio.
Obviamente este tipo de automatismos requieren tener en cuenta la seguridad, ya que estás delegando una tarea que dependiendo de los servicios con los que interactúe puede conllevar bastantes problemas, por tanto es aconsejable que los configuréis para que antes de ejecutar una acción os informe de forma detallada de lo que dispone a hacer y que configuréis únicamente servicios externos de confianza y que implementen mecanismos de autenticación seguros.
Espero que os haya resultado interesante y si necesitáis alguna aclaración no dudéis en dejar un comentario.