cada vez más frecuente en muchas aplicaciones. Sin embargo, integrar agentes en su aplicación es mucho más que simplemente darle a un LLM acceso a todos los datos y funciones. También es necesario crear barreras de seguridad efectivas que garanticen que el agente solo tenga acceso a datos relevantes y eviten el uso indebido de funciones. Debe hacer esto y, al mismo tiempo, garantizar que el modelo pueda funcionar de manera efectiva con acceso a los datos necesarios y utilizar tantas funciones como sea posible, sin necesidad de un ser humano en el circuito.
Mi objetivo para este artículo es resaltar, en un alto nivel, cómo construir barreras de seguridad efectivas para garantizar que su agente solo tenga acceso a los datos y funciones necesarios y al mismo tiempo mantener una buena experiencia de usuario, por ejemplo, minimizando la cantidad de veces que un humano tiene que aprobar el acceso de un agente. Primero analizaré por qué las barreras de seguridad son tan importantes, antes de pasar a un componente crucial de las barreras de seguridad: la autorización detallada. A continuación, analizaré la construcción de barreras de seguridad para sus datos y continuaré cubriendo barreras de seguridad para funciones.
Por qué necesita barreras de seguridad para sus agentes
Primero, quiero describir por qué necesitamos barreras de seguridad para los agentes de IA. En teoría, podría simplemente darle al agente acceso a todas las bases de datos y funciones de sus aplicaciones, ¿verdad?
Hay varias razones por las que las barandillas son necesarias. La razón principal es evitar que el agente realice acciones no deseadas, como eliminar tablas de bases de datos. Además, también debe asegurarse de que los agentes solo tengan acceso a los datos dentro de un alcance, por ejemplo, garantizar que un agente utilizado por un cliente no pueda utilizar los datos de otro cliente.
Algunas barandillas se pueden configurar automáticamente y nunca necesitan participación humana. El acceso a la base de datos se encuentra en una barrera de seguridad, donde usted establece el alcance en el que opera un agente (por ejemplo, dentro de un cliente) y solo permite que el agente acceda a los datos de ese cliente. Otras barreras, sin embargo, necesitan la interacción humana. Imagínese si un agente quiere ejecutar un comando, ¿cómo nos aseguramos de que el agente no esté realizando una acción destructiva (como eliminar una tabla de base de datos) y que el usuario permita el comando?
En estos escenarios, tenemos un ser humano en el circuito, donde el agente solicita permiso para realizar una acción específica. Si el usuario lo permite, el agente puede continuar, y si no lo permite, el agente debe decidir un curso de acción diferente.
Permisos detallados
Un requisito probable para trabajar con agentes es tener permisos específicos. Esto significa que puede verificar fácilmente si una función o algunos datos están disponibles dentro de un alcance determinado, como por ejemplo:
¿Este cliente 1 tiene acceso a la tabla A de la base de datos? ¿El usuario 2 tiene acceso a la función B? ¿La organización 3 tiene acceso a la función C?
Es fundamental que tenga implementada una autorización detallada en su aplicación. Existen numerosos proveedores que ofrecen esta funcionalidad.
Cuando haya implementado una autorización detallada, debe implementarla en todas las funciones de sus aplicaciones y manejar tanto el escenario en el que se concede el acceso como en el que se deniega el acceso. Si se deniega el acceso, por ejemplo, podría considerar agregar un mensaje que indique que debe solicitarle a un administrador un nivel de acceso específico para poder realizar una determinada acción.
Barreras agentes para datos
Una vez que haya implementado permisos detallados, podemos comenzar a analizar las barreras de seguridad en torno a sus datos. Es importante que su agente tenga acceso a la mayor cantidad de datos posible para responder de manera efectiva las preguntas de los usuarios. Luego debe equilibrar esto con el hecho de que el agente no debe acceder a datos restringidos ni obtener información innecesaria que no necesita para responder la consulta del usuario.
Acceso a datos restringidos
Restringir el acceso a los datos de sus agentes depende principalmente de la autorización detallada. En sus funciones que realizan búsqueda de datos (búsqueda de base de datos, recuperación de depósitos,…), primero debe verificar el alcance de acceso del usuario.
Además, también debería considerar informar a su agente en el mensaje qué puede hacer. Hacer que el agente intente acceder a los datos y luego se le niegue el acceso por cualquier motivo será costoso, tanto en lo que respecta al uso del token como al tiempo.
Evite buscar información innecesaria
Si le da a su agente acceso a todas las tablas de bases de datos y depósitos de datos, es posible que experimente problemas en los que los agentes tengan demasiadas opciones y será difícil para el agente elegir la tabla de documentos y los campos correctos. Este también es un tema que hablé recientemente en mi artículo sobre la creación de herramientas para agentes eficaces.
Para resolver este problema, me centraría en informar únicamente al agente de fuentes de información relevantes. Si el agente está trabajando en una tarea que usted sabe que puede resolverse únicamente utilizando la base de datos A, debe considerar informar al agente únicamente sobre la base de datos A y dejar todas las demás bases de datos fuera del mensaje del agente. Esto, por supuesto, supone que usted sabe qué datos son potencialmente relevantes para que el agente responda consultas.
Barandillas agentes para funciones.
Creo que el tema de la construcción de barreras de protección para funciones es aún más interesante. La razón es que hay muchos elementos a considerar al construir estas barandillas:
¿Cómo se previenen acciones destructivas? ¿Cómo se minimizan las interacciones entre humanos?
¿Cómo se previenen acciones destructivas?
El subtema más importante sobre las barreras funcionales es la prevención de acciones destructivas. Para solucionar esto, debes marcar todas las funciones si realizan acciones irreversibles. Por ejemplo
Eliminar una tabla de base de datos es irreversible (por supuesto, puede cargar una copia de seguridad, pero esto requiere algo de trabajo) Leer de una tabla no tiene ningún impacto destructivo
Si el agente realiza una acción fácilmente reversible (se puede revertir con solo hacer clic en un botón deshacer), o una acción que no tiene un impacto destructivo, es probable que simplemente pueda permitir que el agente ejecute la función.
Sin embargo, si una función realiza una acción irreversible, debe informar al agente de ello y probablemente preguntarle al usuario humano si el agente puede realizar esta acción.
¿Cómo se minimizan las interacciones entre humanos?
Naturalmente, usted quiere evitar acciones destructivas. Sin embargo, tampoco desea molestar demasiado al usuario preguntándole si el agente puede realizar una acción o no.
Un excelente enfoque para minimizar las interacciones humanas es realizar listas blancas de funciones, como lo que hace Cursor para ejecutar comandos de terminal: La primera vez que Cursor quiere ejecutar un comando, como por ejemplo:
cd en una carpeta Ejecute pruebas de pytest y mueva un archivo de una ubicación a otra
El cursor le preguntará al usuario si puede realizar un comando. Luego puede elegir una de las tres opciones siguientes:
Denegar la solicitud Aceptar la solicitud (una sola vez) Incluir el comando en la lista blanca (aceptar la solicitud ahora y en adelante)
La inclusión en la lista blanca funciona bien porque garantiza que el usuario permita que el agente ejecute una función o comando, pero ya no tiene que molestarlos más acerca de esa función exacta en el futuro. Aún así, la inclusión en la lista blanca tiene la desventaja de que algunos comandos no se pueden incluir en la lista blanca, considerando que un usuario tiene que revisar el contexto cada vez que el agente sugiere ejecutar algunas funciones (como eliminar una tabla de base de datos).
Conclusión
En este artículo de alto nivel, analicé cómo debería abordar la creación de aplicaciones agentes con respecto a las barreras de seguridad. Las barreras de seguridad son necesarias porque es necesario garantizar que el agente actúe con el comportamiento deseado y no se le permita realizar acciones como recuperar información que esté fuera del alcance del acceso o realizar acciones destructivas sin el permiso explícito del usuario. Hablé sobre la construcción de barreras de seguridad para sus datos y para las funciones que pone a disposición de su agente. Creo que las barreras de seguridad son una parte importante de la creación de aplicaciones agentes, que siempre deben tenerse en cuenta al crear aplicaciones agentes. Garantizar que existan barreras de seguridad adecuadas hará que el uso de sus agentes sea más seguro, lo cual es fundamental, considerando que si se rompe la confianza de un usuario en el agente, será difícil recuperar la confianza del usuario.
👉 Encuéntrame en las redes sociales:
🧑💻 Ponte en contacto
🐦X/Twitter
✍️ Medio
También puedes leer algunos de mis otros artículos: