Qué puede hacer un agente (y qué no)

No todas las acciones son seguras
En esta página
  1. Qué son las acciones permitidas (Permissions)
  2. Niveles de permisos
  3. Por qué no hay que dar acceso a todo
  4. Quién define los límites
  5. Principio de privilegio mínimo
  6. En código se ve así
  7. 1) Tenemos herramientas con distintos niveles de riesgo
  8. 2) Aquí definimos permisos para este agente
  9. 3) El modelo pide ejecutar una acción
  10. 4) El sistema comprueba permisos antes de ejecutar
  11. 5) Si el nivel está permitido, ejecutamos la acción
  12. Analogía de la vida real
  13. En resumen
  14. FAQ
  15. Qué sigue

Un agente de IA puede hacer más que responder solicitudes.

Puede:

  • Cambiar datos
  • Enviar solicitudes a API
  • Crear archivos
  • O ejecutar procesos

Es decir, puede ejecutar acciones en el mundo real.


Y aquí aparece un nuevo problema.

Porque no todas las acciones son seguras.

Un agente puede:

  • Eliminar datos
  • Gastar dinero
  • O hacer una solicitud a un sistema externo

Incluso si no lo planeaste.


Por eso no se le puede permitir hacer todo.

Necesita límites.

Qué son las acciones permitidas (Permissions)

Agente de IA: Cuándo un agente debe detenerse (y quién lo decide)

Un agente no tiene acceso directo a las herramientas.

No puede por sí solo:

  • Abrir un archivo
  • Cambiar un registro en la base de datos
  • O enviar una solicitud a API

Para ejecutar una acción, tiene que usar una herramienta.

Y solo las herramientas que tiene permitido invocar.


Esta lista de acciones permitidas es exactamente sus Permissions.

Definen:

  • Qué puede hacer el agente
  • Y qué no

Niveles de permisos

No todas las acciones son igual de seguras.

Diagram

Por eso los permisos suelen dividirse por niveles, según cuánto puede afectar el agente al sistema.


Read
El agente puede obtener datos. Pero no puede cambiarlos.

Por ejemplo: leer un registro en la base, abrir un archivo, revisar estado.


Write
El agente puede crear o cambiar datos.

Por ejemplo: crear un registro nuevo, actualizar un archivo, guardar un resultado.


Execute
El agente puede invocar procesos o servicios externos.

Por ejemplo: enviar una solicitud a API, ejecutar un script, llamar un webhook.


Delete
El agente puede eliminar datos o registros.

Este es el nivel más peligroso.
Porque la acción es irreversible.


Cuanto más alto el nivel de permiso, más puede cambiar el agente en el mundo.

Por eso se le da solo el acceso necesario para completar la tarea.

Por qué no hay que dar acceso a todo

El agente no entiende las consecuencias de sus acciones.

Elige la herramienta que parece más adecuada en ese contexto.

NivelQué está permitidoRiesgo
ReadObtener datosBajo
WriteCrear o cambiarMedio
ExecuteEjecutar procesos o APIAlto
DeleteEliminar datosCrítico

Pero "adecuada" no siempre significa "segura".

El agente puede:

  • Guardar datos incorrectos
  • Invocar una API de pago
  • O eliminar un archivo importante

Solo porque eso ayuda a completar la tarea.


Si le das acceso a todo, puede hacer más de lo que esperabas.

Quién define los límites

El agente no elige sus permisos por sí mismo.

No decide:

  • A qué herramientas tiene acceso
  • Qué acciones puede ejecutar

Estos límites los define una persona.

O un sistema que define:

  • Qué herramientas están permitidas
  • Qué acciones se pueden ejecutar
  • Y con qué nivel de acceso

El agente solo trabaja dentro de estas reglas.

Principio de privilegio mínimo

Hay una regla simple:

Al agente se le da solo el acceso necesario para completar una tarea concreta.

Nada más.


Esto se llama el principio de privilegio mínimo (Least Privilege).


Si el agente solo necesita acceso de lectura, no debe recibir acceso de escritura.

Si necesita crear un archivo, no debe poder eliminarlo.


Menos permisos significa menos riesgos.

En código se ve así

Abajo está el mismo principio en formato simple:
definimos explícitamente qué puede hacer el agente y obligamos al sistema a comprobarlo antes de cada acción.

1) Tenemos herramientas con distintos niveles de riesgo

PYTHON
def read_user(user_id: int):
    return {"id": user_id, "status": "active"}


def update_user(user_id: int, status: str):
    return {"id": user_id, "status": status}


def send_webhook(event: str):
    return {"sent": event}


def delete_user(user_id: int):
    return {"deleted": user_id}


TOOLS = {
    "read_user": {"level": "read", "handler": read_user},
    "update_user": {"level": "write", "handler": update_user},
    "send_webhook": {"level": "execute", "handler": send_webhook},
    "delete_user": {"level": "delete", "handler": delete_user},
}

2) Aquí definimos permisos para este agente

PYTHON
AGENT_PERMISSIONS = {"read", "write"}  # execute y delete están prohibidos

3) El modelo pide ejecutar una acción

PYTHON
model_output = {
    "action": "update_user",
    "parameters": {"user_id": 42, "status": "paused"},
}

4) El sistema comprueba permisos antes de ejecutar

PYTHON
def run_action(call: dict):
    action = call["action"]
    params = call["parameters"]

    tool = TOOLS.get(action)
    if tool is None:
        return {"error": "Herramienta no encontrada"}

    if tool["level"] not in AGENT_PERMISSIONS:
        return {"error": "Acción no permitida"}

    return tool["handler"](**params)

5) Si el nivel está permitido, ejecutamos la acción

PYTHON
result = run_action(model_output)
# {"id": 42, "status": "paused"}

Si el modelo pide delete_user, el sistema devuelve:

JSON
{
  "error": "Acción no permitida"
}

Ejemplo completo de implementación con LLM conectada

PYPython
TSTypeScript · pronto

Analogía de la vida real

Imagina que le das a alguien las llaves de tu apartamento.

Si solo necesita regar las plantas, le das la llave de la puerta.


Pero no le das:

  • La llave de la caja fuerte
  • Acceso a la app bancaria
  • O el PIN de la tarjeta

Porque cuanto más acceso, más se puede cambiar.

Incluso por accidente.


Por eso se dan solo las llaves necesarias para la tarea concreta.

En resumen

En resumen

Un agente puede ejecutar acciones a través de herramientas.

Pero se le permite:

  • Solo ciertas herramientas
  • Solo ciertos tipos de acción
  • Y solo en un nivel de acceso concreto

Normalmente se usa el principio de privilegio mínimo:

El agente recibe solo el acceso necesario para completar la tarea.

FAQ

Q: ¿Puede un agente ejecutar cualquier acción mediante herramientas?
A: No. Solo puede usar las herramientas y acciones que tiene permitidas.

Q: ¿Quién define lo que el agente puede hacer?
A: Una persona o un sistema que define la lista de herramientas disponibles y su nivel de acceso.

Q: ¿Qué es el principio de privilegio mínimo?
A: Es una regla según la cual el agente recibe solo el acceso necesario para una tarea concreta.

Qué sigue

Ahora ya sabes qué puede hacer un agente.

Pero incluso con restricciones, puede:

  • Quedarse en un bucle
  • Repetir las mismas acciones
  • O gastar recursos

Por eso, a veces el agente tiene que detenerse por sí mismo.

O ser detenido por el sistema.

⏱️ 6 min de lecturaActualizado Mar, 2026Dificultad: ★★☆
Continuación práctica

Ejemplos de implementación del patrón

Continúa con la implementación usando proyectos de ejemplo.

Integrado: control en producciónOnceOnly
Guardrails para agentes con tool-calling
Lleva este patrón a producción con gobernanza:
  • Presupuestos (pasos / topes de gasto)
  • Permisos de herramientas (allowlist / blocklist)
  • Kill switch y parada por incidente
  • Idempotencia y dedupe
  • Audit logs y trazabilidad
Mención integrada: OnceOnly es una capa de control para sistemas de agentes en producción.
Autor

Esta documentación está curada y mantenida por ingenieros que despliegan agentes de IA en producción.

El contenido es asistido por IA, con responsabilidad editorial humana sobre la exactitud, la claridad y la relevancia en producción.

Los patrones y las recomendaciones se basan en post-mortems, modos de fallo e incidentes operativos en sistemas desplegados, incluido durante el desarrollo y la operación de infraestructura de gobernanza para agentes en OnceOnly.