Escala Vergara de Autonomía Agéntica · VAAS-1.0
Declaración de Autonomía de Koble
Qué puede hacer KobIA por su cuenta, qué no hará nunca sin una persona delante, y cómo se deshace lo que haga. Publicado porque la escala no deja reclamar un nivel de palabra.
Lo que mide el nivel es la iniciativa: lo que arranca sin que nadie se lo pida. Lo que le pide una persona del equipo en el chat es otra cosa —está ella en el bucle— y se explica más abajo.
Versión 1.1 · 2026-08-26
Niveles
Koble ofrece hasta V4. Todo espacio nuevo arranca en V0, y el nivel lo fija el propio cliente: El espacio se autogestiona hasta V3. V4 lo concede el equipo de Koble a petición del cliente; Koble no sube el nivel de nadie por su cuenta.
- V0Consulta. Responde y hace lo que le pides, pero no arranca nada por su cuenta.
- V1Asistente. Además te informa por su cuenta: el resumen diario llega sin pedirlo.
- V2Copiloto. Además revisa la operación a diario y deja propuestas concretas para aprobar.
- V3Autopiloto. Por su cuenta ejecuta lo reversible y sin efectos hacia fuera; el resto sigue pidiendo permiso.
- V4Gestor. Se le encargan objetivos de varios días y los conduce en pasos, informando del avance.
- V5Multiagente. Delegar en otros agentes bajo un coordinador, heredando todos los techos anteriores. Reservado en la escala: Koble no lo ofrece.
- V6Federado. Actuar entre organizaciones: el agente de una empresa se coordina con el de otra. Reservado en la escala: Koble no lo ofrece.
Cuando se lo pides tú
La escalera V0–V4 mide la INICIATIVA del agente: lo que hace sin que nadie se lo pida. Una acción que un miembro del equipo le pide en el chat, y para la que su rol ya tiene permiso, tiene humano en el bucle por construcción —es esa persona actuando por lenguaje natural en vez de por botón— y se ejecuta sin depender del nivel.
- Chat del panel (sesión autenticada):ejecuta hasta riesgo medio
- WhatsApp del equipo (identidad por teléfono):ejecuta hasta riesgo bajo
El techo invariante NO cede ante una orden directa: el riesgo alto y las acciones de `invariantCeiling` siguen esperando aprobación humana en la bandeja, desde cualquier superficie y en cualquier nivel.
Queda en `proposed_actions` con `autoExecuted: false` y `reviewedBy` = quien la pidió, porque no fue autonomía. El recuento de `exercisedAutonomy` solo cuenta lo que el agente comprometió por su cuenta.
Dónde está la gente, hoy
Lo que se ofrece y lo que se usa son dos cosas: esto es el recuento real de espacios por nivel. Agregado y sin nombres, y se actualiza solo.
- V31 espacio
- V02 espacios
Lo que ha hecho de verdad
Un nivel concedido no es un nivel ejercido. Esto es lo que KobIA ha comprometido sin una persona delante desde que existe la autonomía, leído de la auditoría — no lo que la configuración permite.
- 35 acciones auto-ejecutadas (2 updateTask, 3 addTag, 5 createTask, 15 scheduleFollowup, 10 updateContact) · ventana real: 2026-08-06 to 2026-09-12
- Deshacer usado: 0 veces · misiones que han corrido: 0
- Propuestas: 205 en total — 0 descartadas, 1 pendientes, 35 auto-ejecutadas.
Lo que nunca hace solo
El techo invariante: pase lo que pase y esté en el nivel que esté, esto espera a que una persona lo apruebe.
clockInOut— Requiere criterio humano en todos los niveles.createDocument— Emitir una factura es un hecho fiscal (VeriFactu): no se borra, se rectifica.reconcileBankTransaction— Casar un movimiento bancario con una factura decide qué está cobrado.registerPayment— Apuntar un cobro cambia el estado fiscal de la factura.sendPaymentReminder— Un correo de reclamación a un cliente no se puede des-enviar.
Catálogo de acciones
Todo lo que el agente puede escribir, con su riesgo y cómo se revierte. Una acción que no esté aquí se trata como riesgo alto: no se ejecuta sola nunca.
| Acción | Riesgo | ¿Se deshace? | Cómo |
|---|---|---|---|
| addDealTodo | bajo | Sí | Borrar el punto del checklist |
| addTag | bajo | Sí | Quitar la etiqueta |
| addTaskChecklistItem | bajo | Sí | Borrar el punto del checklist |
| assignConversation | bajo | Sí | Devolver la conversación a quien la tenía |
| cancelCalendarEvent | medio | Con trabajo | Volver a crear el evento con los mismos datos |
| changeContactStatus | medio | Sí | Devolver el estado anterior |
| clockInOut | alto | Con trabajo | Corregir la jornada desde el control horario (queda registrado quién y por qué) |
| commentOnTask | bajo | Sí | Borrar el mensaje del hilo de la tarea |
| createCalendarEvent | bajo | Sí | Borrar el evento |
| createContact | medio | Sí | Borrar el contacto |
| createDeal | medio | Sí | Borrar la oportunidad recién creada |
| createDocument | alto | No | Una factura emitida no se borra: se rectifica con otro documento |
| createProject | bajo | Sí | Borrar el proyecto |
| createRecurringTask | medio | Con trabajo | Borrar la serie y las tareas que ya hubiera generado |
| createTask | bajo | Sí | Borrar la tarea |
| createTaskFromConversation | bajo | Sí | Borrar la tarea |
| createWebProject | bajo | Sí | Borrar el proyecto web |
| markNotificationsRead | bajo | Sí | Devolver a no leídos exactamente los avisos que se marcaron |
| moveCalendarEvent | bajo | Sí | Devolver el evento a su hora anterior |
| moveConversationStage | medio | Sí | Devolver la oportunidad a su etapa anterior |
| organizeCompanyContacts | medio | Con trabajo | Deshacer relación por relación |
| postInternalNote | bajo | Sí | Borrar la nota del hilo |
| reconcileBankTransaction | alto | Con trabajo | Deshacer la conciliación a mano |
| registerPayment | alto | Con trabajo | Anular el cobro registrado |
| relateContacts | bajo | Sí | Borrar la relación |
| requestAbsence | medio | Con trabajo | Retirar la solicitud mientras siga pendiente |
| resolveWebComment | bajo | Sí | Devolver el comentario a pendiente |
| saveAgentMemory | bajo | Sí | Borrar el recuerdo |
| scheduleFollowup | bajo | Sí | Borrar el seguimiento programado |
| sendPaymentReminder | alto | No | Un correo enviado no se puede retirar |
| snoozeConversation | bajo | Sí | Devolver la conversación a la bandeja |
| toggleDealTodo | bajo | Sí | Devolver el punto al estado que tenía |
| toggleRecurringTask | medio | Sí | Volver a activarla (o a pausarla) como estaba |
| toggleTaskChecklistItem | bajo | Sí | Devolver el punto al estado que tenía |
| updateContact | bajo | Sí | Restaurar los valores previos guardados en la auditoría |
| updateConversationStatus | medio | Sí | Devolver el estado anterior |
| updateDealValue | bajo | Sí | Devolver el importe anterior |
| updateProject | bajo | Sí | Restaurar los valores previos guardados en la auditoría |
| updateRecurringTask | medio | Sí | Restaurar los valores previos guardados en la auditoría |
| updateTask | bajo | Sí | Restaurar los valores previos guardados en la auditoría |
| updateWebProject | bajo | Sí | Restaurar los valores previos guardados en la auditoría |
Deshacer y registro
Lo que el agente hace solo queda registrado y se puede deshacer durante 7 días desde Asistente › Propuestas. El registro guarda qué hizo, con qué datos, por qué, con qué riesgo y quién lo revisó. Mientras viva el espacio: no se purga.
Frenar
Inmediata: el nivel se lee de la base en cada ejecución, no se cachea. La siguiente acción ya se decide con el nivel nuevo.
Bajar a V0 desde Asistente › Autonomía deja el agente en solo consulta. Además, ninguna acción del techo invariante se ejecuta sola en ningún nivel, y por debajo de V3 no se auto-ejecuta nada.
Las misiones en curso se paran con el freno de mano; las propuestas ya generadas se quedan en la bandeja, que es donde no ejecutan nada.
Dónde viven los límites
En el código, no en las instrucciones del modelo. Un prompt es una petición; una rama del programa es una restricción. Estos son los ficheros que deciden, y los tests que los vigilan:
- src/lib/ai/action-risk.ts (clasificación, techo invariante y ventana de deshacer)
- src/lib/ai/autonomy.ts (escalera y niveles mínimos de cada comportamiento)
- src/lib/actions/agent-autonomy.ts (quién puede cambiar el nivel)
- src/lib/ai/action-risk.test.ts
- src/lib/ai/autonomy.test.ts
Koble declara conformidad con las siete propiedades de la escala: P1, P2, P3, P4, P5, P6, P7.