Usare un agente di programmazione installato come modello di chat
Se paghi già per un agente di programmazione e questo ha effettuato l'accesso sulla macchina che esegue Libre WebUI, puoi interagirvi da una normale chat anziché aggiungere una chiave API separata. Libre WebUI rileva l'interfaccia a riga di comando dell'agente e la propone nel selettore dei modelli come qualsiasi altro modello.
Che cosa viene rilevato
A ogni richiesta dell'elenco dei modelli, Libre WebUI cerca nel PATH del server
questi comandi:
| Modello | Comando | Fornito da |
|---|---|---|
| Claude Code | claude | Anthropic |
| Codex | codex | OpenAI |
| Kiro | kiro-cli | AWS |
| OpenCode | opencode | SST |
| Pi | pi | Mario Zechner |
Tutto ciò che viene trovato compare nel gruppo Agenti del selettore dei modelli. Non viene installato nulla e non serve alcun file di configurazione: se il comando funziona nella shell del server, viene visualizzato.
Anche Impostazioni → Chat → Predefiniti identifica queste voci come Agente, incluso Strands quando il tuo account può usarlo. I modelli plugin mantengono il nome del provider e soltanto i modelli Ollama riportano l’etichetta Ollama. Disabilitare Ollama non nasconde gli agenti o i plugin configurati. La scheda informativa del modello mostra il nome visualizzato e il provider della voce selezionata; dimensione, famiglia e formato compaiono solo se forniti dal catalogo.
Scegliere un modello, non soltanto una CLI
Ogni CLI può offrire diverse voci nel gruppo Agenti:
- Claude Code propone il valore predefinito dell'account connesso, oltre a Sonnet, Opus e Haiku.
Sono disponibili anche le scelte esplicite Sonnet 5.5 (
claude-sonnet-5-5), Opus 5.5 (claude-opus-5-5) e Haiku 5.5 (claude-haiku-5-5). Sonnet 5.5 richiede Claude Code 2.1.284 o successivo, Opus 5.5 richiede Claude Code 2.1.280 o successivo e Haiku 5.5 richiede Claude Code 2.1.293 o successivo, tutti con accesso tramite l'account connesso; eseguiclaude updateper aggiornare la CLI. Gli alias Sonnet, Opus e Haiku esistenti continuano a seguire l'associazione attuale dei modelli della CLI. - Codex propone il valore predefinito configurato e la famiglia documentata per l'accesso
ChatGPT: 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 e GPT-5.3 Codex Spark. La disponibilità dipende dall'accesso della CLI e dai modelli abilitati per l'account. - Kiro elenca i modelli che il suo account connesso può usare (da
kiro-cli chat --list-models) accanto al suo valore predefinito configurato. Ogni turno viene eseguito in modo non interattivo sul motore di agenti V3 della CLI con il suo agente predefinito integrato (vibe) fissato, quindi unchat.defaultAgentpersonalizzato non si applica. Richiede Kiro CLI 2.27 o successiva. - Pi usa il modello configurato nella CLI stessa.
- OpenCode elenca i modelli di tutti i provider con cui ha effettuato l'autenticazione
(da
opencode models) e richiede sempre una scelta esplicita: il suo valore predefinito a livello di CLI può puntare a un server locale non raggiungibile dall'host di Libre WebUI.
Anche il motore Strands integrato compare nel gruppo Agenti quando il tuo account può usarlo. Non è una CLI: gira all’interno del backend e pilota i tuoi modelli Ollama e dei plugin provider. La voce semplice Strands (strands) usa il tuo modello di chat predefinito. Le altre voci (strands:<route>) ne elencano una per ogni modello disponibile, ad esempio Strands · gpt-5.6-sol (Codex (ChatGPT)), e fissano sia il modello sia il suo provider per quella conversazione: un altro provider disponibile non può sostituirli in caso di interruzione. La consultazione delle scelte non avvia il motore.
Le stesse voci Strands possono essere usate come modello per le attività in Impostazioni → Chat → Predefiniti per titoli automatici e riepiloghi del ragionamento. Usa il modello attualmente in esecuzione usa la selezione Strands salvata nella conversazione. Queste brevi richieste di testo chiamano direttamente il modello del provider sottostante; non eseguono gli strumenti dell’agente né creano una sua sessione. Gli altri profili CLI richiedono un modello per le attività Ollama, plugin o Strands per queste richieste ausiliarie.
Pi esegue ogni turno senza stato (--no-session), con gli strumenti locali disabilitati e un
prompt di sistema neutro, così le risposte non vengono influenzate dalla configurazione personale
di Pi dell'utente del sistema operativo del server e le chat non vi accedono mai.
Kiro è l'opposto su entrambi i punti: viene eseguito con la configurazione Kiro dell'utente del
server (l'agente predefinito integrato è fissato, ma le regole di autorizzazione
(~/.kiro/settings/permissions.yaml), i server MCP e il modello predefinito configurato si
applicano comunque) e ogni turno viene salvato come nuova sessione nell'archivio sessioni Kiro di
quell'utente (kiro-cli chat --list-sessions la mostra, con la trascrizione recente della chat al
suo interno). Non esiste un flag per disattivarlo, quindi il contenuto delle chat risiede anche nella
home directory dell'utente del backend, al di fuori del database di Libre WebUI. Gli strumenti di
Kiro restano abilitati: tutto ciò di cui quelle regole di autorizzazione si fidano (per impostazione
predefinita, letture e comandi di sola lettura come date) viene eseguito senza chiedere, e qualsiasi
chiamata a strumenti che richiede approvazione viene rifiutata, perché un turno di chat non può
rispondere alla richiesta.
Utilizzo
- Accedi come amministratore.
- Avvia una chat e apri il selettore dei modelli.
- Scegli una voce in Agenti.
- Invia normalmente i messaggi. Le risposte vengono trasmesse in streaming token per token.
La conversazione viene archiviata come qualsiasi altra chat: puoi lasciarla e riprenderla, rinominarla e cercarla dalla tavolozza dei comandi. Ogni turno invia all'agente una trascrizione della conversazione recente e ne trasmette la risposta in streaming.
Chi può usarlo e a che cosa può accedere
Questa funzionalità è riservata agli amministratori, per un motivo importante. L'agente viene eseguito sull'host come lo stesso utente del sistema operativo che esegue il backend di Libre WebUI, non all'interno di un container Work. Eredita quindi le credenziali dell'agente di quell'utente e tutto l'accesso di cui dispongono normalmente tali agenti, inclusa la possibilità di leggere file ed eseguire comandi sul server, se decide di farlo.
Considera l'abilitazione di questa funzione equivalente alla concessione all'agente dell'accesso shell alla macchina. Per questo motivo, la funzionalità è disabilitata inizialmente: un amministratore deve attivarla in Impostazioni → Gestione utenti → Accesso e criteri → Modelli di agenti CLI. L'impostazione viene salvata e ha effetto immediato, senza riavvio.
La modifica di questo controllo aggiorna subito il catalogo dei modelli: la categoria Agenti contiene le voci CLI dirette, mentre Modelli plugin contiene integrazioni API dei provider come Codex (ChatGPT). Strands è elencato nella stessa categoria ma segue la propria impostazione di accesso Motore Strands, non questo interruttore, quindi può comparire anche quando i modelli di agenti CLI sono disattivati. Il rilevamento dei suoi modelli non può bloccare il rilevamento degli agenti CLI installati.
Le installazioni esistenti ereditano la precedente scelta salvata per Agenti finché non viene salvata un’impostazione CLI indipendente.
Per fissare la scelta a livello di distribuzione indipendentemente dall'interruttore a runtime, imposta la variabile d'ambiente su uno dei due valori (ciò blocca anche l'interruttore nell'interfaccia):
AGENT_CLI_MODELS_ENABLED=false # or true
Per un modello in grado di intervenire sui file, ma confinato in un ambiente isolato, usa invece Work: esegue i modelli che supportano gli strumenti in un container protetto con un'area di lavoro isolata.
Gli stessi agenti in Work
Work offre gli stessi agenti con le stesse scelte di modello e gli stessi accessi, ma li esegue nella sandbox dell'attività anziché sull'host, dietro un proxy di uscita che tiene i token reali fuori dalla sandbox. Hanno una propria modalità di accesso, CLI di agenti in Work, e non richiedono l'interruttore descritto sopra. Consulta CLI di agenti in Work.
Monitoraggio dell’utilizzo
Apri Utilizzo provider (/usage) e cerca Agenti nella parte superiore. Claude Code, Codex, Kiro, OpenCode, Pi e l’attività di Strands hanno voci esplicite, con un messaggio chiaro quando nel periodo selezionato non sono state registrate chiamate.
Le chiamate CLI effettuate tramite LWUI registrano esito, durata e utilizzo dei token dichiarato. Ogni invocazione crea un solo evento di utilizzo; snapshot ripetuti e conteggi per passaggio non duplicano eventi o token. I contatori dei token mancanti restano non dichiarati. L’arresto di una risposta viene registrato come annullamento; un’uscita CLI non riuscita non diventa un successo soltanto perché ha prodotto testo parziale. Le chiamate CLI effettuate al di fuori di LWUI non vengono importate.
Le chiamate di Strands sono attribuite all’agente Strands. Consulta Utilizzo degli agenti per dettagli e limiti.
Configurazione
| Variabile | Valore predefinito | Scopo |
|---|---|---|
AGENT_CLI_MODELS_ENABLED | non impostato | Fissa true/false; se non impostata, usa l'interruttore amministrativo (disattivato inizialmente) |
AGENT_CLI_TIMEOUT_MS | 600000 | Tempo massimo di esecuzione di un singolo turno dell'agente prima dell'arresto |
Risoluzione dei problemi
Il gruppo Agenti non compare. Verifica che la funzionalità sia abilitata in
Impostazioni → Gestione utenti → Accesso e criteri → Modelli di agenti CLI (è disattivata per impostazione predefinita) e di aver effettuato l'accesso
come amministratore, quindi controlla che il comando si trovi nel PATH del processo che esegue il backend,
non soltanto nella tua shell interattiva. Un gestore di servizi, un container Docker o un programma
di avvio desktop spesso usa un PATH molto più ridotto rispetto a un terminale di accesso.
La risposta non riesce immediatamente. Esegui manualmente lo stesso comando come utente del server
(claude -p "hello", codex exec "hello" oppure
echo hello | kiro-cli chat --no-interactive --output-format stream-json --agent-engine v3 --agent vibe).
È richiesta Kiro CLI 2.27 o successiva; una CLI più vecchia fallisce prima qui, dove il suo errore è
visibile, mentre in chat lo stesso errore compare solo come Kiro exited unsuccessfully.
La maggior parte degli errori deriva dalla richiesta
di un nuovo accesso scaduto da parte dell'agente oppure da un limite di frequenza dell'abbonamento sottostante.
OpenCode, in particolare, segnala l'accesso scaduto a un provider solo nei propri log;
esegui nuovamente opencode auth login come utente del server. Kiro accede tramite
kiro-cli login; una sessione scaduta fallisce allo stesso modo.
Le risposte si interrompono. Un turno lungo potrebbe aver raggiunto AGENT_CLI_TIMEOUT_MS. Aumentalo
oppure suddividi la richiesta in passaggi più piccoli.