Acceso bloqueado a una bóveda local: guía operativa para el trabajo de agentes
Planifica el acceso bloqueado a una bóveda local para agentes autónomos con ventanas de desbloqueo claras, aprobaciones de ejecución, decisiones por llamada, pausas y pruebas de revisión.

El trabajo autónomo falla de una forma muy predecible cuando se trata una bóveda local bloqueada como una molestia. El agente encuentra un límite de credenciales en mitad de una tarea, alguien siente presión por terminar y un secreto acaba copiado en una variable del shell, un archivo de configuración o un mensaje de chat. La tarea se completa a corto plazo. El equipo también ha creado una ruta de credenciales sin registrar que sobrevivirá a la tarea.
Una bóveda bloqueada debería influir en el plan de trabajo antes de que empiece el agente. El operador debe decidir tres cosas por separado: cuándo desbloquear el acceso, qué proceso de agente puede actuar durante esta ejecución y qué acciones individuales siguen necesitando una decisión humana. Los equipos que reducen esas decisiones a un «adelante» impreciso acaban ahogados por las solicitudes o saltándose los controles.
Esto no significa mantener a una persona pendiente de cada comando. Significa poner la atención humana donde cambia el resultado. La exploración de solo lectura a menudo puede ejecutarse dentro de una sesión delimitada. Una eliminación en producción, un cambio de permisos o la publicación de una versión merecen una decisión nueva en el momento en que ocurren. El resto depende de un plan de ejecución que el operador pueda entender antes de que comience el agente.
Las ventanas de desbloqueo necesitan un responsable y una hora de cierre
El operador debería desbloquear una bóveda local durante una ventana de trabajo definida, con una persona responsable de la decisión y una condición conocida para cerrarla. «Déjala abierta mientras trabajo» parece práctico, pero falla cuando una reunión, la comida, la suspensión del portátil o un cambio de contexto interrumpe el trabajo. La bóveda abierta se convierte entonces en una autoridad que nadie está considerando activamente.
La decisión de desbloquear concede la forma más amplia de acceso de toda la cadena. Si la bóveda permanece bloqueada, ninguna sesión de agente ni ninguna solicitud individual debería atravesarla. Eso hace útil el estado bloqueado, pero solo si el equipo lo trata como un límite operativo y no como un paso ceremonial de inicio de sesión.
Usa una ventana de trabajo que encaje con el ritmo natural de la tarea. Una reparación pequeña puede necesitar una sola ventana breve. Una migración planificada puede necesitar una ventana que cubra la preparación, la ejecución y la verificación, con una pausa programada antes de cualquier fase irreversible. Una investigación que solo lee registros debería usar una ventana distinta de la continuación que cambia la configuración de producción.
Antes de abrir el acceso, el operador debería anotar cinco datos:
- quién es responsable de la decisión de autorización;
- qué trabajo puede realizar el agente;
- qué entornos y cuentas puede tocar el trabajo;
- qué condición pone fin a la ventana;
- quién revisará el resultado si el responsable tiene que ausentarse.
Ese registro no necesita una ceremonia especial. Un comentario en un ticket o una nota de ejecución bastan si nombran límites reales. «Arreglar el problema del despliegue» no es suficiente. «Inspeccionar el despliegue fallido en staging y volver a intentarlo solo si el resumen de la imagen coincide con la compilación aprobada» le da al revisor algo que comprobar.
No uses solo el reloj como condición de cierre. Una hora límite ayuda, pero el trabajo suele alargarse porque el agente encuentra una dependencia inesperada. Combina un límite temporal con un límite de estado: cerrar después de la verificación prevista, después de que aparezca el primer objetivo inesperado o cuando el responsable se ausente. Una tarea que se prolonga debe solicitar una ventana nueva. Esa pequeña interrupción obliga a alguien a decidir si la autorización original sigue encajando con el trabajo.
La alternativa popular es la comodidad permanente: desbloquear al principio del día y bloquear al final. Los equipos la eligen porque los desbloqueos interrumpen el ritmo. Es un mal valor predeterminado para el trabajo autónomo, porque el agente puede continuar a velocidad de máquina mientras la atención humana que justificó el acceso se ha desplazado a otro lugar. Si los desbloqueos repetidos resultan insoportables, mejora la agrupación del trabajo y el diseño de aprobaciones. No elimines el límite.
El desbloqueo de la bóveda, la aprobación de la ejecución y la aprobación de la acción responden a preguntas distintas
Una bóveda local bloqueada necesita tres decisiones distintas porque cada una controla un riesgo diferente. Desbloquear responde a si pueden realizarse acciones con credenciales. Aprobar una ejecución responde a si este proceso de agente identificado puede usar la ruta de acción disponible para su trabajo delimitado. Aprobar una llamada individual responde a si este uso concreto de una credencial concreta merece una nueva decisión humana.
Los equipos suelen confundir las dos primeras. Desbloquean una bóveda y suponen que todos los procesos de la máquina tienen permiso para actuar. Así convierten una comprobación de presencia física o local en una autorización de software amplia. El otro patrón problemático es aprobar cada solicitud inofensiva porque el equipo nunca ha definido qué significa la aprobación de una sesión. Los operadores acaban aprobando docenas de lecturas rutinarias y dejan de leer las tarjetas.
La diferencia importa sobre todo cuando una tarea cambia de forma. Supón que un agente recibe aprobación para inspeccionar una compilación fallida, consultar una API de despliegue y recopilar registros. Descubre que un permiso ausente podría explicar el fallo. La ejecución original no incluía cambiar los controles de acceso. El agente debería detenerse y solicitar una decisión nueva, aunque la bóveda esté abierta y su sesión de proceso siga aprobada. El propósito de la tarea ha pasado del diagnóstico a la administración.
Una división razonable sería esta:
- Desbloquear el acceso mientras una persona responsable pueda supervisar el trabajo previsto.
- Aprobar un proceso de agente identificado para la ejecución indicada, incluidas las acciones habituales que encajen en el contrato de ejecución.
- Exigir una aprobación independiente para llamadas de alto impacto, como publicar, eliminar, cambiar permisos, rotar credenciales o escribir en producción.
Las categorías exactas de acciones varían según el equipo. La idea es clasificarlas por sus consecuencias, no por el número de llamadas a la API. Una sola solicitud para revocar una cuenta de producción merece más atención que cincuenta solicitudes para obtener metadatos de una compilación.
Aquí la escala fija de decisiones de Sallyport es deliberadamente limitada: su compuerta de bóveda bloquea todas las acciones mientras está bloqueada, la autorización por sesión aprueba un proceso de agente nuevo durante toda su vida y una configuración por clave puede exigir aprobación para cada uso. El diseño no pide a los operadores que escriban un lenguaje de políticas que se convierta en otro programa de seguridad que haya que depurar durante una interrupción.
No afirmes que una compuerta por llamada vuelve segura cualquier credencial. Solo hace posible una decisión humana en el momento de uso. El operador aún necesita contexto suficiente para juzgar la solicitud. Si el aviso solo dice «usa el token de producción», el control ya ha perdido casi todo su valor. Incluye el objetivo, la acción y el efecto previsto en el plan de ejecución, y después compara la solicitud con ese plan.
Programa el acceso según los estados del trabajo, no según el horario de oficina
El equipo debería planificar el trabajo del agente como una secuencia de estados con puntos explícitos en los que la autoridad comienza, se pausa, se reduce o termina. El horario de oficina ayuda a organizar la disponibilidad, pero no describe el trabajo real. Una tarea puede comenzar durante el horario cubierto, esperar a un sistema externo y reanudarse mucho después de que se haya marchado la persona que la aprobó.
Usa cuatro estados en el registro de la tarea: preparación, ejecución activa, retenida y revisión. La preparación no realiza acciones con credenciales. El agente puede inspeccionar el repositorio, preparar comandos, validar entradas y explicar las llamadas que pretende hacer sin acceder a la bóveda. La ejecución activa empieza solo cuando un operador abre la ventana de acceso y aprueba la ejecución. Retenida significa que el agente ha llegado a una condición de espera, una decisión inesperada o el final de su alcance aprobado. La revisión cierra el ciclo antes de que el equipo conceda autoridad para una continuación relacionada.
Este modelo sencillo evita un fallo habitual. Un ingeniero inicia un agente para limpiar un despliegue a las 16:30. El agente ejecuta pruebas, identifica recursos obsoletos y espera a que termine una operación en la nube. A las 17:15 se reanuda, descubre que hay que limpiar otra cuenta y continúa porque la sesión sigue existiendo. El operador original ya se ha marchado. Aunque todas las llamadas a la API tengan éxito, el equipo ha permitido que la tarea se desplace a otro alcance sin una decisión responsable.
Escribe las reglas de pausa antes de la ejecución. Las buenas reglas de pausa se pueden observar:
- detenerse si la cuenta, el host o el entorno objetivo difieren de la nota de ejecución;
- detenerse si el agente necesita una clase de credencial que no figura en el plan;
- detenerse antes de cualquier acción que cree, elimine, publique o cambie permisos;
- detenerse después de una escritura fallida hasta que el operador revise el error devuelto;
- detenerse cuando el operador indicado deje de estar disponible.
Una pausa no es un fallo. Es una transición de estado limpia. El agente debería conservar el comando o la solicitud exactos que pretendía realizar, las entradas que recopiló y el motivo por el que se detuvo. El siguiente operador podrá decidir entonces si continúa sin reconstruir la tarea a partir de una transcripción de chat confusa.
Esto también mantiene la urgencia bajo control. Si un trabajo fuera de horario necesita una acción, alguien debe decidir si su impacto empresarial justifica abrir una ventana de acceso nueva. A veces los equipos llaman urgente a toda tarea bloqueada porque el agente ya ha trabajado diez minutos. Eso es pensar en términos de coste hundido. Un límite de credenciales debe hacer que la persona vuelva a elegir cuando cambian las circunstancias.
La identidad del proceso debe ser visible antes de que una ejecución gane confianza
Una aprobación debería identificar el proceso de agente por algo más que una etiqueta del terminal o un nombre proporcionado por el usuario. Un proceso llamado «deploy-agent» podría ser el ejecutable esperado, un script local o algo iniciado por una dependencia comprometida. El operador necesita una señal significativa sobre quién produjo e inició el programa que solicita autoridad.
La identidad de firma de código resulta útil porque vincula la decisión de aprobación con una autoridad ejecutable, no con un texto que cualquier proceso puede mostrar. No demuestra que todas las indicaciones dadas al agente fueran sensatas. Sí ofrece una respuesta más sólida a una pregunta básica de un incidente: ¿qué proceso recibió permiso para usar la bóveda?
Exige que la nota de ejecución indique el punto de entrada del agente y el directorio de trabajo o repositorio. Así el operador dispone de dos comprobaciones antes de aprobar: la identidad del proceso que muestra el sistema y el contexto de la tarea que esperaba el equipo. Si no coinciden, rechaza la solicitud e inspecciona la máquina. No apruebes primero solo porque la tarea parezca conocida.
Un flujo de aprobación limpio introduce una fricción moderada. La primera llamada con credenciales de un proceso nuevo activa la aprobación. El operador confirma la autoridad del proceso y el propósito de la ejecución. El proceso puede continuar dentro de su sesión aprobada hasta que termine, el operador la revoque o la bóveda se bloquee. Un proceso nuevo vuelve a solicitar aprobación.
Ese último detalle bloquea una forma sutil de eludir el control. Si el equipo aprueba una sesión de terminal identificada en vez de un proceso, una persona puede iniciar un programa distinto en el mismo terminal y heredar una confianza que pertenecía a la ejecución anterior. La autorización debe estar vinculada al proceso real del agente, no a una ventana, una cuenta de usuario o una carpeta del proyecto.
Sallyport muestra la autoridad de firma de código del proceso cuando solicita autorización por sesión, que es el dato que necesita un operador antes de aprobar una ejecución de agente. Aun así, los equipos deberían conservar el propósito escrito de la ejecución junto a esa señal, porque la identidad indica quién pregunta y el contrato de ejecución indica si la solicitud corresponde.
Las compuertas por llamada pertenecen a las autoridades irreversibles
La aprobación por llamada funciona cuando protege acciones que una persona puede juzgar en segundos y lamentar durante mucho más tiempo. Aplícala a credenciales que puedan crear compromisos externos, modificar accesos, destruir datos o afectar a un servicio de producción. No la apliques a todas las credenciales por costumbre.
El error habitual es marcar una cuenta de producción completa como «peligrosa» y exigir aprobación para cada solicitud. El agente realiza muchas lecturas inofensivas, el operador las aprueba rápidamente y la única escritura destructiva aparece entre avisos familiares. El control se ha convertido en un metrónomo. A las personas les cuesta mantener la atención ante confirmaciones repetitivas y con poca información.
Separa la autoridad cuando el proveedor lo permita. Usa una credencial de lectura para explorar, una credencial de escritura con alcance reducido para el mantenimiento habitual y una credencial de mayor impacto para las acciones que necesiten una decisión por llamada. Si el proveedor solo ofrece un token amplio, trata cada uso de ese token como una autoridad amplia. No finjas que el método HTTP por sí solo lo convierte en una operación de bajo riesgo. Un POST puede obtener datos y un endpoint GET puede iniciar un trabajo en APIs mal diseñadas.
RFC 6750 describe claramente un token bearer: cualquier parte que lo posea puede usarlo. Esa propiedad explica por qué entregar un token a un agente, aunque sea «solo para esta tarea», crea un problema mayor que la operación inmediata. El contexto de la indicación del agente, el historial del shell, los registros, los complementos y las futuras transferencias pueden convertirse en lugares donde se filtre la posesión. Mantén el token dentro de la bóveda local y devuelve el resultado de la operación.
En SSH, evita el reenvío del agente como atajo para rodear el control local. El manual ssh_config de OpenSSH advierte que reenviar un agente de autenticación permite que un host remoto use el agente local, y señala que los usuarios deben confiar en el host remoto. El trabajo autónomo amplía esa preocupación porque un agente puede conectarse a través de un host cuya configuración o destino no haya inspeccionado por completo. Usa una ruta de acción SSH directa, indica el host permitido en el contrato de ejecución y pausa el trabajo cuando aparezca un host intermedio o un destino nuevo.
Pon la compuerta por llamada sobre la credencial, no sobre una idea imprecisa de «modo de producción». Así la decisión sigue siendo comprensible más adelante. Un revisor puede ver que esa credencial siempre exigía una decisión, sin importar qué agente la solicitara o qué proyecto proporcionara la indicación.
Un contrato de ejecución evita aprobar a ciegas
Un contrato de ejecución debería caber en un comentario breve de un ticket y hacer comprobable la decisión de aprobación. No es un plan de proyecto. Registra el conjunto mínimo de datos que permite a un operador aprobar, rechazar, pausar y revisar el trabajo sin leer toda la transcripción del agente.
Usa esta plantilla antes de que el operador desbloquee el acceso:
Run ID: 2025-03-incident-cleanup-01
Owner: name of approving operator
Purpose: inspect failed release and remove only the listed temporary resource
Agent process: expected executable and repository directory
Targets: staging account, api.example.internal, named SSH host
Allowed actions: read deployment state; delete resource tmp-4821 after match check
Per-call actions: delete request, any permission change, any production request
Stop conditions: target mismatch; unexpected credential; failed write; owner unavailable
Expected evidence: request IDs, resource IDs, command output, final status
Review owner: name of reviewer
El ejemplo usa un identificador parecido a una fecha para facilitar la lectura, no como control de seguridad. Elige un identificador que el equipo pueda buscar en su sistema de tareas y en sus registros de actividad. Las líneas importantes son los objetivos, las acciones permitidas y las condiciones de pausa. Esas líneas impiden que una ejecución se amplíe porque el agente ha encontrado una tarea siguiente que parece razonable.
El contrato también deja al descubierto los malos planes. «Reparar permisos» no indica un objetivo, un cambio permitido ni las pruebas que deben revisarse. Un operador no puede aprobarlo de forma responsable. «Añadir el grupo X al rol Y en staging y verificar después la vinculación del rol con una solicitud de lectura» es suficientemente concreto para revisarlo. Si el agente descubre que el grupo X no existe o que el rol Y pertenece a producción, debe detenerse.
No hagas la plantilla tan detallada que la gente la rellene con una precisión inventada. Una lista larga de endpoints crea una falsa sensación de control cuando el riesgo real es una operación empresarial, como publicar una compilación o eliminar una cuenta. Nombra endpoints cuando aclaren el límite. En caso contrario, indica el recurso, el entorno y el efecto.
Para las tareas recurrentes, conserva un contrato estable con historial de revisiones. Un contrato recurrente no significa autoridad permanente. El operador sigue abriendo una ventana y aprobando la ejecución concreta del proceso. El texto estable reduce la ambigüedad, pero no debería convertirse en un permiso general que nadie vuelve a leer.
Una tarea bloqueada necesita una ruta de pausa segura
Los equipos crean atajos cuando un agente bloqueado no tiene una forma aceptable de detenerse. El agente puede haber recopilado la mitad de las entradas, el operador puede no estar disponible y la tarea puede parecer demasiado cercana a completarse como para abandonarla. Si las únicas opciones parecen ser «terminar ahora» o «perder todo el progreso», alguien exportará el secreto.
Construye una ruta de pausa que conserve el contexto sin conservar las credenciales. El agente registra lo que observó, la acción externa exacta que quiere realizar, las entradas no secretas necesarias para reanudar y el motivo por el que el límite de aprobación lo detuvo. Nunca debe registrar un token, una clave privada, una cabecera de autorización ni una línea de comandos que contenga un secreto.
Para una operación HTTP, el registro de pausa puede contener el método, el host, la ruta, el identificador del recurso, la clase de estado esperada y la forma de un cuerpo con los datos confidenciales ocultos. Para una operación SSH, puede contener el alias del host, el usuario remoto si no es sensible, el comando previsto, la salida esperada y el resultado de la verificación del host. El operador puede inspeccionar ese registro antes de abrir la ventana siguiente.
Una nota de transferencia útil podría ser esta:
State: held
Reason: planned cleanup target was absent; agent found a second temporary resource.
Observed: tmp-4821 absent, tmp-5930 created by the same failed release.
Requested next action: delete tmp-5930 after operator confirms it belongs to this incident.
No external write occurred after the original target check failed.
Evidence to review: deployment query result and resource metadata IDs.
Esta nota le da al siguiente operador una decisión real. Puede autorizar la segunda eliminación, rechazarla o pedir una exploración adicional. El agente no puede reinterpretar en silencio «eliminar el recurso temporal indicado» como «eliminar cualquier cosa parecida».
No permitas que el agente siga reintentando una operación rechazada. El rechazo puede significar que el operador detectó una discrepancia, que la bóveda se bloqueó o que la compuerta por llamada exigía una decisión que nunca llegó. Los bucles de reintento convierten una pausa clara en una pila de avisos. Trata el rechazo como un estado de detención, salvo que el operador vuelva a autorizar explícitamente la misma acción.
La misma regla se aplica cuando una llamada a la API agota el tiempo de espera después de una solicitud de escritura. El agente no debe suponer que falló y repetir la solicitud. Siempre que sea posible, debería consultar el estado resultante con una lectura segura, registrar la ambigüedad y esperar si la operación podría haber tenido éxito. Las escrituras duplicadas causan algunos de los incidentes más tediosos, porque parecen inofensivas en el registro de comandos hasta que el sistema externo se pone al día.
Revisa las pruebas antes de la siguiente ventana de acceso
El equipo debería revisar los resultados al final de una ejecución antes de conceder nueva autoridad para un trabajo relacionado. Esa revisión detecta desviaciones mientras el operador aún recuerda por qué se realizó la acción. Si se espera hasta el final de la semana, el ticket, el chat, el terminal y la transcripción del agente contarán historias ligeramente distintas.
El revisor debería comparar las pruebas con el contrato de ejecución, no con la sensación general de que la tarea parece terminada. Comprueba los objetivos reales, las acciones que tuvieron éxito, las que fallaron, los identificadores devueltos y cualquier llamada que se saliera de la secuencia prevista. Un fallo puede ser aceptable. Un objetivo sin explicación no lo es.
Mantén la revisión breve, pero concreta:
- ¿El agente contactó solo con los entornos y hosts aprobados?
- ¿Cada escritura coincidió con una acción permitida o recibió su propia aprobación?
- ¿El sistema externo devolvió los identificadores de recursos o solicitudes esperados?
- ¿El agente se detuvo en cada condición de pausa indicada?
- ¿La tarea de seguimiento necesita un contrato nuevo en vez de una ampliación de este?
Revisar el resultado no es lo mismo que revisar la autoridad. Un registro de sesión puede mostrar que un proceso recibió aprobación a las 10:02 y terminó a las 10:19. Un registro de acciones puede mostrar las operaciones individuales de API y SSH realizadas dentro de esa sesión. Necesitas ambas perspectivas para responder si el proceso hizo únicamente lo que permitía la ejecución.
Un registro de auditoría encadenado mediante hashes añade una propiedad independiente: hace detectable una modificación posterior. Sallyport mantiene las vistas de sesiones y actividad proyectadas desde un registro de auditoría cifrado y ciego para escritura, y sp audit verify puede verificar esa cadena sin conexión sobre el texto cifrado, sin acceso a la clave de la bóveda. Esto resulta útil cuando alguien necesita establecer si un registro cambió después de un evento, pero no sustituye la lectura del resultado por parte de un operador mientras los hechos siguen recientes.
Usa la revisión para mejorar el contrato siguiente. Si todas las ejecuciones se pausan porque se omitió una consulta de metadatos inofensiva, incluye esa consulta la próxima vez. Si un trabajo recurrente solicita aprobación por llamada para un endpoint de solo lectura, pasa esa credencial a la clase de sesión normal. Si los revisores detectan escrituras inesperadas una y otra vez, reduce las instrucciones del agente y el alcance de las credenciales antes de volver a ejecutarlo.
Las pruebas contra manipulaciones ayudan después de una disputa, no antes
Un registro que evidencia manipulaciones ofrece al equipo una forma de comprobar si su historial conserva la continuidad. No decide si una acción estaba autorizada, era sensata o resultaba segura. Tratar las pruebas de auditoría como un control preventivo lleva a los equipos a aprobar ejecuciones amplias porque creen que podrán aclararlo todo más tarde.
La diferencia importa en un incidente real. Imagina que una sesión de agente contacta con la API de despliegue esperada y después envía una eliminación contra un recurso inesperado. Un registro encadenado puede ayudar a establecer que la solicitud de eliminación apareció en la secuencia registrada. No puede restaurar el recurso eliminado, explicar por qué el proceso recibió una autoridad amplia ni demostrar que el operador pretendía incluir ese recurso en el alcance.
Usa la verificación de auditoría cuando necesites conservar el registro antes de escalar un incidente, transferir una investigación o revisar una ejecución sospechosa. Ejecuta el verificador sobre el material de registro conservado, registra si tiene éxito y guarda ese resultado de verificación junto a las notas del incidente. No edites ni «limpies» manualmente las entradas de actividad para que un informe resulte más fácil de leer. Las notas explicativas deben ir junto al registro, no dentro de él.
La cadena también cambia la forma en que los equipos deberían gestionar el acceso a los registros. Algunas personas suponen que el cifrado vuelve inútil un registro sin descifrado inmediato. Un verificador capaz de comprobar la continuidad de la cadena sobre texto cifrado permite a un investigador establecer un hecho limitado pero importante sin abrir la bóveda: si el registro cifrado conservado sigue encajando en la secuencia. Mantén clara la diferencia. La verificación comprueba la continuidad de la integridad; el descifrado revela el contenido; ninguno de los dos concede derecho a realizar otra acción.
Un equipo que planifica ventanas de desbloqueo, identifica los procesos de los agentes, usa compuertas por llamada para las autoridades importantes y revisa los resultados sin demora necesitará menos veces las pruebas de auditoría. Cuando necesite el registro, también tendrá el contrato de ejecución y las notas de pausa necesarias para interpretarlo. Un registro sin contexto de aprobación te dice qué ocurrió. Un registro acompañado de un plan de trabajo disciplinado te dice si el equipo lo permitió por una razón.
El primer cambio puede ser pequeño: exige una condición de pausa escrita antes de que alguien desbloquee credenciales locales para un agente. Esa línea obliga al equipo a decidir qué debe hacer el agente cuando la tarea deja de coincidir con el plan. También elimina la excusa habitual para exportar un secreto cuando el trabajo se vuelve incómodo.
FAQ
¿Debería un operador dejar desbloqueada todo el día una bóveda local de credenciales?
No. Desbloquea la bóveda solo cuando haya un operador responsable disponible para supervisar el tipo de trabajo que realizará el agente. Una bóveda abierta porque alguien podría necesitarla más tarde convierte un acto de autorización deliberado en un estado permanente de fondo.
¿Qué debe cubrir la aprobación de una sola ejecución de agente?
Considera la aprobación de la sesión como el consentimiento para que un proceso de agente identificado realice la ejecución indicada. Debe terminar cuando el proceso se cierre, cuando el operador la revoque o cuando el trabajo cambie de forma importante. No trates una solicitud nueva en un terminal reutilizado como una aprobación nueva sin comprobar qué proceso sigue siendo el propietario de la sesión.
¿Qué acciones de un agente necesitan aprobación en cada ocasión?
Usa la aprobación por llamada para acciones cuyo resultado pueda tener una consecuencia externa inmediata, como una escritura en producción, la publicación de una versión o una solicitud administrativa destructiva. No la exijas para llamadas de lectura inofensivas solo porque el sistema lo permita. Los avisos constantes acostumbran a los operadores a aprobar sin leer.
¿Qué ocurre cuando una tarea autónoma necesita credenciales fuera del horario laboral?
La respuesta más segura es pausar la tarea, registrar su estado actual y esperar a la siguiente ventana de acceso con personal disponible. Si el trabajo tiene un plazo real, el operador responsable puede abrir una ventana nueva y breve, y aprobar una continuación claramente delimitada. No resuelvas el retraso copiando un token en un archivo o en un chat.
¿Qué debe incluir el contrato de ejecución de un agente de IA?
Un buen contrato de ejecución indica quién es el operador, cuál es el propósito, qué entorno es el objetivo, qué tipos de acciones están permitidos, cuáles son las condiciones de pausa, qué cambios externos se esperan y en qué momento se revisará el resultado. Le da al operador algo concreto con lo que comparar el registro de actividad. El título de un ticket rara vez contiene suficiente detalle.
¿Por qué registrar por separado las sesiones de los agentes y las llamadas individuales que usan credenciales?
Necesitas ambos porque responden a preguntas distintas. El registro de sesión indica qué proceso de agente recibió autoridad y cuándo terminó esa autoridad. El registro de acciones indica qué pidió realmente ese proceso a un sistema que requería credenciales. Cuando ocurre un incidente, uno no puede sustituir al otro.
¿Es seguro el reenvío del agente SSH para agentes autónomos de programación?
No lo permitas de forma predeterminada. El reenvío del agente SSH permite que una máquina remota solicite firmas a tu agente local, lo que amplía el lugar desde el que un atacante puede ejercer tu autoridad. Usa una ruta SSH directa y con un objetivo delimitado y explícito.
¿Cómo puedo comprobar que estoy aprobando el proceso de agente correcto?
Apruébalo solo cuando puedas identificar el ejecutable y su autoridad de firma de código, y cuando la ejecución tenga un propósito escrito y un objetivo delimitado. El nombre del proceso, por sí solo, demuestra muy poco, porque cualquier programa puede elegir un nombre amistoso. La pantalla de aprobación debería ayudar al operador a responder quién inició este proceso y qué puede hacer ahora.
¿Cuándo debería un equipo revisar los resultados de un agente?
Revisa los resultados antes de volver a abrir el acceso para la siguiente tarea relacionada, sobre todo después de realizar escrituras. Compara los recursos modificados, los identificadores devueltos, los fallos y los destinos inesperados con el contrato de ejecución. Si el resultado difiere, revoca la sesión e investiga antes de conceder más autoridad al agente.
¿Un registro de auditoría que evidencia manipulaciones evita las malas acciones de un agente?
No. Un registro que evidencia manipulaciones ayuda a establecer qué ocurrió después de una disputa, pero no puede detener una autorización demasiado amplia mientras está activa. La prevención depende de ventanas de desbloqueo breves, aprobaciones de ejecución delimitadas y compuertas por llamada para las acciones que requieren criterio humano.