BLOG
Cómo está cableado el agente
- arquitectura
- gobernanza
El agente es el núcleo gobernado de la plataforma. Todo lo que un agente de T6X puede hacer pasa por el mismo cableado: un permiso que se consulta, una compuerta que puede suspender el turno, un intermediario que sostiene las credenciales que el agente nunca ve, y una traza encadenada por hash que registra lo que ocurrió.
Este texto recorre ese cableado. No es una lista de características, es el camino que hace una llamada a herramienta desde que el modelo la pide hasta que se ejecuta, con los componentes que la pueden detener en cada tramo.
Una premisa antes de empezar, porque ordena todo el diseño: asumimos que el modelo va a ser convencido de hacer algo que no debería. La inyección de prompts es un problema abierto en toda la industria y nadie ha publicado una solución. Así que ningún control de este sistema vive en el prompt. Los componentes que dicen que no son un ejecutor en Rust, un intermediario, un rol de base de datos y un predicado SQL, y a ninguno se le puede pedir un favor.
El turno
Un turno es la unidad de gobierno. Todo lo que el agente decide hacer ocurre dentro de uno, y el estado que lo regula se toma al principio y no cambia a mitad de camino.
Vale la pena detenerse en el tercer paso, porque es donde la mayoría de los sistemas confía de más.
Un servidor MCP describe sus propias herramientas, incluido si cada una lee o escribe. Creerle sin más significa que un servidor puede marcar como de solo lectura una herramienta destructiva y saltarse la compuerta de aprobación con solo declararlo. Por eso el efecto que se usa en ejecución viene del catálogo del operador y no de la autodescripción del servidor, y una herramienta cuyo efecto no se puede resolver se deniega en lugar de suponerse inocua.
El mismo principio recorre todo el camino: nada aguas abajo cree una afirmación hecha por aquello que se supone que debe gobernar.
Las credenciales de terceros nunca entran al proceso
Cuando el agente usa una integración, un CRM externo, un repositorio, un servicio de correo, no marca contra ese servicio. Sostiene un token de intermediación y pide. El intermediario hace la conexión real.
Dos detalles de esa figura hacen el trabajo pesado.
Los parámetros ligados a identidad se eliminan del esquema que el modelo ve. No es que el modelo no deba usarlos, es que no sabe que existen. El intermediario los inyecta a partir de la identidad verificada, así que apuntar a los datos de otro tenant no es una acción que el modelo pueda formular.
El efecto declarado de una herramienta no se cree del servidor que lo declara. Los efectos vienen del catálogo del operador, y un efecto desconocido se deniega en lugar de asumirse. Un servidor que se anuncia como de solo lectura no obtiene por eso el trato de solo lectura.
La escalada a shell
Ejecutar un comando es la capacidad más delicada, así que es la que más pasos tiene. En el nivel compartido el agente no recibe un shell: el comando sale a un contexto de un solo uso que se crea para esa llamada y se destruye con ella.
Dos escritores, un prefijo
El paso 2 de esa figura merece su propia explicación, porque resuelve un problema que no es evidente hasta que lo sufres.
El espacio de trabajo de una sesión tiene su verdad en el almacenamiento de objetos y se materializa localmente. Un supervisor lo mantiene sincronizado, y empuja tanto escrituras como borrados. Cuando el comando escala, ese contexto baja el espacio de trabajo, corre y sube resultados. Ahora hay dos escritores sobre un mismo prefijo, y cada subida de uno parece un borrado del otro.
Tres propiedades sostienen el arrendamiento. La pausa se confirma en vez de suponerse, porque solo el supervisor sabe cuándo terminó su vaciado. El retorno es primero de bajada, porque la vista local quedó obsoleta y retomar subiendo borraría justo lo que el comando produjo. Y el vencimiento vive del lado del supervisor, porque un arrendamiento que solo su portador puede liberar es un bloqueo esperando un desalojo.
Dónde vive cada cosa
El bucle del agente hace la llamada al modelo, lo cual tiene una consecuencia directa: la credencial del proveedor tiene que estar donde corre el bucle. Por eso el nivel por defecto lo saca del sandbox.
Hay una última capa que no aparece en ninguna figura porque no es un camino, es una propiedad: las sesiones corren contra un rol de base de datos restringido y sin herencia, con la escritura directa al archivo de sesiones denegada. El arranque falla antes que degradar a un rol más amplio. Un agente completamente comprometido, ejecutando SQL arbitrario, sigue sin poder reescribir el registro de lo que hizo.
En resumen
| Mecanismo | Qué impone | Cómo falla |
|---|---|---|
| Instantánea de permisos | El estado del turno no cambia a mitad de turno | Una lectura fallida rechaza todo el turno |
| Resolución de efecto | El efecto lo fija el operador, no el servidor | Un efecto desconocido se deniega |
| Compuerta de aprobación | Escrituras y ejecución esperan a una persona | Sin fila, pide; en deny, ni aparece |
| Intermediación | Las credenciales de terceros no entran al proceso | Marcador incrustado: se rechaza la llamada |
| Identidad de un solo uso | Un permiso, un prefijo, una llamada | Se revoca en toda salida |
| Arrendamiento del espacio | Un solo escritor sobre el prefijo | Sin confirmación: no corre el comando |
| Rol restringido | La historia no se puede reescribir | El arranque falla antes que ampliar permisos |
| Traza encadenada | Cada decisión enlaza el hash de la anterior | Se verifica al abrir |
La línea de fondo es la que ordena todo el diseño: cada límite vale exactamente lo que vale después de que el modelo fue convencido de atacarlo. Con ese criterio, los controles que sirven no son los que le piden algo al agente, son los que están implementados como la ausencia de un camino. Un canal por sesión. Una ruta reclamada. Un ejecutor que niega por defecto. Un arrendamiento confirmado. Un rol que no puede concederse más permisos a sí mismo.
Ese es el cableado sobre el que se construye el resto de la plataforma.