Skip to main content
Con POST /api/v1/milian/ask o la herramienta MCP ask_milian, Milian responde preguntas, analiza datos autorizados y recomienda próximos pasos. No modifica recursos del espacio de trabajo.

Autorización y créditos

Antes de cada pregunta, informa al usuario de que Milian consume créditos adicionales y obtén su autorización explícita. Establece confirmed en true solo después de esa autorización. Conectar un cliente o conceder acceso no autoriza futuras preguntas de pago. El uso se cobra al espacio de trabajo activo a las mismas tarifas que Milian en el panel. Los créditos disponibles se comprueban antes de generar. La respuesta muestra los créditos realmente cobrados; el trabajo completado puede cobrarse aunque falle un paso posterior. Cada pregunta adicional o reintento es una nueva consulta de pago: no reintentes automáticamente.

Acceso y solicitud

Usa una clave API del espacio de trabajo o un token OAuth con milian:write y los permisos de lectura necesarios, como calls:read. En OAuth, selecciona Milian y los grupos de datos que deseas analizar. Milian es opcional y no forma parte de los siete grupos predeterminados ni del perfil público Assistant History. Los roles Viewer y Billing no pueden iniciar preguntas de pago. Las preguntas son independientes y no se añaden al historial del panel. Incluye el contexto necesario.
Envía este cuerpo con autenticación Bearer al endpoint indicado, tras obtener autorización. Bajo data, la respuesta incluye la referencia id, answer, los credits realmente cobrados, status y billing_complete. Comprueba ambos indicadores. Créditos insuficientes antes de comenzar devuelven HTTP 402, falta de autorización HTTP 400 y permisos insuficientes HTTP 403. Consulta Herramientas y permisos MCP.

Chat de voz (beta)

Crea la misma conexión con la CLI: famulor create-milian-voice-session --approve-credit-usage --context '{"locale":"es"}'. Pasa la URL y los protocolos a tu cliente de voz. La CLI crea la sesión; el cliente conectado envía audio, contexto de página o imágenes de pantalla según el protocolo siguiente. Inicia una sesión con POST /api/v1/milian/voice-sessions o create_milian_voice_session. Activa las funciones beta y usa una credencial de usuario con milian:write y un rol con permiso de escritura. Las herramientas conservan los permisos y grupos OAuth de la credencial. Cada sesión inicia una conversación nueva, sin cargar memorias privadas ni chats anteriores del panel. Explica que la voz y el análisis de pantalla consumen créditos adicionales y solicita aprobación explícita para esta sesión antes de enviar {"approve_credit_usage":true,"context":{"locale":"es"}}. Una sesión nueva o un reintento requieren otra aprobación. Esta aprobación no autoriza compras, publicaciones, cambios destructivos ni comunicaciones externas. Conecta dentro de expires_in segundos con new WebSocket(data.url, data.protocols). La conexión es de un solo uso; protege los protocolos como credenciales temporales. Los navegadores usan el mismo origen que la URL; los clientes nativos pueden omitir la cabecera Origin. Tras ready, envía {"type":"audio","audio":"BASE64"} como PCM16 mono little-endian a 16 kHz. El audio recibido usa 24 kHz. Vacía la reproducción al recibir interrupt. Texto: {"type":"text","text":"Ayúdame con este ajuste"}. Envía {"type":"ping"} cada diez segundos. Al silenciar o pausar el micrófono, envía una vez {"type":"audio-pause"} para finalizar el segmento de audio actual. El texto sigue disponible; reanuda enviando audio de nuevo. Tras seleccionar explícitamente la pantalla, envía como máximo una captura JPEG cada doce segundos, de menos de 240.000 caracteres: {"type":"screen","image":"data:image/jpeg;base64,…"}. Envía la primera captura aproximadamente un segundo después de la aprobación, para que el selector del navegador no aparezca en la imagen. Antes de que Milian consulte la pantalla, la conexión emite {"type":"screen-request"}: responde de inmediato con una captura actual. Si no hay respuesta en dos segundos, Milian usa la captura más reciente. La captura se analiza por separado cuando la conversación necesita contexto visual; actualizarla no inicia un nuevo turno del usuario. Al dejar de compartir, envía {"type":"screen-stop"} y detén la captura para descartar la imagen actual. El audio sin procesar y las capturas no se guardan como adjuntos. Para el contexto opcional de la página, un cliente puede enviar después de ready {"type":"page-context","text":"Texto y controles visibles"}, con un máximo de 12.000 caracteres. Informa al usuario, ofrece una pausa y excluye secretos, valores de formularios y contenido oculto. Actualiza tras navegar o cambiar el contenido visible y al menos cada diez segundos; el contexto caduca después de treinta segundos. Envía {"type":"page-context-stop"} al pausar, ocultar la pestaña o salir del espacio de trabajo. Las actualizaciones son pasivas hasta que Milian consulta la página. Tras aprobar la pantalla, envía {"type":"screen-start"} para descartar el contexto antes de la primera imagen. Durante el uso compartido se ignoran las actualizaciones de página. Después de screen-stop, envía contexto nuevo para reanudar; el texto anterior no se restaura automáticamente. Procesa transcript, message, screen-status, screen-request, usage con los créditos cobrados, error y ended. Termina con {"type":"stop"}, detén los medios y espera brevemente el consumo final. La desconexión y el límite también detienen el procesamiento. max_seconds indica el límite del plan; la conexión puede acabar algo antes para guardar el consumo. Solo se permite una sesión de voz simultánea por espacio de trabajo.