Se ejecuta automáticamente
La llamada pasa directamente. Para lecturas y escrituras rutinarias en las que ya decidiste confiar.
gmail.list_messages
Conecta una herramienta una vez para toda la empresa. Los agentes acceden a ella mediante un único token con alcance que Kortix gestiona en el servidor, por lo que la credencial sin procesar nunca llega a la máquina que controla el modelo.
connector.call("gmail", "send_email", {…})
KORTIX_TOKEN=kortix_pat_…
Un token limitado y nada más
Cada acción que expone un conector recibe una de tres respuestas, y tú las defines. Una herramienta a la vez o un patrón que cubra cien: un glob por defecto, o una expresión regular cuando la envuelves entre barras.
La llamada pasa directamente. Para lecturas y escrituras rutinarias en las que ya decidiste confiar.
gmail.list_messages
La ejecución se detiene en la llamada y espera. Una persona la aprueba una vez, la aprueba durante el resto de la sesión o la rechaza.
gmail.send_email
La acción no está disponible y ninguna aprobación puede habilitarla en ese momento. Eliminar un cliente queda descartado.
stripe.delete_customer
Una herramienta en Default no tiene una regla propia y usa el valor predeterminado del proyecto. Hasta que definas ese valor como de riesgo —las lecturas se ejecutan y las escrituras y acciones destructivas preguntan—, un proyecto sin cambios lo ejecuta todo.

Una barrera que genera un error enseña al agente a reintentarlo. Una barrera de Kortix mantiene abierta la llamada, así que el agente sigue en mitad de la tarea cuando respondes y continúa exactamente donde se detuvo.
running
El agente redacta la respuesta y llega a send_email.
waiting
La llamada queda retenida. Ves la acción y sus argumentos.
approved
Apruebas. La misma llamada se completa y la ejecución continúa.
Una regla basada en el nombre de la herramienta solo puede preguntar «¿puede el agente enviar un correo?», que rara vez es la pregunta correcta. Una condición apunta a un valor dentro de la llamada y lo compara con un glob o una expresión regular, de modo que una regla puede permitir envíos a tu propio dominio y detener todo lo demás. Un argumento de lista solo pasa cuando todos sus elementos pasan, así que un destinatario fuera de la lista basta para retener la llamada. Todo lo que la regla no puede decidir se resuelve hacia un menor acceso, nunca hacia uno mayor.
Las reglas de todo el proyecto se evalúan primero y no pueden ser anuladas por quien añada un conector después.
Un conector pertenece al proyecto, no a un portátil ni a un inicio de sesión. Añádelo una vez y todas las sesiones que inicie ese proyecto podrán acceder a él, sin una segunda configuración ni claves compartidas por mensaje directo.
Elige la app, completa su pantalla de OAuth y listo. Kortix guarda la conexión, no tu contraseña: Gmail, Notion, Linear, Salesforce, HubSpot, Zendesk, Google Drive y miles más.
Indica a Kortix una especificación de OpenAPI o Postman, un endpoint de GraphQL, un servidor MCP remoto o una URL base HTTP. Lee la fuente, determina la autenticación y convierte cada operación en una herramienta.
Slack y el correo se conectan igual, para que un agente pueda recibir mensajes y responder donde ya ocurre el trabajo.

Un sandbox es una máquina Linux real donde el modelo puede ejecutar cualquier cosa. Por eso no ponemos tus credenciales allí. El sandbox contiene exactamente un token de Kortix, limitado al proyecto, y cada llamada saliente se prepara de nuestro lado del muro.
Cada clave se encuentra en el entorno que lee el modelo. Revocar una implica rotarla en todos los lugares donde se copió, y cualquiera puede terminar en una línea de registro.
Limitado a un proyecto y restringido nuevamente según lo que el agente puede tocar. Desactivar un conector surte efecto en la siguiente llamada. No hay que rotar nada en el sandbox, porque allí nunca hubo ningún secreto tuyo.
connector.call("gmail", "send_email", {…})
El agente llama a una herramienta. Indica el conector y la acción; no tiene URL, host ni clave.
POST /v1/connectors/call
La gateway comprueba que este agente pueda usar este conector, resuelve la política, descifra la credencial en el servidor y la adjunta a la solicitud saliente.
Authorization: Bearer ••••••••
La API de terceros ve una solicitud autenticada normal. La respuesta vuelve al agente. La credencial permanece protegida.
Las credenciales de los conectores se cifran con una clave por proyecto y se almacenan aparte de los valores que el sandbox puede leer.
El secreto se adjunta a una solicitud saliente y se descarta. Nunca se escribe en el entorno del sandbox.
El modelo nunca ve una credencial, y el registro guarda un hash de las entradas, no las entradas mismas.
El acceso se concede, no se hereda. Un agente obtiene los conectores que le asignas y nada más; el acceso efectivo siempre es la intersección de lo que puede hacer la persona y lo que se concedió al agente.
Un conector vive en un proyecto. Otro proyecto no puede verlo, llamarlo ni leer su credencial: cada proyecto tiene su propio radio de impacto.
Cada agente enumera los conectores que puede usar. El agente de soporte accede a Zendesk y Gmail; el de informes no accede a ninguno de los dos ni puede descubrir que existen.
Elige a quién pertenece la conexión: una cuenta gestionada por el proyecto que todos comparten, o una autorización personal donde cada miembro actúa como sí mismo y una identidad automatizada no puede actuar en absoluto.
[[agents]]
name = "support"
connectors = ["zendesk", "gmail"]
[[agents]]
name = "recruiting"
connectors = ["greenhouse", "gmail"]
[[agents]]
name = "reporting"
connectors = ["warehouse"]Los permisos son texto en el repositorio, así que un cambio sobre quién puede acceder a qué es un diff que alguien revisa, no un ajuste que cambió silenciosamente.
La gateway que resuelve la credencial también es la que escribe el registro. No existe ninguna ruta hacia una herramienta conectada que la omita.
El conector y la acción exacta que se llamó.
El agente y la persona o el activador detrás de la sesión.
Ejecutado, rechazado, esperando aprobación o con error.
Si la acción lee, escribe o destruye.
Quién liberó una llamada retenida y cuándo.
Un hash de los argumentos y un resultado redactado, nunca un secreto sin modificar.
Consulta el historial de cualquier sesión dentro de la app. El acceso a la auditoría forma parte de Enterprise.
Empieza con una tarea y crece desde ahí.