Usar un agente de programación instalado como modelo de chat
Si ya pagas por un agente y ha iniciado sesión en la máquina que ejecuta Libre WebUI, puedes hablar con él desde un chat normal sin añadir otra clave API. Libre WebUI detecta su CLI y la ofrece en el selector.
Qué se detecta
En cada solicitud de modelos, Libre WebUI busca estos comandos en el PATH del servidor:
| Modelo | Comando | Proveedor |
|---|---|---|
| Claude Code | claude | Anthropic |
| Codex | codex | OpenAI |
| Kiro | kiro-cli | AWS |
| Muse Code | muse | Meta |
| OpenCode | opencode | SST |
| Pi | pi | Mario Zechner |
Lo encontrado aparece en Agentes. No se instala nada ni hace falta configuración: si el comando funciona en el shell del servidor, aparece.
Configuración → Chat → Predeterminados también identifica estas entradas como Agente, incluido Strands cuando tu cuenta puede usarlo. Los modelos de plugins conservan el nombre del proveedor; solo los de Ollama llevan esa etiqueta. Desactivar Ollama no oculta agentes ni plugins configurados. La tarjeta muestra el nombre y proveedor de la entrada seleccionada, con tamaño, familia y formato solo si el catálogo los proporciona.
Elegir un modelo, no solo una CLI
Cada CLI puede exponer varias entradas en el grupo Agentes:
- Claude Code ofrece el predeterminado y Sonnet, Opus y Haiku,
además de las opciones explícitas Sonnet 5.5 (
claude-sonnet-5-5), Opus 5.5 (claude-opus-5-5) y Haiku 5.5 (claude-haiku-5-5). Sonnet 5.5 requiere Claude Code 2.1.284 o posterior, Opus 5.5 requiere Claude Code 2.1.280 o posterior y Haiku 5.5 requiere Claude Code 2.1.293 o posterior, todos con acceso mediante la cuenta con sesión iniciada; ejecuteclaude updatepara actualizar la CLI. Los alias Sonnet, Opus y Haiku existentes siguen usando la asignación de modelos actual de la CLI. - Codex ofrece el predeterminado y GPT-6 Astra, GPT-6.1 Sol (
gpt-6.1-sol), GPT-6 Sol, GPT-6 Luna, GPT-5.6 Sol, Terra, Luna, GPT-5.5 y GPT-5.3 Codex Spark. La disponibilidad depende de la sesión de la CLI y del acceso de la cuenta. - Kiro lista los modelos que puede usar su cuenta con sesión iniciada (de
kiro-cli chat --list-models) junto a su predeterminado configurado. Cada turno se ejecuta de forma no interactiva en el motor de agentes V3 de la CLI con su agente predeterminado integrado (vibe) fijado, así que unchat.defaultAgentpersonalizado no se aplica. Requiere Kiro CLI 2.27 o posterior. - Muse Code ofrece su predeterminado configurado más Muse Spark 1.3
(
muse-spark-1.3), Muse Spark 1.3 Contributor (muse-spark-1.3-contributor) y Muse Wonder 1.0 (muse-wonder-1.0). Inicia sesión conmuse login(una cuenta de Meta) o con una clave de la Meta Model API deMETA_API_KEYomuse auth set. Los modelos Contributor se facturan a una tarifa menor porque Meta puede entrenar con lo que les envías. - Pi usa el modelo configurado en su CLI.
- OpenCode lista los modelos de los proveedores autenticados (
opencode models) y exige una selección explícita.
El motor Strands integrado también aparece en el grupo Agentes cuando tu cuenta puede usarlo. No es un CLI: se ejecuta dentro del backend y usa tus modelos de Ollama y de plugins de proveedores. La entrada simple Strands (strands) usa tu modelo de chat predeterminado. Las demás entradas (strands:<route>) muestran una opción por cada modelo disponible, por ejemplo Strands · gpt-5.6-sol (Codex (ChatGPT)), y fijan tanto el modelo como su proveedor para esa conversación; otro proveedor disponible no puede sustituirlo durante una caída. Listar las opciones no inicia el motor.
Las mismas entradas Strands sirven como modelo de tareas en Configuración → Chat → Predeterminados para títulos automáticos y resúmenes de razonamiento. Usar el modelo en ejecución utiliza la selección Strands guardada de la conversación. Estas solicitudes breves de texto llaman directamente al modelo subyacente del proveedor; no ejecutan las herramientas del agente ni crean una sesión de agente. Los demás perfiles CLI necesitan un modelo de tareas de Ollama, de plugin o de Strands para estas solicitudes auxiliares.
Pi ejecuta cada turno sin estado (--no-session), sin herramientas locales y con un mensaje neutro, por lo que no toca la configuración personal del usuario del servidor.
Kiro es lo contrario en ambos aspectos: se ejecuta con la configuración de Kiro del
usuario del servidor — el agente predeterminado integrado queda fijado, pero las reglas
de permisos (~/.kiro/settings/permissions.yaml), los servidores MCP y el modelo
predeterminado configurado siguen aplicándose — y cada turno se guarda como una sesión
nueva en el almacén de sesiones de Kiro de ese usuario (kiro-cli chat --list-sessions
la muestra, con la transcripción reciente del chat dentro). No hay ninguna opción para
desactivarlo, así que el contenido del chat también queda en el directorio personal del
usuario del backend, fuera de la base de datos de Libre WebUI. Las herramientas de Kiro
siguen activadas: todo lo que esas reglas de permisos consideran de confianza — por
defecto, lecturas y comandos de solo lectura como date — se ejecuta sin preguntar, y
cualquier llamada a herramienta que requiera aprobación se rechaza, porque un turno de
chat no puede responder a la solicitud.
Muse Code lee el mensaje desde un archivo privado y se ejecuta sin interfaz con las
aprobaciones desactivadas (--approval-mode never), ya que un turno de chat no puede
responder a una solicitud de aprobación. Su propio sandbox sigue activado y cada turno
recibe un espacio de trabajo temporal que se elimina después, así que sus escrituras de
archivos no pueden acabar en el directorio personal del usuario del servidor. Los turnos no
se guardan en el registro de sesiones de Muse (--no-session-log), pero sí se aplican la
configuración, las reglas y el modelo predeterminado de Muse del usuario del servidor.
Uso
- Inicia sesión como administrador.
- Abre un chat y el selector.
- Elige una entrada de Agentes.
- Envía mensajes normalmente; las respuestas fluyen token a token.
La conversación se guarda como cualquier chat. Cada turno envía una transcripción reciente al agente.
Quién puede usarlo y a qué accede
Esta función es exclusiva de administradores, por un motivo importante. El agente se ejecuta en el host con el mismo usuario del sistema que el backend Libre WebUI, no dentro de un contenedor Work. Hereda las credenciales de agentes de ese usuario y su acceso habitual, incluida la capacidad de leer archivos y ejecutar comandos en el servidor si lo decide.
Considera la activación equivalente a conceder acceso shell al agente. Por eso se distribuye desactivada: un administrador debe habilitarla en Configuración → Gestión de usuarios → Acceso y políticas → Modelos de agentes CLI. El ajuste se guarda y entra en vigor inmediatamente, sin reiniciar.
Cambiar este control actualiza el catálogo de modelos inmediatamente; la categoría Agentes contiene las entradas CLI directas, mientras que Modelos de plugins contiene integraciones API de proveedores como Codex (ChatGPT). Strands aparece en la misma categoría, pero sigue su propio ajuste de acceso Motor Strands y no este interruptor, así que puede aparecer aunque los modelos de agentes CLI estén desactivados. Su detección de modelos no puede bloquear la detección de los agentes CLI instalados.
Las instalaciones existentes heredan su decisión anterior de Agentes hasta guardar un ajuste CLI independiente.
Para fijar la decisión en el despliegue:
AGENT_CLI_MODELS_ENABLED=false # or true
Para actuar sobre archivos dentro de un sandbox, usa Work.
Los mismos agentes en Work
Work ofrece los mismos agentes con las mismas opciones de modelo y las mismas sesiones, pero los ejecuta dentro del sandbox de la tarea en lugar de en el host, detrás de un proxy de salida que mantiene los tokens reales fuera del sandbox. Tienen su propio modo de acceso, CLI de agentes en Work, y no necesitan el interruptor anterior. Consulta CLI de agentes en Work.
Seguimiento del uso
Abre Uso del proveedor (/usage) y busca Agentes cerca de la parte superior. Claude Code, Codex, Kiro, Muse Code, OpenCode, Pi y Strands tienen entradas explícitas, incluido un mensaje claro si no hay llamadas registradas en el período.
Las llamadas CLI realizadas desde LWUI registran resultado, duración y tokens reportados. Cada invocación crea un evento; las instantáneas repetidas y los informes por paso no duplican eventos ni contadores. Los contadores ausentes quedan sin reportar. Detener una respuesta registra cancelación, y una salida CLI fallida no pasa a ser correcta solo porque produjo texto parcial. No se importa el uso de llamadas CLI externas a LWUI.
Las llamadas de Strands se atribuyen al agente Strands. Consulta Uso de agentes para el desglose y los límites.
Configuración
| Variable | Predeterminado | Propósito |
|---|---|---|
AGENT_CLI_MODELS_ENABLED | sin definir | Fijar true/false; sin valor usa el interruptor de administración |
AGENT_CLI_TIMEOUT_MS | 600000 | Duración máxima de un turno antes de terminarlo |
Solución de problemas
No aparece el grupo Agentes. Comprueba que la función esté activada en Configuración → Gestión de usuarios → Acceso y políticas → Modelos de agentes CLI (está desactivada por defecto) y que hayas iniciado sesión como administrador. Después verifica que el comando esté en el PATH del proceso backend, no solo en el shell interactivo. Un servicio, contenedor Docker o lanzador de escritorio suele tener un PATH mucho menor que un terminal de inicio de sesión.
La respuesta falla de inmediato. Ejecuta el comando como usuario del servidor (claude -p "hello",
codex exec "hello", muse exec "hello" o
echo hello | kiro-cli chat --no-interactive --output-format stream-json --agent-engine v3 --agent vibe).
Se requiere Kiro CLI 2.27 o posterior; una CLI más antigua falla aquí primero, donde su
error es visible — en el chat el mismo fallo solo aparece como
Kiro exited unsuccessfully. Suele ser una sesión caducada o un límite del abono. Para OpenCode, repite
opencode auth login como usuario del servidor. Kiro inicia sesión con
kiro-cli login; una sesión caducada falla de la misma forma. Muse Code indica
missing meta credentials hasta que se ejecuta muse login como usuario del servidor.
La respuesta se detiene. Puede haber alcanzado AGENT_CLI_TIMEOUT_MS; auméntalo o divide la petición.