diff --git a/docs/it/channels/slack.md b/docs/it/channels/slack.md
index 26c48557a..df8333315 100644
--- a/docs/it/channels/slack.md
+++ b/docs/it/channels/slack.md
@@ -1,13 +1,13 @@
---
read_when:
- Configurazione di Slack o debug della modalità socket/HTTP di Slack
-summary: Configurazione di Slack e comportamento di runtime (Socket Mode + URL di richiesta HTTP)
+summary: Configurazione di Slack e comportamento in fase di esecuzione (Socket Mode + URL di richiesta HTTP)
title: Slack
x-i18n:
- generated_at: "2026-04-07T08:12:56Z"
+ generated_at: "2026-04-08T06:02:10Z"
model: gpt-5.4
provider: openai
- source_hash: 2b8fd2cc6c638ee82069f0af2c2b6f6f49c87da709b941433a0343724a9907ea
+ source_hash: cad132131ddce688517def7c14703ad314441c67aacc4cc2a2a721e1d1c01942
source_path: channels/slack.md
workflow: 15
---
@@ -24,7 +24,7 @@ Stato: pronto per la produzione per DM + canali tramite integrazioni dell'app Sl
Comportamento nativo dei comandi e catalogo dei comandi.
- Diagnostica tra canali e playbook di riparazione.
+ Diagnostica tra canali e procedure di ripristino.
@@ -37,9 +37,9 @@ Stato: pronto per la produzione per DM + canali tramite integrazioni dell'app Sl
Nelle impostazioni dell'app Slack premi il pulsante **[Create New App](https://api.slack.com/apps/new)**:
- scegli **from a manifest** e seleziona un workspace per la tua app
- - incolla il [manifest di esempio](#manifest-and-scope-checklist) qui sotto e continua per creare
+ - incolla il [manifesto di esempio](#manifest-and-scope-checklist) qui sotto e continua per creare l'app
- genera un **App-Level Token** (`xapp-...`) con `connections:write`
- - installa l'app e copia il **Bot Token** (`xoxb-...`) mostrato
+ - installa l'app e copia il **Bot Token** (`xoxb-...`) visualizzato
@@ -83,9 +83,9 @@ openclaw gateway
Nelle impostazioni dell'app Slack premi il pulsante **[Create New App](https://api.slack.com/apps/new)**:
- scegli **from a manifest** e seleziona un workspace per la tua app
- - incolla il [manifest di esempio](#manifest-and-scope-checklist) e aggiorna gli URL prima di creare
+ - incolla il [manifesto di esempio](#manifest-and-scope-checklist) e aggiorna gli URL prima della creazione
- salva il **Signing Secret** per la verifica delle richieste
- - installa l'app e copia il **Bot Token** (`xoxb-...`) mostrato
+ - installa l'app e copia il **Bot Token** (`xoxb-...`) visualizzato
@@ -125,7 +125,7 @@ openclaw gateway
-## Checklist di manifest e scope
+## Manifesto ed elenco di controllo degli scope
@@ -290,13 +290,12 @@ openclaw gateway
-
+
Aggiungi lo scope bot `chat:write.customize` se vuoi che i messaggi in uscita usino l'identità dell'agente attivo (nome utente e icona personalizzati) invece dell'identità predefinita dell'app Slack.
Se usi un'icona emoji, Slack si aspetta la sintassi `:emoji_name:`.
-
-
+
Se configuri `channels.slack.userToken`, gli scope di lettura tipici sono:
- `channels:history`, `groups:history`, `im:history`, `mpim:history`
@@ -305,7 +304,7 @@ openclaw gateway
- `reactions:read`
- `pins:read`
- `emoji:read`
- - `search:read` (se dipendi dalle letture di ricerca di Slack)
+ - `search:read` (se dipendi dalle letture della ricerca di Slack)
@@ -316,26 +315,26 @@ openclaw gateway
- La modalità HTTP richiede `botToken` + `signingSecret`.
- `botToken`, `appToken`, `signingSecret` e `userToken` accettano stringhe
in chiaro o oggetti SecretRef.
-- I token di configurazione sovrascrivono il fallback env.
+- I token nella configurazione hanno la precedenza sul fallback env.
- Il fallback env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` si applica solo all'account predefinito.
-- `userToken` (`xoxp-...`) è solo di configurazione (nessun fallback env) e usa per impostazione predefinita il comportamento di sola lettura (`userTokenReadOnly: true`).
+- `userToken` (`xoxp-...`) è solo di configurazione (nessun fallback env) e per impostazione predefinita usa il comportamento di sola lettura (`userTokenReadOnly: true`).
-Comportamento dello snapshot di stato:
+Comportamento dell'istantanea di stato:
- L'ispezione dell'account Slack traccia i campi `*Source` e `*Status`
- per credenziale (`botToken`, `appToken`, `signingSecret`, `userToken`).
-- Lo stato è `available`, `configured_unavailable` o `missing`.
+ per ogni credenziale (`botToken`, `appToken`, `signingSecret`, `userToken`).
+- Lo stato può essere `available`, `configured_unavailable` o `missing`.
- `configured_unavailable` significa che l'account è configurato tramite SecretRef
- o un'altra sorgente di secret non inline, ma il percorso di comando/runtime corrente
+ o un'altra origine di segreti non inline, ma il percorso di comando/esecuzione corrente
non è riuscito a risolvere il valore effettivo.
-- In modalità HTTP, è incluso `signingSecretStatus`; in Socket Mode, la
+- In modalità HTTP è incluso `signingSecretStatus`; in Socket Mode, la
coppia richiesta è `botTokenStatus` + `appTokenStatus`.
-Per le letture di azioni/directory, il token utente può essere preferito quando configurato. Per le scritture, il token bot resta preferito; le scritture con token utente sono consentite solo quando `userTokenReadOnly: false` e il token bot non è disponibile.
+Per azioni/letture di directory, il user token può essere preferito quando configurato. Per le scritture, il bot token resta preferito; le scritture con user token sono consentite solo quando `userTokenReadOnly: false` e il bot token non è disponibile.
-## Azioni e controlli
+## Azioni e vincoli
Le azioni Slack sono controllate da `channels.slack.actions.*`.
@@ -343,13 +342,13 @@ Gruppi di azioni disponibili negli strumenti Slack correnti:
| Gruppo | Predefinito |
| ---------- | ----------- |
-| messages | abilitato |
-| reactions | abilitato |
-| pins | abilitato |
-| memberInfo | abilitato |
-| emojiList | abilitato |
+| messages | abilitato |
+| reactions | abilitato |
+| pins | abilitato |
+| memberInfo | abilitato |
+| emojiList | abilitato |
-Le attuali azioni sui messaggi Slack includono `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` ed `emoji-list`.
+Le azioni correnti sui messaggi Slack includono `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` ed `emoji-list`.
## Controllo degli accessi e instradamento
@@ -362,53 +361,53 @@ Le attuali azioni sui messaggi Slack includono `send`, `upload-file`, `download-
- `open` (richiede che `channels.slack.allowFrom` includa `"*"`; legacy: `channels.slack.dm.allowFrom`)
- `disabled`
- Flag dei DM:
+ Flag DM:
- `dm.enabled` (predefinito true)
- - `channels.slack.allowFrom` (consigliato)
+ - `channels.slack.allowFrom` (preferito)
- `dm.allowFrom` (legacy)
- - `dm.groupEnabled` (i DM di gruppo sono false per impostazione predefinita)
- - `dm.groupChannels` (allowlist MPIM facoltativa)
+ - `dm.groupEnabled` (DM di gruppo predefiniti su false)
+ - `dm.groupChannels` (allowlist MPIM opzionale)
Precedenza multi-account:
- `channels.slack.accounts.default.allowFrom` si applica solo all'account `default`.
- - Gli account con nome ereditano `channels.slack.allowFrom` quando il proprio `allowFrom` non è impostato.
+ - Gli account con nome ereditano `channels.slack.allowFrom` quando il loro `allowFrom` non è impostato.
- Gli account con nome non ereditano `channels.slack.accounts.default.allowFrom`.
L'associazione nei DM usa `openclaw pairing approve slack `.
-
+
`channels.slack.groupPolicy` controlla la gestione dei canali:
- `open`
- `allowlist`
- `disabled`
- L'allowlist dei canali si trova in `channels.slack.channels` e dovrebbe usare ID canale stabili.
+ L'allowlist dei canali si trova in `channels.slack.channels` e dovrebbe usare ID di canale stabili.
- Nota di runtime: se `channels.slack` è completamente assente (configurazione solo env), il runtime usa come fallback `groupPolicy="allowlist"` e registra un avviso (anche se `channels.defaults.groupPolicy` è impostato).
+ Nota di esecuzione: se `channels.slack` è completamente assente (configurazione solo env), in fase di esecuzione viene usato il fallback `groupPolicy="allowlist"` e viene registrato un avviso (anche se `channels.defaults.groupPolicy` è impostato).
Risoluzione nome/ID:
- - le voci dell'allowlist dei canali e dell'allowlist dei DM vengono risolte all'avvio quando l'accesso tramite token lo consente
- - le voci irrisolte del nome del canale vengono mantenute come configurate ma ignorate per impostazione predefinita ai fini dell'instradamento
- - l'autorizzazione in ingresso e l'instradamento del canale sono basati prima di tutto sugli ID; la corrispondenza diretta di username/slug richiede `channels.slack.dangerouslyAllowNameMatching: true`
+ - le voci nell'allowlist dei canali e nell'allowlist DM vengono risolte all'avvio quando l'accesso ai token lo consente
+ - le voci non risolte per nome di canale vengono mantenute come configurate ma ignorate per l'instradamento per impostazione predefinita
+ - l'autorizzazione in ingresso e l'instradamento del canale usano gli ID come priorità; la corrispondenza diretta con nome utente/slug richiede `channels.slack.dangerouslyAllowNameMatching: true`
- I messaggi del canale sono per impostazione predefinita soggetti al controllo delle menzioni.
+ Per impostazione predefinita, i messaggi nel canale sono vincolati dalle menzioni.
- Sorgenti delle menzioni:
+ Origini delle menzioni:
- menzione esplicita dell'app (`<@botId>`)
- pattern regex di menzione (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
- - comportamento implicito di risposta nel thread al bot (disabilitato quando `thread.requireExplicitMention` è `true`)
+ - comportamento implicito di risposta nei thread al bot (disabilitato quando `thread.requireExplicitMention` è `true`)
- Controlli per canale (`channels.slack.channels.`; nomi solo tramite risoluzione all'avvio o `dangerouslyAllowNameMatching`):
+ Controlli per canale (`channels.slack.channels.`; i nomi solo tramite risoluzione all'avvio o `dangerouslyAllowNameMatching`):
- `requireMention`
- `users` (allowlist)
@@ -416,7 +415,7 @@ Le attuali azioni sui messaggi Slack includono `send`, `upload-file`, `download-
- `skills`
- `systemPrompt`
- `tools`, `toolsBySender`
- - formato della chiave `toolsBySender`: `id:`, `e164:`, `username:`, `name:` o wildcard `"*"`
+ - formato chiave `toolsBySender`: `id:`, `e164:`, `username:`, `name:` oppure wildcard `"*"`
(le chiavi legacy senza prefisso continuano a essere mappate solo a `id:`)
@@ -424,28 +423,28 @@ Le attuali azioni sui messaggi Slack includono `send`, `upload-file`, `download-
## Thread, sessioni e tag di risposta
-- I DM sono instradati come `direct`; i canali come `channel`; gli MPIM come `group`.
-- Con il valore predefinito `session.dmScope=main`, i DM di Slack confluiscono nella sessione principale dell'agente.
-- Sessioni del canale: `agent::slack:channel:`.
-- Le risposte nei thread possono creare suffissi di sessione del thread (`:thread:`) quando applicabile.
+- I DM vengono instradati come `direct`; i canali come `channel`; gli MPIM come `group`.
+- Con l'impostazione predefinita `session.dmScope=main`, i DM Slack collassano nella sessione principale dell'agente.
+- Sessioni canale: `agent::slack:channel:`.
+- Le risposte nei thread possono creare suffissi di sessione thread (`:thread:`) quando applicabile.
- Il valore predefinito di `channels.slack.thread.historyScope` è `thread`; il valore predefinito di `thread.inheritParent` è `false`.
-- `channels.slack.thread.initialHistoryLimit` controlla quanti messaggi esistenti del thread vengono recuperati quando inizia una nuova sessione del thread (predefinito `20`; imposta `0` per disabilitare).
-- `channels.slack.thread.requireExplicitMention` (predefinito `false`): quando è `true`, sopprime le menzioni implicite nel thread in modo che il bot risponda solo a menzioni esplicite `@bot` all'interno dei thread, anche quando il bot ha già partecipato al thread. Senza questo, le risposte in un thread a cui partecipa il bot bypassano il controllo `requireMention`.
+- `channels.slack.thread.initialHistoryLimit` controlla quanti messaggi esistenti del thread vengono recuperati quando inizia una nuova sessione thread (predefinito `20`; imposta `0` per disabilitare).
+- `channels.slack.thread.requireExplicitMention` (predefinito `false`): quando è `true`, sopprime le menzioni implicite nei thread così il bot risponde solo a menzioni `@bot` esplicite all'interno dei thread, anche quando il bot ha già partecipato al thread. Senza questa opzione, le risposte in un thread con partecipazione del bot aggirano il vincolo `requireMention`.
-Controlli del threading delle risposte:
+Controlli del thread di risposta:
- `channels.slack.replyToMode`: `off|first|all|batched` (predefinito `off`)
- `channels.slack.replyToModeByChatType`: per `direct|group|channel`
-- fallback legacy per le chat dirette: `channels.slack.dm.replyToMode`
+- fallback legacy per chat dirette: `channels.slack.dm.replyToMode`
-Sono supportati tag di risposta manuali:
+Sono supportati i tag di risposta manuali:
- `[[reply_to_current]]`
- `[[reply_to:]]`
-Nota: `replyToMode="off"` disabilita **tutto** il threading delle risposte in Slack, inclusi i tag espliciti `[[reply_to_*]]`. Questo differisce da Telegram, dove i tag espliciti vengono comunque rispettati in modalità `"off"`. La differenza riflette i modelli di threading delle piattaforme: i thread di Slack nascondono i messaggi al canale, mentre le risposte di Telegram restano visibili nel flusso principale della chat.
+Nota: `replyToMode="off"` disabilita **tutto** il threading delle risposte in Slack, inclusi i tag espliciti `[[reply_to_*]]`. Questo differisce da Telegram, dove i tag espliciti vengono comunque rispettati in modalità `"off"`. La differenza riflette i modelli di threading delle piattaforme: i thread di Slack nascondono i messaggi dal canale, mentre le risposte di Telegram restano visibili nel flusso principale della chat.
-## Reazioni di conferma
+## Reazioni di ack
`ackReaction` invia un'emoji di conferma mentre OpenClaw elabora un messaggio in ingresso.
@@ -458,7 +457,7 @@ Ordine di risoluzione:
Note:
-- Slack si aspetta shortcodes (ad esempio `"eyes"`).
+- Slack si aspetta shortcodes (per esempio `"eyes"`).
- Usa `""` per disabilitare la reazione per l'account Slack o globalmente.
## Streaming del testo
@@ -467,23 +466,27 @@ Note:
- `off`: disabilita lo streaming dell'anteprima in tempo reale.
- `partial` (predefinito): sostituisce il testo di anteprima con l'output parziale più recente.
-- `block`: aggiunge aggiornamenti di anteprima suddivisi in blocchi.
+- `block`: aggiunge aggiornamenti di anteprima a blocchi.
- `progress`: mostra testo di stato dell'avanzamento durante la generazione, poi invia il testo finale.
-`channels.slack.nativeStreaming` controlla lo streaming nativo del testo di Slack quando `streaming` è `partial` (predefinito: `true`).
+`channels.slack.streaming.nativeTransport` controlla lo streaming di testo nativo di Slack quando `channels.slack.streaming.mode` è `partial` (predefinito: `true`).
-- Deve essere disponibile un thread di risposta perché appaia lo streaming nativo del testo. La selezione del thread continua comunque a seguire `replyToMode`. In assenza di un thread, viene usata la normale anteprima bozza.
-- I contenuti multimediali e i payload non testuali usano il fallback alla consegna normale.
+- Deve essere disponibile un thread di risposta perché compaiano lo streaming di testo nativo e lo stato del thread assistant di Slack. La selezione del thread continua comunque a seguire `replyToMode`.
+- Le radici di canale e chat di gruppo possono comunque usare la normale anteprima bozza quando lo streaming nativo non è disponibile.
+- I DM Slack di livello superiore restano per impostazione predefinita fuori thread, quindi non mostrano l'anteprima in stile thread; usa risposte nel thread o `typingReaction` se vuoi progressi visibili lì.
+- I payload multimediali e non testuali usano il fallback alla consegna normale.
- Se lo streaming fallisce a metà risposta, OpenClaw usa il fallback alla consegna normale per i payload rimanenti.
-Usa l'anteprima bozza invece dello streaming nativo del testo di Slack:
+Usa l'anteprima bozza invece dello streaming di testo nativo di Slack:
```json5
{
channels: {
slack: {
- streaming: "partial",
- nativeStreaming: false,
+ streaming: {
+ mode: "partial",
+ nativeTransport: false,
+ },
},
},
}
@@ -491,12 +494,13 @@ Usa l'anteprima bozza invece dello streaming nativo del testo di Slack:
Chiavi legacy:
-- `channels.slack.streamMode` (`replace | status_final | append`) viene migrato automaticamente in `channels.slack.streaming`.
-- il booleano `channels.slack.streaming` viene migrato automaticamente in `channels.slack.nativeStreaming`.
+- `channels.slack.streamMode` (`replace | status_final | append`) viene migrato automaticamente a `channels.slack.streaming.mode`.
+- il booleano `channels.slack.streaming` viene migrato automaticamente a `channels.slack.streaming.mode` e `channels.slack.streaming.nativeTransport`.
+- il legacy `channels.slack.nativeStreaming` viene migrato automaticamente a `channels.slack.streaming.nativeTransport`.
## Fallback della reazione di digitazione
-`typingReaction` aggiunge una reazione temporanea al messaggio Slack in ingresso mentre OpenClaw elabora una risposta, poi la rimuove quando l'esecuzione termina. Questo è particolarmente utile al di fuori delle risposte nei thread, che usano un indicatore di stato predefinito "sta scrivendo...".
+`typingReaction` aggiunge una reazione temporanea al messaggio Slack in ingresso mentre OpenClaw elabora una risposta, poi la rimuove quando l'esecuzione termina. È particolarmente utile fuori dalle risposte nei thread, che usano un indicatore di stato predefinito "sta digitando...".
Ordine di risoluzione:
@@ -505,24 +509,24 @@ Ordine di risoluzione:
Note:
-- Slack si aspetta shortcodes (ad esempio `"hourglass_flowing_sand"`).
-- La reazione è best-effort e la pulizia viene tentata automaticamente al termine della risposta o del percorso di errore.
+- Slack si aspetta shortcodes (per esempio `"hourglass_flowing_sand"`).
+- La reazione è best-effort e il cleanup viene tentato automaticamente dopo il completamento della risposta o del percorso di errore.
## Media, suddivisione in blocchi e consegna
- Gli allegati di file Slack vengono scaricati da URL privati ospitati da Slack (flusso di richiesta autenticato con token) e scritti nel media store quando il recupero riesce e i limiti di dimensione lo consentono.
+ Gli allegati file di Slack vengono scaricati da URL privati ospitati da Slack (flusso di richiesta autenticato tramite token) e scritti nell'archivio media quando il recupero riesce e i limiti di dimensione lo consentono.
- Il limite di dimensione in ingresso in runtime è per impostazione predefinita `20MB`, salvo override tramite `channels.slack.mediaMaxMb`.
+ Il limite di dimensione in ingresso in fase di esecuzione è per impostazione predefinita `20MB`, salvo override con `channels.slack.mediaMaxMb`.
- i blocchi di testo usano `channels.slack.textChunkLimit` (predefinito 4000)
- - `channels.slack.chunkMode="newline"` abilita la suddivisione con priorità ai paragrafi
+ - `channels.slack.chunkMode="newline"` abilita la suddivisione dando priorità ai paragrafi
- gli invii di file usano le API di upload di Slack e possono includere risposte nei thread (`thread_ts`)
- - il limite dei media in uscita segue `channels.slack.mediaMaxMb` quando configurato; altrimenti gli invii del canale usano i valori predefiniti per tipo MIME dalla pipeline dei media
+ - il limite dei media in uscita segue `channels.slack.mediaMaxMb` quando configurato; altrimenti gli invii del canale usano i valori predefiniti per tipo MIME dalla pipeline media
@@ -531,26 +535,26 @@ Note:
- `user:` per i DM
- `channel:` per i canali
- I DM di Slack vengono aperti tramite le API di conversazione di Slack quando si invia a destinazioni utente.
+ I DM Slack vengono aperti tramite le API di conversazione di Slack quando si invia verso destinazioni utente.
## Comandi e comportamento slash
-- La modalità automatica dei comandi nativi è **disattivata** per Slack (`commands.native: "auto"` non abilita i comandi nativi di Slack).
-- Abilita gli handler dei comandi nativi di Slack con `channels.slack.commands.native: true` (o globale `commands.native: true`).
+- La modalità automatica dei comandi nativi è **disattivata** per Slack (`commands.native: "auto"` non abilita i comandi nativi Slack).
+- Abilita gli handler dei comandi nativi Slack con `channels.slack.commands.native: true` (o globale `commands.native: true`).
- Quando i comandi nativi sono abilitati, registra in Slack i comandi slash corrispondenti (nomi `/`), con un'eccezione:
- registra `/agentstatus` per il comando di stato (Slack riserva `/status`)
- Se i comandi nativi non sono abilitati, puoi eseguire un singolo comando slash configurato tramite `channels.slack.slashCommand`.
-- I menu degli argomenti nativi ora adattano la loro strategia di rendering:
+- I menu argomento nativi ora adattano la propria strategia di rendering:
- fino a 5 opzioni: blocchi di pulsanti
- - 6-100 opzioni: menu di selezione statico
- - oltre 100 opzioni: selezione esterna con filtro asincrono delle opzioni quando sono disponibili gli handler delle opzioni di interattività
+ - 6-100 opzioni: menu statico di selezione
+ - più di 100 opzioni: selezione esterna con filtro asincrono delle opzioni quando sono disponibili gli handler delle opzioni di interattività
- se i valori delle opzioni codificati superano i limiti di Slack, il flusso usa il fallback ai pulsanti
- Per payload di opzioni lunghi, i menu degli argomenti dei comandi slash usano una finestra di conferma prima di inviare un valore selezionato.
-Impostazioni predefinite del comando slash:
+Impostazioni predefinite dei comandi slash:
- `enabled: false`
- `name: "openclaw"`
@@ -561,11 +565,11 @@ Le sessioni slash usano chiavi isolate:
- `agent::slack:slash:`
-e continuano comunque a instradare l'esecuzione del comando verso la sessione della conversazione di destinazione (`CommandTargetSessionKey`).
+e continuano a instradare l'esecuzione del comando rispetto alla sessione della conversazione di destinazione (`CommandTargetSessionKey`).
## Risposte interattive
-Slack può visualizzare controlli interattivi di risposta creati dall'agente, ma questa funzionalità è disabilitata per impostazione predefinita.
+Slack può eseguire il rendering di controlli interattivi di risposta creati dagli agenti, ma questa funzionalità è disabilitata per impostazione predefinita.
Abilitala globalmente:
@@ -599,42 +603,42 @@ Oppure abilitala solo per un account Slack:
}
```
-Quando è abilitata, gli agenti possono emettere direttive di risposta solo per Slack:
+Quando è abilitata, gli agenti possono emettere direttive di risposta solo Slack:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
-Queste direttive vengono compilate in Slack Block Kit e instradano clic o selezioni attraverso il percorso eventi di interazione Slack esistente.
+Queste direttive vengono compilate in Slack Block Kit e instradano clic o selezioni di nuovo attraverso il percorso eventi di interazione Slack esistente.
Note:
-- Questa è un'interfaccia utente specifica di Slack. Gli altri canali non traducono le direttive Slack Block Kit nei propri sistemi di pulsanti.
+- Si tratta di UI specifica per Slack. Gli altri canali non traducono le direttive Slack Block Kit nei propri sistemi di pulsanti.
- I valori dei callback interattivi sono token opachi generati da OpenClaw, non valori grezzi creati dall'agente.
-- Se i blocchi interattivi generati superano i limiti di Slack Block Kit, OpenClaw usa il fallback alla risposta di testo originale invece di inviare un payload di blocchi non valido.
+- Se i blocchi interattivi generati superano i limiti di Slack Block Kit, OpenClaw usa il fallback alla risposta testuale originale invece di inviare un payload blocks non valido.
## Approvazioni exec in Slack
-Slack può agire come client di approvazione nativo con pulsanti e interazioni interattive, invece di usare il fallback alla Web UI o al terminale.
+Slack può agire come client di approvazione nativo con pulsanti interattivi e interazioni, invece di usare il fallback alla Web UI o al terminale.
-- Le approvazioni exec usano `channels.slack.execApprovals.*` per l'instradamento nativo di DM/canali.
-- Le approvazioni dei plugin possono comunque essere risolte tramite la stessa superficie nativa di pulsanti Slack quando la richiesta arriva già in Slack e il tipo di ID di approvazione è `plugin:`.
-- L'autorizzazione dell'approvatore continua a essere applicata: solo gli utenti identificati come approvatori possono approvare o rifiutare richieste tramite Slack.
+- Le approvazioni exec usano `channels.slack.execApprovals.*` per l'instradamento nativo in DM/canale.
+- Le approvazioni dei plugin possono comunque risolversi tramite la stessa superficie nativa di pulsanti Slack quando la richiesta arriva già in Slack e il tipo di ID approvazione è `plugin:`.
+- L'autorizzazione degli approvatori continua a essere applicata: solo gli utenti identificati come approvatori possono approvare o negare richieste tramite Slack.
-Questo usa la stessa superficie condivisa di pulsanti di approvazione degli altri canali. Quando `interactivity` è abilitato nelle impostazioni della tua app Slack, i prompt di approvazione vengono visualizzati come pulsanti Block Kit direttamente nella conversazione.
-Quando questi pulsanti sono presenti, sono l'esperienza utente primaria per l'approvazione; OpenClaw
-dovrebbe includere un comando `/approve` manuale solo quando il risultato dello strumento indica che le
-approvazioni in chat non sono disponibili o che l'approvazione manuale è l'unico percorso.
+Questo usa la stessa superficie condivisa dei pulsanti di approvazione degli altri canali. Quando `interactivity` è abilitato nelle impostazioni della tua app Slack, le richieste di approvazione vengono renderizzate come pulsanti Block Kit direttamente nella conversazione.
+Quando questi pulsanti sono presenti, costituiscono la UX di approvazione primaria; OpenClaw
+dovrebbe includere un comando manuale `/approve` solo quando il risultato dello strumento indica che le
+approvazioni in chat non sono disponibili o che l'approvazione manuale è l'unico percorso possibile.
Percorso di configurazione:
- `channels.slack.execApprovals.enabled`
-- `channels.slack.execApprovals.approvers` (facoltativo; usa come fallback `commands.ownerAllowFrom` quando possibile)
+- `channels.slack.execApprovals.approvers` (opzionale; usa il fallback a `commands.ownerAllowFrom` quando possibile)
- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, predefinito: `dm`)
- `agentFilter`, `sessionFilter`
Slack abilita automaticamente le approvazioni exec native quando `enabled` non è impostato o è `"auto"` e viene risolto almeno un
approvatore. Imposta `enabled: false` per disabilitare esplicitamente Slack come client di approvazione nativo.
-Imposta `enabled: true` per forzare l'attivazione delle approvazioni native quando gli approvatori vengono risolti.
+Imposta `enabled: true` per forzare le approvazioni native quando vengono risolti gli approvatori.
Comportamento predefinito senza configurazione esplicita delle approvazioni exec Slack:
@@ -647,7 +651,7 @@ Comportamento predefinito senza configurazione esplicita delle approvazioni exec
```
La configurazione nativa esplicita di Slack è necessaria solo quando vuoi sovrascrivere gli approvatori, aggiungere filtri o
-scegliere la consegna alla chat di origine:
+scegliere la consegna nella chat di origine:
```json5
{
@@ -663,24 +667,24 @@ scegliere la consegna alla chat di origine:
}
```
-L'inoltro condiviso `approvals.exec` è separato. Usalo solo quando i prompt di approvazione exec devono essere inoltrati anche
-ad altre chat o a destinazioni esplicite fuori banda. Anche l'inoltro condiviso `approvals.plugin` è
+L'inoltro condiviso `approvals.exec` è separato. Usalo solo quando le richieste di approvazione exec devono anche
+essere instradate verso altre chat o destinazioni esplicite fuori banda. Anche l'inoltro condiviso `approvals.plugin` è
separato; i pulsanti nativi Slack possono comunque risolvere le approvazioni dei plugin quando tali richieste arrivano già
in Slack.
-Anche `/approve` nella stessa chat funziona nei canali e nei DM di Slack che supportano già i comandi. Vedi [Approvazioni exec](/it/tools/exec-approvals) per il modello completo di inoltro delle approvazioni.
+Anche `/approve` nella stessa chat funziona in canali e DM Slack che già supportano i comandi. Vedi [Approvazioni exec](/it/tools/exec-approvals) per il modello completo di inoltro delle approvazioni.
## Eventi e comportamento operativo
-- Le modifiche/eliminazioni dei messaggi e i thread broadcast vengono mappati in eventi di sistema.
-- Gli eventi di aggiunta/rimozione delle reazioni vengono mappati in eventi di sistema.
-- Gli eventi di ingresso/uscita dei membri, creazione/ridenominazione del canale e aggiunta/rimozione dei pin vengono mappati in eventi di sistema.
+- Le modifiche/eliminazioni dei messaggi e i broadcast dei thread vengono mappati in eventi di sistema.
+- Gli eventi di aggiunta/rimozione di reazioni vengono mappati in eventi di sistema.
+- Gli eventi di ingresso/uscita dei membri, creazione/rinomina dei canali e aggiunta/rimozione dei pin vengono mappati in eventi di sistema.
- `channel_id_changed` può migrare le chiavi di configurazione del canale quando `configWrites` è abilitato.
- I metadati di topic/purpose del canale sono trattati come contesto non attendibile e possono essere iniettati nel contesto di instradamento.
-- Il messaggio iniziale del thread e il seeding iniziale del contesto della cronologia del thread vengono filtrati dagli allowlist del mittente configurati quando applicabile.
-- Le azioni di blocco e le interazioni modali emettono eventi di sistema strutturati `Slack interaction: ...` con campi payload avanzati:
- - azioni di blocco: valori selezionati, etichette, valori del selettore e metadati `workflow_*`
- - eventi modali `view_submission` e `view_closed` con metadati del canale instradato e input del modulo
+- Il seeding del contesto del thread starter e della cronologia iniziale del thread viene filtrato dalle allowlist di mittenti configurate quando applicabile.
+- Le block actions e le interazioni con modali emettono eventi di sistema strutturati `Slack interaction: ...` con campi payload ricchi:
+ - block actions: valori selezionati, etichette, valori picker e metadati `workflow_*`
+ - eventi modali `view_submission` e `view_closed` con metadati del canale instradati e input del modulo
## Puntatori al riferimento di configurazione
@@ -689,19 +693,19 @@ Riferimento principale:
- [Riferimento di configurazione - Slack](/it/gateway/configuration-reference#slack)
Campi Slack ad alto segnale:
- - modalità/autenticazione: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
+ - modalità/auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
- accesso DM: `dm.enabled`, `dmPolicy`, `allowFrom` (legacy: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- - interruttore di compatibilità: `dangerouslyAllowNameMatching` (break-glass; tienilo disattivato salvo necessità)
- - accesso ai canali: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
+ - interruttore di compatibilità: `dangerouslyAllowNameMatching` (ultima risorsa; lascialo disattivato salvo necessità)
+ - accesso canale: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- threading/cronologia: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- - consegna: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `nativeStreaming`
+ - consegna: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`
- operazioni/funzionalità: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
## Risoluzione dei problemi
- Controlla, in ordine:
+ Verifica, in ordine:
- `groupPolicy`
- allowlist dei canali (`channels.slack.channels`)
@@ -719,11 +723,11 @@ openclaw doctor
- Controlla:
+ Verifica:
- `channels.slack.dm.enabled`
- - `channels.slack.dmPolicy` (o il legacy `channels.slack.dm.policy`)
- - approvazioni di associazione / voci di allowlist
+ - `channels.slack.dmPolicy` (o legacy `channels.slack.dm.policy`)
+ - approvazioni di associazione / voci dell'allowlist
```bash
openclaw pairing list slack
@@ -746,11 +750,11 @@ openclaw pairing list slack
- signing secret
- percorso webhook
- - URL di richiesta Slack (Eventi + Interattività + Comandi slash)
- - `webhookPath` univoco per account HTTP
+ - URL di richiesta Slack (Eventi + Interattività + Comandi Slash)
+ - `webhookPath` univoco per ogni account HTTP
- Se `signingSecretStatus: "configured_unavailable"` appare negli snapshot
- dell'account, l'account HTTP è configurato ma il runtime corrente non è riuscito
+ Se `signingSecretStatus: "configured_unavailable"` appare nelle
+ istantanee dell'account, l'account HTTP è configurato ma il runtime corrente non è riuscito
a risolvere il signing secret supportato da SecretRef.
@@ -758,10 +762,10 @@ openclaw pairing list slack
Verifica se intendevi usare:
- - modalità comandi nativi (`channels.slack.commands.native: true`) con i corrispondenti comandi slash registrati in Slack
+ - modalità di comando nativo (`channels.slack.commands.native: true`) con i corrispondenti comandi slash registrati in Slack
- oppure modalità comando slash singolo (`channels.slack.slashCommand.enabled: true`)
- Controlla anche `commands.useAccessGroups` e le allowlist di canale/utente.
+ Controlla anche `commands.useAccessGroups` e le allowlist di canali/utenti.
@@ -771,7 +775,7 @@ openclaw pairing list slack
- [Associazione](/it/channels/pairing)
- [Gruppi](/it/channels/groups)
- [Sicurezza](/it/gateway/security)
-- [Instradamento dei canali](/it/channels/channel-routing)
+- [Instradamento del canale](/it/channels/channel-routing)
- [Risoluzione dei problemi](/it/channels/troubleshooting)
- [Configurazione](/it/gateway/configuration)
- [Comandi slash](/it/tools/slash-commands)
diff --git a/docs/it/concepts/memory.md b/docs/it/concepts/memory.md
index b21f09596..7fe21c6ac 100644
--- a/docs/it/concepts/memory.md
+++ b/docs/it/concepts/memory.md
@@ -5,128 +5,160 @@ read_when:
summary: Come OpenClaw ricorda le cose tra una sessione e l'altra
title: Panoramica della memoria
x-i18n:
- generated_at: "2026-04-06T03:06:46Z"
+ generated_at: "2026-04-08T06:00:56Z"
model: gpt-5.4
provider: openai
- source_hash: d19d4fa9c4b3232b7a97f7a382311d2a375b562040de15e9fe4a0b1990b825e7
+ source_hash: 3bb8552341b0b651609edaaae826a22fdc535d240aed4fad4af4b069454004af
source_path: concepts/memory.md
workflow: 15
---
# Panoramica della memoria
-OpenClaw ricorda le cose scrivendo **semplici file Markdown** nel workspace del
-tuo agente. Il modello "ricorda" solo ciò che viene salvato su disco -- non c'è
-alcuno stato nascosto.
+OpenClaw ricorda le cose scrivendo **semplici file Markdown** nello spazio di
+lavoro del tuo agente. Il modello "ricorda" solo ciò che viene salvato su disco:
+non esiste alcuno stato nascosto.
## Come funziona
-Il tuo agente ha tre file correlati alla memoria:
+Il tuo agente ha tre file relativi alla memoria:
-- **`MEMORY.md`** -- memoria a lungo termine. Fatti durevoli, preferenze e
- decisioni. Viene caricato all'inizio di ogni sessione DM.
+- **`MEMORY.md`** -- memoria a lungo termine. Fatti duraturi, preferenze e
+ decisioni. Caricato all'inizio di ogni sessione di messaggi diretti.
- **`memory/YYYY-MM-DD.md`** -- note giornaliere. Contesto in corso e osservazioni.
Le note di oggi e di ieri vengono caricate automaticamente.
-- **`DREAMS.md`** (sperimentale, facoltativo) -- Dream Diary e riepiloghi delle
- scansioni di dreaming per la revisione umana.
+- **`DREAMS.md`** (sperimentale, facoltativo) -- Diario dei sogni e riepiloghi
+ delle sessioni di dreaming per la revisione umana.
-Questi file si trovano nel workspace dell'agente (predefinito `~/.openclaw/workspace`).
+Questi file si trovano nello spazio di lavoro dell'agente (predefinito `~/.openclaw/workspace`).
-Se vuoi che il tuo agente ricordi qualcosa, chiediglielo semplicemente: "Ricorda che
+Se vuoi che il tuo agente ricordi qualcosa, basta chiederglielo: "Ricorda che
preferisco TypeScript." Lo scriverà nel file appropriato.
## Strumenti di memoria
-L'agente ha due strumenti per lavorare con la memoria:
+L'agente dispone di due strumenti per lavorare con la memoria:
-- **`memory_search`** -- trova note pertinenti usando la ricerca semantica, anche quando
- la formulazione è diversa dall'originale.
-- **`memory_get`** -- legge uno specifico file di memoria o un intervallo di righe.
+- **`memory_search`** -- trova note pertinenti usando la ricerca semantica, anche
+ quando la formulazione è diversa dall'originale.
+- **`memory_get`** -- legge un file di memoria specifico o un intervallo di righe.
Entrambi gli strumenti sono forniti dal plugin di memoria attivo (predefinito: `memory-core`).
+## Plugin complementare Memory Wiki
+
+Se vuoi che la memoria duratura si comporti più come una base di conoscenza
+mantenuta che come semplici note grezze, usa il plugin incluso `memory-wiki`.
+
+`memory-wiki` compila la conoscenza duratura in un archivio wiki con:
+
+- struttura delle pagine deterministica
+- affermazioni ed evidenze strutturate
+- tracciamento delle contraddizioni e dell'attualità
+- dashboard generate
+- digest compilati per i consumer agent/runtime
+- strumenti nativi wiki come `wiki_search`, `wiki_get`, `wiki_apply` e `wiki_lint`
+
+Non sostituisce il plugin di memoria attivo. Il plugin di memoria attivo
+continua a gestire il richiamo, la promozione e il dreaming. `memory-wiki`
+aggiunge accanto ad esso un livello di conoscenza ricco di provenienza.
+
+Vedi [Memory Wiki](/it/plugins/memory-wiki).
+
## Ricerca nella memoria
Quando è configurato un provider di embedding, `memory_search` usa la **ricerca
-ibrida** -- combinando la similarità vettoriale (significato semantico) con la corrispondenza di parole chiave
-(termini esatti come ID e simboli di codice). Funziona subito una volta che hai
-una chiave API per qualsiasi provider supportato.
+ibrida** -- combinando similarità vettoriale (significato semantico) con
+corrispondenza di parole chiave (termini esatti come ID e simboli di codice).
+Funziona subito, non appena disponi di una chiave API per qualsiasi provider supportato.
-OpenClaw rileva automaticamente il tuo provider di embedding dalle chiavi API disponibili. Se
-hai configurato una chiave OpenAI, Gemini, Voyage o Mistral, la ricerca nella memoria è
-abilitata automaticamente.
+OpenClaw rileva automaticamente il tuo provider di embedding dalle chiavi API
+disponibili. Se hai configurato una chiave OpenAI, Gemini, Voyage o Mistral, la
+ricerca nella memoria viene abilitata automaticamente.
-Per i dettagli su come funziona la ricerca, le opzioni di ottimizzazione e la configurazione del provider, vedi
-[Ricerca nella memoria](/it/concepts/memory-search).
+Per i dettagli su come funziona la ricerca, le opzioni di regolazione e la
+configurazione del provider, vedi
+[Memory Search](/it/concepts/memory-search).
## Backend di memoria
-Basato su SQLite. Funziona subito con ricerca per parole chiave, similarità vettoriale e
-ricerca ibrida. Nessuna dipendenza aggiuntiva.
+Basato su SQLite. Funziona subito con ricerca per parole chiave, similarità
+vettoriale e ricerca ibrida. Nessuna dipendenza aggiuntiva.
-Sidecar local-first con reranking, espansione delle query e la possibilità di indicizzare
-directory esterne al workspace.
+Sidecar local-first con reranking, espansione delle query e la possibilità di
+indicizzare directory esterne allo spazio di lavoro.
-Memoria cross-session nativa per l'AI con modellazione dell'utente, ricerca semantica e
-consapevolezza multi-agente. Installazione del plugin.
+Memoria cross-session AI-native con modellazione dell'utente, ricerca semantica
+e consapevolezza multi-agente. Installazione tramite plugin.
+
+
+
+## Livello wiki della conoscenza
+
+
+
+Compila la memoria duratura in un archivio wiki ricco di provenienza con
+affermazioni, dashboard, modalità bridge e flussi di lavoro compatibili con Obsidian.
## Flush automatico della memoria
-Prima che la [compattazione](/it/concepts/compaction) riassuma la tua conversazione, OpenClaw
+Prima che la [compaction](/it/concepts/compaction) riepiloghi la tua conversazione, OpenClaw
esegue un turno silenzioso che ricorda all'agente di salvare il contesto importante nei file
-di memoria. È attivo per impostazione predefinita -- non devi configurare nulla.
+di memoria. È attivo per impostazione predefinita: non devi configurare nulla.
-Il flush della memoria evita la perdita di contesto durante la compattazione. Se il tuo agente ha
-fatti importanti nella conversazione che non sono ancora stati scritti in un file, verranno
-salvati automaticamente prima che avvenga il riepilogo.
+Il flush della memoria previene la perdita di contesto durante la compaction. Se
+nella conversazione sono presenti fatti importanti che il tuo agente non ha
+ancora scritto in un file, verranno salvati automaticamente prima che venga
+generato il riepilogo.
## Dreaming (sperimentale)
-Il dreaming è un passaggio facoltativo di consolidamento in background per la memoria. Raccoglie
-segnali a breve termine, assegna un punteggio ai candidati e promuove solo gli elementi qualificati nella
-memoria a lungo termine (`MEMORY.md`).
+Il dreaming è un passaggio opzionale di consolidamento della memoria in background. Raccoglie
+segnali a breve termine, valuta i candidati e promuove nella memoria a lungo
+termine (`MEMORY.md`) solo gli elementi qualificati.
-È progettato per mantenere alto il rapporto segnale/rumore nella memoria a lungo termine:
+È progettato per mantenere alta la qualità della memoria a lungo termine:
-- **Attivazione facoltativa**: disabilitato per impostazione predefinita.
-- **Pianificato**: quando è abilitato, `memory-core` gestisce automaticamente un job cron ricorrente
- per una scansione completa di dreaming.
-- **Con soglia**: le promozioni devono superare le soglie di punteggio, frequenza di richiamo e
- diversità delle query.
-- **Rivedibile**: i riepiloghi delle fasi e le voci del diario vengono scritti in `DREAMS.md`
- per la revisione umana.
+- **Attivazione esplicita**: disabilitato per impostazione predefinita.
+- **Pianificato**: quando è abilitato, `memory-core` gestisce automaticamente un
+ job cron ricorrente per una sessione completa di dreaming.
+- **Con soglia**: le promozioni devono superare soglie di punteggio, frequenza
+ di richiamo e diversità delle query.
+- **Verificabile**: i riepiloghi delle fasi e le voci del diario vengono scritti
+ in `DREAMS.md` per la revisione umana.
-Per il comportamento delle fasi, i segnali di punteggio e i dettagli del Dream Diary, vedi
-[Dreaming (sperimentale)](/concepts/dreaming).
+Per il comportamento delle fasi, i segnali di punteggio e i dettagli del Diario
+dei sogni, vedi [Dreaming (experimental)](/it/concepts/dreaming).
## CLI
```bash
-openclaw memory status # Controlla lo stato dell'indice e del provider
+openclaw memory status # Controlla lo stato dell'indice e il provider
openclaw memory search "query" # Cerca dalla riga di comando
openclaw memory index --force # Ricostruisce l'indice
```
-## Ulteriori letture
+## Approfondimenti
- [Builtin Memory Engine](/it/concepts/memory-builtin) -- backend SQLite predefinito
- [QMD Memory Engine](/it/concepts/memory-qmd) -- sidecar local-first avanzato
-- [Honcho Memory](/it/concepts/memory-honcho) -- memoria cross-session nativa per l'AI
+- [Honcho Memory](/it/concepts/memory-honcho) -- memoria cross-session AI-native
+- [Memory Wiki](/it/plugins/memory-wiki) -- archivio di conoscenza compilato e strumenti nativi wiki
- [Memory Search](/it/concepts/memory-search) -- pipeline di ricerca, provider e
- ottimizzazione
-- [Dreaming (experimental)](/concepts/dreaming) -- promozione in background
+ regolazione
+- [Dreaming (experimental)](/it/concepts/dreaming) -- promozione in background
dal richiamo a breve termine alla memoria a lungo termine
-- [Riferimento alla configurazione della memoria](/it/reference/memory-config) -- tutte le opzioni di configurazione
-- [Compattazione](/it/concepts/compaction) -- come la compattazione interagisce con la memoria
+- [Memory configuration reference](/it/reference/memory-config) -- tutte le opzioni di configurazione
+- [Compaction](/it/concepts/compaction) -- come la compaction interagisce con la memoria
diff --git a/docs/it/concepts/model-providers.md b/docs/it/concepts/model-providers.md
index 1f9b30148..5be4ae03b 100644
--- a/docs/it/concepts/model-providers.md
+++ b/docs/it/concepts/model-providers.md
@@ -1,38 +1,38 @@
---
read_when:
- - Ti serve un riferimento per la configurazione dei modelli provider per provider
- - Vuoi configurazioni di esempio o comandi di onboarding CLI per i provider di modelli
+ - Hai bisogno di un riferimento per la configurazione dei modelli provider per provider
+ - Vuoi configurazioni di esempio o comandi CLI di onboarding per i provider di modelli
summary: Panoramica dei provider di modelli con configurazioni di esempio + flussi CLI
title: Provider di modelli
x-i18n:
- generated_at: "2026-04-08T02:15:56Z"
+ generated_at: "2026-04-08T06:02:39Z"
model: gpt-5.4
provider: openai
- source_hash: 26b36a2bc19a28a7ef39aa8e81a0050fea1d452ac4969122e5cdf8755e690258
+ source_hash: 558ac9e34b67fcc3dd6791a01bebc17e1c34152fa6c5611593d681e8cfa532d9
source_path: concepts/model-providers.md
workflow: 15
---
# Provider di modelli
-Questa pagina copre i **provider di LLM/modelli** (non i canali chat come WhatsApp/Telegram).
-Per le regole di selezione dei modelli, vedi [/concepts/models](/it/concepts/models).
+Questa pagina tratta i **provider LLM/modello** (non i canali di chat come WhatsApp/Telegram).
+Per le regole di selezione del modello, vedi [/concepts/models](/it/concepts/models).
## Regole rapide
- I riferimenti ai modelli usano `provider/model` (esempio: `opencode/claude-opus-4-6`).
-- Se imposti `agents.defaults.models`, diventa l'allowlist.
+- Se imposti `agents.defaults.models`, diventa la allowlist.
- Helper CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set `.
-- Le regole di runtime per il fallback, i probe di cooldown e la persistenza delle override di sessione sono
- documentate in [/concepts/model-failover](/it/concepts/model-failover).
+- Le regole di runtime per il fallback, i probe di cooldown e la persistenza
+ della sovrascrittura di sessione sono documentate in [/concepts/model-failover](/it/concepts/model-failover).
- `models.providers.*.models[].contextWindow` sono metadati nativi del modello;
`models.providers.*.models[].contextTokens` è il limite effettivo di runtime.
- I plugin provider possono iniettare cataloghi di modelli tramite `registerProvider({ catalog })`;
OpenClaw unisce quell'output in `models.providers` prima di scrivere
`models.json`.
-- I manifest dei provider possono dichiarare `providerAuthEnvVars` così le sonde generiche di autenticazione
- basate su variabili d'ambiente non devono caricare il runtime del plugin. La mappa rimanente
- delle variabili d'ambiente del core ora serve solo per provider core/non-plugin e per alcuni casi
+- I manifest dei provider possono dichiarare `providerAuthEnvVars` in modo che i probe generici
+ di autenticazione basati su env non debbano caricare il runtime del plugin. La mappa restante
+ delle variabili env del core ora serve solo per provider non-plugin/core e per alcuni casi
di precedenza generica, come l'onboarding Anthropic con priorità alla chiave API.
- I plugin provider possono anche gestire il comportamento runtime del provider tramite
`normalizeModelId`, `normalizeTransport`, `normalizeConfig`,
@@ -52,218 +52,217 @@ Per le regole di selezione dei modelli, vedi [/concepts/models](/it/concepts/mod
`resolveDefaultThinkingLevel`, `applyConfigDefaults`, `isModernModelRef`,
`prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`, e
`onModelSelected`.
-- Nota: `capabilities` del runtime del provider sono metadati condivisi del runner (famiglia
- del provider, particolarità di trascrizione/tooling, suggerimenti di transport/cache). Non sono la
- stessa cosa del [modello di capability pubblico](/it/plugins/architecture#public-capability-model)
- che descrive ciò che registra un plugin (inferenza testuale, voce, ecc.).
+- Nota: il runtime `capabilities` del provider è metadato condiviso del runner (famiglia
+ del provider, particolarità di transcript/tooling, suggerimenti su transport/cache). Non è la
+ stessa cosa del [modello pubblico delle capability](/it/plugins/architecture#public-capability-model)
+ che descrive ciò che un plugin registra (inferenza testuale, voce, ecc.).
## Comportamento del provider gestito dal plugin
-I plugin provider ora possono gestire la maggior parte della logica specifica del provider, mentre OpenClaw mantiene
-il ciclo di inferenza generico.
+I plugin provider possono ora gestire la maggior parte della logica specifica del provider, mentre OpenClaw mantiene
+il loop di inferenza generico.
Suddivisione tipica:
- `auth[].run` / `auth[].runNonInteractive`: il provider gestisce i flussi di onboarding/login
per `openclaw onboard`, `openclaw models auth` e la configurazione headless
-- `wizard.setup` / `wizard.modelPicker`: il provider gestisce etichette delle scelte di autenticazione,
- alias legacy, suggerimenti per l'allowlist dell'onboarding e voci di configurazione nei picker di onboarding/modello
-- `catalog`: il provider appare in `models.providers`
-- `normalizeModelId`: il provider normalizza gli id dei modelli legacy/preview prima della
- ricerca o canonicalizzazione
+- `wizard.setup` / `wizard.modelPicker`: il provider gestisce etichette di scelta dell'autenticazione,
+ alias legacy, suggerimenti di allowlist per l'onboarding e voci di configurazione nei selettori di onboarding/modello
+- `catalog`: il provider compare in `models.providers`
+- `normalizeModelId`: il provider normalizza gli id dei modelli legacy/preview prima
+ della ricerca o della canonizzazione
- `normalizeTransport`: il provider normalizza `api` / `baseUrl` della famiglia di transport
prima dell'assemblaggio generico del modello; OpenClaw controlla prima il provider corrispondente,
- poi gli altri plugin provider con capacità di hook finché uno non modifica effettivamente il
+ poi gli altri plugin provider compatibili con hook finché uno non modifica effettivamente il
transport
-- `normalizeConfig`: il provider normalizza la configurazione `models.providers.` prima che il
- runtime la usi; OpenClaw controlla prima il provider corrispondente, poi gli altri
- plugin provider con capacità di hook finché uno non modifica effettivamente la configurazione. Se nessun
+- `normalizeConfig`: il provider normalizza la configurazione `models.providers.` prima
+ che il runtime la usi; OpenClaw controlla prima il provider corrispondente, poi gli altri
+ plugin provider compatibili con hook finché uno non modifica effettivamente la configurazione. Se nessun
hook provider riscrive la configurazione, gli helper Google-family inclusi continuano comunque
a normalizzare le voci provider Google supportate.
-- `applyNativeStreamingUsageCompat`: il provider applica riscritture di compatibilità dell'uso dello streaming nativo guidate dall'endpoint per i provider di configurazione
-- `resolveConfigApiKey`: il provider risolve l'autenticazione tramite marker d'ambiente per i provider di configurazione
+- `applyNativeStreamingUsageCompat`: il provider applica riscritture di compatibilità per l'uso dello streaming nativo guidate dall'endpoint per i provider di configurazione
+- `resolveConfigApiKey`: il provider risolve l'autenticazione tramite marker env per i provider di configurazione
senza forzare il caricamento completo dell'autenticazione runtime. `amazon-bedrock` ha anche un
- resolver integrato per marker d'ambiente AWS qui, anche se l'autenticazione runtime di Bedrock usa
+ risolutore integrato di marker env AWS qui, anche se l'autenticazione runtime di Bedrock usa
la catena predefinita dell'SDK AWS.
-- `resolveSyntheticAuth`: il provider può esporre la disponibilità di autenticazione locale/self-hosted o altra
- autenticazione basata su configurazione senza persistere segreti in chiaro
-- `shouldDeferSyntheticProfileAuth`: il provider può contrassegnare i placeholder di profili sintetici memorizzati
- come di precedenza inferiore rispetto all'autenticazione basata su env/config
-- `resolveDynamicModel`: il provider accetta id modello non ancora presenti nel
- catalogo statico locale
-- `prepareDynamicModel`: il provider necessita di un refresh dei metadati prima di ritentare
+- `resolveSyntheticAuth`: il provider può esporre la disponibilità di autenticazione locale/self-hosted o di altro tipo
+ basata sulla configurazione senza persistere segreti in chiaro
+- `shouldDeferSyntheticProfileAuth`: il provider può contrassegnare i placeholder di profilo sintetico memorizzati
+ come a precedenza più bassa rispetto all'autenticazione basata su env/config
+- `resolveDynamicModel`: il provider accetta id di modelli non ancora presenti nel catalogo statico locale
+- `prepareDynamicModel`: il provider richiede un aggiornamento dei metadati prima di ritentare
la risoluzione dinamica
-- `normalizeResolvedModel`: il provider necessita di riscritture del transport o del base URL
+- `normalizeResolvedModel`: il provider richiede riscritture di transport o URL base
- `contributeResolvedModelCompat`: il provider contribuisce flag di compatibilità per i propri
modelli vendor anche quando arrivano tramite un altro transport compatibile
-- `capabilities`: il provider pubblica particolarità di trascrizione/tooling/famiglia provider
-- `normalizeToolSchemas`: il provider ripulisce gli schemi degli strumenti prima che il
- runner incorporato li veda
+- `capabilities`: il provider pubblica particolarità di transcript/tooling/famiglia provider
+- `normalizeToolSchemas`: il provider ripulisce gli schemi degli strumenti prima che il runner
+ incorporato li veda
- `inspectToolSchemas`: il provider espone avvisi di schema specifici del transport
dopo la normalizzazione
-- `resolveReasoningOutputMode`: il provider sceglie contratti di output del ragionamento nativi o con tag
-- `prepareExtraParams`: il provider imposta valori predefiniti o normalizza i parametri di richiesta per modello
-- `createStreamFn`: il provider sostituisce il normale percorso di streaming con un
- transport completamente personalizzato
-- `wrapStreamFn`: il provider applica wrapper di compatibilità per header/body/modello della richiesta
-- `resolveTransportTurnState`: il provider fornisce header o metadati di transport nativi
+- `resolveReasoningOutputMode`: il provider sceglie contratti di output di reasoning
+ nativi o con tag
+- `prepareExtraParams`: il provider imposta valori predefiniti o normalizza parametri di richiesta per modello
+- `createStreamFn`: il provider sostituisce il normale percorso di stream con un transport
+ completamente personalizzato
+- `wrapStreamFn`: il provider applica wrapper di compatibilità a header/body/modello della richiesta
+- `resolveTransportTurnState`: il provider fornisce header o metadati nativi del transport
per turno
-- `resolveWebSocketSessionPolicy`: il provider fornisce header nativi della sessione WebSocket
+- `resolveWebSocketSessionPolicy`: il provider fornisce header di sessione WebSocket nativi
o una policy di cool-down della sessione
- `createEmbeddingProvider`: il provider gestisce il comportamento degli embedding di memoria quando
- appartiene al plugin provider invece che allo switchboard embedding del core
-- `formatApiKey`: il provider formatta i profili di autenticazione memorizzati nella stringa `apiKey`
- di runtime attesa dal transport
-- `refreshOAuth`: il provider gestisce il refresh OAuth quando i refresher condivisi `pi-ai`
- non sono sufficienti
-- `buildAuthDoctorHint`: il provider aggiunge indicazioni di riparazione quando il refresh OAuth
+ deve appartenere al plugin provider invece che allo switchboard embedding del core
+- `formatApiKey`: il provider formatta i profili di autenticazione memorizzati nella stringa runtime
+ `apiKey` attesa dal transport
+- `refreshOAuth`: il provider gestisce l'aggiornamento OAuth quando i refresher condivisi
+ `pi-ai` non sono sufficienti
+- `buildAuthDoctorHint`: il provider aggiunge indicazioni di riparazione quando l'aggiornamento OAuth
fallisce
- `matchesContextOverflowError`: il provider riconosce errori di overflow della finestra di contesto
- specifici del provider che le euristiche generiche non rileverebbero
-- `classifyFailoverReason`: il provider mappa errori grezzi del transport/API specifici del provider
- in motivi di failover come rate limit o overload
-- `isCacheTtlEligible`: il provider decide quali id modello upstream supportano il TTL della cache del prompt
-- `buildMissingAuthMessage`: il provider sostituisce l'errore generico dell'auth store
+ specifici del provider che le euristiche generiche non intercetterebbero
+- `classifyFailoverReason`: il provider mappa errori raw di transport/API specifici del provider
+ in motivi di failover come limite di frequenza o sovraccarico
+- `isCacheTtlEligible`: il provider decide quali id di modelli upstream supportano il TTL della cache dei prompt
+- `buildMissingAuthMessage`: il provider sostituisce l'errore generico dell'auth-store
con un suggerimento di recupero specifico del provider
- `suppressBuiltInModel`: il provider nasconde righe upstream obsolete e può restituire un
- errore gestito dal vendor per i fallimenti di risoluzione diretta
+ errore gestito dal vendor per errori di risoluzione diretta
- `augmentModelCatalog`: il provider aggiunge righe di catalogo sintetiche/finali dopo
- discovery e unione della configurazione
-- `isBinaryThinking`: il provider gestisce la UX di thinking binario on/off
+ discovery e merge della configurazione
+- `isBinaryThinking`: il provider gestisce l'esperienza utente thinking binaria on/off
- `supportsXHighThinking`: il provider abilita `xhigh` per i modelli selezionati
-- `resolveDefaultThinkingLevel`: il provider gestisce la policy `/think` predefinita per una
+- `resolveDefaultThinkingLevel`: il provider gestisce la policy predefinita di `/think` per una
famiglia di modelli
-- `applyConfigDefaults`: il provider applica valori predefiniti globali specifici del provider
- durante la materializzazione della configurazione in base a modalità di autenticazione, env o famiglia di modelli
-- `isModernModelRef`: il provider gestisce il matching dei modelli preferiti per live/smoke
-- `prepareRuntimeAuth`: il provider trasforma una credenziale configurata in un
- token runtime di breve durata
-- `resolveUsageAuth`: il provider risolve le credenziali di uso/quota per `/usage`
- e superfici correlate di stato/reporting
-- `fetchUsageSnapshot`: il provider gestisce il fetch/parsing dell'endpoint di uso mentre
- il core mantiene comunque la shell di riepilogo e la formattazione
+- `applyConfigDefaults`: il provider applica valori globali predefiniti specifici del provider
+ durante la materializzazione della configurazione in base alla modalità auth, all'env o alla famiglia di modelli
+- `isModernModelRef`: il provider gestisce il matching del modello preferito per live/smoke
+- `prepareRuntimeAuth`: il provider trasforma una credenziale configurata in un token runtime
+ di breve durata
+- `resolveUsageAuth`: il provider risolve le credenziali di utilizzo/quota per `/usage`
+ e le relative superfici di stato/reporting
+- `fetchUsageSnapshot`: il provider gestisce il fetch/parsing dell'endpoint di utilizzo mentre
+ il core continua a gestire shell di riepilogo e formattazione
- `onModelSelected`: il provider esegue effetti collaterali post-selezione come
- telemetria o bookkeeping della sessione gestito dal provider
+ telemetria o bookkeeping di sessione gestito dal provider
-Esempi bundled attuali:
+Esempi inclusi attuali:
- `anthropic`: fallback forward-compat per Claude 4.6, suggerimenti di riparazione auth, fetch dell'endpoint
- di uso, metadati cache-TTL/famiglia provider e valori predefiniti globali
- della configurazione consapevoli dell'autenticazione
-- `amazon-bedrock`: riconoscimento dell'overflow del contesto e classificazione dei
- motivi di failover per errori specifici di Bedrock come throttle/not-ready, più
- la famiglia di replay condivisa `anthropic-by-model` per le sole policy di replay Claude
- sul traffico Anthropic
-- `anthropic-vertex`: guardie di replay-policy solo per Claude sul traffico
+ di utilizzo, metadati cache-TTL/famiglia provider e valori predefiniti globali di configurazione
+ consapevoli dell'autenticazione
+- `amazon-bedrock`: rilevamento dell'overflow di contesto e classificazione dei
+ motivi di failover gestiti dal provider per errori throttle/not-ready specifici di Bedrock, più
+ la famiglia di replay condivisa `anthropic-by-model` per protezioni di replay-policy
+ solo Claude sul traffico Anthropic
+- `anthropic-vertex`: protezioni di replay-policy solo Claude sul traffico
Anthropic-message
-- `openrouter`: id modello pass-through, wrapper di richiesta, suggerimenti di capability
- del provider, sanificazione della Gemini thought-signature sul traffico Gemini in proxy,
- iniezione del reasoning proxy tramite la famiglia di stream `openrouter-thinking`,
- inoltro dei metadati di routing e policy cache-TTL
-- `github-copilot`: onboarding/device login, fallback forward-compat del modello,
- suggerimenti di trascrizione Claude-thinking, scambio di token runtime e fetch dell'endpoint
- di uso
-- `openai`: fallback forward-compat per GPT-5.4, normalizzazione diretta del transport OpenAI,
- suggerimenti per autenticazione mancante consapevoli di Codex, soppressione di Spark, righe di catalogo
- sintetiche OpenAI/Codex, policy di thinking/modello live, normalizzazione degli alias dei token
- di uso (`input` / `output` e famiglie `prompt` / `completion`), la famiglia di stream condivisa
+- `openrouter`: id modello pass-through, wrapper di richiesta, suggerimenti di capability del provider,
+ sanificazione della thought-signature Gemini su traffico Gemini via proxy, iniezione del
+ reasoning via proxy tramite la famiglia stream `openrouter-thinking`, inoltro dei metadati
+ di routing e policy cache-TTL
+- `github-copilot`: onboarding/login del dispositivo, fallback modello forward-compat,
+ suggerimenti transcript Claude-thinking, scambio token runtime e fetch dell'endpoint
+ di utilizzo
+- `openai`: fallback forward-compat GPT-5.4, normalizzazione diretta del transport OpenAI,
+ suggerimenti missing-auth consapevoli di Codex, soppressione di Spark, righe di catalogo sintetiche
+ OpenAI/Codex, policy thinking/live-model, normalizzazione degli alias dei token di utilizzo
+ (`input` / `output` e famiglie `prompt` / `completion`), la famiglia stream condivisa
`openai-responses-defaults` per wrapper nativi OpenAI/Codex,
- metadati della famiglia provider, registrazione bundled del provider di generazione immagini
- per `gpt-image-1` e registrazione bundled del provider di generazione video
+ metadati di famiglia provider, registrazione inclusa del provider di generazione immagini
+ per `gpt-image-1` e registrazione inclusa del provider di generazione video
per `sora-2`
-- `google` e `google-gemini-cli`: fallback forward-compat per Gemini 3.1,
- validazione nativa del replay Gemini, sanificazione del replay bootstrap, modalità
- di output del ragionamento con tag, matching dei modelli moderni, registrazione bundled del provider
- di generazione immagini per i modelli Gemini image-preview e registrazione bundled del provider
- di generazione video per i modelli Veo; Gemini CLI OAuth inoltre
- gestisce la formattazione del token del profilo auth, il parsing del token di uso e il fetch
- dell'endpoint quota per le superfici di uso
-- `moonshot`: transport condiviso, normalizzazione del payload di thinking gestita dal plugin
-- `kilocode`: transport condiviso, header di richiesta gestiti dal plugin, payload di reasoning
- normalizzato, sanificazione della thought-signature per proxy-Gemini e policy
- cache-TTL
-- `zai`: fallback forward-compat per GLM-5, valori predefiniti `tool_stream`, policy cache-TTL,
- policy binary-thinking/live-model e autenticazione di uso + fetch quota;
- gli id sconosciuti `glm-5*` sono sintetizzati dal template bundled `glm-4.7`
-- `xai`: normalizzazione nativa del transport Responses, riscritture dell'alias `/fast` per
- le varianti veloci Grok, valore predefinito `tool_stream`, pulizia di schema degli strumenti /
- payload di reasoning specifica xAI e registrazione bundled del provider di generazione video
+- `google` e `google-gemini-cli`: fallback forward-compat Gemini 3.1,
+ validazione del replay Gemini nativo, sanificazione del replay bootstrap, modalità
+ di output reasoning con tag, matching del modello moderno, registrazione inclusa del provider
+ di generazione immagini per modelli Gemini image-preview e registrazione inclusa del
+ provider di generazione video per modelli Veo; Gemini CLI OAuth inoltre
+ gestisce la formattazione del token del profilo auth, il parsing del token di utilizzo e il fetch
+ dell'endpoint quota per le superfici di utilizzo
+- `moonshot`: transport condiviso, normalizzazione del payload thinking gestita dal plugin
+- `kilocode`: transport condiviso, header di richiesta gestiti dal plugin, normalizzazione del payload di reasoning,
+ sanificazione della thought-signature Gemini via proxy e policy cache-TTL
+- `zai`: fallback forward-compat GLM-5, valori predefiniti `tool_stream`, policy cache-TTL,
+ policy binary-thinking/live-model e autenticazione utilizzo + fetch quota;
+ gli id sconosciuti `glm-5*` vengono sintetizzati dal template incluso `glm-4.7`
+- `xai`: normalizzazione del transport Responses nativo, riscritture dell'alias `/fast` per
+ varianti Grok fast, `tool_stream` predefinito, pulizia degli schemi strumento /
+ payload di reasoning specifica xAI e registrazione inclusa del provider di generazione video
per `grok-imagine-video`
-- `mistral`: metadati delle capability gestiti dal plugin
-- `opencode` e `opencode-go`: metadati delle capability gestiti dal plugin più
- sanificazione della thought-signature per proxy-Gemini
-- `alibaba`: catalogo di generazione video gestito dal plugin per riferimenti diretti ai modelli Wan
+- `mistral`: metadati capability gestiti dal plugin
+- `opencode` e `opencode-go`: metadati capability gestiti dal plugin più
+ sanificazione della thought-signature Gemini via proxy
+- `alibaba`: catalogo di generazione video gestito dal plugin per riferimenti diretti a modelli Wan
come `alibaba/wan2.6-t2v`
-- `byteplus`: cataloghi gestiti dal plugin più registrazione bundled del provider di generazione video
- per i modelli Seedance text-to-video/image-to-video
-- `fal`: registrazione bundled del provider di generazione video per provider di terze parti ospitati
- registrazione del provider di generazione immagini per i modelli immagine FLUX più registrazione bundled
+- `byteplus`: cataloghi gestiti dal plugin più registrazione inclusa del provider di generazione video
+ per modelli Seedance text-to-video/image-to-video
+- `fal`: registrazione inclusa del provider di generazione video per provider ospitati di terze parti
+ registrazione del provider di generazione immagini per modelli immagine FLUX più registrazione inclusa
del provider di generazione video per modelli video ospitati di terze parti
- `cloudflare-ai-gateway`, `huggingface`, `kimi`, `nvidia`, `qianfan`,
`stepfun`, `synthetic`, `venice`, `vercel-ai-gateway` e `volcengine`:
solo cataloghi gestiti dal plugin
-- `qwen`: cataloghi gestiti dal plugin per i modelli testuali più registrazioni condivise
- del provider media-understanding e video-generation per le sue superfici multimodali;
- la generazione video Qwen usa gli endpoint video Standard DashScope con
- modelli Wan bundled come `wan2.6-t2v` e `wan2.7-r2v`
-- `runway`: registrazione del provider di generazione video gestita dal plugin
- per modelli nativi Runway basati su task come `gen4.5`
-- `minimax`: cataloghi gestiti dal plugin, registrazione bundled del provider di generazione video
- per i modelli video Hailuo, registrazione bundled del provider di generazione immagini
+- `qwen`: cataloghi gestiti dal plugin per modelli testuali più registrazioni condivise
+ dei provider media-understanding e video-generation per le sue superfici multimodali;
+ la generazione video Qwen usa gli endpoint video Standard DashScope con modelli Wan inclusi
+ come `wan2.6-t2v` e `wan2.7-r2v`
+- `runway`: registrazione del provider di generazione video gestita dal plugin per modelli nativi
+ basati su task Runway come `gen4.5`
+- `minimax`: cataloghi gestiti dal plugin, registrazione inclusa del provider di generazione video
+ per modelli video Hailuo, registrazione inclusa del provider di generazione immagini
per `image-01`, selezione ibrida della replay-policy Anthropic/OpenAI
- e logica di autenticazione/snapshot dell'uso
-- `together`: cataloghi gestiti dal plugin più registrazione bundled del provider di generazione video
- per i modelli video Wan
-- `xiaomi`: cataloghi gestiti dal plugin più logica di autenticazione/snapshot dell'uso
+ e logica auth/snapshot di utilizzo
+- `together`: cataloghi gestiti dal plugin più registrazione inclusa del provider di generazione video
+ per modelli video Wan
+- `xiaomi`: cataloghi gestiti dal plugin più logica auth/snapshot di utilizzo
-Il plugin bundled `openai` ora gestisce entrambi gli id provider: `openai` e
+Il plugin incluso `openai` ora gestisce entrambi gli id provider: `openai` e
`openai-codex`.
-Questo copre i provider che rientrano ancora nei normali transport di OpenClaw. Un provider
-che richiede un esecutore di richieste totalmente personalizzato è una superficie di estensione
+Questo copre i provider che rientrano ancora nei transport normali di OpenClaw. Un provider
+che necessita di un esecutore di richieste totalmente personalizzato è una superficie di estensione
separata e più profonda.
## Rotazione delle chiavi API
-- Supporta la rotazione generica dei provider per provider selezionati.
+- Supporta la rotazione generica del provider per provider selezionati.
- Configura più chiavi tramite:
- - `OPENCLAW_LIVE__KEY` (singola override live, massima priorità)
- - `_API_KEYS` (elenco separato da virgole o punto e virgola)
+ - `OPENCLAW_LIVE__KEY` (singolo override live, priorità più alta)
+ - `_API_KEYS` (lista separata da virgole o punti e virgola)
- `_API_KEY` (chiave primaria)
- - `_API_KEY_*` (elenco numerato, ad esempio `_API_KEY_1`)
+ - `_API_KEY_*` (lista numerata, per esempio `_API_KEY_1`)
- Per i provider Google, `GOOGLE_API_KEY` è incluso anche come fallback.
-- L'ordine di selezione delle chiavi preserva la priorità e rimuove i duplicati.
+- L'ordine di selezione delle chiavi preserva la priorità e deduplica i valori.
- Le richieste vengono ritentate con la chiave successiva solo in caso di risposte con rate limit (per
esempio `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many
concurrent requests`, `ThrottlingException`, `concurrency limit reached`,
- `workers_ai ... quota limit exceeded`, o messaggi periodici di limite d'uso).
-- I fallimenti non dovuti a rate limit falliscono immediatamente; non viene tentata alcuna rotazione delle chiavi.
+ `workers_ai ... quota limit exceeded` o messaggi periodici di limite d'uso).
+- Gli errori non dovuti a rate limit falliscono immediatamente; non viene tentata alcuna rotazione delle chiavi.
- Quando tutte le chiavi candidate falliscono, viene restituito l'errore finale dell'ultimo tentativo.
## Provider integrati (catalogo pi-ai)
-OpenClaw include il catalogo pi‑ai. Questi provider non richiedono alcuna
-configurazione `models.providers`; basta impostare l'autenticazione + scegliere un modello.
+OpenClaw include il catalogo pi-ai. Questi provider non richiedono alcuna configurazione
+`models.providers`; basta impostare l'autenticazione e scegliere un modello.
### OpenAI
- Provider: `openai`
- Auth: `OPENAI_API_KEY`
-- Rotazione opzionale: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, più `OPENCLAW_LIVE_OPENAI_KEY` (singola override)
+- Rotazione opzionale: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, più `OPENCLAW_LIVE_OPENAI_KEY` (singolo override)
- Modelli di esempio: `openai/gpt-5.4`, `openai/gpt-5.4-pro`
- CLI: `openclaw onboard --auth-choice openai-api-key`
- Il transport predefinito è `auto` (prima WebSocket, fallback SSE)
- Override per modello tramite `agents.defaults.models["openai/"].params.transport` (`"sse"`, `"websocket"` o `"auto"`)
- Il warm-up WebSocket di OpenAI Responses è abilitato per impostazione predefinita tramite `params.openaiWsWarmup` (`true`/`false`)
- L'elaborazione prioritaria OpenAI può essere abilitata tramite `agents.defaults.models["openai/"].params.serviceTier`
-- `/fast` e `params.fastMode` mappano le richieste Responses dirette `openai/*` a `service_tier=priority` su `api.openai.com`
+- `/fast` e `params.fastMode` mappano le richieste dirette `openai/*` Responses a `service_tier=priority` su `api.openai.com`
- Usa `params.serviceTier` quando vuoi un livello esplicito invece del toggle condiviso `/fast`
-- Gli header di attribuzione nascosti di OpenClaw (`originator`, `version`,
- `User-Agent`) si applicano solo al traffico OpenAI nativo verso `api.openai.com`, non
- a proxy generici compatibili con OpenAI
-- I percorsi OpenAI nativi mantengono anche `store` di Responses, suggerimenti di cache del prompt e
+- Gli header di attribuzione OpenClaw nascosti (`originator`, `version`,
+ `User-Agent`) si applicano solo al traffico nativo OpenAI verso `api.openai.com`, non
+ ai proxy generici compatibili con OpenAI
+- I percorsi OpenAI nativi mantengono anche `store` di Responses, suggerimenti per la cache dei prompt e
modellazione del payload di compatibilità reasoning OpenAI; i percorsi proxy no
-- `openai/gpt-5.3-codex-spark` è intenzionalmente soppresso in OpenClaw perché l'API OpenAI live lo rifiuta; Spark è trattato solo come Codex
+- `openai/gpt-5.3-codex-spark` è intenzionalmente soppresso in OpenClaw perché l'API OpenAI live lo rifiuta; Spark è trattato come solo Codex
```json5
{
@@ -275,12 +274,12 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
- Provider: `anthropic`
- Auth: `ANTHROPIC_API_KEY`
-- Rotazione opzionale: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, più `OPENCLAW_LIVE_ANTHROPIC_KEY` (singola override)
+- Rotazione opzionale: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, più `OPENCLAW_LIVE_ANTHROPIC_KEY` (singolo override)
- Modello di esempio: `anthropic/claude-opus-4-6`
- CLI: `openclaw onboard --auth-choice apiKey`
-- Le richieste Anthropic pubbliche dirette supportano il toggle condiviso `/fast` e `params.fastMode`, incluso il traffico autenticato con chiave API e OAuth inviato a `api.anthropic.com`; OpenClaw lo mappa a `service_tier` di Anthropic (`auto` vs `standard_only`)
-- Nota Anthropic: lo staff Anthropic ci ha detto che l'uso in stile Claude CLI di OpenClaw è di nuovo consentito, quindi OpenClaw tratta il riuso di Claude CLI e l'uso di `claude -p` come autorizzati per questa integrazione finché Anthropic non pubblica una nuova policy.
-- Il setup-token Anthropic resta disponibile come percorso di token OpenClaw supportato, ma OpenClaw ora preferisce il riuso di Claude CLI e `claude -p` quando disponibili.
+- Le richieste Anthropic pubbliche dirette supportano il toggle condiviso `/fast` e `params.fastMode`, incluso il traffico autenticato con chiave API e OAuth inviato a `api.anthropic.com`; OpenClaw lo mappa a Anthropic `service_tier` (`auto` vs `standard_only`)
+- Nota Anthropic: il personale Anthropic ci ha detto che l'uso in stile Claude CLI di OpenClaw è di nuovo consentito, quindi OpenClaw tratta il riuso di Claude CLI e l'uso di `claude -p` come autorizzati per questa integrazione, a meno che Anthropic non pubblichi una nuova policy.
+- Il setup-token Anthropic rimane disponibile come percorso token OpenClaw supportato, ma OpenClaw ora preferisce il riuso di Claude CLI e `claude -p` quando disponibili.
```json5
{
@@ -296,13 +295,13 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
- CLI: `openclaw onboard --auth-choice openai-codex` o `openclaw models auth login --provider openai-codex`
- Il transport predefinito è `auto` (prima WebSocket, fallback SSE)
- Override per modello tramite `agents.defaults.models["openai-codex/"].params.transport` (`"sse"`, `"websocket"` o `"auto"`)
-- `params.serviceTier` viene inoltrato anche nelle richieste native Codex Responses (`chatgpt.com/backend-api`)
-- Gli header di attribuzione nascosti di OpenClaw (`originator`, `version`,
+- `params.serviceTier` viene inoltrato anche sulle richieste native Codex Responses (`chatgpt.com/backend-api`)
+- Gli header di attribuzione OpenClaw nascosti (`originator`, `version`,
`User-Agent`) vengono allegati solo sul traffico Codex nativo verso
- `chatgpt.com/backend-api`, non su proxy generici compatibili con OpenAI
+ `chatgpt.com/backend-api`, non ai proxy generici compatibili con OpenAI
- Condivide lo stesso toggle `/fast` e la stessa configurazione `params.fastMode` di `openai/*` diretto; OpenClaw lo mappa a `service_tier=priority`
-- `openai-codex/gpt-5.3-codex-spark` resta disponibile quando il catalogo OAuth Codex lo espone; dipende dai diritti
-- `openai-codex/gpt-5.4` mantiene `contextWindow = 1050000` nativo e un `contextTokens = 272000` di runtime predefinito; esegui l'override del limite di runtime con `models.providers.openai-codex.models[].contextTokens`
+- `openai-codex/gpt-5.3-codex-spark` rimane disponibile quando il catalogo OAuth Codex lo espone; dipende dai diritti
+- `openai-codex/gpt-5.4` mantiene `contextWindow = 1050000` nativo e un `contextTokens = 272000` di runtime predefinito; sovrascrivi il limite runtime con `models.providers.openai-codex.models[].contextTokens`
- Nota sulla policy: OpenAI Codex OAuth è esplicitamente supportato per strumenti/workflow esterni come OpenClaw.
```json5
@@ -323,10 +322,10 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
}
```
-### Altre opzioni hosted in stile abbonamento
+### Altre opzioni ospitate in stile abbonamento
-- [Qwen Cloud](/it/providers/qwen): superficie provider Qwen Cloud più mappatura degli endpoint Alibaba DashScope e Coding Plan
-- [MiniMax](/it/providers/minimax): accesso MiniMax Coding Plan tramite OAuth o chiave API
+- [Qwen Cloud](/it/providers/qwen): superficie provider Qwen Cloud più mapping degli endpoint Alibaba DashScope e Coding Plan
+- [MiniMax](/it/providers/minimax): accesso MiniMax Coding Plan OAuth o tramite chiave API
- [GLM Models](/it/providers/glm): endpoint Z.AI Coding Plan o API generali
### OpenCode
@@ -347,37 +346,37 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
- Provider: `google`
- Auth: `GEMINI_API_KEY`
-- Rotazione opzionale: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, fallback `GOOGLE_API_KEY` e `OPENCLAW_LIVE_GEMINI_KEY` (singola override)
+- Rotazione opzionale: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, fallback `GOOGLE_API_KEY` e `OPENCLAW_LIVE_GEMINI_KEY` (singolo override)
- Modelli di esempio: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview`
-- Compatibilità: la configurazione legacy di OpenClaw che usa `google/gemini-3.1-flash-preview` viene normalizzata a `google/gemini-3-flash-preview`
+- Compatibilità: la configurazione legacy di OpenClaw che usa `google/gemini-3.1-flash-preview` viene normalizzata in `google/gemini-3-flash-preview`
- CLI: `openclaw onboard --auth-choice gemini-api-key`
- Le esecuzioni Gemini dirette accettano anche `agents.defaults.models["google/"].params.cachedContent`
- (o il legacy `cached_content`) per inoltrare un handle nativo del provider
- `cachedContents/...`; i cache hit Gemini vengono esposti come OpenClaw `cacheRead`
+ (o il legacy `cached_content`) per inoltrare un handle
+ `cachedContents/...` nativo del provider; gli hit della cache Gemini emergono come OpenClaw `cacheRead`
### Google Vertex e Gemini CLI
- Provider: `google-vertex`, `google-gemini-cli`
-- Auth: Vertex usa gcloud ADC; Gemini CLI usa il proprio flusso OAuth
-- Attenzione: Gemini CLI OAuth in OpenClaw è un'integrazione non ufficiale. Alcuni utenti hanno segnalato restrizioni sull'account Google dopo aver usato client di terze parti. Controlla i termini di Google e usa un account non critico se scegli di procedere.
-- Gemini CLI OAuth viene distribuito come parte del plugin bundled `google`.
+- Auth: Vertex usa gcloud ADC; Gemini CLI usa il suo flusso OAuth
+- Attenzione: Gemini CLI OAuth in OpenClaw è un'integrazione non ufficiale. Alcuni utenti hanno segnalato restrizioni sugli account Google dopo aver usato client di terze parti. Consulta i termini di Google e usa un account non critico se scegli di procedere.
+- Gemini CLI OAuth è incluso come parte del plugin `google`.
- Installa prima Gemini CLI:
- `brew install gemini-cli`
- oppure `npm install -g @google/gemini-cli`
- Abilita: `openclaw plugins enable google`
- Login: `openclaw models auth login --provider google-gemini-cli --set-default`
- Modello predefinito: `google-gemini-cli/gemini-3-flash-preview`
- - Nota: **non** incolli un client id o un secret in `openclaw.json`. Il flusso di login CLI memorizza
- i token nei profili auth sull'host del gateway.
- - Se le richieste falliscono dopo il login, imposta `GOOGLE_CLOUD_PROJECT` o `GOOGLE_CLOUD_PROJECT_ID` sull'host del gateway.
- - Le risposte JSON di Gemini CLI vengono analizzate da `response`; l'uso usa come fallback
+ - Nota: **non** incolli un client id o secret in `openclaw.json`. Il flusso di login CLI memorizza
+ i token nei profili di autenticazione sull'host gateway.
+ - Se le richieste falliscono dopo il login, imposta `GOOGLE_CLOUD_PROJECT` o `GOOGLE_CLOUD_PROJECT_ID` sull'host gateway.
+ - Le risposte JSON di Gemini CLI vengono parse da `response`; l'utilizzo usa come fallback
`stats`, con `stats.cached` normalizzato in OpenClaw `cacheRead`.
### Z.AI (GLM)
- Provider: `zai`
- Auth: `ZAI_API_KEY`
-- Modello di esempio: `zai/glm-5`
+- Modello di esempio: `zai/glm-5.1`
- CLI: `openclaw onboard --auth-choice zai-api-key`
- Alias: `z.ai/*` e `z-ai/*` vengono normalizzati in `zai/*`
- `zai-api-key` rileva automaticamente l'endpoint Z.AI corrispondente; `zai-coding-global`, `zai-coding-cn`, `zai-global` e `zai-cn` forzano una superficie specifica
@@ -395,8 +394,8 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
- Auth: `KILOCODE_API_KEY`
- Modello di esempio: `kilocode/kilo/auto`
- CLI: `openclaw onboard --auth-choice kilocode-api-key`
-- Base URL: `https://api.kilo.ai/api/gateway/`
-- Il catalogo statico di fallback include `kilocode/kilo/auto`; la discovery live di
+- URL base: `https://api.kilo.ai/api/gateway/`
+- Il catalogo di fallback statico include `kilocode/kilo/auto`; la discovery live di
`https://api.kilo.ai/api/gateway/models` può espandere ulteriormente il catalogo
runtime.
- Il routing upstream esatto dietro `kilocode/kilo/auto` è gestito da Kilo Gateway,
@@ -404,30 +403,30 @@ configurazione `models.providers`; basta impostare l'autenticazione + scegliere
Vedi [/providers/kilocode](/it/providers/kilocode) per i dettagli di configurazione.
-### Altri plugin provider bundled
+### Altri plugin provider inclusi
- OpenRouter: `openrouter` (`OPENROUTER_API_KEY`)
- Modello di esempio: `openrouter/auto`
-- OpenClaw applica gli header di attribuzione dell'app documentati da OpenRouter solo quando
+- OpenClaw applica gli header di attribuzione app documentati da OpenRouter solo quando
la richiesta punta effettivamente a `openrouter.ai`
-- I marker Anthropic `cache_control` specifici di OpenRouter sono allo stesso modo limitati
- a route OpenRouter verificate, non a URL proxy arbitrari
-- OpenRouter resta sul percorso in stile proxy compatibile con OpenAI, quindi la modellazione nativa delle richieste
- solo-OpenAI (`serviceTier`, `store` di Responses,
- suggerimenti di cache del prompt, payload di compatibilità reasoning OpenAI) non viene inoltrata
-- I riferimenti OpenRouter basati su Gemini mantengono solo la sanificazione della thought-signature per proxy-Gemini;
- la validazione del replay Gemini nativo e le riscritture bootstrap restano disattivate
+- I marker `cache_control` specifici di OpenRouter per Anthropic sono analogamente limitati
+ alle route OpenRouter verificate, non a URL proxy arbitrari
+- OpenRouter rimane sul percorso in stile proxy compatibile con OpenAI, quindi la modellazione
+ nativa delle richieste solo OpenAI (`serviceTier`, `store` di Responses,
+ suggerimenti per la cache dei prompt, payload di compatibilità reasoning OpenAI) non viene inoltrata
+- I riferimenti OpenRouter basati su Gemini mantengono solo la sanificazione della thought-signature
+ proxy-Gemini; la validazione del replay Gemini nativo e le riscritture bootstrap restano disattivate
- Kilo Gateway: `kilocode` (`KILOCODE_API_KEY`)
- Modello di esempio: `kilocode/kilo/auto`
-- I riferimenti Kilo basati su Gemini mantengono lo stesso percorso di sanificazione della thought-signature
- per proxy-Gemini; `kilocode/kilo/auto` e altri suggerimenti che non supportano il proxy-reasoning
- saltano l'iniezione del proxy reasoning
+- I riferimenti Kilo basati su Gemini mantengono lo stesso percorso di sanificazione della
+ thought-signature proxy-Gemini; `kilocode/kilo/auto` e altri suggerimenti proxy che non supportano reasoning
+ saltano l'iniezione di reasoning via proxy
- MiniMax: `minimax` (chiave API) e `minimax-portal` (OAuth)
- Auth: `MINIMAX_API_KEY` per `minimax`; `MINIMAX_OAUTH_TOKEN` o `MINIMAX_API_KEY` per `minimax-portal`
- Modello di esempio: `minimax/MiniMax-M2.7` o `minimax-portal/MiniMax-M2.7`
-- La configurazione onboarding/chiave API di MiniMax scrive definizioni esplicite del modello M2.7 con
- `input: ["text", "image"]`; il catalogo provider bundled mantiene i riferimenti chat
- solo testuali finché quella configurazione provider non viene materializzata
+- L'onboarding/configurazione con chiave API di MiniMax scrive definizioni esplicite dei modelli M2.7 con
+ `input: ["text", "image"]`; il catalogo provider incluso mantiene i riferimenti chat
+ solo testo finché quella configurazione provider non viene materializzata
- Moonshot: `moonshot` (`MOONSHOT_API_KEY`)
- Modello di esempio: `moonshot/kimi-k2.5`
- Kimi Coding: `kimi` (`KIMI_API_KEY` o `KIMICODE_API_KEY`)
@@ -453,43 +452,43 @@ Vedi [/providers/kilocode](/it/providers/kilocode) per i dettagli di configurazi
- BytePlus: `byteplus` (`BYTEPLUS_API_KEY`)
- Modello di esempio: `byteplus-plan/ark-code-latest`
- xAI: `xai` (`XAI_API_KEY`)
- - Le richieste xAI bundled native usano il percorso xAI Responses
+ - Le richieste xAI native incluse usano il percorso xAI Responses
- `/fast` o `params.fastMode: true` riscrivono `grok-3`, `grok-3-mini`,
`grok-4` e `grok-4-0709` nelle rispettive varianti `*-fast`
- `tool_stream` è attivo per impostazione predefinita; imposta
`agents.defaults.models["xai/"].params.tool_stream` su `false` per
- disattivarlo
+ disabilitarlo
- Mistral: `mistral` (`MISTRAL_API_KEY`)
- Modello di esempio: `mistral/mistral-large-latest`
- CLI: `openclaw onboard --auth-choice mistral-api-key`
- Groq: `groq` (`GROQ_API_KEY`)
- Cerebras: `cerebras` (`CEREBRAS_API_KEY`)
- I modelli GLM su Cerebras usano gli id `zai-glm-4.7` e `zai-glm-4.6`.
- - Base URL compatibile con OpenAI: `https://api.cerebras.ai/v1`.
+ - URL base compatibile con OpenAI: `https://api.cerebras.ai/v1`.
- GitHub Copilot: `github-copilot` (`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`)
-- Modello di esempio per Hugging Face Inference: `huggingface/deepseek-ai/DeepSeek-R1`; CLI: `openclaw onboard --auth-choice huggingface-api-key`. Vedi [Hugging Face (Inference)](/it/providers/huggingface).
+- Modello di esempio Hugging Face Inference: `huggingface/deepseek-ai/DeepSeek-R1`; CLI: `openclaw onboard --auth-choice huggingface-api-key`. Vedi [Hugging Face (Inference)](/it/providers/huggingface).
-## Provider tramite `models.providers` (custom/base URL)
+## Provider tramite `models.providers` (URL base/personalizzato)
-Usa `models.providers` (o `models.json`) per aggiungere provider **custom** o
+Usa `models.providers` (o `models.json`) per aggiungere provider **personalizzati** o
proxy compatibili con OpenAI/Anthropic.
-Molti dei plugin provider bundled qui sotto pubblicano già un catalogo predefinito.
-Usa voci esplicite `models.providers.` solo quando vuoi sovrascrivere il
-base URL, gli header o l'elenco dei modelli predefiniti.
+Molti dei plugin provider inclusi qui sotto pubblicano già un catalogo predefinito.
+Usa voci esplicite `models.providers.` solo quando vuoi sovrascrivere
+l'URL base, gli header o la lista di modelli predefiniti.
### Moonshot AI (Kimi)
-Moonshot viene distribuito come plugin provider bundled. Usa il provider integrato per
+Moonshot è incluso come plugin provider. Usa il provider integrato per
impostazione predefinita e aggiungi una voce esplicita `models.providers.moonshot` solo quando
-devi sovrascrivere il base URL o i metadati del modello:
+devi sovrascrivere l'URL base o i metadati del modello:
- Provider: `moonshot`
- Auth: `MOONSHOT_API_KEY`
- Modello di esempio: `moonshot/kimi-k2.5`
- CLI: `openclaw onboard --auth-choice moonshot-api-key` o `openclaw onboard --auth-choice moonshot-api-key-cn`
-ID dei modelli Kimi K2:
+ID modello Kimi K2:
[//]: # "moonshot-kimi-k2-model-refs:start"
@@ -536,7 +535,7 @@ Kimi Coding usa l'endpoint compatibile con Anthropic di Moonshot AI:
}
```
-Il legacy `kimi/k2p5` resta accettato come id modello di compatibilità.
+Il legacy `kimi/k2p5` continua a essere accettato come id modello di compatibilità.
### Volcano Engine (Doubao)
@@ -556,12 +555,12 @@ Volcano Engine (火山引擎) fornisce accesso a Doubao e ad altri modelli in Ci
```
L'onboarding usa per impostazione predefinita la superficie coding, ma il catalogo generale `volcengine/*`
-viene registrato allo stesso tempo.
+viene registrato contemporaneamente.
-Nei picker di onboarding/configurazione modello, la scelta auth Volcengine preferisce sia le righe
+Nei selettori di onboarding/configurazione del modello, la scelta auth Volcengine preferisce sia le righe
`volcengine/*` sia quelle `volcengine-plan/*`. Se questi modelli non sono ancora caricati,
-OpenClaw usa come fallback il catalogo non filtrato invece di mostrare un picker vuoto
-limitato al provider.
+OpenClaw ripiega sul catalogo non filtrato invece di mostrare un selettore
+vuoto con ambito provider.
Modelli disponibili:
@@ -597,12 +596,12 @@ BytePlus ARK fornisce accesso agli stessi modelli di Volcano Engine per gli uten
```
L'onboarding usa per impostazione predefinita la superficie coding, ma il catalogo generale `byteplus/*`
-viene registrato allo stesso tempo.
+viene registrato contemporaneamente.
-Nei picker di onboarding/configurazione modello, la scelta auth BytePlus preferisce sia le righe
+Nei selettori di onboarding/configurazione del modello, la scelta auth BytePlus preferisce sia le righe
`byteplus/*` sia quelle `byteplus-plan/*`. Se questi modelli non sono ancora caricati,
-OpenClaw usa come fallback il catalogo non filtrato invece di mostrare un picker vuoto
-limitato al provider.
+OpenClaw ripiega sul catalogo non filtrato invece di mostrare un selettore
+vuoto con ambito provider.
Modelli disponibili:
@@ -652,27 +651,27 @@ MiniMax è configurato tramite `models.providers` perché usa endpoint personali
- MiniMax OAuth (globale): `--auth-choice minimax-global-oauth`
- MiniMax OAuth (CN): `--auth-choice minimax-cn-oauth`
-- MiniMax chiave API (globale): `--auth-choice minimax-global-api`
-- MiniMax chiave API (CN): `--auth-choice minimax-cn-api`
+- Chiave API MiniMax (globale): `--auth-choice minimax-global-api`
+- Chiave API MiniMax (CN): `--auth-choice minimax-cn-api`
- Auth: `MINIMAX_API_KEY` per `minimax`; `MINIMAX_OAUTH_TOKEN` o
`MINIMAX_API_KEY` per `minimax-portal`
Vedi [/providers/minimax](/it/providers/minimax) per dettagli di configurazione, opzioni dei modelli e snippet di configurazione.
-Sul percorso di streaming compatibile con Anthropic di MiniMax, OpenClaw disattiva thinking per
+Sul percorso di streaming compatibile con Anthropic di MiniMax, OpenClaw disabilita thinking per
impostazione predefinita a meno che tu non lo imposti esplicitamente, e `/fast on` riscrive
`MiniMax-M2.7` in `MiniMax-M2.7-highspeed`.
Suddivisione delle capability gestita dal plugin:
-- I valori predefiniti text/chat restano su `minimax/MiniMax-M2.7`
+- I valori predefiniti testo/chat restano su `minimax/MiniMax-M2.7`
- La generazione immagini è `minimax/image-01` o `minimax-portal/image-01`
-- La comprensione delle immagini è `MiniMax-VL-01` gestita dal plugin su entrambi i percorsi auth MiniMax
+- La comprensione immagini è `MiniMax-VL-01` gestito dal plugin su entrambi i percorsi auth MiniMax
- La ricerca web resta sull'id provider `minimax`
### Ollama
-Ollama viene distribuito come plugin provider bundled e usa l'API nativa di Ollama:
+Ollama è incluso come plugin provider e usa l'API nativa di Ollama:
- Provider: `ollama`
- Auth: Nessuna richiesta (server locale)
@@ -692,26 +691,26 @@ ollama pull llama3.3
}
```
-Ollama viene rilevato localmente su `http://127.0.0.1:11434` quando abiliti la funzione con
-`OLLAMA_API_KEY`, e il plugin provider bundled aggiunge Ollama direttamente a
-`openclaw onboard` e al picker dei modelli. Vedi [/providers/ollama](/it/providers/ollama)
+Ollama viene rilevato localmente su `http://127.0.0.1:11434` quando scegli di attivarlo con
+`OLLAMA_API_KEY`, e il plugin provider incluso aggiunge Ollama direttamente a
+`openclaw onboard` e al selettore di modelli. Vedi [/providers/ollama](/it/providers/ollama)
per onboarding, modalità cloud/locale e configurazione personalizzata.
### vLLM
-vLLM viene distribuito come plugin provider bundled per server locali/self-hosted compatibili con OpenAI:
+vLLM è incluso come plugin provider per server locali/self-hosted compatibili con OpenAI:
- Provider: `vllm`
- Auth: Opzionale (dipende dal tuo server)
-- Base URL predefinito: `http://127.0.0.1:8000/v1`
+- URL base predefinito: `http://127.0.0.1:8000/v1`
-Per abilitare l'auto-discovery locale (qualsiasi valore va bene se il tuo server non impone l'autenticazione):
+Per attivare l'auto-discovery locale (qualsiasi valore va bene se il tuo server non impone l'autenticazione):
```bash
export VLLM_API_KEY="vllm-local"
```
-Poi imposta un modello (sostituiscilo con uno degli ID restituiti da `/v1/models`):
+Poi imposta un modello (sostituisci con uno degli ID restituiti da `/v1/models`):
```json5
{
@@ -725,21 +724,21 @@ Vedi [/providers/vllm](/it/providers/vllm) per i dettagli.
### SGLang
-SGLang viene distribuito come plugin provider bundled per server self-hosted veloci
+SGLang è incluso come plugin provider per server self-hosted veloci
compatibili con OpenAI:
- Provider: `sglang`
- Auth: Opzionale (dipende dal tuo server)
-- Base URL predefinito: `http://127.0.0.1:30000/v1`
+- URL base predefinito: `http://127.0.0.1:30000/v1`
-Per abilitare l'auto-discovery locale (qualsiasi valore va bene se il tuo server non
+Per attivare l'auto-discovery locale (qualsiasi valore va bene se il tuo server non
impone l'autenticazione):
```bash
export SGLANG_API_KEY="sglang-local"
```
-Poi imposta un modello (sostituiscilo con uno degli ID restituiti da `/v1/models`):
+Poi imposta un modello (sostituisci con uno degli ID restituiti da `/v1/models`):
```json5
{
@@ -788,21 +787,21 @@ Esempio (compatibile con OpenAI):
Note:
-- Per i provider personalizzati, `reasoning`, `input`, `cost`, `contextWindow` e `maxTokens` sono opzionali.
- Se omessi, OpenClaw usa come valori predefiniti:
+- Per i provider personalizzati, `reasoning`, `input`, `cost`, `contextWindow` e `maxTokens` sono facoltativi.
+ Se omessi, OpenClaw usa i seguenti valori predefiniti:
- `reasoning: false`
- `input: ["text"]`
- `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }`
- `contextWindow: 200000`
- `maxTokens: 8192`
- Consigliato: imposta valori espliciti che corrispondano ai limiti del tuo proxy/modello.
-- Per `api: "openai-completions"` su endpoint non nativi (qualsiasi `baseUrl` non vuoto il cui host non sia `api.openai.com`), OpenClaw forza `compat.supportsDeveloperRole: false` per evitare errori 400 del provider per ruoli `developer` non supportati.
-- I percorsi in stile proxy compatibili con OpenAI saltano anche la modellazione nativa delle richieste solo-OpenAI:
- niente `service_tier`, niente `store` di Responses, niente suggerimenti di cache del prompt, niente
- modellazione del payload di compatibilità reasoning OpenAI e nessun header di attribuzione nascosto
- di OpenClaw.
-- Se `baseUrl` è vuoto/omesso, OpenClaw mantiene il comportamento predefinito di OpenAI (che risolve a `api.openai.com`).
-- Per sicurezza, un valore esplicito `compat.supportsDeveloperRole: true` viene comunque sovrascritto sugli endpoint non nativi `openai-completions`.
+- Per `api: "openai-completions"` su endpoint non nativi (qualsiasi `baseUrl` non vuoto il cui host non sia `api.openai.com`), OpenClaw forza `compat.supportsDeveloperRole: false` per evitare errori provider 400 dovuti a ruoli `developer` non supportati.
+- I percorsi in stile proxy compatibili con OpenAI saltano anche la modellazione delle richieste nativa solo OpenAI:
+ niente `service_tier`, niente `store` di Responses, niente suggerimenti per la cache dei prompt, niente
+ modellazione del payload di compatibilità reasoning OpenAI e nessun header di attribuzione OpenClaw
+ nascosto.
+- Se `baseUrl` è vuoto/omesso, OpenClaw mantiene il comportamento OpenAI predefinito (che risolve a `api.openai.com`).
+- Per sicurezza, un `compat.supportsDeveloperRole: true` esplicito viene comunque sovrascritto sugli endpoint `openai-completions` non nativi.
## Esempi CLI
@@ -816,7 +815,7 @@ Vedi anche: [/gateway/configuration](/it/gateway/configuration) per esempi compl
## Correlati
-- [Models](/it/concepts/models) — configurazione dei modelli e alias
-- [Model Failover](/it/concepts/model-failover) — catene di fallback e comportamento dei retry
+- [Models](/it/concepts/models) — configurazione e alias dei modelli
+- [Model Failover](/it/concepts/model-failover) — catene di fallback e comportamento dei tentativi
- [Configuration Reference](/it/gateway/configuration-reference#agent-defaults) — chiavi di configurazione del modello
- [Providers](/it/providers) — guide di configurazione per provider
diff --git a/docs/it/concepts/qa-e2e-automation.md b/docs/it/concepts/qa-e2e-automation.md
index 1b604e484..2f3ca578c 100644
--- a/docs/it/concepts/qa-e2e-automation.md
+++ b/docs/it/concepts/qa-e2e-automation.md
@@ -1,33 +1,32 @@
---
read_when:
- - Estendere qa-lab o qa-channel
- - Aggiungere scenari QA supportati dal repository
- - Creare un'automazione QA più realistica attorno alla dashboard del Gateway
-summary: Struttura dell'automazione QA privata per qa-lab, qa-channel, scenari predefiniti e report di protocollo
+ - Estensione di qa-lab o qa-channel
+ - Aggiunta di scenari QA supportati dal repository
+ - Creazione di un'automazione QA più realistica intorno alla dashboard del Gateway
+summary: Struttura privata dell'automazione QA per qa-lab, qa-channel, scenari iniziali e report di protocollo
title: Automazione QA E2E
x-i18n:
- generated_at: "2026-04-08T02:14:03Z"
+ generated_at: "2026-04-08T06:00:44Z"
model: gpt-5.4
provider: openai
- source_hash: 3b4aa5acc8e77303f4045d4f04372494cae21b89d2fdaba856dbb4855ced9d27
+ source_hash: 57da147dc06abf9620290104e01a83b42182db1806514114fd9e8467492cda99
source_path: concepts/qa-e2e-automation.md
workflow: 15
---
# Automazione QA E2E
-Lo stack QA privato è pensato per esercitare OpenClaw in modo più realistico,
-con una forma simile a quella dei canali, rispetto a quanto possa fare un
-singolo test unitario.
+Lo stack QA privato è pensato per testare OpenClaw in un modo più realistico e
+simile a un canale rispetto a quanto possa fare un singolo test unitario.
Componenti attuali:
-- `extensions/qa-channel`: canale di messaggi sintetico con superfici per DM, canale, thread,
- reazione, modifica ed eliminazione.
+- `extensions/qa-channel`: canale di messaggistica sintetico con superfici per messaggi diretti, canale, thread,
+ reazioni, modifiche ed eliminazioni.
- `extensions/qa-lab`: interfaccia utente di debug e bus QA per osservare la trascrizione,
- iniettare messaggi in ingresso ed esportare un report in Markdown.
-- `qa/`: risorse predefinite supportate dal repository per l'attività iniziale e gli scenari QA
- di base.
+ inserire messaggi in ingresso ed esportare un report in Markdown.
+- `qa/`: risorse iniziali supportate dal repository per il task iniziale e gli
+ scenari QA di base.
L'attuale flusso operativo QA è un sito QA a due pannelli:
@@ -40,13 +39,13 @@ Eseguilo con:
pnpm qa:lab:up
```
-Questo compila il sito QA, avvia il percorso gateway supportato da Docker ed espone la
-pagina QA Lab in cui un operatore o un ciclo di automazione può assegnare all'agente una
-missione QA, osservare il comportamento reale del canale e registrare ciò che ha funzionato, fallito o
-è rimasto bloccato.
+Questo comando compila il sito QA, avvia la corsia del gateway supportata da Docker ed espone la
+pagina di QA Lab dove un operatore o un ciclo di automazione può assegnare all'agente una
+missione QA, osservare il comportamento reale del canale e registrare cosa ha funzionato, cosa è fallito o
+cosa è rimasto bloccato.
-Per un'iterazione più rapida dell'interfaccia utente di QA Lab senza ricompilare ogni volta l'immagine Docker,
-avvia lo stack con un bundle QA Lab montato tramite bind:
+Per iterare più rapidamente sull'interfaccia utente di QA Lab senza ricompilare ogni volta l'immagine Docker,
+avvia lo stack con un bundle di QA Lab montato tramite bind:
```bash
pnpm openclaw qa docker-build-image
@@ -57,17 +56,18 @@ pnpm qa:lab:watch
`qa:lab:up:fast` mantiene i servizi Docker su un'immagine precompilata e monta tramite bind
`extensions/qa-lab/web/dist` nel container `qa-lab`. `qa:lab:watch`
-ricompila quel bundle a ogni modifica e il browser si ricarica automaticamente quando cambia l'hash
-delle risorse di QA Lab.
+ricompila quel bundle a ogni modifica e il browser si ricarica automaticamente quando l'hash
+delle risorse di QA Lab cambia.
-## Risorse predefinite supportate dal repository
+## Risorse iniziali supportate dal repository
-Le risorse predefinite si trovano in `qa/`:
+Le risorse iniziali si trovano in `qa/`:
-- `qa/scenarios.md`
+- `qa/scenarios/index.md`
+- `qa/scenarios/*.md`
-Queste sono intenzionalmente incluse in git in modo che il piano QA sia visibile sia agli esseri umani sia
-all'agente. L'elenco di base dovrebbe rimanere abbastanza ampio da coprire:
+Questi file sono intenzionalmente in git in modo che il piano QA sia visibile sia agli esseri umani sia all'
+agente. L'elenco di base dovrebbe rimanere sufficientemente ampio da coprire:
- chat in DM e nei canali
- comportamento dei thread
@@ -75,13 +75,13 @@ all'agente. L'elenco di base dovrebbe rimanere abbastanza ampio da coprire:
- callback cron
- richiamo della memoria
- cambio di modello
-- passaggio a subagent
+- passaggio a un subagente
- lettura del repository e della documentazione
-- una piccola attività di build come Lobster Invaders
+- un piccolo task di build come Lobster Invaders
## Reportistica
-`qa-lab` esporta un report di protocollo in Markdown dalla timeline del bus osservata.
+`qa-lab` esporta un report di protocollo in Markdown dalla timeline del bus osservato.
Il report dovrebbe rispondere a:
- Cosa ha funzionato
diff --git a/docs/it/concepts/streaming.md b/docs/it/concepts/streaming.md
index dc59dd3da..6af7bdad4 100644
--- a/docs/it/concepts/streaming.md
+++ b/docs/it/concepts/streaming.md
@@ -1,15 +1,15 @@
---
read_when:
- - Vuoi spiegare come funzionano lo streaming o il chunking nei canali
- - Stai modificando il comportamento dello streaming a blocchi o del chunking nei canali
- - Stai eseguendo il debug di risposte a blocchi duplicate/anticipate o del preview streaming nei canali
-summary: Comportamento di streaming + chunking (risposte a blocchi, preview streaming nei canali, mappatura delle modalità)
+ - Spiegare come funzionano lo streaming o il chunking sui canali
+ - Modificare il comportamento dello streaming a blocchi o del chunking del canale
+ - Eseguire il debug di risposte a blocchi duplicate/premature o dello streaming di anteprima del canale
+summary: Comportamento di streaming + chunking (risposte a blocchi, streaming di anteprima del canale, mappatura delle modalità)
title: Streaming e Chunking
x-i18n:
- generated_at: "2026-04-05T13:50:57Z"
+ generated_at: "2026-04-08T06:00:57Z"
model: gpt-5.4
provider: openai
- source_hash: 44b0d08c7eafcb32030ef7c8d5719c2ea2d34e4bac5fdad8cc8b3f4e9e9fad97
+ source_hash: a8e847bb7da890818cd79dec7777f6ae488e6d6c0468e948e56b6b6c598e0000
source_path: concepts/streaming.md
workflow: 15
---
@@ -18,48 +18,48 @@ x-i18n:
OpenClaw ha due livelli di streaming separati:
-- **Streaming a blocchi (canali):** emette **blocchi** completati mentre l'assistente scrive. Si tratta di normali messaggi del canale (non delta di token).
-- **Preview streaming (Telegram/Discord/Slack):** aggiorna un **messaggio di anteprima** temporaneo durante la generazione.
+- **Streaming a blocchi (canali):** emette **blocchi** completati mentre l'assistente scrive. Questi sono normali messaggi del canale (non delta di token).
+- **Streaming di anteprima (Telegram/Discord/Slack):** aggiorna un **messaggio di anteprima** temporaneo durante la generazione.
-Oggi **non esiste un vero streaming a delta di token** verso i messaggi del canale. Il preview streaming è basato sui messaggi (invio + modifiche/aggiunte).
+Al momento **non esiste un vero streaming token-delta** verso i messaggi del canale. Lo streaming di anteprima è basato sui messaggi (invio + modifiche/append).
## Streaming a blocchi (messaggi del canale)
-Lo streaming a blocchi invia l'output dell'assistente in blocchi grossolani man mano che diventa disponibile.
+Lo streaming a blocchi invia l'output dell'assistente in chunk grossolani man mano che diventano disponibili.
```
-Output del modello
+Model output
└─ text_delta/events
├─ (blockStreamingBreak=text_end)
- │ └─ il chunker emette blocchi man mano che il buffer cresce
+ │ └─ chunker emits blocks as buffer grows
└─ (blockStreamingBreak=message_end)
- └─ il chunker svuota il buffer a message_end
- └─ invio al canale (risposte a blocchi)
+ └─ chunker flushes at message_end
+ └─ channel send (block replies)
```
Legenda:
-- `text_delta/events`: eventi di streaming del modello (possono essere radi per i modelli non streaming).
+- `text_delta/events`: eventi del flusso del modello (possono essere radi per i modelli non in streaming).
- `chunker`: `EmbeddedBlockChunker` che applica limiti min/max + preferenza di interruzione.
-- `channel send`: messaggi effettivi in uscita (risposte a blocchi).
+- `channel send`: messaggi effettivamente inviati in uscita (risposte a blocchi).
**Controlli:**
- `agents.defaults.blockStreamingDefault`: `"on"`/`"off"` (predefinito off).
-- Override per canale: `*.blockStreaming` (e varianti per account) per forzare `"on"`/`"off"` per canale.
+- Override del canale: `*.blockStreaming` (e varianti per account) per forzare `"on"`/`"off"` per canale.
- `agents.defaults.blockStreamingBreak`: `"text_end"` o `"message_end"`.
- `agents.defaults.blockStreamingChunk`: `{ minChars, maxChars, breakPreference? }`.
- `agents.defaults.blockStreamingCoalesce`: `{ minChars?, maxChars?, idleMs? }` (unisce i blocchi in streaming prima dell'invio).
- Limite rigido del canale: `*.textChunkLimit` (ad esempio `channels.whatsapp.textChunkLimit`).
-- Modalità chunk del canale: `*.chunkMode` (`length` predefinito, `newline` divide sulle righe vuote, cioè ai confini dei paragrafi, prima del chunking per lunghezza).
-- Limite morbido Discord: `channels.discord.maxLinesPerMessage` (predefinito 17) divide le risposte alte per evitare il clipping nell'interfaccia.
+- Modalità di chunking del canale: `*.chunkMode` (`length` predefinito, `newline` divide sulle righe vuote (confini dei paragrafi) prima del chunking per lunghezza).
+- Limite morbido di Discord: `channels.discord.maxLinesPerMessage` (predefinito 17) divide le risposte alte per evitare il clipping dell'interfaccia.
**Semantica dei confini:**
-- `text_end`: trasmette i blocchi non appena il chunker li emette; svuota il buffer a ogni `text_end`.
-- `message_end`: attende che il messaggio dell'assistente termini, poi svuota l'output bufferizzato.
+- `text_end`: trasmette i blocchi non appena il chunker li emette; svuota a ogni `text_end`.
+- `message_end`: attende che il messaggio dell'assistente finisca, poi svuota l'output nel buffer.
-`message_end` usa comunque il chunker se il testo bufferizzato supera `maxChars`, quindi può emettere più chunk alla fine.
+`message_end` usa comunque il chunker se il testo nel buffer supera `maxChars`, quindi può emettere più chunk alla fine.
## Algoritmo di chunking (limiti basso/alto)
@@ -67,30 +67,30 @@ Il chunking a blocchi è implementato da `EmbeddedBlockChunker`:
- **Limite basso:** non emette finché il buffer non è >= `minChars` (a meno che non sia forzato).
- **Limite alto:** preferisce divisioni prima di `maxChars`; se forzato, divide a `maxChars`.
-- **Preferenza di interruzione:** `paragraph` → `newline` → `sentence` → `whitespace` → interruzione rigida.
-- **Code fence:** non divide mai all'interno delle fence; quando è forzato a `maxChars`, chiude e riapre la fence per mantenere valido il Markdown.
+- **Preferenza di interruzione:** `paragraph` → `newline` → `sentence` → `whitespace` → interruzione forzata.
+- **Blocchi di codice:** non divide mai all'interno dei blocchi; quando è forzato a `maxChars`, chiude e riapre il blocco per mantenere valido il Markdown.
-`maxChars` è vincolato al `textChunkLimit` del canale, quindi non puoi superare i limiti per canale.
+`maxChars` è limitato a `textChunkLimit` del canale, quindi non puoi superare i limiti per canale.
## Coalescenza (unione dei blocchi in streaming)
Quando lo streaming a blocchi è abilitato, OpenClaw può **unire chunk di blocchi consecutivi**
-prima di inviarli. Questo riduce lo “spam di singole righe” pur continuando a fornire
+prima di inviarli. Questo riduce lo “spam di righe singole” pur fornendo
un output progressivo.
-- La coalescenza attende **intervalli di inattività** (`idleMs`) prima di svuotare il buffer.
-- I buffer sono limitati da `maxChars` e vengono svuotati se lo superano.
+- La coalescenza attende **intervalli di inattività** (`idleMs`) prima di svuotare.
+- I buffer sono limitati da `maxChars` e verranno svuotati se li superano.
- `minChars` impedisce l'invio di frammenti minuscoli finché non si accumula abbastanza testo
(lo svuotamento finale invia sempre il testo rimanente).
- Il separatore deriva da `blockStreamingChunk.breakPreference`
(`paragraph` → `\n\n`, `newline` → `\n`, `sentence` → spazio).
-- Sono disponibili override per canale tramite `*.blockStreamingCoalesce` (incluse le configurazioni per account).
-- Il valore predefinito di coalescenza `minChars` viene portato a 1500 per Signal/Slack/Discord salvo override.
+- Sono disponibili override del canale tramite `*.blockStreamingCoalesce` (incluse le configurazioni per account).
+- Il valore predefinito di coalescenza `minChars` viene aumentato a 1500 per Signal/Slack/Discord, salvo override.
-## Ritmo umano tra i blocchi
+## Cadenza umana tra i blocchi
Quando lo streaming a blocchi è abilitato, puoi aggiungere una **pausa casuale** tra
-le risposte a blocchi (dopo il primo blocco). Questo rende le risposte multi-bolla
+le risposte a blocchi (dopo il primo blocco). Questo rende le risposte con più bolle
più naturali.
- Configurazione: `agents.defaults.humanDelay` (override per agente tramite `agents.list[].humanDelay`).
@@ -101,68 +101,69 @@ più naturali.
Questo corrisponde a:
-- **Trasmettere i chunk:** `blockStreamingDefault: "on"` + `blockStreamingBreak: "text_end"` (emette man mano). I canali non Telegram richiedono anche `*.blockStreaming: true`.
-- **Trasmettere tutto alla fine:** `blockStreamingBreak: "message_end"` (svuota una volta sola, eventualmente in più chunk se è molto lungo).
+- **Trasmettere i chunk:** `blockStreamingDefault: "on"` + `blockStreamingBreak: "text_end"` (emette man mano). I canali diversi da Telegram richiedono anche `*.blockStreaming: true`.
+- **Trasmettere tutto alla fine:** `blockStreamingBreak: "message_end"` (svuota una volta, possibilmente in più chunk se molto lungo).
- **Nessuno streaming a blocchi:** `blockStreamingDefault: "off"` (solo risposta finale).
-**Nota sui canali:** Lo streaming a blocchi è **disattivato a meno che**
-`*.blockStreaming` non sia esplicitamente impostato su `true`. I canali possono trasmettere una preview live
+**Nota sul canale:** lo streaming a blocchi è **disattivato a meno che**
+`*.blockStreaming` non sia impostato esplicitamente su `true`. I canali possono trasmettere un'anteprima live
(`channels..streaming`) senza risposte a blocchi.
-Promemoria sulla posizione della configurazione: i valori predefiniti `blockStreaming*` si trovano in
+Promemoria sulla posizione della configurazione: i valori predefiniti `blockStreaming*` si trovano sotto
`agents.defaults`, non nella configurazione root.
-## Modalità di preview streaming
+## Modalità di streaming di anteprima
Chiave canonica: `channels..streaming`
Modalità:
-- `off`: disabilita il preview streaming.
-- `partial`: singola anteprima che viene sostituita con il testo più recente.
-- `block`: l'anteprima si aggiorna in passaggi suddivisi in chunk/aggiunti.
+- `off`: disabilita lo streaming di anteprima.
+- `partial`: una singola anteprima che viene sostituita con il testo più recente.
+- `block`: l'anteprima viene aggiornata in passaggi a chunk/in append.
- `progress`: anteprima di avanzamento/stato durante la generazione, risposta finale al completamento.
-### Mappatura per canale
+### Mappatura dei canali
-| Canale | `off` | `partial` | `block` | `progress` |
-| -------- | ----- | --------- | ------- | ----------------- |
-| Telegram | ✅ | ✅ | ✅ | corrisponde a `partial` |
-| Discord | ✅ | ✅ | ✅ | corrisponde a `partial` |
-| Slack | ✅ | ✅ | ✅ | ✅ |
+| Canale | `off` | `partial` | `block` | `progress` |
+| -------- | ----- | --------- | ------- | ------------------ |
+| Telegram | ✅ | ✅ | ✅ | mappa a `partial` |
+| Discord | ✅ | ✅ | ✅ | mappa a `partial` |
+| Slack | ✅ | ✅ | ✅ | ✅ |
Solo Slack:
-- `channels.slack.nativeStreaming` abilita/disabilita le chiamate API di streaming nativo di Slack quando `streaming=partial` (predefinito: `true`).
+- `channels.slack.streaming.nativeTransport` abilita/disabilita le chiamate API di streaming native di Slack quando `channels.slack.streaming.mode="partial"` (predefinito: `true`).
+- Lo streaming nativo di Slack e lo stato del thread assistant di Slack richiedono una destinazione in thread di risposta; i DM di primo livello non mostrano quell'anteprima in stile thread.
Migrazione delle chiavi legacy:
- Telegram: `streamMode` + booleano `streaming` vengono migrati automaticamente all'enum `streaming`.
- Discord: `streamMode` + booleano `streaming` vengono migrati automaticamente all'enum `streaming`.
-- Slack: `streamMode` viene migrato automaticamente all'enum `streaming`; il booleano `streaming` viene migrato automaticamente a `nativeStreaming`.
+- Slack: `streamMode` viene migrato automaticamente a `streaming.mode`; il booleano `streaming` viene migrato automaticamente a `streaming.mode` più `streaming.nativeTransport`; il legacy `nativeStreaming` viene migrato automaticamente a `streaming.nativeTransport`.
-### Comportamento a runtime
+### Comportamento in runtime
Telegram:
-- Usa gli aggiornamenti di anteprima `sendMessage` + `editMessageText` tra DM e gruppi/topic.
-- Il preview streaming viene saltato quando lo streaming a blocchi di Telegram è esplicitamente abilitato (per evitare doppio streaming).
+- Usa aggiornamenti di anteprima `sendMessage` + `editMessageText` in DM e gruppi/topic.
+- Lo streaming di anteprima viene saltato quando lo streaming a blocchi di Telegram è esplicitamente abilitato (per evitare il doppio streaming).
- `/reasoning stream` può scrivere il ragionamento nell'anteprima.
Discord:
- Usa messaggi di anteprima con invio + modifica.
- La modalità `block` usa il chunking delle bozze (`draftChunk`).
-- Il preview streaming viene saltato quando lo streaming a blocchi di Discord è esplicitamente abilitato.
+- Lo streaming di anteprima viene saltato quando lo streaming a blocchi di Discord è esplicitamente abilitato.
Slack:
- `partial` può usare lo streaming nativo di Slack (`chat.startStream`/`append`/`stop`) quando disponibile.
- `block` usa anteprime bozza in stile append.
-- `progress` usa testo di anteprima dello stato, poi la risposta finale.
+- `progress` usa il testo di anteprima dello stato, poi la risposta finale.
## Correlati
-- [Messaggi](/concepts/messages) — ciclo di vita e consegna dei messaggi
-- [Retry](/concepts/retry) — comportamento di retry in caso di errore di consegna
+- [Messaggi](/it/concepts/messages) — ciclo di vita e consegna dei messaggi
+- [Retry](/it/concepts/retry) — comportamento di retry in caso di errore di consegna
- [Canali](/it/channels) — supporto dello streaming per canale
diff --git a/docs/it/gateway/configuration-reference.md b/docs/it/gateway/configuration-reference.md
index 3aa7eca76..2962bd019 100644
--- a/docs/it/gateway/configuration-reference.md
+++ b/docs/it/gateway/configuration-reference.md
@@ -2,55 +2,69 @@
read_when:
- Hai bisogno della semantica esatta dei campi di configurazione o dei valori predefiniti
- Stai convalidando blocchi di configurazione di canali, modelli, gateway o strumenti
-summary: Riferimento completo per ogni chiave di configurazione di OpenClaw, valori predefiniti e impostazioni dei canali
+summary: Riferimento della configurazione del gateway per le chiavi principali di OpenClaw, i valori predefiniti e i link ai riferimenti dedicati dei sottosistemi
title: Riferimento della configurazione
x-i18n:
- generated_at: "2026-04-08T02:20:19Z"
+ generated_at: "2026-04-08T06:06:14Z"
model: gpt-5.4
provider: openai
- source_hash: 2c7991b948cbbb7954a3e26280089ab00088e7f4878ec0b0540c3c9acf222ebb
+ source_hash: 2f9ab34fb56897a77cb038d95bea21e8530d8f0402b66d1ee97c73822a1e8fd4
source_path: gateway/configuration-reference.md
workflow: 15
---
# Riferimento della configurazione
-Ogni campo disponibile in `~/.openclaw/openclaw.json`. Per una panoramica orientata alle attività, vedi [Configurazione](/it/gateway/configuration).
+Riferimento della configurazione principale per `~/.openclaw/openclaw.json`. Per una panoramica orientata alle attività, vedi [Configurazione](/it/gateway/configuration).
-Il formato della configurazione è **JSON5** (commenti + virgole finali consentiti). Tutti i campi sono facoltativi — OpenClaw usa valori predefiniti sicuri quando vengono omessi.
+Questa pagina copre le principali superfici di configurazione di OpenClaw e rimanda altrove quando un sottosistema ha un proprio riferimento più approfondito. **Non** cerca di incorporare in linea ogni catalogo di comandi di proprietà di canali/plugin né ogni impostazione avanzata di memoria/QMD in un’unica pagina.
+
+Fonte di verità del codice:
+
+- `openclaw config schema` stampa lo JSON Schema live usato per la convalida e la Control UI, con i metadati bundled/plugin/channel uniti quando disponibili
+- `config.schema.lookup` restituisce un nodo di schema con ambito di percorso per gli strumenti di analisi approfondita
+- `pnpm config:docs:check` / `pnpm config:docs:gen` convalidano l’hash baseline della documentazione di configurazione rispetto alla superficie dello schema corrente
+
+Riferimenti approfonditi dedicati:
+
+- [Riferimento della configurazione della memoria](/it/reference/memory-config) per `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` e la configurazione del dreaming sotto `plugins.entries.memory-core.config.dreaming`
+- [Slash Commands](/it/tools/slash-commands) per il catalogo corrente dei comandi built-in + bundled
+- pagine del canale/plugin proprietario per le superfici di comando specifiche del canale
+
+Il formato di configurazione è **JSON5** (commenti + virgole finali consentiti). Tutti i campi sono facoltativi: OpenClaw usa valori predefiniti sicuri quando vengono omessi.
---
## Canali
-Ogni canale si avvia automaticamente quando la relativa sezione di configurazione esiste (a meno che `enabled: false`).
+Ogni canale si avvia automaticamente quando esiste la sua sezione di configurazione (a meno che `enabled: false`).
### Accesso a DM e gruppi
-Tutti i canali supportano policy per i DM e policy per i gruppi:
+Tutti i canali supportano criteri per i DM e criteri per i gruppi:
-| Policy DM | Comportamento |
+| Criterio DM | Comportamento |
| ------------------- | -------------------------------------------------------------- |
-| `pairing` (predefinita) | I mittenti sconosciuti ricevono un codice di abbinamento monouso; il proprietario deve approvare |
-| `allowlist` | Solo i mittenti in `allowFrom` (o nell'archivio allow degli abbinamenti) |
+| `pairing` (predefinito) | I mittenti sconosciuti ricevono un codice di pairing monouso; il proprietario deve approvare |
+| `allowlist` | Solo i mittenti in `allowFrom` (o nell’archivio allow abbinato) |
| `open` | Consenti tutti i DM in ingresso (richiede `allowFrom: ["*"]`) |
| `disabled` | Ignora tutti i DM in ingresso |
-| Policy gruppo | Comportamento |
-| --------------------- | ----------------------------------------------------- |
-| `allowlist` (predefinita) | Solo i gruppi che corrispondono all'allowlist configurata |
-| `open` | Ignora le allowlist dei gruppi (si applica comunque il gating per menzioni) |
+| Criterio di gruppo | Comportamento |
+| --------------------- | ------------------------------------------------------ |
+| `allowlist` (predefinito) | Solo i gruppi che corrispondono all’allowlist configurata |
+| `open` | Bypassa le allowlist dei gruppi (il gating per menzione continua ad applicarsi) |
| `disabled` | Blocca tutti i messaggi di gruppo/stanza |
`channels.defaults.groupPolicy` imposta il valore predefinito quando `groupPolicy` di un provider non è impostato.
-I codici di abbinamento scadono dopo 1 ora. Le richieste DM di abbinamento in sospeso sono limitate a **3 per canale**.
-Se un blocco provider manca completamente (`channels.` assente), la policy di gruppo a runtime torna a `allowlist` (fail-closed) con un avviso all'avvio.
+I codici di pairing scadono dopo 1 ora. Le richieste DM di pairing in sospeso sono limitate a **3 per canale**.
+Se un blocco provider manca completamente (`channels.` assente), il criterio di gruppo a runtime ricade su `allowlist` (fail-closed) con un avviso all’avvio.
### Override del modello per canale
-Usa `channels.modelByChannel` per fissare specifici ID canale a un modello. I valori accettano `provider/model` o alias di modello configurati. La mappatura del canale si applica quando una sessione non ha già un override del modello (ad esempio impostato tramite `/model`).
+Usa `channels.modelByChannel` per fissare ID di canale specifici a un modello. I valori accettano `provider/model` o alias di modello configurati. La mappatura del canale si applica quando una sessione non ha già un override del modello (ad esempio impostato tramite `/model`).
```json5
{
@@ -73,7 +87,7 @@ Usa `channels.modelByChannel` per fissare specifici ID canale a un modello. I va
### Valori predefiniti dei canali e heartbeat
-Usa `channels.defaults` per il comportamento condiviso di group-policy e heartbeat tra i provider:
+Usa `channels.defaults` per il criterio di gruppo condiviso e il comportamento dell’heartbeat tra i provider:
```json5
{
@@ -91,15 +105,15 @@ Usa `channels.defaults` per il comportamento condiviso di group-policy e heartbe
}
```
-- `channels.defaults.groupPolicy`: policy di gruppo di fallback quando `groupPolicy` a livello provider non è impostato.
-- `channels.defaults.contextVisibility`: modalità predefinita di visibilità del contesto supplementare per tutti i canali. Valori: `all` (predefinita, include tutto il contesto citato/thread/storico), `allowlist` (include solo il contesto di mittenti consentiti), `allowlist_quote` (come allowlist ma conserva il contesto esplicito di citazione/risposta). Override per canale: `channels..contextVisibility`.
-- `channels.defaults.heartbeat.showOk`: include gli stati dei canali sani nell'output heartbeat.
-- `channels.defaults.heartbeat.showAlerts`: include gli stati degradati/in errore nell'output heartbeat.
-- `channels.defaults.heartbeat.useIndicator`: mostra un output heartbeat compatto in stile indicatore.
+- `channels.defaults.groupPolicy`: criterio di gruppo di fallback quando un `groupPolicy` a livello provider non è impostato.
+- `channels.defaults.contextVisibility`: modalità predefinita di visibilità del contesto supplementare per tutti i canali. Valori: `all` (predefinito, include tutto il contesto citato/thread/storia), `allowlist` (include il contesto solo dai mittenti in allowlist), `allowlist_quote` (come allowlist ma mantiene il contesto esplicito di citazione/risposta). Override per canale: `channels..contextVisibility`.
+- `channels.defaults.heartbeat.showOk`: include gli stati dei canali sani nell’output heartbeat.
+- `channels.defaults.heartbeat.showAlerts`: include gli stati degradati/con errore nell’output heartbeat.
+- `channels.defaults.heartbeat.useIndicator`: rende l’output heartbeat compatto in stile indicatore.
### WhatsApp
-WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia automaticamente quando esiste una sessione collegata.
+WhatsApp viene eseguito tramite il canale web del gateway (Baileys Web). Si avvia automaticamente quando esiste una sessione collegata.
```json5
{
@@ -150,9 +164,9 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
}
```
-- I comandi in uscita usano per impostazione predefinita l'account `default` se presente; altrimenti il primo ID account configurato (ordinato).
-- `channels.whatsapp.defaultAccount` facoltativo sostituisce quella selezione dell'account predefinito di fallback quando corrisponde a un ID account configurato.
-- La directory di autenticazione legacy Baileys single-account viene migrata da `openclaw doctor` in `whatsapp/default`.
+- I comandi in uscita usano per impostazione predefinita l’account `default` se presente; altrimenti il primo ID account configurato (ordinato).
+- L’opzionale `channels.whatsapp.defaultAccount` sostituisce tale selezione di account predefinito di fallback quando corrisponde a un ID account configurato.
+- La legacy single-account Baileys auth dir viene migrata da `openclaw doctor` in `whatsapp/default`.
- Override per account: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`.
@@ -171,24 +185,24 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
"*": { requireMention: true },
"-1001234567890": {
allowFrom: ["@admin"],
- systemPrompt: "Mantieni le risposte brevi.",
+ systemPrompt: "Keep answers brief.",
topics: {
"99": {
requireMention: false,
skills: ["search"],
- systemPrompt: "Rimani in tema.",
+ systemPrompt: "Stay on topic.",
},
},
},
},
customCommands: [
- { command: "backup", description: "Backup Git" },
- { command: "generate", description: "Crea un'immagine" },
+ { command: "backup", description: "Git backup" },
+ { command: "generate", description: "Create an image" },
],
historyLimit: 50,
replyToMode: "first", // off | first | all | batched
linkPreview: true,
- streaming: "partial", // off | partial | block | progress (predefinito: off; abilitalo esplicitamente per evitare limiti di frequenza nelle modifiche delle anteprime)
+ streaming: "partial", // off | partial | block | progress (default: off; opt in explicitly to avoid preview-edit rate limits)
actions: { reactions: true, sendMessage: true },
reactionNotifications: "own", // off | own | all
mediaMaxMb: 100,
@@ -211,13 +225,13 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
}
```
-- Token del bot: `channels.telegram.botToken` o `channels.telegram.tokenFile` (solo file regolari; i symlink sono rifiutati), con `TELEGRAM_BOT_TOKEN` come fallback per l'account predefinito.
-- `channels.telegram.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
-- Nelle configurazioni multi-account (2+ ID account), imposta un valore predefinito esplicito (`channels.telegram.defaultAccount` o `channels.telegram.accounts.default`) per evitare il routing di fallback; `openclaw doctor` avvisa quando manca o non è valido.
+- Bot token: `channels.telegram.botToken` oppure `channels.telegram.tokenFile` (solo file regolare; i symlink vengono rifiutati), con `TELEGRAM_BOT_TOKEN` come fallback per l’account predefinito.
+- L’opzionale `channels.telegram.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
+- Nelle configurazioni multi-account (2+ ID account), imposta un predefinito esplicito (`channels.telegram.defaultAccount` o `channels.telegram.accounts.default`) per evitare il routing di fallback; `openclaw doctor` avvisa quando manca o non è valido.
- `configWrites: false` blocca le scritture di configurazione avviate da Telegram (migrazioni ID supergruppo, `/config set|unset`).
-- Le voci `bindings[]` di primo livello con `type: "acp"` configurano binding ACP persistenti per i topic del forum (usa il canonico `chatId:topic:topicId` in `match.peer.id`). La semantica dei campi è condivisa in [Agenti ACP](/it/tools/acp-agents#channel-specific-settings).
-- Le anteprime di streaming Telegram usano `sendMessage` + `editMessageText` (funziona in chat dirette e di gruppo).
-- Policy di retry: vedi [Policy di retry](/it/concepts/retry).
+- Le voci top-level `bindings[]` con `type: "acp"` configurano binding ACP persistenti per i topic dei forum (usa il canonico `chatId:topic:topicId` in `match.peer.id`). La semantica dei campi è condivisa in [ACP Agents](/it/tools/acp-agents#channel-specific-settings).
+- Le anteprime stream di Telegram usano `sendMessage` + `editMessageText` (funziona in chat dirette e di gruppo).
+- Criterio di retry: vedi [Criterio di retry](/it/concepts/retry).
### Discord
@@ -264,7 +278,7 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
requireMention: true,
users: ["987654321098765432"],
skills: ["docs"],
- systemPrompt: "Solo risposte brevi.",
+ systemPrompt: "Short answers only.",
},
},
},
@@ -272,7 +286,7 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
historyLimit: 20,
textChunkLimit: 2000,
chunkMode: "length", // length | newline
- streaming: "off", // off | partial | block | progress (progress corrisponde a partial su Discord)
+ streaming: "off", // off | partial | block | progress (progress maps to partial on Discord)
maxLinesPerMessage: 17,
ui: {
components: {
@@ -283,7 +297,7 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
enabled: true,
idleHours: 24,
maxAgeHours: 0,
- spawnSubagentSessions: false, // opt-in per sessions_spawn({ thread: true })
+ spawnSubagentSessions: false, // opt-in for sessions_spawn({ thread: true })
},
voice: {
enabled: true,
@@ -319,36 +333,36 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
}
```
-- Token: `channels.discord.token`, con `DISCORD_BOT_TOKEN` come fallback per l'account predefinito.
-- Le chiamate dirette in uscita che forniscono un `token` Discord esplicito usano quel token per la chiamata; le impostazioni di retry/policy dell'account provengono comunque dall'account selezionato nello snapshot runtime attivo.
-- `channels.discord.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
-- Usa `user:` (DM) o `channel:` (canale guild) come target di consegna; gli ID numerici nudi sono rifiutati.
+- Token: `channels.discord.token`, con `DISCORD_BOT_TOKEN` come fallback per l’account predefinito.
+- Le chiamate dirette in uscita che forniscono un `token` Discord esplicito usano quel token per la chiamata; le impostazioni di retry/criterio dell’account provengono comunque dall’account selezionato nello snapshot runtime attivo.
+- L’opzionale `channels.discord.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
+- Usa `user:` (DM) o `channel:` (canale guild) per i target di consegna; gli ID numerici senza prefisso vengono rifiutati.
- Gli slug delle guild sono in minuscolo con gli spazi sostituiti da `-`; le chiavi dei canali usano il nome slugificato (senza `#`). Preferisci gli ID delle guild.
-- I messaggi creati dai bot vengono ignorati per impostazione predefinita. `allowBots: true` li abilita; usa `allowBots: "mentions"` per accettare solo i messaggi dei bot che menzionano il bot (i propri messaggi restano comunque filtrati).
-- `channels.discord.guilds..ignoreOtherMentions` (e gli override di canale) scarta i messaggi che menzionano un altro utente o ruolo ma non il bot (esclusi @everyone/@here).
+- I messaggi scritti da bot vengono ignorati per impostazione predefinita. `allowBots: true` li abilita; usa `allowBots: "mentions"` per accettare solo i messaggi dei bot che menzionano il bot (i propri messaggi restano comunque filtrati).
+- `channels.discord.guilds..ignoreOtherMentions` (e gli override di canale) elimina i messaggi che menzionano un altro utente o ruolo ma non il bot (escludendo @everyone/@here).
- `maxLinesPerMessage` (predefinito 17) divide i messaggi alti anche quando sono sotto i 2000 caratteri.
-- `channels.discord.threadBindings` controlla il routing vincolato ai thread Discord:
- - `enabled`: override Discord per le funzionalità di sessione vincolate al thread (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` e consegna/routing vincolati)
- - `idleHours`: override Discord per l'auto-unfocus per inattività in ore (`0` lo disabilita)
- - `maxAgeHours`: override Discord per età massima rigida in ore (`0` lo disabilita)
- - `spawnSubagentSessions`: interruttore opt-in per la creazione automatica/vincolo del thread con `sessions_spawn({ thread: true })`
-- Le voci `bindings[]` di primo livello con `type: "acp"` configurano binding ACP persistenti per canali e thread (usa l'id di canale/thread in `match.peer.id`). La semantica dei campi è condivisa in [Agenti ACP](/it/tools/acp-agents#channel-specific-settings).
-- `channels.discord.ui.components.accentColor` imposta il colore di accento per i contenitori componenti v2 di Discord.
-- `channels.discord.voice` abilita le conversazioni nei canali vocali Discord e gli eventuali override auto-join + TTS.
-- `channels.discord.voice.daveEncryption` e `channels.discord.voice.decryptionFailureTolerance` vengono passati alle opzioni DAVE di `@discordjs/voice` (predefiniti `true` e `24`).
+- `channels.discord.threadBindings` controlla il routing legato ai thread di Discord:
+ - `enabled`: override Discord per le funzionalità di sessione thread-bound (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` e consegna/routing vincolati)
+ - `idleHours`: override Discord per l’auto-unfocus da inattività in ore (`0` disabilita)
+ - `maxAgeHours`: override Discord per l’età massima rigida in ore (`0` disabilita)
+ - `spawnSubagentSessions`: interruttore opt-in per la creazione/associazione automatica di thread `sessions_spawn({ thread: true })`
+- Le voci top-level `bindings[]` con `type: "acp"` configurano binding ACP persistenti per canali e thread (usa l’ID canale/thread in `match.peer.id`). La semantica dei campi è condivisa in [ACP Agents](/it/tools/acp-agents#channel-specific-settings).
+- `channels.discord.ui.components.accentColor` imposta il colore di accento per i container Discord components v2.
+- `channels.discord.voice` abilita le conversazioni nei canali vocali Discord e gli override opzionali auto-join + TTS.
+- `channels.discord.voice.daveEncryption` e `channels.discord.voice.decryptionFailureTolerance` vengono passati a `@discordjs/voice` come opzioni DAVE (predefiniti `true` e `24`).
- OpenClaw tenta inoltre il recupero della ricezione vocale uscendo/rientrando in una sessione vocale dopo ripetuti errori di decrittazione.
-- `channels.discord.streaming` è la chiave canonica della modalità stream. I valori legacy `streamMode` e booleani `streaming` vengono migrati automaticamente.
-- `channels.discord.autoPresence` mappa la disponibilità runtime alla presenza del bot (healthy => online, degraded => idle, exhausted => dnd) e consente override facoltativi del testo di stato.
-- `channels.discord.dangerouslyAllowNameMatching` riabilita la corrispondenza su nome/tag mutabili (modalità compatibilità break-glass).
+- `channels.discord.streaming` è la chiave canonica per la modalità stream. I valori legacy `streamMode` e booleani `streaming` vengono migrati automaticamente.
+- `channels.discord.autoPresence` mappa la disponibilità runtime alla presenza del bot (healthy => online, degraded => idle, exhausted => dnd) e consente override opzionali del testo di stato.
+- `channels.discord.dangerouslyAllowNameMatching` riabilita il matching su nome/tag mutabili (modalità di compatibilità break-glass).
- `channels.discord.execApprovals`: consegna nativa Discord delle approvazioni exec e autorizzazione degli approvatori.
- `enabled`: `true`, `false` o `"auto"` (predefinito). In modalità auto, le approvazioni exec si attivano quando gli approvatori possono essere risolti da `approvers` o `commands.ownerAllowFrom`.
- - `approvers`: ID utente Discord autorizzati ad approvare richieste exec. Usa `commands.ownerAllowFrom` come fallback se omesso.
- - `agentFilter`: allowlist facoltativa di ID agente. Omettila per inoltrare approvazioni per tutti gli agenti.
- - `sessionFilter`: pattern facoltativi di chiave sessione (sottostringa o regex).
- - `target`: dove inviare le richieste di approvazione. `"dm"` (predefinito) invia ai DM degli approvatori, `"channel"` invia al canale di origine, `"both"` invia a entrambi. Quando il target include `"channel"`, i pulsanti sono utilizzabili solo dagli approvatori risolti.
+ - `approvers`: ID utente Discord autorizzati ad approvare richieste exec. Se omesso, ricade su `commands.ownerAllowFrom`.
+ - `agentFilter`: allowlist opzionale di ID agente. Ometti per inoltrare approvazioni per tutti gli agenti.
+ - `sessionFilter`: pattern opzionali di chiavi di sessione (substring o regex).
+ - `target`: dove inviare i prompt di approvazione. `"dm"` (predefinito) invia ai DM degli approvatori, `"channel"` invia al canale di origine, `"both"` invia a entrambi. Quando il target include `"channel"`, i pulsanti sono utilizzabili solo dagli approvatori risolti.
- `cleanupAfterResolve`: quando `true`, elimina i DM di approvazione dopo approvazione, rifiuto o timeout.
-**Modalità di notifica reazioni:** `off` (nessuna), `own` (messaggi del bot, predefinita), `all` (tutti i messaggi), `allowlist` (da `guilds..users` su tutti i messaggi).
+**Modalità di notifica delle reazioni:** `off` (nessuna), `own` (messaggi del bot, predefinito), `all` (tutti i messaggi), `allowlist` (da `guilds..users` su tutti i messaggi).
### Google Chat
@@ -379,11 +393,11 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
}
```
-- JSON dell'account di servizio: inline (`serviceAccount`) o basato su file (`serviceAccountFile`).
-- È supportato anche SecretRef per l'account di servizio (`serviceAccountRef`).
+- JSON del service account: inline (`serviceAccount`) o basato su file (`serviceAccountFile`).
+- È supportato anche SecretRef per il service account (`serviceAccountRef`).
- Fallback env: `GOOGLE_CHAT_SERVICE_ACCOUNT` o `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
-- Usa `spaces/` o `users/` come target di consegna.
-- `channels.googlechat.dangerouslyAllowNameMatching` riabilita la corrispondenza su principal email mutabili (modalità compatibilità break-glass).
+- Usa `spaces/` o `users/` per i target di consegna.
+- `channels.googlechat.dangerouslyAllowNameMatching` riabilita il matching sull’email principal mutabile (modalità di compatibilità break-glass).
### Slack
@@ -405,7 +419,7 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
allowBots: false,
users: ["U123"],
skills: ["docs"],
- systemPrompt: "Solo risposte brevi.",
+ systemPrompt: "Short answers only.",
},
},
historyLimit: 50,
@@ -433,8 +447,10 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
typingReaction: "hourglass_flowing_sand",
textChunkLimit: 4000,
chunkMode: "length",
- streaming: "partial", // off | partial | block | progress (modalità anteprima)
- nativeStreaming: true, // usa l'API di streaming nativa di Slack quando streaming=partial
+ streaming: {
+ mode: "partial", // off | partial | block | progress
+ nativeTransport: true, // use Slack native streaming API when mode=partial
+ },
mediaMaxMb: 20,
execApprovals: {
enabled: "auto", // true | false | "auto"
@@ -448,34 +464,35 @@ WhatsApp funziona tramite il canale web del gateway (Baileys Web). Si avvia auto
}
```
-- **Modalità socket** richiede sia `botToken` sia `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` come fallback env dell'account predefinito).
-- **Modalità HTTP** richiede `botToken` più `signingSecret` (alla radice o per account).
-- `botToken`, `appToken`, `signingSecret` e `userToken` accettano stringhe
- in chiaro o oggetti SecretRef.
-- Gli snapshot account Slack espongono campi per sorgente/stato delle credenziali come
+- La **modalità socket** richiede sia `botToken` sia `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` per il fallback env dell’account predefinito).
+- La **modalità HTTP** richiede `botToken` più `signingSecret` (alla root o per-account).
+- `botToken`, `appToken`, `signingSecret` e `userToken` accettano stringhe in chiaro
+ o oggetti SecretRef.
+- Gli snapshot account Slack espongono campi per-credential di origine/stato come
`botTokenSource`, `botTokenStatus`, `appTokenStatus` e, in modalità HTTP,
- `signingSecretStatus`. `configured_unavailable` significa che l'account è
- configurato tramite SecretRef ma l'attuale percorso di comando/runtime non ha potuto
- risolvere il valore del segreto.
+ `signingSecretStatus`. `configured_unavailable` significa che l’account è
+ configurato tramite SecretRef ma il percorso corrente di comando/runtime non ha potuto
+ risolvere il valore del secret.
- `configWrites: false` blocca le scritture di configurazione avviate da Slack.
-- `channels.slack.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
-- `channels.slack.streaming` è la chiave canonica della modalità stream. I valori legacy `streamMode` e booleani `streaming` vengono migrati automaticamente.
+- L’opzionale `channels.slack.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
+- `channels.slack.streaming.mode` è la chiave canonica della modalità stream Slack. `channels.slack.streaming.nativeTransport` controlla il transport streaming nativo di Slack. I valori legacy `streamMode`, booleani `streaming` e `nativeStreaming` vengono migrati automaticamente.
- Usa `user:` (DM) o `channel:` per i target di consegna.
-**Modalità di notifica reazioni:** `off`, `own` (predefinita), `all`, `allowlist` (da `reactionAllowlist`).
+**Modalità di notifica delle reazioni:** `off`, `own` (predefinito), `all`, `allowlist` (da `reactionAllowlist`).
-**Isolamento sessione thread:** `thread.historyScope` è per-thread (predefinito) o condiviso nel canale. `thread.inheritParent` copia il transcript del canale padre nei nuovi thread.
+**Isolamento della sessione thread:** `thread.historyScope` è per-thread (predefinito) o condiviso tra canali. `thread.inheritParent` copia la trascrizione del canale padre nei nuovi thread.
-- `typingReaction` aggiunge una reazione temporanea al messaggio Slack in ingresso mentre una risposta è in esecuzione, poi la rimuove al completamento. Usa uno shortcode emoji Slack come `"hourglass_flowing_sand"`.
+- Lo streaming nativo Slack più lo stato thread in stile assistant Slack "is typing..." richiedono un target di risposta thread. I DM top-level restano off-thread per impostazione predefinita, quindi usano `typingReaction` o la consegna normale invece dell’anteprima in stile thread.
+- `typingReaction` aggiunge una reazione temporanea al messaggio Slack in ingresso mentre è in esecuzione una risposta, quindi la rimuove al completamento. Usa uno shortcode emoji Slack come `"hourglass_flowing_sand"`.
- `channels.slack.execApprovals`: consegna nativa Slack delle approvazioni exec e autorizzazione degli approvatori. Stesso schema di Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID utente Slack), `agentFilter`, `sessionFilter` e `target` (`"dm"`, `"channel"` o `"both"`).
-| Gruppo di azioni | Predefinito | Note |
-| ---------------- | ----------- | ------------------------ |
-| reactions | abilitato | Reagire + elencare reazioni |
-| messages | abilitato | Leggere/inviare/modificare/eliminare |
-| pins | abilitato | Fissare/rimuovere/elencare |
-| memberInfo | abilitato | Informazioni membro |
-| emojiList | abilitato | Elenco emoji personalizzate |
+| Gruppo di azioni | Predefinito | Note |
+| ---------------- | ----------- | ---------------------- |
+| reactions | enabled | Reagisci + elenca reazioni |
+| messages | enabled | Leggi/invia/modifica/elimina |
+| pins | enabled | Fissa/rimuovi/elenca |
+| memberInfo | enabled | Informazioni membro |
+| emojiList | enabled | Elenco emoji personalizzate |
### Mattermost
@@ -499,7 +516,7 @@ Mattermost viene distribuito come plugin: `openclaw plugins install @openclaw/ma
native: true, // opt-in
nativeSkills: true,
callbackPath: "/api/channels/mattermost/command",
- // URL esplicito facoltativo per distribuzioni con reverse proxy/pubbliche
+ // Optional explicit URL for reverse-proxy/public deployments
callbackUrl: "https://gateway.example.com/api/channels/mattermost/command",
},
textChunkLimit: 4000,
@@ -509,23 +526,23 @@ Mattermost viene distribuito come plugin: `openclaw plugins install @openclaw/ma
}
```
-Modalità chat: `oncall` (risponde a @-mention, predefinita), `onmessage` (ogni messaggio), `onchar` (messaggi che iniziano con un prefisso trigger).
+Modalità chat: `oncall` (risponde con @-mention, predefinita), `onmessage` (ogni messaggio), `onchar` (messaggi che iniziano con prefisso trigger).
Quando i comandi nativi Mattermost sono abilitati:
- `commands.callbackPath` deve essere un percorso (ad esempio `/api/channels/mattermost/command`), non un URL completo.
-- `commands.callbackUrl` deve risolversi all'endpoint gateway di OpenClaw ed essere raggiungibile dal server Mattermost.
-- I callback slash nativi sono autenticati con i token per-comando restituiti
- da Mattermost durante la registrazione dei comandi slash. Se la registrazione fallisce o nessun
- comando viene attivato, OpenClaw rifiuta i callback con
+- `commands.callbackUrl` deve risolversi nell’endpoint gateway OpenClaw ed essere raggiungibile dal server Mattermost.
+- Le callback native slash sono autenticate con i token per-comando restituiti
+ da Mattermost durante la registrazione del comando slash. Se la registrazione fallisce o nessun
+ comando viene attivato, OpenClaw rifiuta le callback con
`Unauthorized: invalid command token.`
-- Per host di callback privati/tailnet/interni, Mattermost potrebbe richiedere
- che `ServiceSettings.AllowedUntrustedInternalConnections` includa l'host/dominio di callback.
+- Per host callback privati/tailnet/interni, Mattermost potrebbe richiedere
+ che `ServiceSettings.AllowedUntrustedInternalConnections` includa l’host/dominio di callback.
Usa valori host/dominio, non URL completi.
-- `channels.mattermost.configWrites`: consenti o nega le scritture di configurazione avviate da Mattermost.
+- `channels.mattermost.configWrites`: consente o nega le scritture di configurazione avviate da Mattermost.
- `channels.mattermost.requireMention`: richiede `@mention` prima di rispondere nei canali.
- `channels.mattermost.groups..requireMention`: override per-canale del gating per menzione (`"*"` per il predefinito).
-- `channels.mattermost.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
+- L’opzionale `channels.mattermost.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
### Signal
@@ -534,7 +551,7 @@ Quando i comandi nativi Mattermost sono abilitati:
channels: {
signal: {
enabled: true,
- account: "+15555550123", // binding facoltativo dell'account
+ account: "+15555550123", // optional account binding
dmPolicy: "pairing",
allowFrom: ["+15551234567", "uuid:123e4567-e89b-12d3-a456-426614174000"],
configWrites: true,
@@ -546,15 +563,15 @@ Quando i comandi nativi Mattermost sono abilitati:
}
```
-**Modalità di notifica reazioni:** `off`, `own` (predefinita), `all`, `allowlist` (da `reactionAllowlist`).
+**Modalità di notifica delle reazioni:** `off`, `own` (predefinito), `all`, `allowlist` (da `reactionAllowlist`).
-- `channels.signal.account`: fissa l'avvio del canale a una specifica identità account Signal.
-- `channels.signal.configWrites`: consenti o nega le scritture di configurazione avviate da Signal.
-- `channels.signal.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
+- `channels.signal.account`: fissa l’avvio del canale a una specifica identità account Signal.
+- `channels.signal.configWrites`: consente o nega le scritture di configurazione avviate da Signal.
+- L’opzionale `channels.signal.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
### BlueBubbles
-BlueBubbles è il percorso iMessage consigliato (supportato da plugin, configurato sotto `channels.bluebubbles`).
+BlueBubbles è il percorso iMessage consigliato (basato su plugin, configurato sotto `channels.bluebubbles`).
```json5
{
@@ -562,16 +579,16 @@ BlueBubbles è il percorso iMessage consigliato (supportato da plugin, configura
bluebubbles: {
enabled: true,
dmPolicy: "pairing",
- // serverUrl, password, percorso webhook, controlli gruppo e azioni avanzate:
- // vedi /channels/bluebubbles
+ // serverUrl, password, webhookPath, group controls, and advanced actions:
+ // see /channels/bluebubbles
},
},
}
```
-- Percorsi chiave core trattati qui: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
-- `channels.bluebubbles.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
-- Le voci `bindings[]` di primo livello con `type: "acp"` possono associare conversazioni BlueBubbles a sessioni ACP persistenti. Usa un handle o una stringa target BlueBubbles (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) in `match.peer.id`. Semantica condivisa dei campi: [Agenti ACP](/it/tools/acp-agents#channel-specific-settings).
+- Percorsi di chiave core trattati qui: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
+- L’opzionale `channels.bluebubbles.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
+- Le voci top-level `bindings[]` con `type: "acp"` possono collegare le conversazioni BlueBubbles a sessioni ACP persistenti. Usa un handle BlueBubbles o una stringa target (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) in `match.peer.id`. Semantica dei campi condivisa: [ACP Agents](/it/tools/acp-agents#channel-specific-settings).
- La configurazione completa del canale BlueBubbles è documentata in [BlueBubbles](/it/channels/bluebubbles).
### iMessage
@@ -600,15 +617,15 @@ OpenClaw avvia `imsg rpc` (JSON-RPC su stdio). Non è richiesto alcun daemon o p
}
```
-- `channels.imessage.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
+- L’opzionale `channels.imessage.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
-- Richiede Accesso completo al disco per il database Messaggi.
+- Richiede Full Disk Access al DB di Messages.
- Preferisci target `chat_id:`. Usa `imsg chats --limit 20` per elencare le chat.
-- `cliPath` può puntare a un wrapper SSH; imposta `remoteHost` (`host` o `user@host`) per il recupero allegati via SCP.
+- `cliPath` può puntare a un wrapper SSH; imposta `remoteHost` (`host` o `user@host`) per il recupero allegati SCP.
- `attachmentRoots` e `remoteAttachmentRoots` limitano i percorsi degli allegati in ingresso (predefinito: `/Users/*/Library/Messages/Attachments`).
-- SCP usa il controllo rigoroso della chiave host, quindi assicurati che la chiave host del relay esista già in `~/.ssh/known_hosts`.
-- `channels.imessage.configWrites`: consenti o nega le scritture di configurazione avviate da iMessage.
-- Le voci `bindings[]` di primo livello con `type: "acp"` possono associare conversazioni iMessage a sessioni ACP persistenti. Usa un handle normalizzato o un target chat esplicito (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) in `match.peer.id`. Semantica condivisa dei campi: [Agenti ACP](/it/tools/acp-agents#channel-specific-settings).
+- SCP usa il controllo rigoroso delle host key, quindi assicurati che la host key del relay esista già in `~/.ssh/known_hosts`.
+- `channels.imessage.configWrites`: consente o nega le scritture di configurazione avviate da iMessage.
+- Le voci top-level `bindings[]` con `type: "acp"` possono collegare conversazioni iMessage a sessioni ACP persistenti. Usa un handle normalizzato o un target chat esplicito (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) in `match.peer.id`. Semantica dei campi condivisa: [ACP Agents](/it/tools/acp-agents#channel-specific-settings).
@@ -621,7 +638,7 @@ exec ssh -T gateway-host imsg "$@"
### Matrix
-Matrix è supportato da estensione ed è configurato sotto `channels.matrix`.
+Matrix è supportato da extension ed è configurato sotto `channels.matrix`.
```json5
{
@@ -651,25 +668,25 @@ Matrix è supportato da estensione ed è configurato sotto `channels.matrix`.
}
```
-- L'autenticazione con token usa `accessToken`; l'autenticazione con password usa `userId` + `password`.
-- `channels.matrix.proxy` instrada il traffico HTTP Matrix tramite un proxy HTTP(S) esplicito. Gli account nominati possono sostituirlo con `channels.matrix.accounts..proxy`.
+- L’autenticazione token usa `accessToken`; quella password usa `userId` + `password`.
+- `channels.matrix.proxy` instrada il traffico HTTP Matrix tramite un proxy HTTP(S) esplicito. Gli account nominati possono sovrascriverlo con `channels.matrix.accounts..proxy`.
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` consente homeserver privati/interni. `proxy` e questo opt-in di rete sono controlli indipendenti.
-- `channels.matrix.defaultAccount` seleziona l'account preferito nelle configurazioni multi-account.
-- `channels.matrix.autoJoin` è predefinito a `off`, quindi le stanze invitate e i nuovi inviti in stile DM vengono ignorati finché non imposti `autoJoin: "allowlist"` con `autoJoinAllowlist` oppure `autoJoin: "always"`.
+- `channels.matrix.defaultAccount` seleziona l’account preferito nelle configurazioni multi-account.
+- `channels.matrix.autoJoin` è predefinito su `off`, quindi le stanze invitate e i nuovi inviti in stile DM vengono ignorati finché non imposti `autoJoin: "allowlist"` con `autoJoinAllowlist` oppure `autoJoin: "always"`.
- `channels.matrix.execApprovals`: consegna nativa Matrix delle approvazioni exec e autorizzazione degli approvatori.
- `enabled`: `true`, `false` o `"auto"` (predefinito). In modalità auto, le approvazioni exec si attivano quando gli approvatori possono essere risolti da `approvers` o `commands.ownerAllowFrom`.
- - `approvers`: ID utente Matrix (ad es. `@owner:example.org`) autorizzati ad approvare richieste exec.
- - `agentFilter`: allowlist facoltativa di ID agente. Omettila per inoltrare approvazioni per tutti gli agenti.
- - `sessionFilter`: pattern facoltativi di chiave sessione (sottostringa o regex).
- - `target`: dove inviare le richieste di approvazione. `"dm"` (predefinito), `"channel"` (stanza di origine) o `"both"`.
- - Override per account: `channels.matrix.accounts..execApprovals`.
-- `channels.matrix.dm.sessionScope` controlla il modo in cui i DM Matrix vengono raggruppati in sessioni: `per-user` (predefinito) condivide per peer instradato, mentre `per-room` isola ogni stanza DM.
-- Le sonde di stato Matrix e le ricerche nella directory live usano la stessa policy proxy del traffico runtime.
-- La configurazione completa di Matrix, le regole di targeting e gli esempi di configurazione sono documentati in [Matrix](/it/channels/matrix).
+ - `approvers`: ID utente Matrix (es. `@owner:example.org`) autorizzati ad approvare richieste exec.
+ - `agentFilter`: allowlist opzionale di ID agente. Ometti per inoltrare approvazioni per tutti gli agenti.
+ - `sessionFilter`: pattern opzionali di chiavi di sessione (substring o regex).
+ - `target`: dove inviare i prompt di approvazione. `"dm"` (predefinito), `"channel"` (stanza di origine) o `"both"`.
+ - Override per-account: `channels.matrix.accounts..execApprovals`.
+- `channels.matrix.dm.sessionScope` controlla come i DM Matrix vengono raggruppati in sessioni: `per-user` (predefinito) condivide per peer instradato, mentre `per-room` isola ogni stanza DM.
+- Le probe di stato Matrix e le ricerche live nella directory usano lo stesso criterio proxy del traffico runtime.
+- La configurazione completa di Matrix, le regole di targeting e gli esempi di setup sono documentati in [Matrix](/it/channels/matrix).
### Microsoft Teams
-Microsoft Teams è supportato da estensione ed è configurato sotto `channels.msteams`.
+Microsoft Teams è supportato da extension ed è configurato sotto `channels.msteams`.
```json5
{
@@ -677,19 +694,19 @@ Microsoft Teams è supportato da estensione ed è configurato sotto `channels.ms
msteams: {
enabled: true,
configWrites: true,
- // appId, appPassword, tenantId, webhook, policy team/canale:
- // vedi /channels/msteams
+ // appId, appPassword, tenantId, webhook, team/channel policies:
+ // see /channels/msteams
},
},
}
```
-- Percorsi chiave core trattati qui: `channels.msteams`, `channels.msteams.configWrites`.
-- La configurazione completa di Teams (credenziali, webhook, policy DM/gruppo, override per-team/per-canale) è documentata in [Microsoft Teams](/it/channels/msteams).
+- Percorsi di chiave core trattati qui: `channels.msteams`, `channels.msteams.configWrites`.
+- La configurazione completa di Teams (credenziali, webhook, criterio DM/gruppi, override per-team/per-channel) è documentata in [Microsoft Teams](/it/channels/msteams).
### IRC
-IRC è supportato da estensione ed è configurato sotto `channels.irc`.
+IRC è supportato da extension ed è configurato sotto `channels.irc`.
```json5
{
@@ -710,8 +727,8 @@ IRC è supportato da estensione ed è configurato sotto `channels.irc`.
}
```
-- Percorsi chiave core trattati qui: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
-- `channels.irc.defaultAccount` facoltativo sostituisce la selezione predefinita dell'account quando corrisponde a un ID account configurato.
+- Percorsi di chiave core trattati qui: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
+- L’opzionale `channels.irc.defaultAccount` sostituisce la selezione dell’account predefinito quando corrisponde a un ID account configurato.
- La configurazione completa del canale IRC (host/porta/TLS/canali/allowlist/gating per menzione) è documentata in [IRC](/it/channels/irc).
### Multi-account (tutti i canali)
@@ -724,11 +741,11 @@ Esegui più account per canale (ognuno con il proprio `accountId`):
telegram: {
accounts: {
default: {
- name: "Bot principale",
+ name: "Primary bot",
botToken: "123456:ABC...",
},
alerts: {
- name: "Bot avvisi",
+ name: "Alerts bot",
botToken: "987654:XYZ...",
},
},
@@ -738,25 +755,25 @@ Esegui più account per canale (ognuno con il proprio `accountId`):
```
- `default` viene usato quando `accountId` è omesso (CLI + routing).
-- I token env si applicano solo all'account **default**.
-- Le impostazioni di base del canale si applicano a tutti gli account salvo override per account.
+- I token env si applicano solo all’account **default**.
+- Le impostazioni base del canale si applicano a tutti gli account salvo override per-account.
- Usa `bindings[].match.accountId` per instradare ogni account a un agente diverso.
-- Se aggiungi un account non predefinito tramite `openclaw channels add` (o onboarding del canale) mentre sei ancora in una configurazione di canale top-level single-account, OpenClaw promuove prima i valori single-account top-level con ambito account nella mappa account del canale, così l'account originale continua a funzionare. La maggior parte dei canali li sposta in `channels..accounts.default`; Matrix può invece preservare un target nominato/predefinito esistente corrispondente.
-- I binding esistenti solo-canale (senza `accountId`) continuano a corrispondere all'account predefinito; i binding con ambito account restano facoltativi.
-- `openclaw doctor --fix` ripara anche forme miste spostando i valori single-account top-level con ambito account nell'account promosso scelto per quel canale. La maggior parte dei canali usa `accounts.default`; Matrix può invece preservare un target nominato/predefinito esistente corrispondente.
+- Se aggiungi un account non predefinito tramite `openclaw channels add` (o onboarding del canale) mentre sei ancora in una configurazione top-level a canale single-account, OpenClaw promuove prima i valori top-level single-account con ambito account nella mappa account del canale così che l’account originale continui a funzionare. La maggior parte dei canali li sposta in `channels..accounts.default`; Matrix può invece preservare un target nominato/default corrispondente esistente.
+- I binding esistenti solo-canale (senza `accountId`) continuano a corrispondere all’account predefinito; i binding con ambito account restano opzionali.
+- `openclaw doctor --fix` ripara anche le forme miste spostando i valori top-level single-account con ambito account nell’account promosso scelto per quel canale. La maggior parte dei canali usa `accounts.default`; Matrix può preservare un target nominato/default corrispondente esistente.
-### Altri canali di estensione
+### Altri canali extension
-Molti canali di estensione sono configurati come `channels.` e documentati nelle rispettive pagine dedicate (ad esempio Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat e Twitch).
-Vedi l'indice completo dei canali: [Canali](/it/channels).
+Molti canali extension sono configurati come `channels.` e documentati nelle rispettive pagine di canale dedicate (ad esempio Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat e Twitch).
+Vedi l’indice completo dei canali: [Canali](/it/channels).
### Gating per menzione nelle chat di gruppo
-I messaggi di gruppo richiedono per impostazione predefinita una **menzione obbligatoria** (menzione metadata o pattern regex sicuri). Si applica a chat di gruppo WhatsApp, Telegram, Discord, Google Chat e iMessage.
+I messaggi di gruppo per impostazione predefinita **richiedono menzione** (menzione metadati o pattern regex sicuri). Si applica alle chat di gruppo WhatsApp, Telegram, Discord, Google Chat e iMessage.
**Tipi di menzione:**
-- **Menzioni metadata**: @-mention native della piattaforma. Ignorate in modalità self-chat di WhatsApp.
+- **Menzioni nei metadati**: @-mention native della piattaforma. Ignorate in modalità self-chat di WhatsApp.
- **Pattern di testo**: pattern regex sicuri in `agents.list[].groupChat.mentionPatterns`. I pattern non validi e le ripetizioni annidate non sicure vengono ignorati.
- Il gating per menzione viene applicato solo quando il rilevamento è possibile (menzioni native o almeno un pattern).
@@ -771,7 +788,7 @@ I messaggi di gruppo richiedono per impostazione predefinita una **menzione obbl
}
```
-`messages.groupChat.historyLimit` imposta il valore globale predefinito. I canali possono sostituirlo con `channels..historyLimit` (o per-account). Imposta `0` per disabilitarlo.
+`messages.groupChat.historyLimit` imposta il valore globale predefinito. I canali possono sovrascriverlo con `channels..historyLimit` (o per-account). Imposta `0` per disabilitare.
#### Limiti cronologia DM
@@ -788,7 +805,7 @@ I messaggi di gruppo richiedono per impostazione predefinita una **menzione obbl
}
```
-Risoluzione: override per-DM → valore predefinito del provider → nessun limite (tutto mantenuto).
+Risoluzione: override per-DM → predefinito provider → nessun limite (tutto mantenuto).
Supportati: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`.
@@ -815,18 +832,24 @@ Includi il tuo numero in `allowFrom` per abilitare la modalità self-chat (ignor
}
```
-### Comandi (gestione dei comandi in chat)
+### Comandi (gestione dei comandi chat)
```json5
{
commands: {
- native: "auto", // registra i comandi nativi quando supportati
- text: true, // analizza i /comandi nei messaggi chat
- bash: false, // consenti ! (alias: /bash)
+ native: "auto", // register native commands when supported
+ nativeSkills: "auto", // register native skill commands when supported
+ text: true, // parse /commands in chat messages
+ bash: false, // allow ! (alias: /bash)
bashForegroundMs: 2000,
- config: false, // consenti /config
- debug: false, // consenti /debug
- restart: false, // consenti /restart + strumento di riavvio gateway
+ config: false, // allow /config
+ mcp: false, // allow /mcp
+ plugins: false, // allow /plugins
+ debug: false, // allow /debug
+ restart: true, // allow /restart + gateway restart tool
+ ownerAllowFrom: ["discord:123456789012345678"],
+ ownerDisplay: "raw", // raw | hash
+ ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}",
allowFrom: {
"*": ["user1"],
discord: ["user:123"],
@@ -838,22 +861,38 @@ Includi il tuo numero in `allowFrom` per abilitare la modalità self-chat (ignor
-- I comandi di testo devono essere messaggi **autonomi** con `/` iniziale.
+- Questo blocco configura le superfici di comando. Per il catalogo corrente dei comandi built-in + bundled, vedi [Slash Commands](/it/tools/slash-commands).
+- Questa pagina è un **riferimento delle chiavi di configurazione**, non il catalogo completo dei comandi. I comandi di proprietà di canali/plugin come QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` e Talk `/voice` sono documentati nelle loro pagine di canale/plugin più [Slash Commands](/it/tools/slash-commands).
+- I comandi di testo devono essere messaggi **standalone** con `/` iniziale.
- `native: "auto"` attiva i comandi nativi per Discord/Telegram, lascia Slack disattivato.
+- `nativeSkills: "auto"` attiva i comandi nativi Skills per Discord/Telegram, lascia Slack disattivato.
- Override per canale: `channels.discord.commands.native` (bool o `"auto"`). `false` cancella i comandi registrati in precedenza.
-- `channels.telegram.customCommands` aggiunge voci extra al menu bot di Telegram.
+- Sovrascrivi la registrazione delle Skills native per canale con `channels..commands.nativeSkills`.
+- `channels.telegram.customCommands` aggiunge voci extra al menu del bot Telegram.
- `bash: true` abilita `! ` per la shell host. Richiede `tools.elevated.enabled` e mittente in `tools.elevated.allowFrom.`.
-- `config: true` abilita `/config` (lettura/scrittura di `openclaw.json`). Per i client gateway `chat.send`, le scritture persistenti `/config set|unset` richiedono anche `operator.admin`; il solo `/config show` in lettura resta disponibile per i normali client operator con ambito scrittura.
-- `channels..configWrites` controlla le mutazioni di configurazione per canale (predefinito: true).
-- Per i canali multi-account, anche `channels..accounts..configWrites` controlla le scritture che puntano a quell'account (ad esempio `/allowlist --config --account ` o `/config set channels..accounts....`).
-- `allowFrom` è per-provider. Quando impostato, è l'**unica** fonte di autorizzazione (le allowlist/abbinamenti del canale e `useAccessGroups` vengono ignorati).
-- `useAccessGroups: false` consente ai comandi di bypassare le policy dei gruppi di accesso quando `allowFrom` non è impostato.
+- `config: true` abilita `/config` (legge/scrive `openclaw.json`). Per i client gateway `chat.send`, le scritture persistenti `/config set|unset` richiedono anche `operator.admin`; la sola lettura `/config show` resta disponibile ai normali client operator con ambito scrittura.
+- `mcp: true` abilita `/mcp` per la configurazione del server MCP gestita da OpenClaw sotto `mcp.servers`.
+- `plugins: true` abilita `/plugins` per il rilevamento plugin, l’installazione e i controlli di abilitazione/disabilitazione.
+- `channels..configWrites` regola le mutazioni di configurazione per canale (predefinito: true).
+- Per i canali multi-account, anche `channels..accounts..configWrites` regola le scritture che prendono di mira quell’account (ad esempio `/allowlist --config --account ` o `/config set channels..accounts....`).
+- `restart: false` disabilita `/restart` e le azioni dello strumento di riavvio gateway. Predefinito: `true`.
+- `ownerAllowFrom` è l’allowlist esplicita del proprietario per comandi/strumenti solo-proprietario. È separata da `allowFrom`.
+- `ownerDisplay: "hash"` applica hash agli ID del proprietario nel system prompt. Imposta `ownerDisplaySecret` per controllare l’hashing.
+- `allowFrom` è per-provider. Quando impostato, è l’**unica** fonte di autorizzazione (le allowlist/pairing del canale e `useAccessGroups` vengono ignorati).
+- `useAccessGroups: false` consente ai comandi di bypassare i criteri dei gruppi di accesso quando `allowFrom` non è impostato.
+- Mappa della documentazione dei comandi:
+ - catalogo built-in + bundled: [Slash Commands](/it/tools/slash-commands)
+ - superfici di comando specifiche del canale: [Canali](/it/channels)
+ - comandi QQ Bot: [QQ Bot](/it/channels/qqbot)
+ - comandi di pairing: [Pairing](/it/channels/pairing)
+ - comando card di LINE: [LINE](/it/channels/line)
+ - memory dreaming: [Dreaming](/it/concepts/dreaming)
---
-## Valori predefiniti dell'agente
+## Valori predefiniti dell’agente
### `agents.defaults.workspace`
@@ -867,7 +906,7 @@ Predefinito: `~/.openclaw/workspace`.
### `agents.defaults.repoRoot`
-Radice repository facoltativa mostrata nella riga Runtime del system prompt. Se non impostata, OpenClaw la rileva automaticamente risalendo dal workspace.
+Root opzionale del repository mostrata nella riga Runtime del system prompt. Se non impostata, OpenClaw rileva automaticamente risalendo dal workspace.
```json5
{
@@ -877,7 +916,7 @@ Radice repository facoltativa mostrata nella riga Runtime del system prompt. Se
### `agents.defaults.skills`
-Allowlist predefinita facoltativa di Skills per gli agenti che non impostano
+Allowlist predefinita opzionale di Skills per gli agenti che non impostano
`agents.list[].skills`.
```json5
@@ -885,19 +924,19 @@ Allowlist predefinita facoltativa di Skills per gli agenti che non impostano
agents: {
defaults: { skills: ["github", "weather"] },
list: [
- { id: "writer" }, // eredita github, weather
- { id: "docs", skills: ["docs-search"] }, // sostituisce i predefiniti
- { id: "locked-down", skills: [] }, // nessuna Skills
+ { id: "writer" }, // inherits github, weather
+ { id: "docs", skills: ["docs-search"] }, // replaces defaults
+ { id: "locked-down", skills: [] }, // no skills
],
},
}
```
-- Ometti `agents.defaults.skills` per Skills senza restrizioni per impostazione predefinita.
-- Ometti `agents.list[].skills` per ereditare i predefiniti.
-- Imposta `agents.list[].skills: []` per nessuna Skills.
-- Una lista `agents.list[].skills` non vuota è l'insieme finale per quell'agente;
- non viene unita ai predefiniti.
+- Ometti `agents.defaults.skills` per avere Skills senza restrizioni per impostazione predefinita.
+- Ometti `agents.list[].skills` per ereditare i valori predefiniti.
+- Imposta `agents.list[].skills: []` per non avere Skills.
+- Un elenco non vuoto `agents.list[].skills` è l’insieme finale per quell’agente; non
+ viene unito ai valori predefiniti.
### `agents.defaults.skipBootstrap`
@@ -913,7 +952,7 @@ Disabilita la creazione automatica dei file bootstrap del workspace (`AGENTS.md`
Controlla quando i file bootstrap del workspace vengono iniettati nel system prompt. Predefinito: `"always"`.
-- `"continuation-skip"`: i turni di continuazione sicura (dopo una risposta completata dell'assistente) saltano la reiniezione del bootstrap del workspace, riducendo la dimensione del prompt. Le esecuzioni heartbeat e i retry dopo compaction ricostruiscono comunque il contesto.
+- `"continuation-skip"`: i turni di continuazione sicuri (dopo una risposta assistant completata) saltano la re-iniezione del bootstrap del workspace, riducendo la dimensione del prompt. Le esecuzioni heartbeat e i retry dopo compattazione ricostruiscono comunque il contesto.
```json5
{
@@ -943,12 +982,12 @@ Numero massimo totale di caratteri iniettati in tutti i file bootstrap del works
### `agents.defaults.bootstrapPromptTruncationWarning`
-Controlla il testo di avviso visibile all'agente quando il contesto bootstrap viene troncato.
+Controlla il testo di avviso visibile all’agente quando il contesto bootstrap viene troncato.
Predefinito: `"once"`.
- `"off"`: non iniettare mai testo di avviso nel system prompt.
-- `"once"`: inietta l'avviso una sola volta per ogni firma di troncamento univoca (consigliato).
-- `"always"`: inietta l'avviso a ogni esecuzione quando esiste un troncamento.
+- `"once"`: inietta l’avviso una volta per ogni firma di troncamento univoca (consigliato).
+- `"always"`: inietta l’avviso a ogni esecuzione quando esiste troncamento.
```json5
{
@@ -958,11 +997,11 @@ Predefinito: `"once"`.
### `agents.defaults.imageMaxDimensionPx`
-Dimensione massima in pixel per il lato più lungo delle immagini nei blocchi immagine di transcript/strumenti prima delle chiamate al provider.
+Dimensione massima in pixel del lato più lungo delle immagini nei blocchi immagine di transcript/tool prima delle chiamate provider.
Predefinito: `1200`.
-Valori inferiori riducono in genere l'uso di vision token e la dimensione del payload della richiesta per esecuzioni ricche di screenshot.
-Valori più alti conservano maggior dettaglio visivo.
+Valori più bassi di solito riducono l’uso dei token vision e la dimensione del payload di richiesta per esecuzioni ricche di screenshot.
+Valori più alti preservano maggior dettaglio visivo.
```json5
{
@@ -972,7 +1011,7 @@ Valori più alti conservano maggior dettaglio visivo.
### `agents.defaults.userTimezone`
-Fuso orario per il contesto del system prompt (non i timestamp dei messaggi). Usa il fuso orario dell'host come fallback.
+Fuso orario per il contesto del system prompt (non i timestamp dei messaggi). Ricade sul fuso orario dell’host.
```json5
{
@@ -1020,7 +1059,7 @@ Formato orario nel system prompt. Predefinito: `auto` (preferenza OS).
primary: "anthropic/claude-opus-4-6",
fallbacks: ["openai/gpt-5.4-mini"],
},
- params: { cacheRetention: "long" }, // parametri provider predefiniti globali
+ params: { cacheRetention: "long" }, // global default provider params
pdfMaxBytesMb: 10,
pdfMaxPages: 20,
thinkingDefault: "low",
@@ -1035,64 +1074,64 @@ Formato orario nel system prompt. Predefinito: `auto` (preferenza OS).
}
```
-- `model`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
+- `model`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
- La forma stringa imposta solo il modello primario.
- - La forma oggetto imposta il primario più i modelli di failover ordinati.
-- `imageModel`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
- - Usato dal percorso dello strumento `image` come configurazione del modello vision.
+ - La forma oggetto imposta il primario più i modelli failover ordinati.
+- `imageModel`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
+ - Usato dal percorso dello strumento `image` come configurazione del suo modello vision.
- Usato anche come routing di fallback quando il modello selezionato/predefinito non può accettare input immagine.
-- `imageGenerationModel`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
- - Usato dalla capacità condivisa di generazione immagini e da qualunque futura superficie tool/plugin che generi immagini.
+- `imageGenerationModel`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
+ - Usato dalla capability condivisa di generazione immagini e da ogni futura superficie tool/plugin che genera immagini.
- Valori tipici: `google/gemini-3.1-flash-image-preview` per la generazione immagini nativa Gemini, `fal/fal-ai/flux/dev` per fal, oppure `openai/gpt-image-1` per OpenAI Images.
- - Se selezioni direttamente un provider/modello, configura anche l'autenticazione/chiave API del provider corrispondente (ad esempio `GEMINI_API_KEY` o `GOOGLE_API_KEY` per `google/*`, `OPENAI_API_KEY` per `openai/*`, `FAL_KEY` per `fal/*`).
- - Se omesso, `image_generate` può comunque inferire un provider predefinito con autenticazione disponibile. Prova prima il provider predefinito corrente, poi i restanti provider di generazione immagini registrati in ordine di provider-id.
-- `musicGenerationModel`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
- - Usato dalla capacità condivisa di generazione musicale e dallo strumento built-in `music_generate`.
+ - Se selezioni direttamente un provider/modello, configura anche l’autenticazione/API key del provider corrispondente (ad esempio `GEMINI_API_KEY` o `GOOGLE_API_KEY` per `google/*`, `OPENAI_API_KEY` per `openai/*`, `FAL_KEY` per `fal/*`).
+ - Se omesso, `image_generate` può comunque dedurre un provider predefinito supportato da auth. Prova prima il provider predefinito corrente, poi i restanti provider registrati di generazione immagini in ordine di provider id.
+- `musicGenerationModel`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
+ - Usato dalla capability condivisa di generazione musicale e dallo strumento built-in `music_generate`.
- Valori tipici: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` o `minimax/music-2.5+`.
- - Se omesso, `music_generate` può comunque inferire un provider predefinito con autenticazione disponibile. Prova prima il provider predefinito corrente, poi i restanti provider di generazione musicale registrati in ordine di provider-id.
- - Se selezioni direttamente un provider/modello, configura anche l'autenticazione/chiave API del provider corrispondente.
-- `videoGenerationModel`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
- - Usato dalla capacità condivisa di generazione video e dallo strumento built-in `video_generate`.
+ - Se omesso, `music_generate` può comunque dedurre un provider predefinito supportato da auth. Prova prima il provider predefinito corrente, poi i restanti provider registrati di generazione musicale in ordine di provider id.
+ - Se selezioni direttamente un provider/modello, configura anche l’autenticazione/API key del provider corrispondente.
+- `videoGenerationModel`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
+ - Usato dalla capability condivisa di generazione video e dallo strumento built-in `video_generate`.
- Valori tipici: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` o `qwen/wan2.7-r2v`.
- - Se omesso, `video_generate` può comunque inferire un provider predefinito con autenticazione disponibile. Prova prima il provider predefinito corrente, poi i restanti provider di generazione video registrati in ordine di provider-id.
- - Se selezioni direttamente un provider/modello, configura anche l'autenticazione/chiave API del provider corrispondente.
- - Il provider bundled di generazione video Qwen supporta attualmente fino a 1 video in output, 1 immagine in input, 4 video in input, durata di 10 secondi e opzioni a livello provider `size`, `aspectRatio`, `resolution`, `audio` e `watermark`.
-- `pdfModel`: accetta una stringa (`"provider/model"`) oppure un oggetto (`{ primary, fallbacks }`).
+ - Se omesso, `video_generate` può comunque dedurre un provider predefinito supportato da auth. Prova prima il provider predefinito corrente, poi i restanti provider registrati di generazione video in ordine di provider id.
+ - Se selezioni direttamente un provider/modello, configura anche l’autenticazione/API key del provider corrispondente.
+ - Il provider bundled di generazione video Qwen supporta attualmente fino a 1 video in output, 1 immagine in input, 4 video in input, 10 secondi di durata e opzioni a livello provider `size`, `aspectRatio`, `resolution`, `audio` e `watermark`.
+- `pdfModel`: accetta sia una stringa (`"provider/model"`) sia un oggetto (`{ primary, fallbacks }`).
- Usato dallo strumento `pdf` per il routing del modello.
- - Se omesso, lo strumento PDF usa `imageModel`, poi il modello risolto di sessione/predefinito.
-- `pdfMaxBytesMb`: limite di dimensione PDF predefinito per lo strumento `pdf` quando `maxBytesMb` non viene passato al momento della chiamata.
-- `pdfMaxPages`: numero massimo predefinito di pagine considerate dalla modalità di fallback di estrazione nello strumento `pdf`.
+ - Se omesso, lo strumento PDF ricade su `imageModel`, poi sul modello risolto di sessione/predefinito.
+- `pdfMaxBytesMb`: limite dimensione PDF predefinito per lo strumento `pdf` quando `maxBytesMb` non viene passato alla chiamata.
+- `pdfMaxPages`: numero massimo predefinito di pagine considerate dalla modalità fallback di estrazione nello strumento `pdf`.
- `verboseDefault`: livello verbose predefinito per gli agenti. Valori: `"off"`, `"on"`, `"full"`. Predefinito: `"off"`.
- `elevatedDefault`: livello predefinito di output elevated per gli agenti. Valori: `"off"`, `"on"`, `"ask"`, `"full"`. Predefinito: `"on"`.
-- `model.primary`: formato `provider/model` (es. `openai/gpt-5.4`). Se ometti il provider, OpenClaw prova prima un alias, poi una corrispondenza univoca di provider configurato per quell'esatto model id, e solo dopo usa il provider predefinito configurato come fallback (comportamento di compatibilità deprecato, quindi preferisci `provider/model` esplicito). Se quel provider non espone più il modello predefinito configurato, OpenClaw usa come fallback il primo provider/modello configurato invece di esporre un predefinito obsoleto di un provider rimosso.
+- `model.primary`: formato `provider/model` (ad esempio `openai/gpt-5.4`). Se ometti il provider, OpenClaw prova prima un alias, poi una corrispondenza univoca con provider configurato per quell’esatto model id, e solo dopo ricade sul provider predefinito configurato (comportamento di compatibilità deprecato, quindi preferisci `provider/model` esplicito). Se quel provider non espone più il modello predefinito configurato, OpenClaw ricade sul primo provider/modello configurato invece di esporre un predefinito obsoleto di provider rimosso.
- `models`: catalogo modelli configurato e allowlist per `/model`. Ogni voce può includere `alias` (scorciatoia) e `params` (specifici del provider, ad esempio `temperature`, `maxTokens`, `cacheRetention`, `context1m`).
-- `params`: parametri provider predefiniti globali applicati a tutti i modelli. Impostali in `agents.defaults.params` (ad es. `{ cacheRetention: "long" }`).
-- Precedenza di unione `params` (config): `agents.defaults.params` (base globale) viene sovrascritto da `agents.defaults.models["provider/model"].params` (per-modello), quindi `agents.list[].params` (id agente corrispondente) sovrascrive per chiave. Vedi [Caching del prompt](/it/reference/prompt-caching) per i dettagli.
-- Gli strumenti di scrittura configurazione che mutano questi campi (ad esempio `/models set`, `/models set-image` e i comandi di aggiunta/rimozione fallback) salvano la forma oggetto canonica e conservano le liste fallback esistenti quando possibile.
-- `maxConcurrent`: numero massimo di esecuzioni agente parallele tra sessioni (ogni sessione resta comunque serializzata). Predefinito: 4.
+- `params`: parametri provider globali predefiniti applicati a tutti i modelli. Impostali in `agents.defaults.params` (ad es. `{ cacheRetention: "long" }`).
+- Precedenza di merge di `params` (config): `agents.defaults.params` (base globale) viene sovrascritto da `agents.defaults.models["provider/model"].params` (per-modello), poi `agents.list[].params` (ID agente corrispondente) sovrascrive per chiave. Vedi [Prompt Caching](/it/reference/prompt-caching) per i dettagli.
+- I writer di configurazione che mutano questi campi (ad esempio `/models set`, `/models set-image` e i comandi di aggiunta/rimozione fallback) salvano la forma oggetto canonica e preservano le liste fallback esistenti quando possibile.
+- `maxConcurrent`: numero massimo di esecuzioni parallele dell’agente tra sessioni (ogni sessione resta comunque serializzata). Predefinito: 4.
-**Alias shorthand built-in** (si applicano solo quando il modello è in `agents.defaults.models`):
+**Scorciatoie alias built-in** (si applicano solo quando il modello è in `agents.defaults.models`):
-| Alias | Modello |
-| ------------------- | ------------------------------------- |
-| `opus` | `anthropic/claude-opus-4-6` |
-| `sonnet` | `anthropic/claude-sonnet-4-6` |
-| `gpt` | `openai/gpt-5.4` |
-| `gpt-mini` | `openai/gpt-5.4-mini` |
-| `gpt-nano` | `openai/gpt-5.4-nano` |
-| `gemini` | `google/gemini-3.1-pro-preview` |
-| `gemini-flash` | `google/gemini-3-flash-preview` |
+| Alias | Modello |
+| ------------------- | -------------------------------------- |
+| `opus` | `anthropic/claude-opus-4-6` |
+| `sonnet` | `anthropic/claude-sonnet-4-6` |
+| `gpt` | `openai/gpt-5.4` |
+| `gpt-mini` | `openai/gpt-5.4-mini` |
+| `gpt-nano` | `openai/gpt-5.4-nano` |
+| `gemini` | `google/gemini-3.1-pro-preview` |
+| `gemini-flash` | `google/gemini-3-flash-preview` |
| `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` |
-Gli alias da te configurati hanno sempre priorità sui predefiniti.
+Gli alias configurati da te hanno sempre la precedenza sui predefiniti.
I modelli Z.AI GLM-4.x abilitano automaticamente la modalità thinking a meno che tu non imposti `--thinking off` o definisca tu stesso `agents.defaults.models["zai/"].params.thinking`.
-I modelli Z.AI abilitano `tool_stream` per impostazione predefinita per lo streaming delle chiamate strumenti. Imposta `agents.defaults.models["zai/"].params.tool_stream` su `false` per disabilitarlo.
-I modelli Anthropic Claude 4.6 usano `adaptive` thinking come predefinito quando non è impostato alcun livello thinking esplicito.
+I modelli Z.AI abilitano `tool_stream` per impostazione predefinita per lo streaming delle chiamate tool. Imposta `agents.defaults.models["zai/"].params.tool_stream` su `false` per disabilitarlo.
+I modelli Anthropic Claude 4.6 usano per impostazione predefinita il thinking `adaptive` quando non è impostato alcun livello di thinking esplicito.
### `agents.defaults.cliBackends`
-Backend CLI facoltativi per esecuzioni di fallback solo testo (nessuna chiamata strumenti). Utili come backup quando i provider API falliscono.
+Backend CLI opzionali per esecuzioni di fallback solo testo (senza chiamate tool). Utili come backup quando i provider API falliscono.
```json5
{
@@ -1120,9 +1159,9 @@ Backend CLI facoltativi per esecuzioni di fallback solo testo (nessuna chiamata
}
```
-- I backend CLI sono orientati al testo; gli strumenti sono sempre disabilitati.
-- Sessioni supportate quando `sessionArg` è impostato.
-- Pass-through immagini supportato quando `imageArg` accetta percorsi file.
+- I backend CLI sono text-first; gli strumenti sono sempre disabilitati.
+- Le sessioni sono supportate quando `sessionArg` è impostato.
+- Il pass-through delle immagini è supportato quando `imageArg` accetta percorsi file.
### `agents.defaults.heartbeat`
@@ -1133,16 +1172,16 @@ Esecuzioni heartbeat periodiche.
agents: {
defaults: {
heartbeat: {
- every: "30m", // 0m disabilita
+ every: "30m", // 0m disables
model: "openai/gpt-5.4-mini",
includeReasoning: false,
- lightContext: false, // predefinito: false; true mantiene solo HEARTBEAT.md tra i file bootstrap del workspace
- isolatedSession: false, // predefinito: false; true esegue ogni heartbeat in una sessione nuova (senza cronologia conversazione)
+ lightContext: false, // default: false; true keeps only HEARTBEAT.md from workspace bootstrap files
+ isolatedSession: false, // default: false; true runs each heartbeat in a fresh session (no conversation history)
session: "main",
to: "+15555550123",
- directPolicy: "allow", // allow (predefinito) | block
- target: "none", // predefinito: none | opzioni: last | whatsapp | telegram | discord | ...
- prompt: "Leggi HEARTBEAT.md se esiste...",
+ directPolicy: "allow", // allow (default) | block
+ target: "none", // default: none | options: last | whatsapp | telegram | discord | ...
+ prompt: "Read HEARTBEAT.md if it exists...",
ackMaxChars: 300,
suppressToolErrorWarnings: false,
},
@@ -1151,13 +1190,13 @@ Esecuzioni heartbeat periodiche.
}
```
-- `every`: stringa durata (ms/s/m/h). Predefinito: `30m` (autenticazione API-key) o `1h` (autenticazione OAuth). Imposta `0m` per disabilitare.
-- `suppressToolErrorWarnings`: quando true, sopprime i payload di avviso errore degli strumenti durante le esecuzioni heartbeat.
-- `directPolicy`: policy di consegna diretta/DM. `allow` (predefinita) consente la consegna a target diretto. `block` sopprime la consegna a target diretto ed emette `reason=dm-blocked`.
+- `every`: stringa durata (ms/s/m/h). Predefinito: `30m` (auth API-key) oppure `1h` (auth OAuth). Imposta `0m` per disabilitare.
+- `suppressToolErrorWarnings`: quando true, sopprime i payload di avviso di errore tool durante le esecuzioni heartbeat.
+- `directPolicy`: criterio di consegna diretta/DM. `allow` (predefinito) consente la consegna a target diretti. `block` sopprime la consegna diretta al target ed emette `reason=dm-blocked`.
- `lightContext`: quando true, le esecuzioni heartbeat usano un contesto bootstrap leggero e mantengono solo `HEARTBEAT.md` tra i file bootstrap del workspace.
-- `isolatedSession`: quando true, ogni esecuzione heartbeat avviene in una sessione nuova senza cronologia di conversazione precedente. Stesso schema di isolamento di cron `sessionTarget: "isolated"`. Riduce il costo in token per heartbeat da ~100K a ~2-5K token.
-- Per-agente: imposta `agents.list[].heartbeat`. Quando un agente definisce `heartbeat`, **solo quegli agenti** eseguono heartbeat.
-- Gli heartbeat eseguono turni completi dell'agente — intervalli più brevi consumano più token.
+- `isolatedSession`: quando true, ogni heartbeat viene eseguito in una sessione nuova senza cronologia di conversazione precedente. Stesso schema di isolamento del cron `sessionTarget: "isolated"`. Riduce il costo in token per-heartbeat da ~100K a ~2-5K token.
+- Per-agente: imposta `agents.list[].heartbeat`. Quando un qualsiasi agente definisce `heartbeat`, **solo quegli agenti** eseguono heartbeat.
+- Gli heartbeat eseguono turni completi dell’agente: intervalli più brevi consumano più token.
### `agents.defaults.compaction`
@@ -1167,19 +1206,19 @@ Esecuzioni heartbeat periodiche.
defaults: {
compaction: {
mode: "safeguard", // default | safeguard
- provider: "my-provider", // id di un plugin provider di compaction registrato (facoltativo)
+ provider: "my-provider", // id of a registered compaction provider plugin (optional)
timeoutSeconds: 900,
reserveTokensFloor: 24000,
identifierPolicy: "strict", // strict | off | custom
- identifierInstructions: "Conserva esattamente gli ID di distribuzione, gli ID ticket e le coppie host:port.", // usato quando identifierPolicy=custom
- postCompactionSections: ["Session Startup", "Red Lines"], // [] disabilita la reiniezione
- model: "openrouter/anthropic/claude-sonnet-4-6", // override facoltativo del modello solo per compaction
- notifyUser: true, // invia un breve avviso quando inizia la compaction (predefinito: false)
+ identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // used when identifierPolicy=custom
+ postCompactionSections: ["Session Startup", "Red Lines"], // [] disables reinjection
+ model: "openrouter/anthropic/claude-sonnet-4-6", // optional compaction-only model override
+ notifyUser: true, // send a brief notice when compaction starts (default: false)
memoryFlush: {
enabled: true,
softThresholdTokens: 6000,
- systemPrompt: "La sessione si sta avvicinando alla compaction. Archivia ora le memorie durevoli.",
- prompt: "Scrivi eventuali note durature in memory/YYYY-MM-DD.md; rispondi con l'esatto token silenzioso NO_REPLY se non c'è nulla da memorizzare.",
+ systemPrompt: "Session nearing compaction. Store durable memories now.",
+ prompt: "Write any lasting notes to memory/YYYY-MM-DD.md; reply with the exact silent token NO_REPLY if nothing to store.",
},
},
},
@@ -1187,19 +1226,19 @@ Esecuzioni heartbeat periodiche.
}
```
-- `mode`: `default` o `safeguard` (riassunto a blocchi per storici lunghi). Vedi [Compaction](/it/concepts/compaction).
-- `provider`: id di un plugin provider di compaction registrato. Quando impostato, viene chiamato `summarize()` del provider invece della sintesi LLM built-in. In caso di errore torna al built-in. Impostare un provider forza `mode: "safeguard"`. Vedi [Compaction](/it/concepts/compaction).
-- `timeoutSeconds`: numero massimo di secondi consentito per una singola operazione di compaction prima che OpenClaw la interrompa. Predefinito: `900`.
-- `identifierPolicy`: `strict` (predefinito), `off` o `custom`. `strict` antepone istruzioni built-in per la conservazione di identificatori opachi durante la sintesi di compaction.
-- `identifierInstructions`: testo facoltativo personalizzato per la conservazione degli identificatori usato quando `identifierPolicy=custom`.
-- `postCompactionSections`: nomi facoltativi di sezioni H2/H3 di AGENTS.md da reiniettare dopo la compaction. Predefinito `["Session Startup", "Red Lines"]`; imposta `[]` per disabilitare la reiniezione. Quando non è impostato o è impostato esplicitamente a quella coppia predefinita, sono accettate anche le intestazioni legacy `Every Session`/`Safety` come fallback.
-- `model`: override facoltativo `provider/model-id` solo per la sintesi di compaction. Usalo quando la sessione principale deve mantenere un modello ma i riassunti di compaction devono girare su un altro; quando non impostato, la compaction usa il modello primario della sessione.
-- `notifyUser`: quando `true`, invia un breve avviso all'utente quando inizia la compaction (ad esempio "Compattazione del contesto..."). Disabilitato per impostazione predefinita per mantenere silenziosa la compaction.
-- `memoryFlush`: turno agentico silenzioso prima della auto-compaction per archiviare memorie durevoli. Saltato quando il workspace è di sola lettura.
+- `mode`: `default` o `safeguard` (riassunto a blocchi per storie lunghe). Vedi [Compaction](/it/concepts/compaction).
+- `provider`: ID di un plugin provider di compaction registrato. Quando impostato, viene chiamato `summarize()` del provider invece del riassunto built-in basato su LLM. In caso di errore ricade sul built-in. Impostare un provider forza `mode: "safeguard"`. Vedi [Compaction](/it/concepts/compaction).
+- `timeoutSeconds`: numero massimo di secondi consentiti per una singola operazione di compaction prima che OpenClaw la interrompa. Predefinito: `900`.
+- `identifierPolicy`: `strict` (predefinito), `off` o `custom`. `strict` antepone istruzioni built-in per la conservazione di identificatori opachi durante il riassunto di compaction.
+- `identifierInstructions`: testo opzionale personalizzato di conservazione degli identificatori usato quando `identifierPolicy=custom`.
+- `postCompactionSections`: nomi opzionali di sezioni AGENTS.md H2/H3 da re-iniettare dopo la compaction. Predefinito `["Session Startup", "Red Lines"]`; imposta `[]` per disabilitare la re-iniezione. Quando non è impostato o è esplicitamente impostato a quella coppia predefinita, vengono accettate anche le vecchie intestazioni `Every Session`/`Safety` come fallback legacy.
+- `model`: override opzionale `provider/model-id` solo per il riassunto di compaction. Usalo quando la sessione principale deve mantenere un modello ma i riassunti di compaction devono essere eseguiti su un altro; se non impostato, la compaction usa il modello primario della sessione.
+- `notifyUser`: quando `true`, invia un breve avviso all’utente all’inizio della compaction (ad esempio, "Compacting context..."). Disabilitato per impostazione predefinita per mantenere silenziosa la compaction.
+- `memoryFlush`: turno agentic silenzioso prima della auto-compaction per archiviare memorie durevoli. Saltato quando il workspace è in sola lettura.
### `agents.defaults.contextPruning`
-Esegue il pruning dei **vecchi risultati degli strumenti** dal contesto in memoria prima dell'invio all'LLM. **Non** modifica la cronologia della sessione su disco.
+Esegue il pruning dei **vecchi risultati degli strumenti** dal contesto in memoria prima dell’invio all’LLM. **Non** modifica la cronologia della sessione su disco.
```json5
{
@@ -1207,13 +1246,13 @@ Esegue il pruning dei **vecchi risultati degli strumenti** dal contesto in memor
defaults: {
contextPruning: {
mode: "cache-ttl", // off | cache-ttl
- ttl: "1h", // durata (ms/s/m/h), unità predefinita: minuti
+ ttl: "1h", // duration (ms/s/m/h), default unit: minutes
keepLastAssistants: 3,
softTrimRatio: 0.3,
hardClearRatio: 0.5,
minPrunableToolChars: 50000,
softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 },
- hardClear: { enabled: true, placeholder: "[Contenuto del vecchio risultato strumento cancellato]" },
+ hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" },
tools: { deny: ["browser", "canvas"] },
},
},
@@ -1224,24 +1263,24 @@ Esegue il pruning dei **vecchi risultati degli strumenti** dal contesto in memor
- `mode: "cache-ttl"` abilita i passaggi di pruning.
-- `ttl` controlla con quale frequenza il pruning può essere rieseguito (dopo l'ultimo tocco della cache).
-- Il pruning prima accorcia in modo soft i risultati degli strumenti troppo grandi, poi cancella in modo hard i risultati più vecchi se necessario.
+- `ttl` controlla dopo quanto il pruning può essere eseguito di nuovo (dopo l’ultimo tocco della cache).
+- Il pruning prima esegue soft-trim dei risultati tool troppo grandi, poi hard-clear dei risultati tool più vecchi se necessario.
-**Soft-trim** mantiene inizio + fine e inserisce `...` nel mezzo.
+**Soft-trim** conserva inizio + fine e inserisce `...` nel mezzo.
-**Hard-clear** sostituisce l'intero risultato dello strumento con il placeholder.
+**Hard-clear** sostituisce l’intero risultato tool con il segnaposto.
Note:
-- I blocchi immagine non vengono mai accorciati/cancellati.
-- I rapporti sono basati sui caratteri (approssimativi), non sui token esatti.
+- I blocchi immagine non vengono mai troncati/cancellati.
+- I rapporti sono basati sui caratteri (approssimativi), non su conteggi token esatti.
- Se esistono meno di `keepLastAssistants` messaggi assistant, il pruning viene saltato.
-Vedi [Pruning delle sessioni](/it/concepts/session-pruning) per i dettagli sul comportamento.
+Vedi [Session Pruning](/it/concepts/session-pruning) per i dettagli del comportamento.
-### Streaming a blocchi
+### Block streaming
```json5
{
@@ -1251,17 +1290,17 @@ Vedi [Pruning delle sessioni](/it/concepts/session-pruning) per i dettagli sul c
blockStreamingBreak: "text_end", // text_end | message_end
blockStreamingChunk: { minChars: 800, maxChars: 1200 },
blockStreamingCoalesce: { idleMs: 1000 },
- humanDelay: { mode: "natural" }, // off | natural | custom (usa minMs/maxMs)
+ humanDelay: { mode: "natural" }, // off | natural | custom (use minMs/maxMs)
},
},
}
```
- I canali non-Telegram richiedono `*.blockStreaming: true` esplicito per abilitare le risposte a blocchi.
-- Override per canale: `channels..blockStreamingCoalesce` (e varianti per-account). Signal/Slack/Discord/Google Chat hanno predefinito `minChars: 1500`.
+- Override di canale: `channels..blockStreamingCoalesce` (e varianti per-account). Signal/Slack/Discord/Google Chat usano per impostazione predefinita `minChars: 1500`.
- `humanDelay`: pausa casuale tra risposte a blocchi. `natural` = 800–2500ms. Override per-agente: `agents.list[].humanDelay`.
-Vedi [Streaming](/it/concepts/streaming) per dettagli su comportamento + chunking.
+Vedi [Streaming](/it/concepts/streaming) per i dettagli su comportamento + chunking.
### Indicatori di digitazione
@@ -1285,7 +1324,7 @@ Vedi [Indicatori di digitazione](/it/concepts/typing-indicators).
### `agents.defaults.sandbox`
-Sandboxing facoltativo per l'agente embedded. Vedi [Sandboxing](/it/gateway/sandboxing) per la guida completa.
+Sandboxing opzionale per l’agente embedded. Vedi [Sandboxing](/it/gateway/sandboxing) per la guida completa.
```json5
{
@@ -1331,7 +1370,7 @@ Sandboxing facoltativo per l'agente embedded. Vedi [Sandboxing](/it/gateway/sand
identityFile: "~/.ssh/id_ed25519",
certificateFile: "~/.ssh/id_ed25519-cert.pub",
knownHostsFile: "~/.ssh/known_hosts",
- // Sono supportati anche SecretRef / contenuti inline:
+ // SecretRefs / inline contents also supported:
// identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" },
// certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" },
// knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" },
@@ -1380,7 +1419,7 @@ Sandboxing facoltativo per l'agente embedded. Vedi [Sandboxing](/it/gateway/sand
}
```
-
+
**Backend:**
@@ -1393,39 +1432,39 @@ Quando viene selezionato `backend: "openshell"`, le impostazioni specifiche del
**Configurazione backend SSH:**
-- `target`: target SSH in formato `user@host[:port]`
+- `target`: target SSH nel formato `user@host[:port]`
- `command`: comando client SSH (predefinito: `ssh`)
-- `workspaceRoot`: root remota assoluta usata per workspace per-scope
+- `workspaceRoot`: root remota assoluta usata per i workspace per-scope
- `identityFile` / `certificateFile` / `knownHostsFile`: file locali esistenti passati a OpenSSH
- `identityData` / `certificateData` / `knownHostsData`: contenuti inline o SecretRef che OpenClaw materializza in file temporanei a runtime
-- `strictHostKeyChecking` / `updateHostKeys`: controlli della policy delle chiavi host OpenSSH
+- `strictHostKeyChecking` / `updateHostKeys`: impostazioni di criterio OpenSSH sulle host key
-**Precedenza autenticazione SSH:**
+**Precedenza auth SSH:**
-- `identityData` ha priorità su `identityFile`
-- `certificateData` ha priorità su `certificateFile`
-- `knownHostsData` ha priorità su `knownHostsFile`
-- I valori `*Data` basati su SecretRef vengono risolti dallo snapshot runtime attivo dei segreti prima che inizi la sessione sandbox
+- `identityData` ha la precedenza su `identityFile`
+- `certificateData` ha la precedenza su `certificateFile`
+- `knownHostsData` ha la precedenza su `knownHostsFile`
+- I valori `*Data` basati su SecretRef vengono risolti dallo snapshot runtime attivo dei secret prima dell’avvio della sessione sandbox
**Comportamento backend SSH:**
-- inizializza il workspace remoto una sola volta dopo creazione o ricreazione
-- poi mantiene canonico il workspace SSH remoto
-- instrada `exec`, gli strumenti file e i percorsi media via SSH
-- non sincronizza automaticamente sull'host le modifiche remote
-- non supporta contenitori browser sandbox
+- inizializza il workspace remoto una volta dopo creazione o ricreazione
+- quindi mantiene canonico il workspace SSH remoto
+- instrada `exec`, gli strumenti file e i percorsi media tramite SSH
+- non sincronizza automaticamente le modifiche remote di nuovo verso l’host
+- non supporta container browser sandbox
**Accesso al workspace:**
- `none`: workspace sandbox per-scope sotto `~/.openclaw/sandboxes`
-- `ro`: workspace sandbox in `/workspace`, workspace agente montato in sola lettura in `/agent`
-- `rw`: workspace agente montato in lettura/scrittura in `/workspace`
+- `ro`: workspace sandbox in `/workspace`, workspace agente montato in sola lettura su `/agent`
+- `rw`: workspace agente montato in lettura/scrittura su `/workspace`
**Scope:**
-- `session`: contenitore + workspace per-sessione
-- `agent`: un contenitore + workspace per agente (predefinito)
-- `shared`: contenitore e workspace condivisi (nessun isolamento cross-sessione)
+- `session`: container + workspace per-sessione
+- `agent`: un container + workspace per agente (predefinito)
+- `shared`: container e workspace condivisi (nessun isolamento tra sessioni)
**Configurazione plugin OpenShell:**
@@ -1440,10 +1479,10 @@ Quando viene selezionato `backend: "openshell"`, le impostazioni specifiche del
from: "openclaw",
remoteWorkspaceDir: "/sandbox",
remoteAgentWorkspaceDir: "/agent",
- gateway: "lab", // facoltativo
- gatewayEndpoint: "https://lab.example", // facoltativo
- policy: "strict", // id policy OpenShell facoltativo
- providers: ["openai"], // facoltativo
+ gateway: "lab", // optional
+ gatewayEndpoint: "https://lab.example", // optional
+ policy: "strict", // optional OpenShell policy id
+ providers: ["openai"], // optional
autoProviders: true,
timeoutSeconds: 120,
},
@@ -1456,14 +1495,14 @@ Quando viene selezionato `backend: "openshell"`, le impostazioni specifiche del
**Modalità OpenShell:**
- `mirror`: inizializza il remoto dal locale prima di exec, sincronizza indietro dopo exec; il workspace locale resta canonico
-- `remote`: inizializza il remoto una sola volta quando il sandbox viene creato, poi mantiene canonico il workspace remoto
+- `remote`: inizializza il remoto una volta quando viene creata la sandbox, poi mantiene canonico il workspace remoto
-In modalità `remote`, le modifiche locali sull'host fatte fuori da OpenClaw non vengono sincronizzate automaticamente nel sandbox dopo il passaggio iniziale di seed.
-Il trasporto è SSH verso il sandbox OpenShell, ma il plugin possiede il ciclo di vita del sandbox e l'eventuale sincronizzazione mirror.
+In modalità `remote`, le modifiche locali sull’host fatte fuori da OpenClaw non vengono sincronizzate automaticamente nella sandbox dopo il passaggio di inizializzazione.
+Il trasporto è SSH verso la sandbox OpenShell, ma il plugin possiede il ciclo di vita della sandbox e l’eventuale sincronizzazione mirror.
-**`setupCommand`** viene eseguito una volta dopo la creazione del contenitore (tramite `sh -lc`). Richiede egress di rete, root scrivibile, utente root.
+**`setupCommand`** viene eseguito una volta dopo la creazione del container (tramite `sh -lc`). Richiede uscita di rete, root scrivibile, utente root.
-**I contenitori hanno predefinito `network: "none"`** — impostalo su `"bridge"` (o una rete bridge personalizzata) se l'agente ha bisogno di accesso in uscita.
+**I container usano per impostazione predefinita `network: "none"`**: imposta `"bridge"` (o una rete bridge personalizzata) se l’agente ha bisogno di accesso in uscita.
`"host"` è bloccato. `"container:"` è bloccato per impostazione predefinita a meno che tu non imposti esplicitamente
`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (break-glass).
@@ -1471,14 +1510,14 @@ Il trasporto è SSH verso il sandbox OpenShell, ma il plugin possiede il ciclo d
**`docker.binds`** monta directory host aggiuntive; i bind globali e per-agente vengono uniti.
-**Browser sandboxato** (`sandbox.browser.enabled`): Chromium + CDP in un contenitore. URL noVNC iniettato nel system prompt. Non richiede `browser.enabled` in `openclaw.json`.
-L'accesso osservatore noVNC usa per impostazione predefinita l'autenticazione VNC e OpenClaw emette un URL con token a breve durata (invece di esporre la password nell'URL condiviso).
+**Browser sandboxed** (`sandbox.browser.enabled`): Chromium + CDP in un container. URL noVNC iniettato nel system prompt. Non richiede `browser.enabled` in `openclaw.json`.
+L’accesso osservatore noVNC usa per impostazione predefinita l’autenticazione VNC e OpenClaw emette un URL token temporaneo breve (invece di esporre la password nell’URL condiviso).
-- `allowHostControl: false` (predefinito) blocca le sessioni sandboxate dal puntare al browser host.
-- `network` è predefinito `openclaw-sandbox-browser` (rete bridge dedicata). Impostalo su `bridge` solo quando vuoi esplicitamente una connettività bridge globale.
-- `cdpSourceRange` può limitare facoltativamente l'ingresso CDP al margine del contenitore a un intervallo CIDR (ad esempio `172.21.0.1/32`).
-- `sandbox.browser.binds` monta directory host aggiuntive solo nel contenitore browser sandbox. Quando impostato (incluso `[]`), sostituisce `docker.binds` per il contenitore browser.
-- I valori predefiniti di avvio sono definiti in `scripts/sandbox-browser-entrypoint.sh` e ottimizzati per host in contenitore:
+- `allowHostControl: false` (predefinito) blocca le sessioni sandboxed dal puntare al browser host.
+- `network` è predefinito `openclaw-sandbox-browser` (rete bridge dedicata). Impostalo su `bridge` solo quando vuoi esplicitamente connettività bridge globale.
+- `cdpSourceRange` limita opzionalmente l’ingresso CDP al margine del container a un intervallo CIDR (ad esempio `172.21.0.1/32`).
+- `sandbox.browser.binds` monta directory host aggiuntive solo nel container browser sandbox. Quando impostato (incluso `[]`), sostituisce `docker.binds` per il container browser.
+- I valori predefiniti di avvio sono definiti in `scripts/sandbox-browser-entrypoint.sh` e ottimizzati per host container:
- `--remote-debugging-address=127.0.0.1`
- `--remote-debugging-port=`
- `--user-data-dir=${HOME}/.chrome`
@@ -1498,24 +1537,24 @@ L'accesso osservatore noVNC usa per impostazione predefinita l'autenticazione VN
- `--disable-extensions` (abilitato per impostazione predefinita)
- `--disable-3d-apis`, `--disable-software-rasterizer` e `--disable-gpu` sono
abilitati per impostazione predefinita e possono essere disabilitati con
- `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` se l'uso di WebGL/3D lo richiede.
- - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` riabilita le estensioni se il tuo flusso di lavoro
- dipende da esse.
+ `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` se l’uso di WebGL/3D lo richiede.
+ - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` riabilita le estensioni se il tuo workflow
+ ne dipende.
- `--renderer-process-limit=2` può essere modificato con
`OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=`; imposta `0` per usare il
limite di processo predefinito di Chromium.
- più `--no-sandbox` e `--disable-setuid-sandbox` quando `noSandbox` è abilitato.
- - I predefiniti sono la baseline dell'immagine contenitore; usa un'immagine browser personalizzata con un entrypoint personalizzato per cambiare i valori predefiniti del contenitore.
+ - I valori predefiniti sono la baseline dell’immagine container; usa un’immagine browser personalizzata con un entrypoint personalizzato per modificare i valori predefiniti del container.
-Il sandboxing del browser e `sandbox.docker.binds` sono attualmente disponibili solo con Docker.
+Il browser sandboxing e `sandbox.docker.binds` sono attualmente solo Docker.
-Compila le immagini:
+Costruisci le immagini:
```bash
-scripts/sandbox-setup.sh # immagine sandbox principale
-scripts/sandbox-browser-setup.sh # immagine browser facoltativa
+scripts/sandbox-setup.sh # main sandbox image
+scripts/sandbox-browser-setup.sh # optional browser image
```
### `agents.list` (override per-agente)
@@ -1527,18 +1566,18 @@ scripts/sandbox-browser-setup.sh # immagine browser facoltativa
{
id: "main",
default: true,
- name: "Agente principale",
+ name: "Main Agent",
workspace: "~/.openclaw/workspace",
agentDir: "~/.openclaw/agents/main/agent",
- model: "anthropic/claude-opus-4-6", // oppure { primary, fallbacks }
- thinkingDefault: "high", // override per-agente del livello thinking
- reasoningDefault: "on", // override per-agente della visibilità reasoning
- fastModeDefault: false, // override per-agente della fast mode
- params: { cacheRetention: "none" }, // sovrascrive per chiave i defaults.models corrispondenti
- skills: ["docs-search"], // sostituisce agents.defaults.skills quando impostato
+ model: "anthropic/claude-opus-4-6", // or { primary, fallbacks }
+ thinkingDefault: "high", // per-agent thinking level override
+ reasoningDefault: "on", // per-agent reasoning visibility override
+ fastModeDefault: false, // per-agent fast mode override
+ params: { cacheRetention: "none" }, // overrides matching defaults.models params by key
+ skills: ["docs-search"], // replaces agents.defaults.skills when set
identity: {
name: "Samantha",
- theme: "bradipo disponibile",
+ theme: "helpful sloth",
emoji: "🦥",
avatar: "avatars/samantha.png",
},
@@ -1566,26 +1605,26 @@ scripts/sandbox-browser-setup.sh # immagine browser facoltativa
}
```
-- `id`: id agente stabile (obbligatorio).
-- `default`: quando sono impostati più valori, vince il primo (viene registrato un avviso). Se nessuno è impostato, il predefinito è la prima voce della lista.
-- `model`: la forma stringa sostituisce solo `primary`; la forma oggetto `{ primary, fallbacks }` sostituisce entrambi (`[]` disabilita i fallback globali). I cron job che sostituiscono solo `primary` continuano a ereditare i fallback predefiniti a meno che tu non imposti `fallbacks: []`.
-- `params`: parametri stream per-agente uniti sopra la voce modello selezionata in `agents.defaults.models`. Usali per override specifici dell'agente come `cacheRetention`, `temperature` o `maxTokens` senza duplicare l'intero catalogo modelli.
-- `skills`: allowlist facoltativa di Skills per-agente. Se omessa, l'agente eredita `agents.defaults.skills` quando impostato; una lista esplicita sostituisce i predefiniti invece di unirsi, e `[]` significa nessuna Skills.
-- `thinkingDefault`: livello thinking predefinito facoltativo per-agente (`off | minimal | low | medium | high | xhigh | adaptive`). Sostituisce `agents.defaults.thinkingDefault` per questo agente quando non è impostato alcun override per-messaggio o sessione.
-- `reasoningDefault`: visibilità reasoning predefinita facoltativa per-agente (`on | off | stream`). Si applica quando non è impostato alcun override reasoning per-messaggio o sessione.
-- `fastModeDefault`: valore predefinito facoltativo per-agente per la fast mode (`true | false`). Si applica quando non è impostato alcun override fast-mode per-messaggio o sessione.
-- `runtime`: descrittore runtime facoltativo per-agente. Usa `type: "acp"` con i predefiniti `runtime.acp` (`agent`, `backend`, `mode`, `cwd`) quando l'agente deve usare per impostazione predefinita sessioni harness ACP.
+- `id`: ID agente stabile (obbligatorio).
+- `default`: quando ne sono impostati più di uno, il primo vince (viene registrato un avviso). Se nessuno è impostato, la prima voce della lista è quella predefinita.
+- `model`: la forma stringa sovrascrive solo `primary`; la forma oggetto `{ primary, fallbacks }` sovrascrive entrambi (`[]` disabilita i fallback globali). I job cron che sovrascrivono solo `primary` ereditano comunque i fallback predefiniti a meno che tu non imposti `fallbacks: []`.
+- `params`: parametri stream per-agente uniti sopra la voce modello selezionata in `agents.defaults.models`. Usalo per override specifici dell’agente come `cacheRetention`, `temperature` o `maxTokens` senza duplicare l’intero catalogo modelli.
+- `skills`: allowlist opzionale di Skills per-agente. Se omesso, l’agente eredita `agents.defaults.skills` quando impostato; un elenco esplicito sostituisce i predefiniti invece di unirsi, e `[]` significa nessuna Skills.
+- `thinkingDefault`: livello predefinito opzionale di thinking per-agente (`off | minimal | low | medium | high | xhigh | adaptive`). Sovrascrive `agents.defaults.thinkingDefault` per questo agente quando non è impostato alcun override per-messaggio o per-sessione.
+- `reasoningDefault`: override opzionale per-agente della visibilità del reasoning (`on | off | stream`). Si applica quando non è impostato alcun override di reasoning per-messaggio o per-sessione.
+- `fastModeDefault`: valore predefinito opzionale per-agente per la fast mode (`true | false`). Si applica quando non è impostato alcun override di fast mode per-messaggio o per-sessione.
+- `runtime`: descrittore runtime opzionale per-agente. Usa `type: "acp"` con i valori predefiniti `runtime.acp` (`agent`, `backend`, `mode`, `cwd`) quando l’agente deve usare per impostazione predefinita sessioni harness ACP.
- `identity.avatar`: percorso relativo al workspace, URL `http(s)` o URI `data:`.
-- `identity` deriva valori predefiniti: `ackReaction` da `emoji`, `mentionPatterns` da `name`/`emoji`.
-- `subagents.allowAgents`: allowlist di id agente per `sessions_spawn` (`["*"]` = qualsiasi; predefinito: solo lo stesso agente).
-- Protezione ereditarietà sandbox: se la sessione richiedente è sandboxata, `sessions_spawn` rifiuta target che verrebbero eseguiti senza sandbox.
+- `identity` deriva i valori predefiniti: `ackReaction` da `emoji`, `mentionPatterns` da `name`/`emoji`.
+- `subagents.allowAgents`: allowlist di ID agente per `sessions_spawn` (`["*"]` = qualsiasi; predefinito: solo stesso agente).
+- Guardrail di ereditarietà sandbox: se la sessione richiedente è sandboxed, `sessions_spawn` rifiuta target che verrebbero eseguiti senza sandbox.
- `subagents.requireAgentId`: quando true, blocca le chiamate `sessions_spawn` che omettono `agentId` (forza la selezione esplicita del profilo; predefinito: false).
---
-## Routing multi-agente
+## Routing multi-agent
-Esegui più agenti isolati dentro un solo Gateway. Vedi [Multi-Agent](/it/concepts/multi-agent).
+Esegui più agenti isolati dentro un singolo Gateway. Vedi [Multi-Agent](/it/concepts/multi-agent).
```json5
{
@@ -1602,14 +1641,14 @@ Esegui più agenti isolati dentro un solo Gateway. Vedi [Multi-Agent](/it/concep
}
```
-### Campi di corrispondenza dei binding
+### Campi match del binding
-- `type` (facoltativo): `route` per il routing normale (type mancante equivale a route), `acp` per binding di conversazione ACP persistenti.
+- `type` (opzionale): `route` per il routing normale (type mancante equivale a route), `acp` per binding di conversazione ACP persistenti.
- `match.channel` (obbligatorio)
-- `match.accountId` (facoltativo; `*` = qualsiasi account; omesso = account predefinito)
-- `match.peer` (facoltativo; `{ kind: direct|group|channel, id }`)
-- `match.guildId` / `match.teamId` (facoltativo; specifici del canale)
-- `acp` (facoltativo; solo per voci `type: "acp"`): `{ mode, label, cwd, backend }`
+- `match.accountId` (opzionale; `*` = qualsiasi account; omesso = account predefinito)
+- `match.peer` (opzionale; `{ kind: direct|group|channel, id }`)
+- `match.guildId` / `match.teamId` (opzionale; specifici del canale)
+- `acp` (opzionale; solo per voci `type: "acp"`): `{ mode, label, cwd, backend }`
**Ordine di corrispondenza deterministico:**
@@ -1617,12 +1656,12 @@ Esegui più agenti isolati dentro un solo Gateway. Vedi [Multi-Agent](/it/concep
2. `match.guildId`
3. `match.teamId`
4. `match.accountId` (esatto, senza peer/guild/team)
-5. `match.accountId: "*"` (intero canale)
+5. `match.accountId: "*"` (a livello canale)
6. Agente predefinito
-All'interno di ogni livello, vince la prima voce `bindings` corrispondente.
+All’interno di ogni livello, vince la prima voce `bindings` corrispondente.
-Per le voci `type: "acp"`, OpenClaw risolve in base all'identità esatta della conversazione (`match.channel` + account + `match.peer.id`) e non usa l'ordine a livelli dei route binding sopra.
+Per le voci `type: "acp"`, OpenClaw risolve in base all’identità esatta della conversazione (`match.channel` + account + `match.peer.id`) e non usa l’ordine dei livelli di route binding sopra.
### Profili di accesso per-agente
@@ -1719,7 +1758,7 @@ Per le voci `type: "acp"`, OpenClaw risolve in base all'identità esatta della c
-Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per i dettagli sulla precedenza.
+Vedi [Sandbox & Tools multi-agent](/it/tools/multi-agent-sandbox-tools) per i dettagli sulla precedenza.
---
@@ -1745,22 +1784,22 @@ Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per
},
resetTriggers: ["/new", "/reset"],
store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",
- parentForkMaxTokens: 100000, // salta il fork del thread padre sopra questo conteggio token (0 disabilita)
+ parentForkMaxTokens: 100000, // skip parent-thread fork above this token count (0 disables)
maintenance: {
mode: "warn", // warn | enforce
pruneAfter: "30d",
maxEntries: 500,
rotateBytes: "10mb",
- resetArchiveRetention: "30d", // durata o false
- maxDiskBytes: "500mb", // budget rigido facoltativo
- highWaterBytes: "400mb", // target di pulizia facoltativo
+ resetArchiveRetention: "30d", // duration or false
+ maxDiskBytes: "500mb", // optional hard budget
+ highWaterBytes: "400mb", // optional cleanup target
},
threadBindings: {
enabled: true,
- idleHours: 24, // auto-unfocus per inattività predefinito in ore (`0` disabilita)
- maxAgeHours: 0, // età massima rigida predefinita in ore (`0` disabilita)
+ idleHours: 24, // default inactivity auto-unfocus in hours (`0` disables)
+ maxAgeHours: 0, // default hard max age in hours (`0` disables)
},
- mainKey: "main", // legacy (il runtime usa sempre "main")
+ mainKey: "main", // legacy (runtime always uses "main")
agentToAgent: { maxPingPongTurns: 5 },
sendPolicy: {
rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }],
@@ -1770,37 +1809,37 @@ Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per
}
```
-
+
-- **`scope`**: strategia base di raggruppamento delle sessioni per i contesti di chat di gruppo.
- - `per-sender` (predefinita): ogni mittente ottiene una sessione isolata in un contesto di canale.
- - `global`: tutti i partecipanti in un contesto di canale condividono una singola sessione (usalo solo quando il contesto condiviso è intenzionale).
+- **`scope`**: strategia base di raggruppamento sessioni per contesti di chat di gruppo.
+ - `per-sender` (predefinito): ogni mittente ottiene una sessione isolata in un contesto canale.
+ - `global`: tutti i partecipanti in un contesto canale condividono una singola sessione (usare solo quando è inteso un contesto condiviso).
- **`dmScope`**: come vengono raggruppati i DM.
- `main`: tutti i DM condividono la sessione principale.
- - `per-peer`: isolamento per id mittente tra canali.
- - `per-channel-peer`: isolamento per canale + mittente (consigliato per inbox multiutente).
- - `per-account-channel-peer`: isolamento per account + canale + mittente (consigliato per multi-account).
-- **`identityLinks`**: mappa id canonici a peer con prefisso provider per la condivisione cross-channel della sessione.
-- **`reset`**: policy di reset primaria. `daily` resetta a `atHour` ora locale; `idle` resetta dopo `idleMinutes`. Quando sono configurati entrambi, vince quello che scade per primo.
-- **`resetByType`**: override per-tipo (`direct`, `group`, `thread`). Legacy `dm` accettato come alias di `direct`.
-- **`parentForkMaxTokens`**: massimo `totalTokens` della sessione padre consentito quando si crea una sessione thread forked (predefinito `100000`).
- - Se `totalTokens` del padre è sopra questo valore, OpenClaw avvia una nuova sessione thread invece di ereditare la cronologia transcript del padre.
- - Imposta `0` per disabilitare questa protezione e consentire sempre il fork dal padre.
-- **`mainKey`**: campo legacy. Il runtime usa ora sempre `"main"` per il bucket principale delle chat dirette.
-- **`agentToAgent.maxPingPongTurns`**: numero massimo di turni reply-back tra agenti durante gli scambi agente-a-agente (intero, intervallo: `0`–`5`). `0` disabilita la catena ping-pong.
-- **`sendPolicy`**: corrispondenza per `channel`, `chatType` (`direct|group|channel`, con alias legacy `dm`), `keyPrefix` o `rawKeyPrefix`. Il primo deny vince.
-- **`maintenance`**: controlli di pulizia + retention dell'archivio sessioni.
+ - `per-peer`: isola per ID mittente tra canali.
+ - `per-channel-peer`: isola per canale + mittente (consigliato per inbox multiutente).
+ - `per-account-channel-peer`: isola per account + canale + mittente (consigliato per multi-account).
+- **`identityLinks`**: mappa ID canonici a peer con prefisso provider per la condivisione della sessione cross-channel.
+- **`reset`**: criterio di reset primario. `daily` resetta all’ora locale `atHour`; `idle` resetta dopo `idleMinutes`. Quando entrambi sono configurati, vince quello che scade prima.
+- **`resetByType`**: override per tipo (`direct`, `group`, `thread`). La legacy `dm` è accettata come alias di `direct`.
+- **`parentForkMaxTokens`**: numero massimo di `totalTokens` della sessione padre consentito quando si crea una sessione forkata da thread (predefinito `100000`).
+ - Se `totalTokens` del padre supera questo valore, OpenClaw avvia una nuova sessione thread invece di ereditare la cronologia transcript del padre.
+ - Imposta `0` per disabilitare questo guardrail e consentire sempre il fork dal padre.
+- **`mainKey`**: campo legacy. Il runtime ora usa sempre `"main"` per il bucket principale delle chat dirette.
+- **`agentToAgent.maxPingPongTurns`**: numero massimo di turni di risposta reciproca tra agenti durante gli scambi agent-to-agent (intero, intervallo: `0`–`5`). `0` disabilita la catena ping-pong.
+- **`sendPolicy`**: corrispondenza per `channel`, `chatType` (`direct|group|channel`, con alias legacy `dm`), `keyPrefix` o `rawKeyPrefix`. Vince il primo deny.
+- **`maintenance`**: controlli di pulizia + retention dell’archivio sessioni.
- `mode`: `warn` emette solo avvisi; `enforce` applica la pulizia.
- - `pruneAfter`: soglia di età per le voci obsolete (predefinito `30d`).
+ - `pruneAfter`: soglia temporale per voci stale (predefinito `30d`).
- `maxEntries`: numero massimo di voci in `sessions.json` (predefinito `500`).
- `rotateBytes`: ruota `sessions.json` quando supera questa dimensione (predefinito `10mb`).
- `resetArchiveRetention`: retention per gli archivi transcript `*.reset.`. Predefinito uguale a `pruneAfter`; imposta `false` per disabilitare.
- - `maxDiskBytes`: budget disco facoltativo per la directory sessioni. In modalità `warn` registra avvisi; in modalità `enforce` rimuove prima gli artefatti/sessioni più vecchi.
- - `highWaterBytes`: target facoltativo dopo la pulizia del budget. Predefinito `80%` di `maxDiskBytes`.
-- **`threadBindings`**: valori predefiniti globali per le funzionalità di sessione vincolate ai thread.
- - `enabled`: interruttore principale predefinito (i provider possono sostituirlo; Discord usa `channels.discord.threadBindings.enabled`)
- - `idleHours`: auto-unfocus per inattività predefinito in ore (`0` lo disabilita; i provider possono sostituirlo)
- - `maxAgeHours`: età massima rigida predefinita in ore (`0` lo disabilita; i provider possono sostituirlo)
+ - `maxDiskBytes`: budget disco opzionale per la directory delle sessioni. In modalità `warn` registra avvisi; in modalità `enforce` rimuove prima gli artefatti/sessioni più vecchi.
+ - `highWaterBytes`: target opzionale dopo la pulizia del budget. Predefinito `80%` di `maxDiskBytes`.
+- **`threadBindings`**: valori globali predefiniti per le funzionalità di sessione thread-bound.
+ - `enabled`: interruttore master predefinito (i provider possono sovrascrivere; Discord usa `channels.discord.threadBindings.enabled`)
+ - `idleHours`: auto-unfocus da inattività predefinito in ore (`0` disabilita; i provider possono sovrascrivere)
+ - `maxAgeHours`: età massima rigida predefinita in ore (`0` disabilita; i provider possono sovrascrivere)
@@ -1811,7 +1850,7 @@ Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per
```json5
{
messages: {
- responsePrefix: "🦞", // oppure "auto"
+ responsePrefix: "🦞", // or "auto"
ackReaction: "👀",
ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all
removeAckAfterReply: false,
@@ -1826,7 +1865,7 @@ Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per
},
},
inbound: {
- debounceMs: 2000, // 0 disabilita
+ debounceMs: 2000, // 0 disables
byChannel: {
whatsapp: 5000,
slack: 1500,
@@ -1836,7 +1875,7 @@ Vedi [Sandbox & strumenti multi-agente](/it/tools/multi-agent-sandbox-tools) per
}
```
-### Prefisso di risposta
+### Prefisso della risposta
Override per canale/account: `channels..responsePrefix`, `channels..accounts..responsePrefix`.
@@ -1848,26 +1887,26 @@ Risoluzione (vince il più specifico): account → canale → globale. `""` disa
| ----------------- | ---------------------- | --------------------------- |
| `{model}` | Nome breve del modello | `claude-opus-4-6` |
| `{modelFull}` | Identificatore completo del modello | `anthropic/claude-opus-4-6` |
-| `{provider}` | Nome del provider | `anthropic` |
-| `{thinkingLevel}` | Livello thinking corrente | `high`, `low`, `off` |
+| `{provider}` | Nome provider | `anthropic` |
+| `{thinkingLevel}` | Livello thinking corrente | `high`, `low`, `off` |
| `{identity.name}` | Nome identità agente | (uguale a `"auto"`) |
-Le variabili non distinguono maiuscole/minuscole. `{think}` è un alias di `{thinkingLevel}`.
+Le variabili non fanno distinzione tra maiuscole e minuscole. `{think}` è un alias di `{thinkingLevel}`.
-### Reazione di ack
+### Reazione ack
-- Il predefinito è `identity.emoji` dell'agente attivo, altrimenti `"👀"`. Imposta `""` per disabilitare.
+- Predefinito sull’`identity.emoji` dell’agente attivo, altrimenti `"👀"`. Imposta `""` per disabilitare.
- Override per canale: `channels..ackReaction`, `channels..accounts..ackReaction`.
- Ordine di risoluzione: account → canale → `messages.ackReaction` → fallback identità.
- Scope: `group-mentions` (predefinito), `group-all`, `direct`, `all`.
-- `removeAckAfterReply`: rimuove l'ack dopo la risposta su Slack, Discord e Telegram.
-- `messages.statusReactions.enabled`: abilita reazioni di stato del ciclo di vita su Slack, Discord e Telegram.
+- `removeAckAfterReply`: rimuove l’ack dopo la risposta su Slack, Discord e Telegram.
+- `messages.statusReactions.enabled`: abilita le reazioni di stato del ciclo di vita su Slack, Discord e Telegram.
Su Slack e Discord, se non impostato mantiene abilitate le reazioni di stato quando le reazioni ack sono attive.
Su Telegram, impostalo esplicitamente su `true` per abilitare le reazioni di stato del ciclo di vita.
### Debounce in ingresso
-Raggruppa messaggi rapidi di solo testo dallo stesso mittente in un singolo turno agente. Media/allegati svuotano immediatamente la coda. I comandi di controllo bypassano il debounce.
+Raggruppa messaggi rapidi solo testo dallo stesso mittente in un singolo turno agente. Media/allegati vengono svuotati immediatamente. I comandi di controllo bypassano il debouncing.
### TTS (text-to-speech)
@@ -1910,12 +1949,12 @@ Raggruppa messaggi rapidi di solo testo dallo stesso mittente in un singolo turn
}
```
-- `auto` controlla l'auto-TTS. `/tts off|always|inbound|tagged` sostituisce per sessione.
-- `summaryModel` sostituisce `agents.defaults.model.primary` per l'auto-riassunto.
+- `auto` controlla la modalità auto-TTS predefinita: `off`, `always`, `inbound` o `tagged`. `/tts on|off` può sovrascrivere le preferenze locali, e `/tts status` mostra lo stato effettivo.
+- `summaryModel` sovrascrive `agents.defaults.model.primary` per il riepilogo automatico.
- `modelOverrides` è abilitato per impostazione predefinita; `modelOverrides.allowProvider` è predefinito `false` (opt-in).
-- Le chiavi API usano come fallback `ELEVENLABS_API_KEY`/`XI_API_KEY` e `OPENAI_API_KEY`.
-- `openai.baseUrl` sostituisce l'endpoint OpenAI TTS. L'ordine di risoluzione è config, poi `OPENAI_TTS_BASE_URL`, poi `https://api.openai.com/v1`.
-- Quando `openai.baseUrl` punta a un endpoint non OpenAI, OpenClaw lo tratta come server TTS compatibile OpenAI e allenta la validazione di modello/voce.
+- Le API key ricadono su `ELEVENLABS_API_KEY`/`XI_API_KEY` e `OPENAI_API_KEY`.
+- `openai.baseUrl` sovrascrive l’endpoint OpenAI TTS. Ordine di risoluzione: config, poi `OPENAI_TTS_BASE_URL`, poi `https://api.openai.com/v1`.
+- Quando `openai.baseUrl` punta a un endpoint non OpenAI, OpenClaw lo tratta come un server TTS compatibile con OpenAI e allenta la convalida di modello/voce.
---
@@ -1946,12 +1985,12 @@ Valori predefiniti per la modalità Talk (macOS/iOS/Android).
```
- `talk.provider` deve corrispondere a una chiave in `talk.providers` quando sono configurati più provider Talk.
-- Le chiavi flat legacy di Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) sono solo per compatibilità e vengono migrate automaticamente in `talk.providers.`.
-- Gli ID voce usano come fallback `ELEVENLABS_VOICE_ID` o `SAG_VOICE_ID`.
+- Le chiavi Talk flat legacy (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) sono compatibilità-only e vengono migrate automaticamente in `talk.providers.`.
+- Gli ID voce ricadono su `ELEVENLABS_VOICE_ID` o `SAG_VOICE_ID`.
- `providers.*.apiKey` accetta stringhe in chiaro o oggetti SecretRef.
-- Il fallback `ELEVENLABS_API_KEY` si applica solo quando non è configurata alcuna chiave API Talk.
+- Il fallback `ELEVENLABS_API_KEY` si applica solo quando non è configurata alcuna API key Talk.
- `providers.*.voiceAliases` consente alle direttive Talk di usare nomi amichevoli.
-- `silenceTimeoutMs` controlla per quanto tempo la modalità Talk attende dopo il silenzio dell'utente prima di inviare il transcript. Se non impostato, mantiene la finestra di pausa predefinita della piattaforma (`700 ms su macOS e Android, 900 ms su iOS`).
+- `silenceTimeoutMs` controlla quanto a lungo la modalità Talk attende dopo il silenzio dell’utente prima di inviare la trascrizione. Se non impostato, mantiene la finestra di pausa predefinita della piattaforma (`700 ms su macOS e Android, 900 ms su iOS`).
---
@@ -1961,35 +2000,35 @@ Valori predefiniti per la modalità Talk (macOS/iOS/Android).
`tools.profile` imposta una allowlist di base prima di `tools.allow`/`tools.deny`:
-L'onboarding locale imposta per default le nuove configurazioni locali su `tools.profile: "coding"` quando non impostato (i profili espliciti esistenti vengono mantenuti).
+L’onboarding locale imposta per le nuove configurazioni locali `tools.profile: "coding"` quando non impostato (i profili espliciti esistenti vengono preservati).
| Profilo | Include |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| `minimal` | solo `session_status` |
+| `minimal` | Solo `session_status` |
| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` |
| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
-| `full` | Nessuna restrizione (uguale a non impostato) |
+| `full` | Nessuna restrizione (uguale a non impostato) |
### Gruppi di strumenti
-| Gruppo | Strumenti |
-| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
+| Gruppo | Strumenti |
+| ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| `group:runtime` | `exec`, `process`, `code_execution` (`bash` è accettato come alias di `exec`) |
-| `group:fs` | `read`, `write`, `edit`, `apply_patch` |
-| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` |
-| `group:memory` | `memory_search`, `memory_get` |
-| `group:web` | `web_search`, `x_search`, `web_fetch` |
-| `group:ui` | `browser`, `canvas` |
-| `group:automation` | `cron`, `gateway` |
-| `group:messaging` | `message` |
-| `group:nodes` | `nodes` |
-| `group:agents` | `agents_list` |
-| `group:media` | `image`, `image_generate`, `video_generate`, `tts` |
-| `group:openclaw` | Tutti gli strumenti built-in (esclude i plugin provider) |
+| `group:fs` | `read`, `write`, `edit`, `apply_patch` |
+| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` |
+| `group:memory` | `memory_search`, `memory_get` |
+| `group:web` | `web_search`, `x_search`, `web_fetch` |
+| `group:ui` | `browser`, `canvas` |
+| `group:automation` | `cron`, `gateway` |
+| `group:messaging` | `message` |
+| `group:nodes` | `nodes` |
+| `group:agents` | `agents_list` |
+| `group:media` | `image`, `image_generate`, `video_generate`, `tts` |
+| `group:openclaw` | Tutti gli strumenti built-in (esclude i plugin provider) |
### `tools.allow` / `tools.deny`
-Policy globale di allow/deny degli strumenti (deny vince). Case-insensitive, supporta wildcard `*`. Applicata anche quando il sandbox Docker è disattivato.
+Criterio globale di allow/deny per gli strumenti (deny vince). Case-insensitive, supporta wildcard `*`. Applicato anche quando la sandbox Docker è disattivata.
```json5
{
@@ -1999,7 +2038,7 @@ Policy globale di allow/deny degli strumenti (deny vince). Case-insensitive, sup
### `tools.byProvider`
-Limita ulteriormente gli strumenti per specifici provider o modelli. Ordine: profilo base → profilo provider → allow/deny.
+Limita ulteriormente gli strumenti per provider o modelli specifici. Ordine: profilo base → profilo provider → allow/deny.
```json5
{
@@ -2015,7 +2054,7 @@ Limita ulteriormente gli strumenti per specifici provider o modelli. Ordine: pro
### `tools.elevated`
-Controlla l'accesso exec elevated fuori dal sandbox:
+Controlla l’accesso exec elevated fuori dalla sandbox:
```json5
{
@@ -2031,9 +2070,9 @@ Controlla l'accesso exec elevated fuori dal sandbox:
}
```
-- L'override per-agente (`agents.list[].tools.elevated`) può solo restringere ulteriormente.
-- `/elevated on|off|ask|full` salva lo stato per sessione; le direttive inline si applicano al singolo messaggio.
-- `exec` elevated bypassa il sandbox e usa il percorso di escape configurato (`gateway` per impostazione predefinita, o `node` quando il target exec è `node`).
+- L’override per-agente (`agents.list[].tools.elevated`) può solo restringere ulteriormente.
+- `/elevated on|off|ask|full` memorizza lo stato per sessione; le direttive inline si applicano a un solo messaggio.
+- `exec` elevated bypassa la sandbox e usa il percorso di escape configurato (`gateway` per impostazione predefinita, oppure `node` quando il target exec è `node`).
### `tools.exec`
@@ -2057,8 +2096,8 @@ Controlla l'accesso exec elevated fuori dal sandbox:
### `tools.loopDetection`
-I controlli di sicurezza dei loop strumenti sono **disabilitati per impostazione predefinita**. Imposta `enabled: true` per attivare il rilevamento.
-Le impostazioni possono essere definite globalmente in `tools.loopDetection` e sostituite per-agente in `agents.list[].tools.loopDetection`.
+I controlli di sicurezza dei loop tool sono **disabilitati per impostazione predefinita**. Imposta `enabled: true` per attivare il rilevamento.
+Le impostazioni possono essere definite globalmente in `tools.loopDetection` e sovrascritte per-agente in `agents.list[].tools.loopDetection`.
```json5
{
@@ -2079,13 +2118,13 @@ Le impostazioni possono essere definite globalmente in `tools.loopDetection` e s
}
```
-- `historySize`: numero massimo di cronologie chiamate strumento conservate per l'analisi dei loop.
-- `warningThreshold`: soglia per avvisi su pattern ripetuti senza progresso.
-- `criticalThreshold`: soglia più alta per bloccare loop critici.
-- `globalCircuitBreakerThreshold`: soglia di arresto rigido per qualsiasi esecuzione senza progresso.
-- `detectors.genericRepeat`: avvisa su chiamate ripetute allo stesso strumento/con gli stessi argomenti.
-- `detectors.knownPollNoProgress`: avvisa/blocca i noti strumenti di polling (`process.poll`, `command_status`, ecc.).
-- `detectors.pingPong`: avvisa/blocca pattern alternati a coppia senza progresso.
+- `historySize`: dimensione massima della cronologia delle chiamate tool mantenuta per l’analisi dei loop.
+- `warningThreshold`: soglia di pattern ripetuti senza progresso per gli avvisi.
+- `criticalThreshold`: soglia più alta di ripetizione per bloccare loop critici.
+- `globalCircuitBreakerThreshold`: soglia di stop rigido per qualunque esecuzione senza progresso.
+- `detectors.genericRepeat`: avvisa su chiamate ripetute stesso-tool/stessi-argomenti.
+- `detectors.knownPollNoProgress`: avvisa/blocca su tool di poll noti (`process.poll`, `command_status`, ecc.).
+- `detectors.pingPong`: avvisa/blocca su pattern alternati a coppie senza progresso.
- Se `warningThreshold >= criticalThreshold` o `criticalThreshold >= globalCircuitBreakerThreshold`, la convalida fallisce.
### `tools.web`
@@ -2096,14 +2135,14 @@ Le impostazioni possono essere definite globalmente in `tools.loopDetection` e s
web: {
search: {
enabled: true,
- apiKey: "brave_api_key", // oppure BRAVE_API_KEY env
+ apiKey: "brave_api_key", // or BRAVE_API_KEY env
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
fetch: {
enabled: true,
- provider: "firecrawl", // facoltativo; ometti per auto-detect
+ provider: "firecrawl", // optional; omit for auto-detect
maxChars: 50000,
maxCharsCap: 50000,
maxResponseBytes: 2000000,
@@ -2128,7 +2167,7 @@ Configura la comprensione dei media in ingresso (immagine/audio/video):
media: {
concurrency: 2,
asyncCompletion: {
- directSend: false, // opt-in: invia direttamente al canale i task async music/video completati
+ directSend: false, // opt-in: send finished async music/video directly to the channel
},
audio: {
enabled: true,
@@ -2156,28 +2195,28 @@ Configura la comprensione dei media in ingresso (immagine/audio/video):
**Voce provider** (`type: "provider"` o omesso):
-- `provider`: id provider API (`openai`, `anthropic`, `google`/`gemini`, `groq`, ecc.)
-- `model`: override del model id
-- `profile` / `preferredProfile`: selezione profilo `auth-profiles.json`
+- `provider`: ID provider API (`openai`, `anthropic`, `google`/`gemini`, `groq`, ecc.)
+- `model`: override model id
+- `profile` / `preferredProfile`: selezione del profilo `auth-profiles.json`
**Voce CLI** (`type: "cli"`):
-- `command`: eseguibile da lanciare
-- `args`: argomenti template (supporta `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}`, ecc.)
+- `command`: eseguibile da avviare
+- `args`: argomenti templated (supporta `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}`, ecc.)
**Campi comuni:**
-- `capabilities`: lista facoltativa (`image`, `audio`, `video`). Predefiniti: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio.
+- `capabilities`: elenco opzionale (`image`, `audio`, `video`). Predefiniti: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio.
- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: override per-voce.
-- I fallimenti passano alla voce successiva.
+- I fallimenti ricadono sulla voce successiva.
-L'autenticazione del provider segue l'ordine standard: `auth-profiles.json` → variabili env → `models.providers.*.apiKey`.
+L’auth provider segue l’ordine standard: `auth-profiles.json` → variabili env → `models.providers.*.apiKey`.
-**Campi completion asincrona:**
+**Campi async completion:**
-- `asyncCompletion.directSend`: quando `true`, i task `music_generate`
- e `video_generate` completati tentano prima la consegna diretta al canale. Predefinito: `false`
- (percorso legacy di wake della sessione richiedente/consegna modello).
+- `asyncCompletion.directSend`: quando `true`, le attività completate async `music_generate`
+ e `video_generate` provano prima la consegna diretta al canale. Predefinito: `false`
+ (percorso legacy di riattivazione sessione richiedente/consegna modello).
@@ -2196,9 +2235,9 @@ L'autenticazione del provider segue l'ordine standard: `auth-profiles.json` →
### `tools.sessions`
-Controlla quali sessioni possono essere puntate dagli strumenti di sessione (`sessions_list`, `sessions_history`, `sessions_send`).
+Controlla quali sessioni possono essere destinatarie degli strumenti di sessione (`sessions_list`, `sessions_history`, `sessions_send`).
-Predefinito: `tree` (sessione corrente + sessioni generate da essa, come i subagenti).
+Predefinito: `tree` (sessione corrente + sessioni generate da essa, come i subagent).
```json5
{
@@ -2214,25 +2253,25 @@ Predefinito: `tree` (sessione corrente + sessioni generate da essa, come i subag
Note:
- `self`: solo la chiave della sessione corrente.
-- `tree`: sessione corrente + sessioni generate dalla sessione corrente (subagenti).
-- `agent`: qualsiasi sessione appartenente all'id agente corrente (può includere altri utenti se esegui sessioni per-mittente sotto lo stesso id agente).
+- `tree`: sessione corrente + sessioni generate dalla sessione corrente (subagent).
+- `agent`: qualsiasi sessione appartenente all’ID agente corrente (può includere altri utenti se esegui sessioni per-mittente sotto lo stesso ID agente).
- `all`: qualsiasi sessione. Il targeting cross-agent richiede comunque `tools.agentToAgent`.
-- Clamp sandbox: quando la sessione corrente è sandboxata e `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, la visibilità viene forzata a `tree` anche se `tools.sessions.visibility="all"`.
+- Clamp sandbox: quando la sessione corrente è sandboxed e `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, la visibilità viene forzata a `tree` anche se `tools.sessions.visibility="all"`.
### `tools.sessions_spawn`
-Controlla il supporto per allegati inline di `sessions_spawn`.
+Controlla il supporto agli allegati inline per `sessions_spawn`.
```json5
{
tools: {
sessions_spawn: {
attachments: {
- enabled: false, // opt-in: imposta true per consentire allegati file inline
- maxTotalBytes: 5242880, // 5 MB totali su tutti i file
+ enabled: false, // opt-in: set true to allow inline file attachments
+ maxTotalBytes: 5242880, // 5 MB total across all files
maxFiles: 50,
maxFileBytes: 1048576, // 1 MB per file
- retainOnSessionKeep: false, // conserva gli allegati quando cleanup="keep"
+ retainOnSessionKeep: false, // keep attachments when cleanup="keep"
},
},
},
@@ -2244,19 +2283,19 @@ Note:
- Gli allegati sono supportati solo per `runtime: "subagent"`. Il runtime ACP li rifiuta.
- I file vengono materializzati nel workspace figlio in `.openclaw/attachments//` con un `.manifest.json`.
- Il contenuto degli allegati viene automaticamente redatto dalla persistenza del transcript.
-- Gli input base64 vengono convalidati con controlli rigorosi su alfabeto/padding e una protezione sulle dimensioni pre-decodifica.
-- I permessi dei file sono `0700` per le directory e `0600` per i file.
-- La pulizia segue la policy `cleanup`: `delete` rimuove sempre gli allegati; `keep` li conserva solo quando `retainOnSessionKeep: true`.
+- Gli input Base64 vengono convalidati con controlli rigorosi di alfabeto/padding e un guard pre-decode sulla dimensione.
+- I permessi file sono `0700` per le directory e `0600` per i file.
+- La pulizia segue il criterio `cleanup`: `delete` rimuove sempre gli allegati; `keep` li conserva solo quando `retainOnSessionKeep: true`.
### `tools.experimental`
-Flag sperimentali per gli strumenti built-in. Predefiniti off a meno che non si applichi una regola di auto-enable specifica del runtime.
+Flag degli strumenti built-in sperimentali. Disattivati per impostazione predefinita salvo quando si applica una regola di auto-enable specifica del runtime.
```json5
{
tools: {
experimental: {
- planTool: true, // abilita update_plan sperimentale
+ planTool: true, // enable experimental update_plan
},
},
}
@@ -2264,9 +2303,9 @@ Flag sperimentali per gli strumenti built-in. Predefiniti off a meno che non si
Note:
-- `planTool`: abilita lo strumento strutturato `update_plan` per il tracciamento del lavoro multi-step non banale.
-- Predefinito: `false` per i provider non OpenAI. Le esecuzioni OpenAI e OpenAI Codex lo abilitano automaticamente.
-- Quando abilitato, il system prompt aggiunge anche linee guida d'uso in modo che il modello lo usi solo per lavoro sostanziale e mantenga al massimo un passo `in_progress`.
+- `planTool`: abilita lo strumento strutturato sperimentale `update_plan` per il tracciamento di lavori multi-step non banali.
+- Predefinito: `false` per i provider non OpenAI. Le esecuzioni OpenAI e OpenAI Codex lo abilitano automaticamente quando non è impostato; imposta `false` per disabilitare quell’auto-enable.
+- Quando abilitato, il system prompt aggiunge anche linee guida d’uso così che il modello lo usi solo per lavoro sostanziale e mantenga al massimo un passaggio `in_progress`.
### `agents.defaults.subagents`
@@ -2286,10 +2325,10 @@ Note:
}
```
-- `model`: modello predefinito per i sub-agenti generati. Se omesso, i sub-agenti ereditano il modello del chiamante.
-- `allowAgents`: allowlist predefinita degli id agente target per `sessions_spawn` quando l'agente richiedente non imposta il proprio `subagents.allowAgents` (`["*"]` = qualsiasi; predefinito: solo lo stesso agente).
-- `runTimeoutSeconds`: timeout predefinito (secondi) per `sessions_spawn` quando la chiamata strumento omette `runTimeoutSeconds`. `0` significa nessun timeout.
-- Policy strumenti per-subagente: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
+- `model`: modello predefinito per i sotto-agenti generati. Se omesso, i sotto-agenti ereditano il modello del chiamante.
+- `allowAgents`: allowlist predefinita di ID agente target per `sessions_spawn` quando l’agente richiedente non imposta il proprio `subagents.allowAgents` (`["*"]` = qualsiasi; predefinito: solo stesso agente).
+- `runTimeoutSeconds`: timeout predefinito (secondi) per `sessions_spawn` quando la chiamata tool omette `runTimeoutSeconds`. `0` significa nessun timeout.
+- Criterio strumenti per-subagent: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
---
@@ -2300,7 +2339,7 @@ OpenClaw usa il catalogo modelli built-in. Aggiungi provider personalizzati tram
```json5
{
models: {
- mode: "merge", // merge (predefinito) | replace
+ mode: "merge", // merge (default) | replace
providers: {
"custom-proxy": {
baseUrl: "http://localhost:4000/v1",
@@ -2324,47 +2363,47 @@ OpenClaw usa il catalogo modelli built-in. Aggiungi provider personalizzati tram
}
```
-- Usa `authHeader: true` + `headers` per esigenze di autenticazione personalizzate.
-- Sostituisci la radice config dell'agente con `OPENCLAW_AGENT_DIR` (o `PI_CODING_AGENT_DIR`, alias legacy della variabile ambiente).
-- Precedenza di merge per provider ID corrispondenti:
- - I valori `baseUrl` non vuoti di `models.json` dell'agente hanno priorità.
- - I valori `apiKey` non vuoti dell'agente hanno priorità solo quando quel provider non è gestito tramite SecretRef nel contesto corrente di config/auth-profile.
- - I valori `apiKey` dei provider gestiti da SecretRef vengono aggiornati dai marker di origine (`ENV_VAR_NAME` per ref env, `secretref-managed` per ref file/exec) invece di persistere i segreti risolti.
- - I valori header dei provider gestiti da SecretRef vengono aggiornati dai marker di origine (`secretref-env:ENV_VAR_NAME` per ref env, `secretref-managed` per ref file/exec).
- - `apiKey`/`baseUrl` mancanti o vuoti dell'agente usano come fallback `models.providers` nella configurazione.
- - I valori `contextWindow`/`maxTokens` dei modelli corrispondenti usano il valore più alto tra config esplicita e valori impliciti del catalogo.
- - `contextTokens` del modello corrispondente conserva un limite runtime esplicito quando presente; usalo per limitare il contesto effettivo senza modificare i metadati nativi del modello.
- - Usa `models.mode: "replace"` quando vuoi che la configurazione riscriva completamente `models.json`.
- - La persistenza dei marker è autorevole rispetto all'origine: i marker vengono scritti dallo snapshot config attivo dell'origine (pre-risoluzione), non dai valori segreti runtime risolti.
+- Usa `authHeader: true` + `headers` per esigenze auth personalizzate.
+- Sovrascrivi la root config dell’agente con `OPENCLAW_AGENT_DIR` (o `PI_CODING_AGENT_DIR`, alias legacy di variabile env).
+- Precedenza di merge per ID provider corrispondenti:
+ - I valori `baseUrl` non vuoti in `models.json` dell’agente hanno la precedenza.
+ - I valori `apiKey` non vuoti dell’agente hanno la precedenza solo quando quel provider non è gestito da SecretRef nel contesto corrente config/auth-profile.
+ - I valori `apiKey` del provider gestiti da SecretRef vengono aggiornati dai marker di origine (`ENV_VAR_NAME` per ref env, `secretref-managed` per ref file/exec) invece di persistere i secret risolti.
+ - I valori header del provider gestiti da SecretRef vengono aggiornati dai marker di origine (`secretref-env:ENV_VAR_NAME` per ref env, `secretref-managed` per ref file/exec).
+ - `apiKey`/`baseUrl` dell’agente vuoti o mancanti ricadono su `models.providers` in config.
+ - `contextWindow`/`maxTokens` del modello corrispondente usano il valore più alto tra config esplicita e valori catalogo impliciti.
+ - `contextTokens` del modello corrispondente preserva un cap runtime esplicito quando presente; usalo per limitare il contesto effettivo senza cambiare i metadati nativi del modello.
+ - Usa `models.mode: "replace"` quando vuoi che la config riscriva completamente `models.json`.
+ - La persistenza dei marker è autorevole rispetto alla sorgente: i marker vengono scritti dallo snapshot config attivo di origine (pre-risoluzione), non dai valori secret risolti a runtime.
### Dettagli dei campi provider
- `models.mode`: comportamento del catalogo provider (`merge` o `replace`).
-- `models.providers`: mappa provider personalizzati indicizzata per provider id.
+- `models.providers`: mappa di provider personalizzati indicizzati da provider id.
- `models.providers.*.api`: adapter di richiesta (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai`, ecc).
- `models.providers.*.apiKey`: credenziale provider (preferisci SecretRef/sostituzione env).
-- `models.providers.*.auth`: strategia di autenticazione (`api-key`, `token`, `oauth`, `aws-sdk`).
+- `models.providers.*.auth`: strategia auth (`api-key`, `token`, `oauth`, `aws-sdk`).
- `models.providers.*.injectNumCtxForOpenAICompat`: per Ollama + `openai-completions`, inietta `options.num_ctx` nelle richieste (predefinito: `true`).
-- `models.providers.*.authHeader`: forza il trasporto della credenziale nell'header `Authorization` quando richiesto.
-- `models.providers.*.baseUrl`: URL base dell'API upstream.
-- `models.providers.*.headers`: header statici extra per instradamento proxy/tenant.
+- `models.providers.*.authHeader`: forza il trasporto della credenziale nell’header `Authorization` quando richiesto.
+- `models.providers.*.baseUrl`: URL base dell’API upstream.
+- `models.providers.*.headers`: header statici aggiuntivi per routing proxy/tenant.
- `models.providers.*.request`: override di trasporto per le richieste HTTP del model-provider.
- - `request.headers`: header extra (uniti ai predefiniti provider). I valori accettano SecretRef.
- - `request.auth`: override della strategia di autenticazione. Modalità: `"provider-default"` (usa l'autenticazione built-in del provider), `"authorization-bearer"` (con `token`), `"header"` (con `headerName`, `value`, facoltativo `prefix`).
- - `request.proxy`: override del proxy HTTP. Modalità: `"env-proxy"` (usa le variabili env `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (con `url`). Entrambe le modalità accettano un sotto-oggetto `tls` facoltativo.
+ - `request.headers`: header aggiuntivi (uniti ai predefiniti del provider). I valori accettano SecretRef.
+ - `request.auth`: override della strategia auth. Modalità: `"provider-default"` (usa l’auth built-in del provider), `"authorization-bearer"` (con `token`), `"header"` (con `headerName`, `value`, `prefix` opzionale).
+ - `request.proxy`: override proxy HTTP. Modalità: `"env-proxy"` (usa variabili env `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (con `url`). Entrambe le modalità accettano un sotto-oggetto `tls` opzionale.
- `request.tls`: override TLS per connessioni dirette. Campi: `ca`, `cert`, `key`, `passphrase` (tutti accettano SecretRef), `serverName`, `insecureSkipVerify`.
- `models.providers.*.models`: voci esplicite del catalogo modelli provider.
- `models.providers.*.models.*.contextWindow`: metadati nativi della finestra di contesto del modello.
-- `models.providers.*.models.*.contextTokens`: limite runtime facoltativo del contesto. Usalo quando vuoi un budget di contesto effettivo più piccolo della `contextWindow` nativa del modello.
-- `models.providers.*.models.*.compat.supportsDeveloperRole`: suggerimento facoltativo di compatibilità. Per `api: "openai-completions"` con `baseUrl` non vuoto e non nativo (host non `api.openai.com`), OpenClaw forza questo valore a `false` a runtime. `baseUrl` vuoto/omesso mantiene il comportamento predefinito OpenAI.
-- `models.providers.*.models.*.compat.requiresStringContent`: suggerimento facoltativo di compatibilità per endpoint chat compatibili OpenAI che accettano solo stringhe. Quando `true`, OpenClaw appiattisce in stringhe semplici i puri array di testo `messages[].content` prima di inviare la richiesta.
-- `plugins.entries.amazon-bedrock.config.discovery`: radice delle impostazioni di auto-discovery Bedrock.
-- `plugins.entries.amazon-bedrock.config.discovery.enabled`: attiva/disattiva l'auto-discovery implicita.
+- `models.providers.*.models.*.contextTokens`: cap runtime opzionale del contesto. Usalo quando vuoi un budget di contesto effettivo più piccolo della `contextWindow` nativa del modello.
+- `models.providers.*.models.*.compat.supportsDeveloperRole`: hint opzionale di compatibilità. Per `api: "openai-completions"` con `baseUrl` non vuoto e non nativo (host non `api.openai.com`), OpenClaw lo forza a `false` a runtime. `baseUrl` vuoto/omesso mantiene il comportamento predefinito OpenAI.
+- `models.providers.*.models.*.compat.requiresStringContent`: hint opzionale di compatibilità per endpoint chat compatibili OpenAI solo-stringa. Quando `true`, OpenClaw appiattisce gli array puramente testuali `messages[].content` in stringhe semplici prima di inviare la richiesta.
+- `plugins.entries.amazon-bedrock.config.discovery`: root delle impostazioni di auto-discovery Bedrock.
+- `plugins.entries.amazon-bedrock.config.discovery.enabled`: attiva/disattiva l’implicit discovery.
- `plugins.entries.amazon-bedrock.config.discovery.region`: regione AWS per la discovery.
-- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: filtro facoltativo per provider-id per discovery mirata.
-- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: intervallo di polling per il refresh della discovery.
-- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: finestra di contesto di fallback per i modelli scoperti.
-- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: massimo token output di fallback per i modelli scoperti.
+- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: filtro opzionale per provider-id per discovery mirata.
+- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: intervallo di polling per il refresh discovery.
+- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: finestra di contesto fallback per i modelli rilevati.
+- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: token massimi di output fallback per i modelli rilevati.
### Esempi di provider
@@ -2402,7 +2441,7 @@ OpenClaw usa il catalogo modelli built-in. Aggiungi provider personalizzati tram
}
```
-Usa `cerebras/zai-glm-4.7` per Cerebras; `zai/glm-4.7` per Z.AI diretto.
+Usa `cerebras/zai-glm-4.7` per Cerebras; `zai/glm-4.7` per Z.AI direct.
@@ -2419,7 +2458,7 @@ Usa `cerebras/zai-glm-4.7` per Cerebras; `zai/glm-4.7` per Z.AI diretto.
}
```
-Imposta `OPENCODE_API_KEY` (o `OPENCODE_ZEN_API_KEY`). Usa riferimenti `opencode/...` per il catalogo Zen oppure `opencode-go/...` per il catalogo Go. Scorciatoia: `openclaw onboard --auth-choice opencode-zen` oppure `openclaw onboard --auth-choice opencode-go`.
+Imposta `OPENCODE_API_KEY` (o `OPENCODE_ZEN_API_KEY`). Usa riferimenti `opencode/...` per il catalogo Zen o riferimenti `opencode-go/...` per il catalogo Go. Scorciatoia: `openclaw onboard --auth-choice opencode-zen` o `openclaw onboard --auth-choice opencode-go`.
@@ -2440,7 +2479,7 @@ Imposta `ZAI_API_KEY`. `z.ai/*` e `z-ai/*` sono alias accettati. Scorciatoia: `o
- Endpoint generale: `https://api.z.ai/api/paas/v4`
- Endpoint coding (predefinito): `https://api.z.ai/api/coding/paas/v4`
-- Per l'endpoint generale, definisci un provider personalizzato con override del base URL.
+- Per l’endpoint generale, definisci un provider personalizzato con l’override del base URL.
@@ -2479,11 +2518,11 @@ Imposta `ZAI_API_KEY`. `z.ai/*` e `z-ai/*` sono alias accettati. Scorciatoia: `o
}
```
-Per l'endpoint Cina: `baseUrl: "https://api.moonshot.cn/v1"` oppure `openclaw onboard --auth-choice moonshot-api-key-cn`.
+Per l’endpoint Cina: `baseUrl: "https://api.moonshot.cn/v1"` oppure `openclaw onboard --auth-choice moonshot-api-key-cn`.
-Gli endpoint Moonshot nativi pubblicano compatibilità d'uso dello streaming sul trasporto condiviso
-`openai-completions`, e OpenClaw ora basa questa scelta sulle
-capacità dell'endpoint anziché solo sul provider id built-in.
+Gli endpoint nativi Moonshot dichiarano compatibilità d’uso streaming sul transport condiviso
+`openai-completions`, e OpenClaw ora la determina in base alle
+capability dell’endpoint invece che al solo provider id built-in.
@@ -2501,11 +2540,11 @@ capacità dell'endpoint anziché solo sul provider id built-in.
}
```
-Compatibile Anthropic, provider built-in. Scorciatoia: `openclaw onboard --auth-choice kimi-code-api-key`.
+Compatibile con Anthropic, provider built-in. Scorciatoia: `openclaw onboard --auth-choice kimi-code-api-key`.
-
+
```json5
{
@@ -2583,17 +2622,17 @@ Il base URL deve omettere `/v1` (il client Anthropic lo aggiunge). Scorciatoia:
Imposta `MINIMAX_API_KEY`. Scorciatoie:
`openclaw onboard --auth-choice minimax-global-api` oppure
`openclaw onboard --auth-choice minimax-cn-api`.
-Il catalogo modelli ora usa M2.7 come predefinito unico.
-Nel percorso di streaming compatibile Anthropic, OpenClaw disabilita il thinking MiniMax
-per impostazione predefinita a meno che tu non imposti esplicitamente `thinking`. `/fast on` oppure
-`params.fastMode: true` riscrivono `MiniMax-M2.7` in
+Il catalogo modelli ora usa per impostazione predefinita solo M2.7.
+Sul percorso streaming compatibile con Anthropic, OpenClaw disabilita il thinking MiniMax
+per impostazione predefinita a meno che tu non imposti esplicitamente `thinking`. `/fast on` o
+`params.fastMode: true` riscrive `MiniMax-M2.7` in
`MiniMax-M2.7-highspeed`.
-Vedi [Modelli locali](/it/gateway/local-models). In breve: esegui un grande modello locale tramite API LM Studio Responses su hardware serio; mantieni uniti i modelli hosted come fallback.
+Vedi [Modelli locali](/it/gateway/local-models). In breve: esegui un grande modello locale tramite l’API Responses di LM Studio su hardware serio; mantieni i modelli hosted uniti per il fallback.
@@ -2614,7 +2653,7 @@ Vedi [Modelli locali](/it/gateway/local-models). In breve: esegui un grande mode
},
entries: {
"image-lab": {
- apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // oppure stringa in chiaro
+ apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },
},
peekaboo: { enabled: true },
@@ -2624,14 +2663,14 @@ Vedi [Modelli locali](/it/gateway/local-models). In breve: esegui un grande mode
}
```
-- `allowBundled`: allowlist facoltativa solo per le Skills bundled (le Skills managed/workspace non sono influenzate).
-- `load.extraDirs`: radici Skills condivise extra (precedenza più bassa).
+- `allowBundled`: allowlist opzionale solo per le bundled Skills (le Skills gestite/workspace non sono interessate).
+- `load.extraDirs`: root condivise aggiuntive per Skills (precedenza più bassa).
- `install.preferBrew`: quando true, preferisce gli installer Homebrew quando `brew` è
- disponibile prima di ricorrere ad altri tipi di installer.
-- `install.nodeManager`: preferenza installer node per gli spec `metadata.openclaw.install`
+ disponibile prima di ricadere su altri tipi di installer.
+- `install.nodeManager`: preferenza del node installer per gli spec `metadata.openclaw.install`
(`npm` | `pnpm` | `yarn` | `bun`).
-- `entries..enabled: false` disabilita una Skills anche se bundled/installata.
-- `entries..apiKey`: campo di comodità per la chiave API della Skills (quando supportato dalla Skills).
+- `entries..enabled: false` disabilita una Skill anche se bundled/installata.
+- `entries..apiKey`: campo di comodo per API key a livello Skill (quando supportato dalla Skill).
---
@@ -2660,34 +2699,40 @@ Vedi [Modelli locali](/it/gateway/local-models). In breve: esegui un grande mode
```
- Caricati da `~/.openclaw/extensions`, `/.openclaw/extensions`, più `plugins.load.paths`.
-- La discovery accetta plugin OpenClaw nativi più bundle Codex compatibili e bundle Claude, inclusi i bundle Claude senza manifest nel layout predefinito.
+- Il rilevamento accetta plugin OpenClaw nativi più bundle compatibili Codex e Claude, inclusi bundle Claude manifestless con layout predefinito.
- **Le modifiche di configurazione richiedono un riavvio del gateway.**
-- `allow`: allowlist facoltativa (si caricano solo i plugin elencati). `deny` ha priorità.
-- `plugins.entries..apiKey`: campo di comodità per la chiave API a livello plugin (quando supportato dal plugin).
-- `plugins.entries..env`: mappa variabili env con scope plugin.
-- `plugins.entries..hooks.allowPromptInjection`: quando `false`, il core blocca `before_prompt_build` e ignora i campi legacy che mutano il prompt da `before_agent_start`, preservando `modelOverride` e `providerOverride` legacy. Si applica agli hook dei plugin nativi e alle directory hook fornite dai bundle supportati.
-- `plugins.entries..subagent.allowModelOverride`: considera esplicitamente attendibile questo plugin nel richiedere override per-esecuzione di `provider` e `model` per esecuzioni subagente in background.
-- `plugins.entries..subagent.allowedModels`: allowlist facoltativa di target canonici `provider/model` per gli override subagente attendibili. Usa `"*"` solo quando vuoi intenzionalmente consentire qualsiasi modello.
+- `allow`: allowlist opzionale (si caricano solo i plugin elencati). `deny` vince.
+- `plugins.entries..apiKey`: campo di comodo per API key a livello plugin (quando supportato dal plugin).
+- `plugins.entries..env`: mappa di variabili env con ambito plugin.
+- `plugins.entries..hooks.allowPromptInjection`: quando `false`, il core blocca `before_prompt_build` e ignora i campi legacy che mutano il prompt da `before_agent_start`, preservando comunque i legacy `modelOverride` e `providerOverride`. Si applica agli hook plugin nativi e alle directory hook fornite da bundle supportate.
+- `plugins.entries..subagent.allowModelOverride`: considera esplicitamente affidabile questo plugin per richiedere override `provider` e `model` per-esecuzione per le esecuzioni subagent in background.
+- `plugins.entries..subagent.allowedModels`: allowlist opzionale di target canonici `provider/model` per gli override subagent affidabili. Usa `"*"` solo quando vuoi intenzionalmente consentire qualsiasi modello.
- `plugins.entries..config`: oggetto di configurazione definito dal plugin (convalidato dallo schema del plugin OpenClaw nativo quando disponibile).
-- `plugins.entries.firecrawl.config.webFetch`: impostazioni provider web-fetch Firecrawl.
- - `apiKey`: chiave API Firecrawl (accetta SecretRef). Usa come fallback `plugins.entries.firecrawl.config.webSearch.apiKey`, il legacy `tools.web.fetch.firecrawl.apiKey` o la variabile env `FIRECRAWL_API_KEY`.
+- `plugins.entries.firecrawl.config.webFetch`: impostazioni provider Firecrawl web-fetch.
+ - `apiKey`: API key Firecrawl (accetta SecretRef). Ricade su `plugins.entries.firecrawl.config.webSearch.apiKey`, legacy `tools.web.fetch.firecrawl.apiKey` o variabile env `FIRECRAWL_API_KEY`.
- `baseUrl`: URL base API Firecrawl (predefinito: `https://api.firecrawl.dev`).
- - `onlyMainContent`: estrae solo il contenuto principale delle pagine (predefinito: `true`).
+ - `onlyMainContent`: estrae solo il contenuto principale dalle pagine (predefinito: `true`).
- `maxAgeMs`: età massima della cache in millisecondi (predefinito: `172800000` / 2 giorni).
- `timeoutSeconds`: timeout della richiesta scrape in secondi (predefinito: `60`).
- `plugins.entries.xai.config.xSearch`: impostazioni xAI X Search (ricerca web Grok).
- `enabled`: abilita il provider X Search.
- - `model`: modello Grok da usare per la ricerca (ad es. `"grok-4-1-fast"`).
-- `plugins.entries.memory-core.config.dreaming`: impostazioni dreaming della memoria (sperimentale). Vedi [Dreaming](/it/concepts/dreaming) per fasi e soglie.
- - `enabled`: interruttore principale dreaming (predefinito `false`).
+ - `model`: modello Grok da usare per la ricerca (ad esempio `"grok-4-1-fast"`).
+- `plugins.entries.memory-core.config.dreaming`: impostazioni del memory dreaming (sperimentale). Vedi [Dreaming](/it/concepts/dreaming) per fasi e soglie.
+ - `enabled`: interruttore master dreaming (predefinito `false`).
- `frequency`: cadenza cron per ogni sweep completo di dreaming (predefinito `"0 3 * * *"`).
- - La policy di fase e le soglie sono dettagli implementativi (non chiavi di configurazione rivolte all'utente).
-- I plugin bundle Claude abilitati possono anche contribuire con predefiniti Pi incorporati da `settings.json`; OpenClaw li applica come impostazioni agente sanitizzate, non come patch grezze della configurazione OpenClaw.
-- `plugins.slots.memory`: scegli l'id del plugin memoria attivo, oppure `"none"` per disabilitare i plugin memoria.
-- `plugins.slots.contextEngine`: scegli l'id del plugin motore di contesto attivo; il predefinito è `"legacy"` a meno che tu non installi e selezioni un altro motore.
+ - I criteri di fase e le soglie sono dettagli di implementazione (non chiavi di configurazione user-facing).
+- La configurazione completa della memoria si trova in [Riferimento della configurazione della memoria](/it/reference/memory-config):
+ - `agents.defaults.memorySearch.*`
+ - `memory.backend`
+ - `memory.citations`
+ - `memory.qmd.*`
+ - `plugins.entries.memory-core.config.dreaming`
+- I plugin bundle Claude abilitati possono anche contribuire con predefiniti Pi embedded da `settings.json`; OpenClaw li applica come impostazioni agente sanificate, non come patch raw della configurazione OpenClaw.
+- `plugins.slots.memory`: scegli l’ID plugin memoria attivo, oppure `"none"` per disabilitare i plugin memoria.
+- `plugins.slots.contextEngine`: scegli l’ID plugin context engine attivo; il predefinito è `"legacy"` a meno che tu non installi e selezioni un altro motore.
- `plugins.installs`: metadati di installazione gestiti dalla CLI usati da `openclaw plugins update`.
- Include `source`, `spec`, `sourcePath`, `installPath`, `version`, `resolvedName`, `resolvedVersion`, `resolvedSpec`, `integrity`, `shasum`, `resolvedAt`, `installedAt`.
- - Tratta `plugins.installs.*` come stato gestito; preferisci i comandi CLI alle modifiche manuali.
+ - Tratta `plugins.installs.*` come stato gestito; preferisci i comandi CLI rispetto alle modifiche manuali.
Vedi [Plugin](/it/tools/plugin).
@@ -2702,8 +2747,8 @@ Vedi [Plugin](/it/tools/plugin).
evaluateEnabled: true,
defaultProfile: "user",
ssrfPolicy: {
- dangerouslyAllowPrivateNetwork: true, // modalità predefinita trusted-network
- // allowPrivateNetwork: true, // alias legacy
+ dangerouslyAllowPrivateNetwork: true, // default trusted-network mode
+ // allowPrivateNetwork: true, // legacy alias
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
@@ -2731,111 +2776,20 @@ Vedi [Plugin](/it/tools/plugin).
- `evaluateEnabled: false` disabilita `act:evaluate` e `wait --fn`.
- `ssrfPolicy.dangerouslyAllowPrivateNetwork` è predefinito `true` quando non impostato (modello trusted-network).
-- Imposta `ssrfPolicy.dangerouslyAllowPrivateNetwork: false` per una navigazione browser rigorosa solo su rete pubblica.
-- In modalità strict, gli endpoint dei profili CDP remoti (`profiles.*.cdpUrl`) sono soggetti allo stesso blocco della rete privata durante i controlli di raggiungibilità/discovery.
+- Imposta `ssrfPolicy.dangerouslyAllowPrivateNetwork: false` per una navigazione browser rigorosamente solo pubblica.
+- In modalità strict, gli endpoint del profilo CDP remoto (`profiles.*.cdpUrl`) sono soggetti allo stesso blocco delle reti private durante i controlli di raggiungibilità/discovery.
- `ssrfPolicy.allowPrivateNetwork` resta supportato come alias legacy.
- In modalità strict, usa `ssrfPolicy.hostnameAllowlist` e `ssrfPolicy.allowedHostnames` per eccezioni esplicite.
-- I profili remoti sono solo attach-only (start/stop/reset disabilitati).
+- I profili remoti sono solo attach (start/stop/reset disabilitati).
- `profiles.*.cdpUrl` accetta `http://`, `https://`, `ws://` e `wss://`.
- Usa HTTP(S) quando vuoi che OpenClaw rilevi `/json/version`; usa WS(S)
- quando il provider ti fornisce un URL WebSocket DevTools diretto.
-- I profili `existing-session` sono solo host e usano Chrome MCP invece di CDP.
-- I profili `existing-session` possono impostare `userDataDir` per puntare a uno specifico
- profilo browser basato su Chromium come Brave o Edge.
-- I profili `existing-session` mantengono gli attuali limiti di percorso Chrome MCP:
- azioni guidate da snapshot/ref invece del targeting con selettori CSS, hook di upload
- singolo file, nessun override del timeout dialog, nessun `wait --load networkidle`, e nessun
- `responsebody`, esportazione PDF, intercettazione download o azioni batch.
-- I profili `openclaw` locali gestiti assegnano automaticamente `cdpPort` e `cdpUrl`; imposta
- `cdpUrl` esplicitamente solo per CDP remoto.
-- Ordine di auto-detect: browser predefinito se basato su Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
-- Servizio di controllo: solo loopback (porta derivata da `gateway.port`, predefinito `18791`).
-- `extraArgs` aggiunge flag extra all'avvio Chromium locale (ad esempio
- `--disable-gpu`, dimensione finestra o flag di debug).
-
----
-
-## UI
-
-```json5
-{
- ui: {
- seamColor: "#FF4500",
- assistant: {
- name: "OpenClaw",
- avatar: "CB", // emoji, testo breve, URL immagine o URI data
- },
- },
-}
-```
-
-- `seamColor`: colore di accento per la UI chrome dell'app nativa (tinta del fumetto Talk Mode, ecc.).
-- `assistant`: override dell'identità della Control UI. Usa come fallback l'identità dell'agente attivo.
-
----
-
-## Gateway
-
-```json5
-{
- gateway: {
- mode: "local", // local | remote
- port: 18789,
- bind: "loopback",
- auth: {
- mode: "token", // none | token | password | trusted-proxy
- token: "your-token",
- // password: "your-password", // oppure OPENCLAW_GATEWAY_PASSWORD
- // trustedProxy: { userHeader: "x-forwarded-user" }, // per mode=trusted-proxy; vedi /gateway/trusted-proxy-auth
- allowTailscale: true,
- rateLimit: {
- maxAttempts: 10,
- windowMs: 60000,
- lockoutMs: 300000,
- exemptLoopback: true,
- },
- },
- tailscale: {
- mode: "off", // off | serve | funnel
- resetOnExit: false,
- },
- controlUi: {
- enabled: true,
- basePath: "/openclaw",
- // root: "dist/control-ui",
- // allowedOrigins: ["https://control.example.com"], // richiesto per Control UI non loopback
- // dangerouslyAllowHostHeaderOriginFallback: false, // modalità pericolosa di fallback origine basata su header Host
- // allowInsecureAuth: false,
- // dangerouslyDisableDeviceAuth: false,
- },
- remote: {
- url: "ws://gateway.tailnet:18789",
- transport: "ssh", // ssh | direct
- token: "your-token",
- // password: "your-password",
- },
- trustedProxies: ["10.0.0.1"],
- // Facoltativo. Predefinito false.
- allowRealIpFallback: false,
- tools: {
- // Deny HTTP aggiuntivi per /tools/invoke
- deny: ["browser"],
- // Rimuovi strumenti dalla deny list HTTP predefinita
- allow: ["gateway"],
- },
- push: {
- apns: {
- relay: {
- baseUrl: "https://relay.example.com",
- timeoutMs: 10000,
- },
- },
- },
- },
-}
-```
-
-
-
-- `mode`: `local` (esegue il gateway) oppure `remote` (si connette a un gateway remoto). Il gateway rifiuta di avviarsi se non è `local`.
--
\ No newline at end of file
+ Usa HTTP(S) quando vuoi che OpenClaw scopra `/json/version`; usa WS(S)
+ quando il provider fornisce un URL WebSocket DevTools diretto.
+- I profili `existing-session` sono host-only e usano Chrome MCP invece di CDP.
+- I profili `existing-session` possono impostare `userDataDir` per puntare a un
+ profilo specifico di browser basato su Chromium come Brave o Edge.
+- I profili `existing-session` mantengono gli attuali limiti di instradamento Chrome MCP:
+ azioni basate su snapshot/ref invece del targeting CSS-selector, hook di upload a un solo file,
+ nessun override di timeout dei dialoghi, nessun `wait --load networkidle`, e nessun
+ `responsebody`, export PDF, intercettazione download o azioni batch.
+- I profili locali gestiti `openclaw` auto-assegnano `cdpPort` e `cdpUrl`; imposta
+ `cdpUrl` esplicit
\ No newline at end of file
diff --git a/docs/it/gateway/configuration.md b/docs/it/gateway/configuration.md
index 129273d13..c4cb76925 100644
--- a/docs/it/gateway/configuration.md
+++ b/docs/it/gateway/configuration.md
@@ -1,15 +1,15 @@
---
read_when:
- - Stai configurando OpenClaw per la prima volta
- - Cerchi pattern di configurazione comuni
- - Vuoi navigare verso sezioni specifiche della configurazione
+ - Configurare OpenClaw per la prima volta
+ - Cercare modelli di configurazione comuni
+ - Passare a sezioni specifiche della configurazione
summary: 'Panoramica della configurazione: attività comuni, configurazione rapida e link al riferimento completo'
title: Configurazione
x-i18n:
- generated_at: "2026-04-05T13:52:44Z"
+ generated_at: "2026-04-08T06:01:49Z"
model: gpt-5.4
provider: openai
- source_hash: a39a7de09c5f9540785ec67f37d435a7a86201f0f5f640dae663054f35976712
+ source_hash: 199a1e515bd4003319e71593a2659bb883299a76ff67e273d92583df03c96604
source_path: gateway/configuration.md
workflow: 15
---
@@ -20,14 +20,14 @@ OpenClaw legge una configurazione facoltativa in
```bash
- openclaw onboard # flusso completo di onboarding
+ openclaw onboard # flusso di onboarding completo
openclaw configure # procedura guidata di configurazione
```
@@ -58,39 +58,45 @@ Consulta il [riferimento completo](/gateway/configuration-reference) per ogni ca
Apri [http://127.0.0.1:18789](http://127.0.0.1:18789) e usa la scheda **Config**.
- La UI di controllo visualizza un modulo dallo schema di configurazione live, inclusi i metadati di documentazione dei campi
- `title` / `description` più gli schemi di plugin e canale quando
- disponibili, con un editor **Raw JSON** come via di fuga. Per UI di analisi dettagliata
- e altri strumenti, il gateway espone anche `config.schema.lookup` per
- recuperare un nodo di schema limitato a un percorso più i riepiloghi dei figli immediati.
+ La UI di controllo visualizza un modulo dallo schema di configurazione live, inclusi i metadati della documentazione dei campi
+ `title` / `description` più gli schemi di plugin e canali quando
+ disponibili, con un editor **Raw JSON** come via di fuga. Per UI di
+ approfondimento e altri strumenti, il gateway espone anche `config.schema.lookup` per
+ recuperare un nodo dello schema limitato a un percorso più riepiloghi immediati dei nodi figli.
- Modifica direttamente `~/.openclaw/openclaw.json`. Il Gateway osserva il file e applica automaticamente le modifiche (vedi [hot reload](#config-hot-reload)).
+ Modifica direttamente `~/.openclaw/openclaw.json`. Il Gateway osserva il file e applica automaticamente le modifiche (vedi [ricaricamento a caldo](#config-hot-reload)).
-## Validazione rigorosa
+## Convalida rigorosa
-OpenClaw accetta solo configurazioni che corrispondono completamente allo schema. Chiavi sconosciute, tipi non validi o valori non validi fanno sì che il Gateway **si rifiuti di avviarsi**. L'unica eccezione a livello root è `$schema` (stringa), così gli editor possono collegare metadati JSON Schema.
+OpenClaw accetta solo configurazioni che corrispondono completamente allo schema. Chiavi sconosciute, tipi non validi o valori non validi fanno sì che il Gateway **si rifiuti di avviarsi**. L'unica eccezione a livello root è `$schema` (stringa), così gli editor possono associare metadati JSON Schema.
-Note sugli strumenti di schema:
+Note sugli strumenti dello schema:
- `openclaw config schema` stampa la stessa famiglia di JSON Schema usata dalla UI di controllo
- e dalla validazione della configurazione.
-- I valori `title` e `description` dei campi vengono riportati nell'output dello schema per
- editor e strumenti per moduli.
-- Le voci di oggetti annidati, wildcard (`*`) e elementi di array (`[]`) ereditano gli stessi
- metadati di documentazione dove esiste documentazione di campo corrispondente.
-- Anche i rami di composizione `anyOf` / `oneOf` / `allOf` ereditano gli stessi metadati
- di documentazione, così le varianti union/intersection mantengono lo stesso aiuto per i campi.
-- `config.schema.lookup` restituisce un percorso di configurazione normalizzato con un nodo di schema superficiale (`title`, `description`, `type`, `enum`, `const`, limiti comuni
- e campi di validazione simili), metadati di suggerimento UI corrispondenti e riepiloghi dei figli immediati per strumenti di analisi dettagliata.
-- Gli schemi runtime di plugin/canale vengono uniti quando il gateway riesce a caricare il
- registro manifest corrente.
+ e dalla convalida della configurazione.
+- Tratta l'output di quello schema come il contratto canonico leggibile dalle macchine per
+ `openclaw.json`; questa panoramica e il riferimento di configurazione lo riassumono.
+- I valori dei campi `title` e `description` vengono riportati nell'output dello schema per
+ strumenti di editing e moduli.
+- Le voci di oggetti nidificati, wildcard (`*`) e elementi di array (`[]`) ereditano gli stessi
+ metadati della documentazione dove esiste documentazione del campo corrispondente.
+- Anche i rami di composizione `anyOf` / `oneOf` / `allOf` ereditano gli stessi
+ metadati della documentazione, così le varianti union/intersection mantengono lo stesso aiuto per il campo.
+- `config.schema.lookup` restituisce un percorso di configurazione normalizzato con un nodo di
+ schema superficiale (`title`, `description`, `type`, `enum`, `const`, limiti comuni
+ e campi di convalida simili), metadati dei suggerimenti UI corrispondenti e riepiloghi immediati dei nodi figli
+ per strumenti di approfondimento.
+- Gli schemi runtime di plugin/canali vengono uniti quando il gateway può caricare il
+ registro dei manifest corrente.
+- `pnpm config:docs:check` rileva divergenze tra gli artefatti di baseline della configurazione rivolti alla documentazione
+ e la superficie dello schema corrente.
-Quando la validazione fallisce:
+Quando la convalida fallisce:
- Il Gateway non si avvia
- Funzionano solo i comandi diagnostici (`openclaw doctor`, `openclaw logs`, `openclaw health`, `openclaw status`)
@@ -114,7 +120,7 @@ Quando la validazione fallisce:
- [iMessage](/it/channels/imessage) — `channels.imessage`
- [Mattermost](/it/channels/mattermost) — `channels.mattermost`
- Tutti i canali condividono lo stesso pattern di policy DM:
+ Tutti i canali condividono lo stesso modello di criterio DM:
```json5
{
@@ -132,7 +138,7 @@ Quando la validazione fallisce:
- Imposta il modello principale e gli eventuali fallback:
+ Imposta il modello primario e gli eventuali fallback:
```json5
{
@@ -151,30 +157,30 @@ Quando la validazione fallisce:
}
```
- - `agents.defaults.models` definisce il catalogo modelli e funge da allowlist per `/model`.
+ - `agents.defaults.models` definisce il catalogo dei modelli e funge da allowlist per `/model`.
- I riferimenti ai modelli usano il formato `provider/model` (ad esempio `anthropic/claude-opus-4-6`).
- - `agents.defaults.imageMaxDimensionPx` controlla il ridimensionamento delle immagini in trascrizione/strumenti (predefinito `1200`); valori inferiori in genere riducono l'uso di token vision nelle esecuzioni ricche di screenshot.
- - Vedi [Models CLI](/concepts/models) per cambiare modello in chat e [Model Failover](/concepts/model-failover) per il comportamento di rotazione auth e fallback.
- - Per provider personalizzati/self-hosted, vedi [Provider personalizzati](/gateway/configuration-reference#custom-providers-and-base-urls) nel riferimento.
+ - `agents.defaults.imageMaxDimensionPx` controlla il ridimensionamento delle immagini di transcript/tool (predefinito `1200`); valori più bassi di solito riducono l'uso di vision token nelle esecuzioni ricche di screenshot.
+ - Consulta [Models CLI](/it/concepts/models) per cambiare modello in chat e [Model Failover](/it/concepts/model-failover) per il comportamento di rotazione dell'autenticazione e fallback.
+ - Per provider personalizzati/self-hosted, consulta [Provider personalizzati](/it/gateway/configuration-reference#custom-providers-and-base-urls) nel riferimento.
L'accesso DM è controllato per canale tramite `dmPolicy`:
- - `"pairing"` (predefinito): i mittenti sconosciuti ricevono un codice pairing monouso da approvare
- - `"allowlist"`: solo i mittenti in `allowFrom` (o nello store paired allow)
- - `"open"`: consente tutti i DM in ingresso (richiede `allowFrom: ["*"]`)
+ - `"pairing"` (predefinito): i mittenti sconosciuti ricevono un codice di pairing monouso da approvare
+ - `"allowlist"`: solo i mittenti in `allowFrom` (o nello store allow associato)
+ - `"open"`: consenti tutti i DM in ingresso (richiede `allowFrom: ["*"]`)
- `"disabled"`: ignora tutti i DM
Per i gruppi, usa `groupPolicy` + `groupAllowFrom` o allowlist specifiche del canale.
- Consulta il [riferimento completo](/gateway/configuration-reference#dm-and-group-access) per i dettagli per canale.
+ Consulta il [riferimento completo](/it/gateway/configuration-reference#dm-and-group-access) per i dettagli per canale.
-
- I messaggi di gruppo per impostazione predefinita **richiedono una menzione**. Configura i pattern per agente:
+
+ Per impostazione predefinita, i messaggi di gruppo **richiedono una menzione**. Configura i pattern per agente:
```json5
{
@@ -196,15 +202,14 @@ Quando la validazione fallisce:
}
```
- - **Menzioni nei metadati**: @-mention native (tap-to-mention di WhatsApp, @bot di Telegram, ecc.)
+ - **Menzioni nei metadati**: @-mention native (WhatsApp tap-to-mention, Telegram @bot, ecc.)
- **Pattern di testo**: pattern regex sicuri in `mentionPatterns`
- - Consulta il [riferimento completo](/gateway/configuration-reference#group-chat-mention-gating) per override per canale e modalità self-chat.
+ - Consulta il [riferimento completo](/it/gateway/configuration-reference#group-chat-mention-gating) per gli override per canale e la modalità self-chat.
- Usa `agents.defaults.skills` per una baseline condivisa, quindi fai override di
- agenti specifici con `agents.list[].skills`:
+ Usa `agents.defaults.skills` per una baseline condivisa, quindi fai override di agenti specifici con `agents.list[].skills`:
```json5
{
@@ -214,23 +219,23 @@ Quando la validazione fallisce:
},
list: [
{ id: "writer" }, // eredita github, weather
- { id: "docs", skills: ["docs-search"] }, // sostituisce i default
+ { id: "docs", skills: ["docs-search"] }, // sostituisce i valori predefiniti
{ id: "locked-down", skills: [] }, // nessuna Skills
],
},
}
```
- - Ometti `agents.defaults.skills` per avere Skills senza restrizioni per impostazione predefinita.
+ - Ometti `agents.defaults.skills` per Skills senza restrizioni per impostazione predefinita.
- Ometti `agents.list[].skills` per ereditare i valori predefiniti.
- Imposta `agents.list[].skills: []` per nessuna Skills.
- - Consulta [Skills](/tools/skills), [Config Skills](/tools/skills-config) e
- il [Riferimento configurazione](/gateway/configuration-reference#agentsdefaultsskills).
+ - Consulta [Skills](/it/tools/skills), [Configurazione delle Skills](/it/tools/skills-config), e
+ il [Riferimento di configurazione](/it/gateway/configuration-reference#agentsdefaultsskills).
- Controlla quanto aggressivamente il gateway riavvia i canali che sembrano obsoleti:
+ Controlla quanto aggressivamente il gateway riavvia i canali che sembrano inattivi:
```json5
{
@@ -252,20 +257,20 @@ Quando la validazione fallisce:
}
```
- - Imposta `gateway.channelHealthCheckMinutes: 0` per disabilitare globalmente i riavvii del monitoraggio dello stato.
- - `channelStaleEventThresholdMinutes` dovrebbe essere maggiore o uguale all'intervallo di controllo.
+ - Imposta `gateway.channelHealthCheckMinutes: 0` per disabilitare globalmente i riavvii del monitor di stato.
+ - `channelStaleEventThresholdMinutes` deve essere maggiore o uguale all'intervallo di controllo.
- Usa `channels..healthMonitor.enabled` o `channels..accounts..healthMonitor.enabled` per disabilitare i riavvii automatici per un canale o account senza disabilitare il monitor globale.
- - Consulta [Health Checks](/gateway/health) per il debug operativo e il [riferimento completo](/gateway/configuration-reference#gateway) per tutti i campi.
+ - Consulta [Controlli di stato](/it/gateway/health) per il debug operativo e il [riferimento completo](/it/gateway/configuration-reference#gateway) per tutti i campi.
-
- Le sessioni controllano continuità e isolamento della conversazione:
+
+ Le sessioni controllano la continuità e l'isolamento delle conversazioni:
```json5
{
session: {
- dmScope: "per-channel-peer", // consigliato per multiutente
+ dmScope: "per-channel-peer", // consigliato per più utenti
threadBindings: {
enabled: true,
idleHours: 24,
@@ -282,13 +287,13 @@ Quando la validazione fallisce:
- `dmScope`: `main` (condivisa) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
- `threadBindings`: valori predefiniti globali per l'instradamento delle sessioni associate ai thread (Discord supporta `/focus`, `/unfocus`, `/agents`, `/session idle` e `/session max-age`).
- - Consulta [Gestione delle sessioni](/concepts/session) per ambito, collegamenti di identità e policy di invio.
- - Consulta il [riferimento completo](/gateway/configuration-reference#session) per tutti i campi.
+ - Consulta [Gestione delle sessioni](/it/concepts/session) per ambito, collegamenti di identità e criterio di invio.
+ - Consulta il [riferimento completo](/it/gateway/configuration-reference#session) per tutti i campi.
- Esegui le sessioni agente in container Docker isolati:
+ Esegui le sessioni dell'agente in container Docker isolati:
```json5
{
@@ -303,16 +308,16 @@ Quando la validazione fallisce:
}
```
- Costruisci prima l'immagine: `scripts/sandbox-setup.sh`
+ Crea prima l'immagine: `scripts/sandbox-setup.sh`
- Consulta [Sandboxing](/gateway/sandboxing) per la guida completa e il [riferimento completo](/gateway/configuration-reference#agentsdefaultssandbox) per tutte le opzioni.
+ Consulta [Sandboxing](/it/gateway/sandboxing) per la guida completa e il [riferimento completo](/it/gateway/configuration-reference#agentsdefaultssandbox) per tutte le opzioni.
- Il push supportato da relay si configura in `openclaw.json`.
+ Il push supportato da relay è configurato in `openclaw.json`.
- Imposta questo nella configurazione gateway:
+ Imposta questo nella configurazione del gateway:
```json5
{
@@ -338,31 +343,31 @@ Quando la validazione fallisce:
Cosa fa:
- - Consente al gateway di inviare `push.test`, wake nudges e wake di riconnessione tramite il relay esterno.
- - Usa un permesso di invio limitato alla registrazione inoltrato dall'app iOS paired. Il gateway non ha bisogno di un token relay valido per tutta la distribuzione.
- - Associa ogni registrazione supportata da relay all'identità del gateway con cui l'app iOS ha effettuato il pairing, così un altro gateway non può riutilizzare la registrazione memorizzata.
- - Mantiene le build iOS locali/manuali su APNs diretti. Gli invii supportati da relay si applicano solo alle build ufficiali distribuite che si sono registrate tramite il relay.
+ - Consente al gateway di inviare `push.test`, solleciti di wake e wake di riconnessione tramite il relay esterno.
+ - Usa un'autorizzazione di invio limitata alla registrazione inoltrata dall'app iOS associata. Il gateway non ha bisogno di un token relay valido per l'intera distribuzione.
+ - Associa ogni registrazione supportata da relay all'identità del gateway con cui l'app iOS è stata associata, così un altro gateway non può riutilizzare la registrazione memorizzata.
+ - Mantiene le build iOS locali/manuali su APNs diretto. Gli invii supportati da relay si applicano solo alle build ufficiali distribuite che si sono registrate tramite il relay.
- Deve corrispondere al base URL del relay incorporato nella build iOS ufficiale/TestFlight, così il traffico di registrazione e invio raggiunge la stessa distribuzione relay.
Flusso end-to-end:
1. Installa una build iOS ufficiale/TestFlight compilata con lo stesso base URL del relay.
2. Configura `gateway.push.apns.relay.baseUrl` sul gateway.
- 3. Esegui il pairing dell'app iOS con il gateway e lascia che si connettano sia le sessioni node sia quelle operator.
- 4. L'app iOS recupera l'identità del gateway, si registra presso il relay usando App Attest più la ricevuta dell'app e quindi pubblica il payload `push.apns.register` supportato da relay sul gateway paired.
- 5. Il gateway memorizza l'handle relay e il permesso di invio, poi li usa per `push.test`, wake nudges e wake di riconnessione.
+ 3. Associa l'app iOS al gateway e lascia che si connettano sia le sessioni node sia quelle operatore.
+ 4. L'app iOS recupera l'identità del gateway, si registra presso il relay usando App Attest più la ricevuta dell'app e poi pubblica il payload `push.apns.register` supportato da relay sul gateway associato.
+ 5. Il gateway memorizza l'handle relay e l'autorizzazione di invio, quindi li usa per `push.test`, solleciti di wake e wake di riconnessione.
Note operative:
- - Se sposti l'app iOS su un gateway diverso, ricollega l'app così potrà pubblicare una nuova registrazione relay associata a quel gateway.
- - Se distribuisci una nuova build iOS che punta a una distribuzione relay diversa, l'app aggiorna la registrazione relay memorizzata invece di riutilizzare la vecchia origine relay.
+ - Se passi l'app iOS a un gateway diverso, riconnetti l'app così può pubblicare una nuova registrazione relay associata a quel gateway.
+ - Se distribuisci una nuova build iOS che punta a una distribuzione relay diversa, l'app aggiorna la registrazione relay memorizzata nella cache invece di riutilizzare il vecchio relay di origine.
Nota di compatibilità:
- - `OPENCLAW_APNS_RELAY_BASE_URL` e `OPENCLAW_APNS_RELAY_TIMEOUT_MS` funzionano ancora come override temporanei via env.
- - `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` rimane una via di fuga di sviluppo solo loopback; non mantenere URL relay HTTP nella configurazione.
+ - `OPENCLAW_APNS_RELAY_BASE_URL` e `OPENCLAW_APNS_RELAY_TIMEOUT_MS` funzionano ancora come override temporanei dell'env.
+ - `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` resta una via di fuga di sviluppo solo loopback; non rendere persistenti URL relay HTTP nella configurazione.
- Consulta [App iOS](/platforms/ios#relay-backed-push-for-official-builds) per il flusso end-to-end e [Flusso di autenticazione e attendibilità](/platforms/ios#authentication-and-trust-flow) per il modello di sicurezza del relay.
+ Consulta [App iOS](/it/platforms/ios#relay-backed-push-for-official-builds) per il flusso end-to-end e [Flusso di autenticazione e trust](/it/platforms/ios#authentication-and-trust-flow) per il modello di sicurezza del relay.
@@ -382,12 +387,12 @@ Quando la validazione fallisce:
- `every`: stringa di durata (`30m`, `2h`). Imposta `0m` per disabilitare.
- `target`: `last` | `none` | `` (ad esempio `discord`, `matrix`, `telegram` o `whatsapp`)
- - `directPolicy`: `allow` (predefinito) oppure `block` per target heartbeat in stile DM
- - Consulta [Heartbeat](/gateway/heartbeat) per la guida completa.
+ - `directPolicy`: `allow` (predefinito) o `block` per target heartbeat in stile DM
+ - Consulta [Heartbeat](/it/gateway/heartbeat) per la guida completa.
-
+
```json5
{
cron: {
@@ -402,9 +407,9 @@ Quando la validazione fallisce:
}
```
- - `sessionRetention`: elimina le sessioni isolate completate da `sessions.json` (predefinito `24h`; imposta `false` per disabilitare).
- - `runLog`: pota `cron/runs/.jsonl` in base a dimensione e righe mantenute.
- - Consulta [Cron jobs](/it/automation/cron-jobs) per la panoramica della funzionalità e gli esempi CLI.
+ - `sessionRetention`: elimina dalle `sessions.json` le sessioni isolate completate (predefinito `24h`; imposta `false` per disabilitare).
+ - `runLog`: riduce `cron/runs/.jsonl` in base a dimensione e righe mantenute.
+ - Consulta [Job cron](/it/automation/cron-jobs) per la panoramica della funzionalità e gli esempi CLI.
@@ -432,16 +437,16 @@ Quando la validazione fallisce:
}
```
- Nota di sicurezza:
+ Nota sulla sicurezza:
- Tratta tutto il contenuto dei payload hook/webhook come input non attendibile.
- Usa un `hooks.token` dedicato; non riutilizzare il token condiviso del Gateway.
- - L'autenticazione hook è solo header (`Authorization: Bearer ...` o `x-openclaw-token`); i token nella query string vengono rifiutati.
+ - L'autenticazione degli hook è solo tramite header (`Authorization: Bearer ...` o `x-openclaw-token`); i token nella query string vengono rifiutati.
- `hooks.path` non può essere `/`; mantieni l'ingresso webhook su un sottopercorso dedicato come `/hooks`.
- - Mantieni disabilitati i flag di bypass per contenuto non sicuro (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`) a meno che tu non stia facendo debug molto mirato.
- - Se abiliti `hooks.allowRequestSessionKey`, imposta anche `hooks.allowedSessionKeyPrefixes` per limitare le chiavi di sessione selezionabili dal chiamante.
- - Per agenti guidati da hook, preferisci livelli di modello moderni e forti e una policy strumenti rigorosa (ad esempio solo messaggistica più sandboxing dove possibile).
+ - Mantieni disabilitati i flag di bypass per contenuti non sicuri (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`) a meno che tu non stia facendo debug strettamente circoscritto.
+ - Se abiliti `hooks.allowRequestSessionKey`, imposta anche `hooks.allowedSessionKeyPrefixes` per limitare le chiavi di sessione selezionate dal chiamante.
+ - Per agenti guidati da hook, preferisci tier di modelli moderni e robusti e un criterio tool rigoroso (ad esempio solo messaggistica più sandboxing dove possibile).
- Consulta il [riferimento completo](/gateway/configuration-reference#hooks) per tutte le opzioni di mapping e l'integrazione Gmail.
+ Consulta il [riferimento completo](/it/gateway/configuration-reference#hooks) per tutte le opzioni di mapping e l'integrazione con Gmail.
@@ -463,12 +468,12 @@ Quando la validazione fallisce:
}
```
- Consulta [Multi-Agent](/concepts/multi-agent) e il [riferimento completo](/gateway/configuration-reference#multi-agent-routing) per regole di binding e profili di accesso per agente.
+ Consulta [Multi-Agent](/it/concepts/multi-agent) e il [riferimento completo](/it/gateway/configuration-reference#multi-agent-routing) per le regole di binding e i profili di accesso per agente.
- Usa `$include` per organizzare configurazioni grandi:
+ Usa `$include` per organizzare configurazioni di grandi dimensioni:
```json5
// ~/.openclaw/openclaw.json
@@ -482,26 +487,26 @@ Quando la validazione fallisce:
```
- **File singolo**: sostituisce l'oggetto contenitore
- - **Array di file**: deep-merge in ordine (l'ultimo vince)
+ - **Array di file**: unione profonda in ordine (vince l'ultimo)
- **Chiavi sibling**: unite dopo gli include (sovrascrivono i valori inclusi)
- - **Include annidati**: supportati fino a 10 livelli di profondità
+ - **Include nidificati**: supportati fino a 10 livelli di profondità
- **Percorsi relativi**: risolti relativamente al file che include
- - **Gestione errori**: errori chiari per file mancanti, errori di parsing e include circolari
+ - **Gestione degli errori**: errori chiari per file mancanti, errori di parsing e include circolari
-## Hot reload della configurazione
+## Ricaricamento a caldo della configurazione
-Il Gateway osserva `~/.openclaw/openclaw.json` e applica automaticamente le modifiche — per la maggior parte delle impostazioni non è necessario alcun riavvio manuale.
+Il Gateway osserva `~/.openclaw/openclaw.json` e applica automaticamente le modifiche — nella maggior parte dei casi non è necessario alcun riavvio manuale.
-### Modalità di ricarica
+### Modalità di ricaricamento
| Modalità | Comportamento |
| ---------------------- | -------------------------------------------------------------------------------------- |
-| **`hybrid`** (predefinita) | Applica a caldo immediatamente le modifiche sicure. Si riavvia automaticamente per quelle critiche. |
-| **`hot`** | Applica a caldo solo le modifiche sicure. Registra un avviso quando è necessario un riavvio — lo gestisci tu. |
-| **`restart`** | Riavvia il Gateway a ogni modifica della configurazione, sicura o meno. |
+| **`hybrid`** (predefinita) | Applica a caldo immediatamente le modifiche sicure. Riavvia automaticamente per quelle critiche. |
+| **`hot`** | Applica a caldo solo le modifiche sicure. Registra un avviso quando è necessario un riavvio — te ne occupi tu. |
+| **`restart`** | Riavvia il Gateway per qualsiasi modifica della configurazione, sicura o meno. |
| **`off`** | Disabilita l'osservazione del file. Le modifiche hanno effetto al successivo riavvio manuale. |
```json5
@@ -514,18 +519,18 @@ Il Gateway osserva `~/.openclaw/openclaw.json` e applica automaticamente le modi
### Cosa viene applicato a caldo e cosa richiede un riavvio
-La maggior parte dei campi viene applicata a caldo senza downtime. In modalità `hybrid`, le modifiche che richiedono un riavvio vengono gestite automaticamente.
+La maggior parte dei campi viene applicata a caldo senza downtime. In modalità `hybrid`, le modifiche che richiedono riavvio vengono gestite automaticamente.
-| Categoria | Campi | Riavvio necessario? |
-| ------------------- | -------------------------------------------------------------------- | --------------- |
-| Canali | `channels.*`, `web` (WhatsApp) — tutti i canali built-in ed extension | No |
-| Agente e modelli | `agent`, `agents`, `models`, `routing` | No |
-| Automazione | `hooks`, `cron`, `agent.heartbeat` | No |
-| Sessioni e messaggi | `session`, `messages` | No |
-| Strumenti e media | `tools`, `browser`, `skills`, `audio`, `talk` | No |
-| UI e varie | `ui`, `logging`, `identity`, `bindings` | No |
-| Server Gateway | `gateway.*` (porta, bind, auth, tailscale, TLS, HTTP) | **Sì** |
-| Infrastruttura | `discovery`, `canvasHost`, `plugins` | **Sì** |
+| Categoria | Campi | Riavvio necessario? |
+| -------------------- | -------------------------------------------------------------------- | ------------------- |
+| Canali | `channels.*`, `web` (WhatsApp) — tutti i canali built-in e di estensione | No |
+| Agente e modelli | `agent`, `agents`, `models`, `routing` | No |
+| Automazione | `hooks`, `cron`, `agent.heartbeat` | No |
+| Sessioni e messaggi | `session`, `messages` | No |
+| Strumenti e media | `tools`, `browser`, `skills`, `audio`, `talk` | No |
+| UI e varie | `ui`, `logging`, `identity`, `bindings` | No |
+| Server gateway | `gateway.*` (port, bind, auth, tailscale, TLS, HTTP) | **Sì** |
+| Infrastruttura | `discovery`, `canvasHost`, `plugins` | **Sì** |
`gateway.reload` e `gateway.remote` sono eccezioni — modificarli **non** attiva un riavvio.
@@ -534,23 +539,24 @@ La maggior parte dei campi viene applicata a caldo senza downtime. In modalità
## RPC di configurazione (aggiornamenti programmatici)
-Le RPC di scrittura del control-plane (`config.apply`, `config.patch`, `update.run`) hanno un rate limit di **3 richieste per 60 secondi** per `deviceId+clientIp`. Quando il limite viene raggiunto, la RPC restituisce `UNAVAILABLE` con `retryAfterMs`.
+Le RPC di scrittura del control plane (`config.apply`, `config.patch`, `update.run`) sono soggette a rate limit di **3 richieste ogni 60 secondi** per `deviceId+clientIp`. Quando si raggiunge il limite, la RPC restituisce `UNAVAILABLE` con `retryAfterMs`.
Flusso sicuro/predefinito:
-- `config.schema.lookup`: ispeziona un sottoalbero di configurazione limitato a un percorso con un nodo di schema superficiale, metadati di suggerimento corrispondenti e riepiloghi dei figli immediati
-- `config.get`: recupera l'istantanea corrente + hash
+- `config.schema.lookup`: ispeziona un sottoalbero della configurazione limitato a un percorso con un nodo di schema superficiale,
+ metadati dei suggerimenti corrispondenti e riepiloghi immediati dei nodi figli
+- `config.get`: recupera lo snapshot corrente + hash
- `config.patch`: percorso preferito per aggiornamenti parziali
-- `config.apply`: sostituzione completa della configurazione solo
-- `update.run`: auto-aggiornamento esplicito + riavvio
+- `config.apply`: solo sostituzione completa della configurazione
+- `update.run`: autoaggiornamento esplicito + riavvio
Quando non stai sostituendo l'intera configurazione, preferisci `config.schema.lookup`
poi `config.patch`.
- Valida + scrive l'intera configurazione e riavvia il Gateway in un unico passaggio.
+ Convalida + scrive l'intera configurazione e riavvia il Gateway in un solo passaggio.
`config.apply` sostituisce l'**intera configurazione**. Usa `config.patch` per aggiornamenti parziali, oppure `openclaw config set` per singole chiavi.
@@ -559,8 +565,8 @@ poi `config.patch`.
Parametri:
- `raw` (stringa) — payload JSON5 per l'intera configurazione
- - `baseHash` (facoltativo) — hash di configurazione da `config.get` (obbligatorio quando la configurazione esiste)
- - `sessionKey` (facoltativo) — chiave di sessione per il ping di wake-up post-riavvio
+ - `baseHash` (facoltativo) — hash della configurazione da `config.get` (richiesto quando la configurazione esiste)
+ - `sessionKey` (facoltativo) — chiave di sessione per il ping di riattivazione post-riavvio
- `note` (facoltativo) — nota per il sentinel di riavvio
- `restartDelayMs` (facoltativo) — ritardo prima del riavvio (predefinito 2000)
@@ -578,16 +584,16 @@ poi `config.patch`.
- Unisce un aggiornamento parziale alla configurazione esistente (semantica JSON merge patch):
+ Unisce un aggiornamento parziale nella configurazione esistente (semantica JSON merge patch):
- Gli oggetti vengono uniti ricorsivamente
- `null` elimina una chiave
- - Gli array sostituiscono
+ - Gli array vengono sostituiti
Parametri:
- `raw` (stringa) — JSON5 con solo le chiavi da modificare
- - `baseHash` (obbligatorio) — hash di configurazione da `config.get`
+ - `baseHash` (obbligatorio) — hash della configurazione da `config.get`
- `sessionKey`, `note`, `restartDelayMs` — uguali a `config.apply`
Il comportamento di riavvio corrisponde a `config.apply`: riavvii in attesa accorpati più un cooldown di 30 secondi tra i cicli di riavvio.
@@ -621,7 +627,7 @@ Nessuno dei due file sovrascrive le variabili d'ambiente esistenti. Puoi anche i
```
- Se abilitato e le chiavi previste non sono impostate, OpenClaw esegue la shell di login e importa solo le chiavi mancanti:
+ Se abilitato e le chiavi previste non sono impostate, OpenClaw esegue la tua login shell e importa solo le chiavi mancanti:
```json5
{
@@ -635,7 +641,7 @@ Equivalente come variabile d'ambiente: `OPENCLAW_LOAD_SHELL_ENV=1`
- Fai riferimento alle variabili d'ambiente in qualsiasi valore stringa della configurazione con `${VAR_NAME}`:
+ Riferisci le variabili d'ambiente in qualsiasi valore stringa della configurazione con `${VAR_NAME}`:
```json5
{
@@ -646,15 +652,15 @@ Equivalente come variabile d'ambiente: `OPENCLAW_LOAD_SHELL_ENV=1`
Regole:
-- Vengono riconosciuti solo nomi maiuscoli corrispondenti a: `[A-Z_][A-Z0-9_]*`
-- Variabili mancanti/vuote generano un errore al caricamento
-- Esegui l'escape con `$${VAR}` per output letterale
-- Funziona nei file `$include`
+- Vengono corrisposti solo nomi in maiuscolo: `[A-Z_][A-Z0-9_]*`
+- Variabili mancanti/vuote generano un errore in fase di caricamento
+- Usa l'escape `$${VAR}` per output letterale
+- Funziona all'interno dei file `$include`
- Sostituzione inline: `"${BASE}/v1"` → `"https://api.example.com/v1"`
-
+
Per i campi che supportano oggetti SecretRef, puoi usare:
```json5
@@ -687,16 +693,16 @@ Regole:
}
```
-I dettagli su SecretRef (inclusi `secrets.providers` per `env`/`file`/`exec`) sono in [Gestione dei secret](/gateway/secrets).
-I percorsi credenziali supportati sono elencati in [Superficie credenziali SecretRef](/reference/secretref-credential-surface).
+I dettagli di SecretRef (inclusi `secrets.providers` per `env`/`file`/`exec`) sono in [Gestione dei segreti](/it/gateway/secrets).
+I percorsi delle credenziali supportati sono elencati in [Superficie delle credenziali SecretRef](/it/reference/secretref-credential-surface).
-Consulta [Ambiente](/help/environment) per la precedenza completa e le sorgenti.
+Consulta [Ambiente](/it/help/environment) per la precedenza completa e le origini.
## Riferimento completo
-Per il riferimento completo campo per campo, consulta **[Riferimento configurazione](/gateway/configuration-reference)**.
+Per il riferimento completo campo per campo, consulta **[Riferimento di configurazione](/it/gateway/configuration-reference)**.
---
-_Correlati: [Esempi di configurazione](/gateway/configuration-examples) · [Riferimento configurazione](/gateway/configuration-reference) · [Doctor](/gateway/doctor)_
+_Correlati: [Esempi di configurazione](/it/gateway/configuration-examples) · [Riferimento di configurazione](/it/gateway/configuration-reference) · [Doctor](/it/gateway/doctor)_
diff --git a/docs/it/plugins/memory-wiki.md b/docs/it/plugins/memory-wiki.md
new file mode 100644
index 000000000..f02b16bd1
--- /dev/null
+++ b/docs/it/plugins/memory-wiki.md
@@ -0,0 +1,370 @@
+---
+read_when:
+ - Vuoi una conoscenza persistente oltre alle semplici note MEMORY.md
+ - Stai configurando il plugin bundled memory-wiki
+ - Vuoi capire wiki_search, wiki_get o la modalità bridge
+summary: 'memory-wiki: archivio di conoscenza compilato con provenienza, asserzioni, dashboard e modalità bridge'
+title: Wiki della memoria
+x-i18n:
+ generated_at: "2026-04-08T06:01:10Z"
+ model: gpt-5.4
+ provider: openai
+ source_hash: b78dd6a4ef4451dae6b53197bf0c7c2a2ba846b08e4a3a93c1026366b1598d82
+ source_path: plugins/memory-wiki.md
+ workflow: 15
+---
+
+# Wiki della memoria
+
+`memory-wiki` è un plugin bundled che trasforma la memoria durevole in un
+archivio di conoscenza compilato.
+
+**Non** sostituisce il plugin di memoria attivo. Il plugin di memoria attivo
+continua a gestire richiamo, promozione, indicizzazione e dreaming. `memory-wiki`
+si affianca ad esso e compila la conoscenza durevole in una wiki navigabile con
+pagine deterministiche, asserzioni strutturate, provenienza, dashboard e digest
+leggibili dalle macchine.
+
+Usalo quando vuoi che la memoria si comporti più come un livello di conoscenza
+mantenuto e meno come un insieme di file Markdown.
+
+## Cosa aggiunge
+
+- Un archivio wiki dedicato con layout delle pagine deterministico
+- Metadati strutturati per asserzioni ed evidenze, non solo prosa
+- Provenienza a livello di pagina, confidenza, contraddizioni e domande aperte
+- Digest compilati per i consumer agent/runtime
+- Strumenti nativi della wiki per search/get/apply/lint
+- Modalità bridge opzionale che importa artefatti pubblici dal plugin di memoria attivo
+- Modalità di rendering opzionale compatibile con Obsidian e integrazione CLI
+
+## Come si integra con la memoria
+
+Considera la suddivisione in questo modo:
+
+| Livello | Gestisce |
+| ------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
+| Plugin di memoria attivo (`memory-core`, QMD, Honcho, ecc.) | Richiamo, ricerca semantica, promozione, dreaming, runtime della memoria |
+| `memory-wiki` | Pagine wiki compilate, sintesi ricche di provenienza, dashboard, search/get/apply specifici della wiki |
+
+Se il plugin di memoria attivo espone artefatti di richiamo condivisi, OpenClaw può cercare
+in entrambi i livelli in un unico passaggio con `memory_search corpus=all`.
+
+Quando ti servono ranking specifico della wiki, provenienza o accesso diretto
+alle pagine, usa invece gli strumenti nativi della wiki.
+
+## Modalità dell'archivio
+
+`memory-wiki` supporta tre modalità di archivio:
+
+### `isolated`
+
+Archivio proprio, sorgenti proprie, nessuna dipendenza da `memory-core`.
+
+Usa questa modalità quando vuoi che la wiki sia il proprio archivio di
+conoscenza curato.
+
+### `bridge`
+
+Legge artefatti pubblici della memoria ed eventi di memoria dal plugin di memoria attivo
+tramite punti di integrazione pubblici del plugin SDK.
+
+Usa questa modalità quando vuoi che la wiki compili e organizzi gli
+artefatti esportati dal plugin di memoria senza accedere agli elementi interni
+privati del plugin.
+
+La modalità bridge può indicizzare:
+
+- artefatti di memoria esportati
+- report di dream
+- note giornaliere
+- file radice della memoria
+- log degli eventi di memoria
+
+### `unsafe-local`
+
+Via di fuga esplicita sulla stessa macchina per percorsi privati locali.
+
+Questa modalità è intenzionalmente sperimentale e non portabile. Usala solo se
+comprendi il confine di fiducia e hai bisogno in modo specifico di accesso al
+filesystem locale che la modalità bridge non può fornire.
+
+## Layout dell'archivio
+
+Il plugin inizializza un archivio in questo modo:
+
+```text
+/
+ AGENTS.md
+ WIKI.md
+ index.md
+ inbox.md
+ entities/
+ concepts/
+ syntheses/
+ sources/
+ reports/
+ _attachments/
+ _views/
+ .openclaw-wiki/
+```
+
+Il contenuto gestito rimane all'interno di blocchi generati. I blocchi di note
+umani vengono preservati.
+
+I gruppi principali di pagine sono:
+
+- `sources/` per materiale grezzo importato e pagine supportate dal bridge
+- `entities/` per elementi durevoli, persone, sistemi, progetti e oggetti
+- `concepts/` per idee, astrazioni, pattern e policy
+- `syntheses/` per riepiloghi compilati e rollup mantenuti
+- `reports/` per dashboard generate
+
+## Asserzioni ed evidenze strutturate
+
+Le pagine possono includere `claims` nel frontmatter strutturato, non solo testo libero.
+
+Ogni asserzione può includere:
+
+- `id`
+- `text`
+- `status`
+- `confidence`
+- `evidence[]`
+- `updatedAt`
+
+Le voci di evidenza possono includere:
+
+- `sourceId`
+- `path`
+- `lines`
+- `weight`
+- `note`
+- `updatedAt`
+
+È questo che fa sì che la wiki si comporti più come un livello di credenze che
+come un archivio passivo di note. Le asserzioni possono essere tracciate,
+valutate, contestate e ricondotte alle sorgenti.
+
+## Pipeline di compilazione
+
+Il passaggio di compilazione legge le pagine della wiki, normalizza i riepiloghi
+ed emette artefatti stabili orientati alle macchine in:
+
+- `.openclaw-wiki/cache/agent-digest.json`
+- `.openclaw-wiki/cache/claims.jsonl`
+
+Questi digest esistono affinché gli agent e il codice runtime non debbano fare scraping
+delle pagine Markdown.
+
+L'output compilato alimenta anche:
+
+- indicizzazione iniziale della wiki per i flussi di search/get
+- lookup degli id delle asserzioni per risalire alle pagine proprietarie
+- supplementi compatti per i prompt
+- generazione di report/dashboard
+
+## Dashboard e report di stato
+
+Quando `render.createDashboards` è abilitato, la compilazione mantiene le dashboard in `reports/`.
+
+I report integrati includono:
+
+- `reports/open-questions.md`
+- `reports/contradictions.md`
+- `reports/low-confidence.md`
+- `reports/claim-health.md`
+- `reports/stale-pages.md`
+
+Questi report tengono traccia di elementi come:
+
+- cluster di note di contraddizione
+- cluster di asserzioni concorrenti
+- asserzioni prive di evidenze strutturate
+- pagine e asserzioni a bassa confidenza
+- aggiornamento obsoleto o sconosciuto
+- pagine con domande irrisolte
+
+## Ricerca e recupero
+
+`memory-wiki` supporta due backend di ricerca:
+
+- `shared`: usa il flusso di ricerca della memoria condivisa quando disponibile
+- `local`: cerca nella wiki localmente
+
+Supporta anche tre corpora:
+
+- `wiki`
+- `memory`
+- `all`
+
+Comportamento importante:
+
+- `wiki_search` e `wiki_get` usano i digest compilati come primo passaggio quando possibile
+- gli id delle asserzioni possono essere ricondotti alla pagina proprietaria
+- asserzioni contestate/obsolete/aggiornate influenzano il ranking
+- le etichette di provenienza possono essere mantenute nei risultati
+
+Regola pratica:
+
+- usa `memory_search corpus=all` per un singolo passaggio ampio di richiamo
+- usa `wiki_search` + `wiki_get` quando ti interessano ranking specifico della wiki,
+ provenienza o struttura delle credenze a livello di pagina
+
+## Strumenti dell'agente
+
+Il plugin registra questi strumenti:
+
+- `wiki_status`
+- `wiki_search`
+- `wiki_get`
+- `wiki_apply`
+- `wiki_lint`
+
+Cosa fanno:
+
+- `wiki_status`: modalità dell'archivio corrente, stato, disponibilità della CLI di Obsidian
+- `wiki_search`: cerca nelle pagine wiki e, quando configurato, nei corpora di memoria condivisa
+- `wiki_get`: legge una pagina wiki per id/percorso o ripiega sul corpus di memoria condivisa
+- `wiki_apply`: mutazioni ristrette di sintesi/metadati senza interventi liberi sulla pagina
+- `wiki_lint`: controlli strutturali, lacune di provenienza, contraddizioni, domande aperte
+
+Il plugin registra anche un supplemento di corpus di memoria non esclusivo, così
+`memory_search` e `memory_get` condivisi possono raggiungere la wiki quando il plugin di memoria
+attivo supporta la selezione del corpus.
+
+## Comportamento di prompt e contesto
+
+Quando `context.includeCompiledDigestPrompt` è abilitato, le sezioni del prompt della memoria
+aggiungono uno snapshot compilato compatto da `agent-digest.json`.
+
+Quello snapshot è intenzionalmente piccolo e ad alto segnale:
+
+- solo pagine principali
+- solo asserzioni principali
+- conteggio delle contraddizioni
+- conteggio delle domande
+- qualificatori di confidenza/aggiornamento
+
+Questa opzione è facoltativa perché modifica la forma del prompt ed è utile
+soprattutto per i motori di contesto o per l'assemblaggio legacy dei prompt che
+consumano esplicitamente supplementi di memoria.
+
+## Configurazione
+
+Inserisci la configurazione sotto `plugins.entries.memory-wiki.config`:
+
+```json5
+{
+ plugins: {
+ entries: {
+ "memory-wiki": {
+ enabled: true,
+ config: {
+ vaultMode: "isolated",
+ vault: {
+ path: "~/.openclaw/wiki/main",
+ renderMode: "obsidian",
+ },
+ obsidian: {
+ enabled: true,
+ useOfficialCli: true,
+ vaultName: "OpenClaw Wiki",
+ openAfterWrites: false,
+ },
+ bridge: {
+ enabled: false,
+ readMemoryArtifacts: true,
+ indexDreamReports: true,
+ indexDailyNotes: true,
+ indexMemoryRoot: true,
+ followMemoryEvents: true,
+ },
+ ingest: {
+ autoCompile: true,
+ maxConcurrentJobs: 1,
+ allowUrlIngest: true,
+ },
+ search: {
+ backend: "shared",
+ corpus: "wiki",
+ },
+ context: {
+ includeCompiledDigestPrompt: false,
+ },
+ render: {
+ preserveHumanBlocks: true,
+ createBacklinks: true,
+ createDashboards: true,
+ },
+ },
+ },
+ },
+ },
+}
+```
+
+Interruttori principali:
+
+- `vaultMode`: `isolated`, `bridge`, `unsafe-local`
+- `vault.renderMode`: `native` o `obsidian`
+- `bridge.readMemoryArtifacts`: importa gli artefatti pubblici del plugin di memoria attivo
+- `bridge.followMemoryEvents`: include i log degli eventi in modalità bridge
+- `search.backend`: `shared` o `local`
+- `search.corpus`: `wiki`, `memory` o `all`
+- `context.includeCompiledDigestPrompt`: aggiunge uno snapshot compatto del digest alle sezioni del prompt della memoria
+- `render.createBacklinks`: genera blocchi correlati deterministici
+- `render.createDashboards`: genera pagine dashboard
+
+## CLI
+
+`memory-wiki` espone anche una superficie CLI di primo livello:
+
+```bash
+openclaw wiki status
+openclaw wiki doctor
+openclaw wiki init
+openclaw wiki ingest ./notes/alpha.md
+openclaw wiki compile
+openclaw wiki lint
+openclaw wiki search "alpha"
+openclaw wiki get entity.alpha
+openclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alpha
+openclaw wiki bridge import
+openclaw wiki obsidian status
+```
+
+Vedi [CLI: wiki](/cli/wiki) per il riferimento completo dei comandi.
+
+## Supporto Obsidian
+
+Quando `vault.renderMode` è impostato su `obsidian`, il plugin scrive Markdown
+compatibile con Obsidian e può facoltativamente usare la CLI ufficiale `obsidian`.
+
+I flussi di lavoro supportati includono:
+
+- verifica dello stato
+- ricerca nell'archivio
+- apertura di una pagina
+- invocazione di un comando Obsidian
+- salto alla nota giornaliera
+
+Questa opzione è facoltativa. La wiki continua a funzionare in modalità nativa
+anche senza Obsidian.
+
+## Flusso di lavoro consigliato
+
+1. Mantieni il tuo plugin di memoria attivo per richiamo/promozione/dreaming.
+2. Abilita `memory-wiki`.
+3. Inizia con la modalità `isolated` a meno che tu non voglia esplicitamente la modalità bridge.
+4. Usa `wiki_search` / `wiki_get` quando la provenienza è importante.
+5. Usa `wiki_apply` per sintesi ristrette o aggiornamenti dei metadati.
+6. Esegui `wiki_lint` dopo modifiche significative.
+7. Attiva le dashboard se vuoi visibilità su contenuti obsoleti/contraddizioni.
+
+## Documentazione correlata
+
+- [Panoramica della memoria](/it/concepts/memory)
+- [CLI: memory](/cli/memory)
+- [CLI: wiki](/cli/wiki)
+- [Panoramica del Plugin SDK](/it/plugins/sdk-overview)
diff --git a/docs/it/providers/glm.md b/docs/it/providers/glm.md
index b15d9e326..eae1df7ba 100644
--- a/docs/it/providers/glm.md
+++ b/docs/it/providers/glm.md
@@ -1,33 +1,33 @@
---
read_when:
- - Vuoi i modelli GLM in OpenClaw
- - Hai bisogno della convenzione di naming dei modelli e del setup
+ - Vuoi usare i modelli GLM in OpenClaw
+ - Hai bisogno della convenzione di denominazione dei modelli e della configurazione
summary: Panoramica della famiglia di modelli GLM + come usarla in OpenClaw
title: Modelli GLM
x-i18n:
- generated_at: "2026-04-05T14:01:19Z"
+ generated_at: "2026-04-08T06:00:53Z"
model: gpt-5.4
provider: openai
- source_hash: 59622edab5094d991987f9788fbf08b33325e737e7ff88632b0c3ac89412d4c7
+ source_hash: 79a55acfa139847b4b85dbc09f1068cbd2febb1e49f984a23ea9e3b43bc910eb
source_path: providers/glm.md
workflow: 15
---
# Modelli GLM
-GLM è una **famiglia di modelli** (non un'azienda) disponibile tramite la piattaforma Z.AI. In OpenClaw, i modelli
-GLM sono accessibili tramite il provider `zai` e ID modello come `zai/glm-5`.
+GLM è una **famiglia di modelli** (non un'azienda) disponibile tramite la piattaforma Z.AI. In OpenClaw, i modelli GLM
+si usano tramite il provider `zai` e ID modello come `zai/glm-5`.
-## Setup CLI
+## Configurazione della CLI
```bash
-# Setup generico con chiave API e rilevamento automatico dell'endpoint
+# Configurazione generica della chiave API con rilevamento automatico dell'endpoint
openclaw onboard --auth-choice zai-api-key
-# Coding Plan Global, consigliato per gli utenti Coding Plan
+# Piano Coding Global, consigliato per gli utenti di Coding Plan
openclaw onboard --auth-choice zai-coding-global
-# Coding Plan CN (regione Cina), consigliato per gli utenti Coding Plan
+# Piano Coding CN (regione Cina), consigliato per gli utenti di Coding Plan
openclaw onboard --auth-choice zai-coding-cn
# API generale
@@ -37,22 +37,22 @@ openclaw onboard --auth-choice zai-global
openclaw onboard --auth-choice zai-cn
```
-## Snippet di configurazione
+## Frammento di configurazione
```json5
{
env: { ZAI_API_KEY: "sk-..." },
- agents: { defaults: { model: { primary: "zai/glm-5" } } },
+ agents: { defaults: { model: { primary: "zai/glm-5.1" } } },
}
```
`zai-api-key` consente a OpenClaw di rilevare l'endpoint Z.AI corrispondente dalla chiave e
-applicare automaticamente il base URL corretto. Usa le scelte regionali esplicite quando
-vuoi forzare una specifica superficie Coding Plan o API generale.
+applicare automaticamente l'URL di base corretto. Usa le scelte regionali esplicite quando
+vuoi forzare una specifica superficie del Piano Coding o dell'API generale.
## Modelli GLM bundled attuali
-OpenClaw attualmente inizializza il provider bundled `zai` con questi riferimenti GLM:
+OpenClaw attualmente inizializza il provider `zai` bundled con questi riferimenti GLM:
- `glm-5.1`
- `glm-5`
@@ -70,6 +70,6 @@ OpenClaw attualmente inizializza il provider bundled `zai` con questi riferiment
## Note
-- Le versioni e la disponibilità di GLM possono cambiare; consulta la documentazione di Z.AI per le novità.
-- Il riferimento di modello bundled predefinito è `zai/glm-5`.
-- Per i dettagli del provider, vedi [/providers/zai](/providers/zai).
+- Le versioni e la disponibilità di GLM possono cambiare; controlla la documentazione di Z.AI per le informazioni più aggiornate.
+- Il riferimento al modello bundled predefinito è `zai/glm-5.1`.
+- Per i dettagli sul provider, vedi [/providers/zai](/it/providers/zai).
diff --git a/docs/it/providers/zai.md b/docs/it/providers/zai.md
index ce28fccf3..701a2fff0 100644
--- a/docs/it/providers/zai.md
+++ b/docs/it/providers/zai.md
@@ -1,34 +1,34 @@
---
read_when:
- - Vuoi usare modelli Z.AI / GLM in OpenClaw
- - Hai bisogno di una semplice configurazione di `ZAI_API_KEY`
+ - Vuoi usare Z.AI / i modelli GLM in OpenClaw
+ - Hai bisogno di una semplice configurazione con ZAI_API_KEY
summary: Usare Z.AI (modelli GLM) con OpenClaw
title: Z.AI
x-i18n:
- generated_at: "2026-04-05T14:02:36Z"
+ generated_at: "2026-04-08T06:01:02Z"
model: gpt-5.4
provider: openai
- source_hash: 48006cdd580484f0c62e2877b27a6a68d7bc44795b3e97a28213d95182d9acf9
+ source_hash: 66cbd9813ee28d202dcae34debab1b0cf9927793acb00743c1c62b48d9e381f9
source_path: providers/zai.md
workflow: 15
---
# Z.AI
-Z.AI è la piattaforma API per i modelli **GLM**. Fornisce API REST per GLM e usa API key
-per l'autenticazione. Crea la tua API key nella console Z.AI. OpenClaw usa il provider `zai`
-con una API key Z.AI.
+Z.AI è la piattaforma API per i modelli **GLM**. Fornisce API REST per GLM e usa chiavi API
+per l'autenticazione. Crea la tua chiave API nella console di Z.AI. OpenClaw usa il provider `zai`
+con una chiave API di Z.AI.
-## Configurazione CLI
+## Configurazione della CLI
```bash
-# Configurazione generica con API key e rilevamento automatico dell'endpoint
+# Configurazione generica della chiave API con rilevamento automatico dell'endpoint
openclaw onboard --auth-choice zai-api-key
-# Coding Plan Global, consigliato per gli utenti Coding Plan
+# Piano Coding Global, consigliato per gli utenti di Coding Plan
openclaw onboard --auth-choice zai-coding-global
-# Coding Plan CN (regione Cina), consigliato per gli utenti Coding Plan
+# Piano Coding CN (regione Cina), consigliato per gli utenti di Coding Plan
openclaw onboard --auth-choice zai-coding-cn
# API generale
@@ -38,22 +38,22 @@ openclaw onboard --auth-choice zai-global
openclaw onboard --auth-choice zai-cn
```
-## Esempio di configurazione
+## Frammento di configurazione
```json5
{
env: { ZAI_API_KEY: "sk-..." },
- agents: { defaults: { model: { primary: "zai/glm-5" } } },
+ agents: { defaults: { model: { primary: "zai/glm-5.1" } } },
}
```
-`zai-api-key` consente a OpenClaw di rilevare dall'API key l'endpoint Z.AI corrispondente
-e applicare automaticamente il `baseUrl` corretto. Usa le scelte regionali esplicite quando
-vuoi forzare una specifica superficie Coding Plan o API generale.
+`zai-api-key` consente a OpenClaw di rilevare l'endpoint Z.AI corrispondente dalla chiave e
+applicare automaticamente l'URL di base corretto. Usa le scelte regionali esplicite quando
+vuoi forzare una specifica superficie del Piano Coding o dell'API generale.
-## Catalogo GLM incluso
+## Catalogo GLM bundled
-Attualmente OpenClaw inizializza il provider `zai` incluso con:
+OpenClaw attualmente inizializza il provider `zai` bundled con:
- `glm-5.1`
- `glm-5`
@@ -72,11 +72,11 @@ Attualmente OpenClaw inizializza il provider `zai` incluso con:
## Note
- I modelli GLM sono disponibili come `zai/` (esempio: `zai/glm-5`).
-- Riferimento al modello incluso predefinito: `zai/glm-5`
-- Gli id `glm-5*` sconosciuti vengono comunque risolti in inoltro sul percorso del provider incluso
- sintetizzando metadati di proprietà del provider a partire dal template `glm-4.7` quando l'id
- corrisponde all'attuale struttura della famiglia GLM-5.
-- `tool_stream` è abilitato per impostazione predefinita per lo streaming delle tool call Z.AI. Imposta
+- Riferimento al modello bundled predefinito: `zai/glm-5.1`
+- Gli ID `glm-5*` sconosciuti continuano a essere risolti in inoltro sul percorso del provider bundled
+ sintetizzando metadati di proprietà del provider dal modello `glm-4.7` quando l'ID
+ corrisponde alla forma attuale della famiglia GLM-5.
+- `tool_stream` è abilitato per impostazione predefinita per lo streaming delle chiamate agli strumenti di Z.AI. Imposta
`agents.defaults.models["zai/"].params.tool_stream` su `false` per disabilitarlo.
-- Vedi [/providers/glm](/providers/glm) per la panoramica della famiglia di modelli.
-- Z.AI usa autenticazione Bearer con la tua API key.
+- Vedi [/providers/glm](/it/providers/glm) per la panoramica della famiglia di modelli.
+- Z.AI usa l'autenticazione Bearer con la tua chiave API.
diff --git a/docs/it/refactor/qa.md b/docs/it/refactor/qa.md
index d113c2dff..d1b3eb21d 100644
--- a/docs/it/refactor/qa.md
+++ b/docs/it/refactor/qa.md
@@ -1,91 +1,95 @@
---
x-i18n:
- generated_at: "2026-04-08T02:18:14Z"
+ generated_at: "2026-04-08T06:01:40Z"
model: gpt-5.4
provider: openai
- source_hash: 0e156cc8e2fe946a0423862f937754a7caa1fe7e6863b50a80bff49a1c86e1e8
+ source_hash: 4a9066b2a939c5a9ba69141d75405f0e8097997b523164340e2f0e9a0d5060dd
source_path: refactor/qa.md
workflow: 15
---
-# Refactor QA
+# Refactor di QA
Stato: migrazione fondamentale completata.
## Obiettivo
-Spostare la QA di OpenClaw da un modello a definizione suddivisa a una singola fonte di verità:
+Spostare il sistema QA di OpenClaw da un modello a definizione suddivisa a un'unica fonte di verità:
-- metadati dello scenario
+- metadati degli scenari
- prompt inviati al modello
- setup e teardown
- logica dell'harness
- asserzioni e criteri di successo
-- artifact e suggerimenti per il report
+- artifact e suggerimenti per i report
-Lo stato finale desiderato è un harness QA generico che carica potenti file di definizione degli scenari invece di codificare rigidamente la maggior parte del comportamento in TypeScript.
+Lo stato finale desiderato è un harness QA generico che carichi file di definizione degli scenari potenti invece di hardcodare la maggior parte del comportamento in TypeScript.
## Stato attuale
-La fonte di verità primaria ora si trova in `qa/scenarios.md`.
+La fonte primaria di verità ora si trova in `qa/scenarios/index.md` più un file per
+ogni scenario in `qa/scenarios/*.md`.
Implementato:
-- `qa/scenarios.md`
- - pack QA canonico
+- `qa/scenarios/index.md`
+ - metadati canonici del pacchetto QA
- identità dell'operatore
- - missione di kickoff
+ - missione di avvio
+- `qa/scenarios/*.md`
+ - un file markdown per scenario
- metadati dello scenario
- binding degli handler
+ - configurazione di esecuzione specifica dello scenario
- `extensions/qa-lab/src/scenario-catalog.ts`
- - parser del pack Markdown + validazione zod
+ - parser del pacchetto markdown + validazione zod
- `extensions/qa-lab/src/qa-agent-bootstrap.ts`
- - rendering del piano dal pack Markdown
+ - rendering del piano dal pacchetto markdown
- `extensions/qa-lab/src/qa-agent-workspace.ts`
- - inizializza file di compatibilità generati più `QA_SCENARIOS.md`
+ - genera file di compatibilità iniziali più `QA_SCENARIOS.md`
- `extensions/qa-lab/src/suite.ts`
- - seleziona scenari eseguibili tramite binding degli handler definiti nel Markdown
-- Protocollo bus QA + UI
+ - seleziona gli scenari eseguibili tramite binding degli handler definiti nel markdown
+- protocollo QA bus + UI
- allegati inline generici per il rendering di immagini/video/audio/file
Superfici ancora suddivise:
- `extensions/qa-lab/src/suite.ts`
- - gestisce ancora la maggior parte della logica eseguibile degli handler personalizzati
+ - possiede ancora la maggior parte della logica eseguibile degli handler personalizzati
- `extensions/qa-lab/src/report.ts`
- - deriva ancora la struttura del report dagli output di runtime
+ - ricava ancora la struttura del report dagli output di runtime
-Quindi la divisione della fonte di verità è stata corretta, ma l'esecuzione è ancora per lo più supportata da handler anziché essere completamente dichiarativa.
+Quindi la divisione della fonte di verità è stata risolta, ma l'esecuzione è ancora per lo più basata su handler invece di essere completamente dichiarativa.
-## Che aspetto ha realmente la superficie degli scenari
+## Come appare davvero la superficie degli scenari
-Leggendo la suite attuale si vedono alcune classi distinte di scenari.
+Leggere la suite attuale mostra alcune classi distinte di scenari.
### Interazione semplice
- baseline del canale
- baseline DM
- follow-up in thread
-- cambio modello
+- cambio di modello
- completamento dell'approvazione
-- reaction/edit/delete
+- reazione/modifica/eliminazione
-### Mutazione di configurazione e runtime
+### Configurazione e mutazione del runtime
-- config patch skill disable
-- config apply restart wake-up
-- config restart capability flip
-- controllo del drift dell'inventario runtime
+- patch di config con disabilitazione delle Skills
+- config apply con riavvio e wake-up
+- inversione della capacità al riavvio della config
+- controllo del drift dell'inventario di runtime
### Asserzioni su filesystem e repository
-- report di individuazione source/docs
-- build Lobster Invaders
-- lookup di artifact immagine generata
+- report di rilevamento source/docs
+- build di Lobster Invaders
+- ricerca di artifact di immagini generate
### Orchestrazione della memoria
-- memory recall
+- richiamo della memoria
- strumenti di memoria nel contesto del canale
- fallback in caso di errore della memoria
- ranking della memoria di sessione
@@ -96,56 +100,57 @@ Leggendo la suite attuale si vedono alcune classi distinte di scenari.
- chiamata MCP plugin-tools
- visibilità delle Skills
-- installazione a caldo delle skill
+- installazione a caldo delle Skills
- generazione nativa di immagini
- roundtrip delle immagini
- comprensione di immagini da allegato
-### Multi-turn e multi-attore
+### Multi-turno e multi-attore
-- handoff a subagent
+- handoff del subagent
- sintesi fanout del subagent
-- flussi in stile recovery dopo riavvio
+- flussi in stile recupero dopo riavvio
Queste categorie sono importanti perché guidano i requisiti della DSL. Un elenco piatto di prompt + testo atteso non è sufficiente.
## Direzione
-### Singola fonte di verità
+### Unica fonte di verità
-Usare `qa/scenarios.md` come fonte di verità creata manualmente.
+Usare `qa/scenarios/index.md` più `qa/scenarios/*.md` come fonte di verità
+scritta.
-Il pack dovrebbe restare:
+Il pacchetto deve rimanere:
-- leggibile per gli umani in review
-- interpretabile dalla macchina
-- abbastanza ricco da guidare:
+- leggibile dagli umani in review
+- analizzabile dalle macchine
+- sufficientemente ricco da guidare:
- esecuzione della suite
- - bootstrap del workspace QA
- - metadati della UI di QA Lab
- - prompt di docs/discovery
- - generazione del report
+ - bootstrap dello spazio di lavoro QA
+ - metadati dell'interfaccia QA Lab
+ - prompt per documentazione/discovery
+ - generazione dei report
### Formato di authoring preferito
-Usare Markdown come formato di primo livello, con YAML strutturato al suo interno.
+Usare markdown come formato di livello superiore, con YAML strutturato al suo interno.
Struttura consigliata:
-- YAML frontmatter
+- frontmatter YAML
- id
- title
- surface
- tags
- - docs refs
- - code refs
+ - riferimenti docs
+ - riferimenti codice
- override di modello/provider
- prerequisiti
- sezioni in prosa
- - objective
- - notes
- - debugging hints
-- blocchi YAML delimitati
+ - obiettivo
+ - note
+ - suggerimenti per il debugging
+- blocchi YAML fenced
- setup
- steps
- assertions
@@ -153,11 +158,11 @@ Struttura consigliata:
Questo offre:
-- migliore leggibilità nelle PR rispetto a grandi file JSON
-- contesto più ricco rispetto al puro YAML
+- migliore leggibilità nelle PR rispetto a enormi file JSON
+- contesto più ricco rispetto al solo YAML
- parsing rigoroso e validazione zod
-Il JSON grezzo è accettabile solo come forma intermedia generata.
+Il JSON grezzo è accettabile solo come formato intermedio generato.
## Forma proposta del file di scenario
@@ -234,7 +239,7 @@ Verify generated media is reattached on the follow-up turn.
## Capacità del runner che la DSL deve coprire
-In base alla suite attuale, il runner generico ha bisogno di più della sola esecuzione dei prompt.
+In base alla suite attuale, il runner generico ha bisogno di più della semplice esecuzione dei prompt.
### Azioni di ambiente e setup
@@ -309,127 +314,128 @@ Esempi dalla suite attuale:
- creare un thread, poi riutilizzare `threadId`
- creare una sessione, poi riutilizzare `sessionKey`
- generare un'immagine, poi allegare il file al turno successivo
-- generare una stringa wake marker, poi verificare che compaia più tardi
+- generare una stringa marcatore di wake, poi verificare che compaia in seguito
Capacità necessarie:
- `saveAs`
- `${vars.name}`
- `${artifacts.name}`
-- riferimenti tipizzati per percorsi, chiavi di sessione, id thread, marker, output dei tool
+- riferimenti tipizzati per percorsi, chiavi di sessione, id dei thread, marcatori, output dei tool
-Senza supporto per le variabili, l'harness continuerà a far trapelare la logica degli scenari in TypeScript.
+Senza supporto per le variabili, l'harness continuerà a far rifluire la logica degli scenari in TypeScript.
## Cosa dovrebbe restare come via di fuga
-Un runner completamente dichiarativo puro non è realistico nella fase 1.
+Un runner completamente dichiarativo non è realistico nella fase 1.
-Alcuni scenari sono intrinsecamente pesanti dal punto di vista dell'orchestrazione:
+Alcuni scenari sono intrinsecamente pesanti sul piano dell'orchestrazione:
- sweep di dreaming della memoria
-- config apply restart wake-up
-- config restart capability flip
-- risoluzione dell'artifact immagine generata tramite timestamp/percorso
+- config apply con riavvio e wake-up
+- inversione della capacità al riavvio della config
+- risoluzione dell'artifact di immagine generato per timestamp/percorso
- valutazione del discovery-report
-Per ora questi dovrebbero usare handler personalizzati espliciti.
+Per ora, questi dovrebbero usare handler personalizzati espliciti.
Regola consigliata:
- 85-90% dichiarativo
-- step `customHandler` espliciti per il resto più difficile
-- solo custom handler con nome e documentati
+- passaggi `customHandler` espliciti per la parte restante più difficile
+- solo handler personalizzati nominati e documentati
- nessun codice inline anonimo nel file di scenario
-Questo mantiene pulito il motore generico pur consentendo di progredire.
+Questo mantiene pulito il motore generico pur consentendo comunque progressi.
-## Cambio architetturale
+## Cambiamento architetturale
### Attuale
-Il Markdown degli scenari è già la fonte di verità per:
+Il markdown degli scenari è già la fonte di verità per:
- esecuzione della suite
-- file di bootstrap del workspace
-- catalogo degli scenari della UI di QA Lab
-- metadati del report
+- file bootstrap dello spazio di lavoro
+- catalogo degli scenari dell'interfaccia QA Lab
+- metadati dei report
- prompt di discovery
Compatibilità generata:
-- il workspace inizializzato include ancora `QA_KICKOFF_TASK.md`
-- il workspace inizializzato include ancora `QA_SCENARIO_PLAN.md`
-- il workspace inizializzato ora include anche `QA_SCENARIOS.md`
+- lo spazio di lavoro inizializzato include ancora `QA_KICKOFF_TASK.md`
+- lo spazio di lavoro inizializzato include ancora `QA_SCENARIO_PLAN.md`
+- lo spazio di lavoro inizializzato ora include anche `QA_SCENARIOS.md`
## Piano di refactor
### Fase 1: loader e schema
-Completata.
+Fatto.
-- aggiunto `qa/scenarios.md`
-- aggiunto parser per contenuti pack YAML Markdown con nome
+- aggiunto `qa/scenarios/index.md`
+- suddivisi gli scenari in `qa/scenarios/*.md`
+- aggiunto il parser per il contenuto YAML markdown nominato del pacchetto
- validato con zod
-- passati i consumer al pack parsato
-- rimossi `qa/seed-scenarios.json` e `qa/QA_KICKOFF_TASK.md` a livello repository
+- passati i consumer al pacchetto analizzato
+- rimossi `qa/seed-scenarios.json` e `qa/QA_KICKOFF_TASK.md` a livello di repository
### Fase 2: motore generico
-- dividere `extensions/qa-lab/src/suite.ts` in:
+- suddividere `extensions/qa-lab/src/suite.ts` in:
- loader
- motore
- - registro delle azioni
- - registro delle asserzioni
- - custom handler
+ - registry delle azioni
+ - registry delle asserzioni
+ - handler personalizzati
- mantenere le funzioni helper esistenti come operazioni del motore
Deliverable:
- il motore esegue scenari dichiarativi semplici
-Iniziare con scenari che sono per lo più prompt + attesa + asserzione:
+Iniziare con scenari che sono soprattutto prompt + attesa + asserzione:
- follow-up in thread
- comprensione di immagini da allegato
-- visibilità e invocazione delle skill
+- visibilità e invocazione delle Skills
- baseline del canale
Deliverable:
-- primi veri scenari definiti in Markdown distribuiti tramite il motore generico
+- primi scenari reali definiti nel markdown distribuiti tramite il motore generico
### Fase 4: migrare scenari di media complessità
-- roundtrip di generazione immagini
+- roundtrip di generazione di immagini
- strumenti di memoria nel contesto del canale
- ranking della memoria di sessione
-- handoff a subagent
+- handoff del subagent
- sintesi fanout del subagent
Deliverable:
-- variabili, artifact, asserzioni sui tool, asserzioni sui request log verificati nella pratica
+- variabili, artifact, asserzioni sui tool e asserzioni sul request log verificati nella pratica
-### Fase 5: mantenere gli scenari difficili su custom handler
+### Fase 5: mantenere gli scenari difficili su handler personalizzati
- sweep di dreaming della memoria
-- config apply restart wake-up
-- config restart capability flip
-- runtime inventory drift
+- config apply con riavvio e wake-up
+- inversione della capacità al riavvio della config
+- drift dell'inventario di runtime
Deliverable:
-- stesso formato di authoring, ma con blocchi di step personalizzati espliciti dove necessario
+- stesso formato di authoring, ma con blocchi di passaggi personalizzati espliciti dove necessario
### Fase 6: eliminare la mappa degli scenari hardcoded
-Quando la copertura del pack sarà abbastanza buona:
+Quando la copertura del pacchetto sarà sufficientemente buona:
-- rimuovere la maggior parte del branching TypeScript specifico per scenario da `extensions/qa-lab/src/suite.ts`
+- rimuovere la maggior parte della logica TypeScript specifica per scenario da `extensions/qa-lab/src/suite.ts`
## Supporto Fake Slack / Rich Media
-L'attuale bus QA è incentrato sul testo.
+L'attuale QA bus è orientato principalmente al testo.
File rilevanti:
@@ -439,17 +445,17 @@ File rilevanti:
- `extensions/qa-lab/src/bus-server.ts`
- `extensions/qa-lab/web/src/ui-render.ts`
-Oggi il bus QA supporta:
+Oggi il QA bus supporta:
- testo
-- reaction
+- reazioni
- thread
-Non modella ancora allegati media inline.
+Non modella ancora gli allegati multimediali inline.
-### Contratto di transport necessario
+### Contratto di trasporto necessario
-Aggiungere un modello generico di allegato per il bus QA:
+Aggiungere un modello generico di allegato QA bus:
```ts
type QaBusAttachment = {
@@ -474,61 +480,61 @@ Poi aggiungere `attachments?: QaBusAttachment[]` a:
- `QaBusInboundMessageInput`
- `QaBusOutboundMessageInput`
-### Perché prima un approccio generico
+### Perché prima il generico
Non costruire un modello media solo per Slack.
Invece:
-- un unico modello di transport QA generico
-- più renderer sopra di esso
- - l'attuale chat di QA Lab
- - il futuro fake Slack web
- - qualsiasi altra vista di fake transport
+- un unico modello di trasporto QA generico
+- più renderer costruiti sopra di esso
+ - chat attuale di QA Lab
+ - futuro fake Slack web
+ - qualsiasi altra vista di trasporto fittizio
-Questo evita logica duplicata e consente agli scenari media di restare indipendenti dal transport.
+Questo evita la logica duplicata e permette agli scenari multimediali di restare agnostici rispetto al trasporto.
### Lavoro UI necessario
-Aggiornare la UI QA per renderizzare:
+Aggiornare l'interfaccia QA per renderizzare:
- anteprima immagine inline
- player audio inline
- player video inline
-- chip allegato file
+- chip per allegato file
-L'attuale UI può già renderizzare thread e reaction, quindi il rendering degli allegati dovrebbe sovrapporsi allo stesso modello di card dei messaggi.
+L'interfaccia attuale può già renderizzare thread e reazioni, quindi il rendering degli allegati dovrebbe stratificarsi sullo stesso modello di scheda messaggio.
-### Lavoro sugli scenari abilitato dal transport media
+### Lavoro sugli scenari abilitato dal trasporto media
-Una volta che gli allegati passano attraverso il bus QA, possiamo aggiungere scenari fake-chat più ricchi:
+Una volta che gli allegati fluiscono attraverso il QA bus, possiamo aggiungere scenari fake-chat più ricchi:
-- reply con immagine inline in fake Slack
+- risposta con immagine inline in fake Slack
- comprensione di allegati audio
- comprensione di allegati video
- ordinamento misto degli allegati
-- reply in thread con media mantenuti
+- risposta in thread con media mantenuti
## Raccomandazione
Il prossimo blocco di implementazione dovrebbe essere:
-1. aggiungere loader di scenari Markdown + schema zod
-2. generare il catalogo attuale dal Markdown
+1. aggiungere loader degli scenari markdown + schema zod
+2. generare il catalogo attuale dal markdown
3. migrare prima alcuni scenari semplici
-4. aggiungere supporto generico agli allegati del bus QA
-5. renderizzare immagini inline nella UI QA
-6. poi espandere ad audio e video
+4. aggiungere supporto generico agli allegati QA bus
+5. renderizzare immagini inline nell'interfaccia QA
+6. poi estendere ad audio e video
Questo è il percorso più piccolo che dimostra entrambi gli obiettivi:
-- QA generica definita in Markdown
-- superfici di messaggistica simulata più ricche
+- QA generico definito nel markdown
+- superfici di messaggistica fittizia più ricche
-## Domande aperte
+## Questioni aperte
-- se i file di scenario debbano consentire template di prompt Markdown incorporati con interpolazione di variabili
+- se i file di scenario debbano consentire template di prompt markdown incorporati con interpolazione di variabili
- se setup/cleanup debbano essere sezioni nominate o semplicemente elenchi ordinati di azioni
- se i riferimenti agli artifact debbano essere fortemente tipizzati nello schema o basati su stringhe
-- se i custom handler debbano vivere in un unico registro o in registri per superficie
+- se gli handler personalizzati debbano risiedere in un unico registry o in registry per superficie
- se il file di compatibilità JSON generato debba restare versionato durante la migrazione
diff --git a/docs/it/tools/slash-commands.md b/docs/it/tools/slash-commands.md
index 3b8190a14..a7b71bbd0 100644
--- a/docs/it/tools/slash-commands.md
+++ b/docs/it/tools/slash-commands.md
@@ -1,14 +1,14 @@
---
read_when:
- - Uso o configurazione dei comandi chat
- - Debug dell'instradamento dei comandi o dei permessi
+ - Usare o configurare i comandi di chat
+ - Eseguire il debug dell'instradamento dei comandi o delle autorizzazioni
summary: 'Comandi slash: testo vs nativi, configurazione e comandi supportati'
-title: Comandi slash
+title: Comandi Slash
x-i18n:
- generated_at: "2026-04-06T03:13:56Z"
+ generated_at: "2026-04-08T06:01:59Z"
model: gpt-5.4
provider: openai
- source_hash: 417e35b9ddd87f25f6c019111b55b741046ea11039dde89210948185ced5696d
+ source_hash: 4a7ee7f1a8012058279b9e632889b291d4e659e4ec81209ca8978afbb9ad4b96
source_path: tools/slash-commands.md
workflow: 15
---
@@ -16,17 +16,17 @@ x-i18n:
# Comandi slash
I comandi sono gestiti dal Gateway. La maggior parte dei comandi deve essere inviata come messaggio **autonomo** che inizia con `/`.
-Il comando chat bash solo host usa `! ` (con `/bash ` come alias).
+Il comando bash di chat solo host usa `! ` (con `/bash ` come alias).
Esistono due sistemi correlati:
-- **Comandi**: messaggi autonomi `/...`.
+- **Comandi**: messaggi `/...` autonomi.
- **Direttive**: `/think`, `/fast`, `/verbose`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`.
- Le direttive vengono rimosse dal messaggio prima che il modello lo veda.
- Nei normali messaggi di chat (non composti solo da direttive), vengono trattate come “suggerimenti inline” e **non** rendono persistenti le impostazioni della sessione.
- - Nei messaggi composti solo da direttive (il messaggio contiene solo direttive), diventano persistenti per la sessione e rispondono con una conferma.
- - Le direttive vengono applicate solo per i **mittenti autorizzati**. Se `commands.allowFrom` è impostato, è l'unica
- allowlist usata; altrimenti l'autorizzazione deriva dalle allowlist/pairing del canale più `commands.useAccessGroups`.
+ - Nei messaggi composti solo da direttive (il messaggio contiene solo direttive), rendono persistenti le impostazioni nella sessione e rispondono con una conferma.
+ - Le direttive vengono applicate solo ai **mittenti autorizzati**. Se `commands.allowFrom` è impostato, è l'unica
+ allowlist usata; altrimenti l'autorizzazione deriva dalle allowlist del canale/dall'abbinamento più `commands.useAccessGroups`.
I mittenti non autorizzati vedono le direttive trattate come testo normale.
Esistono anche alcune **scorciatoie inline** (solo per mittenti in allowlist/autorizzati): `/help`, `/commands`, `/status`, `/whoami` (`/id`).
@@ -46,7 +46,10 @@ Vengono eseguite immediatamente, vengono rimosse prima che il modello veda il me
mcp: false,
plugins: false,
debug: false,
- restart: false,
+ restart: true,
+ ownerAllowFrom: ["discord:123456789012345678"],
+ ownerDisplay: "raw",
+ ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}",
allowFrom: {
"*": ["user1"],
discord: ["user:123"],
@@ -56,143 +59,179 @@ Vengono eseguite immediatamente, vengono rimosse prima che il modello veda il me
}
```
-- `commands.text` (predefinito `true`) abilita il parsing di `/...` nei messaggi chat.
- - Sulle superfici senza comandi nativi (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), i comandi testuali continuano a funzionare anche se imposti questo valore su `false`.
+- `commands.text` (predefinito `true`) abilita il parsing di `/...` nei messaggi di chat.
+ - Nelle superfici senza comandi nativi (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams), i comandi testuali continuano a funzionare anche se imposti questo valore su `false`.
- `commands.native` (predefinito `"auto"`) registra i comandi nativi.
- - Auto: attivo per Discord/Telegram; disattivo per Slack (finché non aggiungi slash command); ignorato per i provider senza supporto nativo.
- - Imposta `channels.discord.commands.native`, `channels.telegram.commands.native` o `channels.slack.commands.native` per fare override per provider (bool o `"auto"`).
- - `false` cancella i comandi registrati in precedenza su Discord/Telegram all'avvio. I comandi Slack sono gestiti nell'app Slack e non vengono rimossi automaticamente.
-- `commands.nativeSkills` (predefinito `"auto"`) registra i comandi **Skill** in modo nativo quando supportato.
- - Auto: attivo per Discord/Telegram; disattivo per Slack (Slack richiede la creazione di uno slash command per ogni Skill).
- - Imposta `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` o `channels.slack.commands.nativeSkills` per fare override per provider (bool o `"auto"`).
-- `commands.bash` (predefinito `false`) abilita `! ` per eseguire comandi shell host (`/bash ` è un alias; richiede allowlist `tools.elevated`).
-- `commands.bashForegroundMs` (predefinito `2000`) controlla per quanto tempo bash attende prima di passare alla modalità background (`0` manda subito in background).
+ - Auto: attivo per Discord/Telegram; disattivo per Slack (finché non aggiungi i comandi slash); ignorato per i provider senza supporto nativo.
+ - Imposta `channels.discord.commands.native`, `channels.telegram.commands.native` o `channels.slack.commands.native` per eseguire un override per provider (bool o `"auto"`).
+ - `false` cancella all'avvio i comandi registrati in precedenza su Discord/Telegram. I comandi Slack sono gestiti nell'app Slack e non vengono rimossi automaticamente.
+- `commands.nativeSkills` (predefinito `"auto"`) registra in modo nativo i comandi **Skill** quando supportati.
+ - Auto: attivo per Discord/Telegram; disattivo per Slack (Slack richiede la creazione di un comando slash per ogni skill).
+ - Imposta `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` o `channels.slack.commands.nativeSkills` per eseguire un override per provider (bool o `"auto"`).
+- `commands.bash` (predefinito `false`) abilita `! ` per eseguire comandi shell sull'host (`/bash ` è un alias; richiede le allowlist di `tools.elevated`).
+- `commands.bashForegroundMs` (predefinito `2000`) controlla per quanto tempo bash attende prima di passare alla modalità in background (`0` manda immediatamente in background).
- `commands.config` (predefinito `false`) abilita `/config` (legge/scrive `openclaw.json`).
- `commands.mcp` (predefinito `false`) abilita `/mcp` (legge/scrive la configurazione MCP gestita da OpenClaw sotto `mcp.servers`).
-- `commands.plugins` (predefinito `false`) abilita `/plugins` (discovery/stato dei plugin più controlli di installazione + abilitazione/disabilitazione).
+- `commands.plugins` (predefinito `false`) abilita `/plugins` (rilevamento/stato dei plugin più controlli di installazione + abilitazione/disabilitazione).
- `commands.debug` (predefinito `false`) abilita `/debug` (override solo runtime).
-- `commands.allowFrom` (opzionale) imposta una allowlist per provider per l'autorizzazione ai comandi. Quando è configurata, è l'unica origine di autorizzazione per comandi e direttive (le allowlist/pairing del canale e `commands.useAccessGroups`
- vengono ignorati). Usa `"*"` come valore predefinito globale; le chiavi specifiche del provider lo sovrascrivono.
-- `commands.useAccessGroups` (predefinito `true`) applica allowlist/policy per i comandi quando `commands.allowFrom` non è impostato.
+- `commands.restart` (predefinito `true`) abilita `/restart` più le azioni degli strumenti di riavvio del gateway.
+- `commands.ownerAllowFrom` (opzionale) imposta la allowlist esplicita del proprietario per le superfici di comandi/strumenti riservate al proprietario. È separata da `commands.allowFrom`.
+- `commands.ownerDisplay` controlla come gli ID proprietario compaiono nel prompt di sistema: `raw` o `hash`.
+- `commands.ownerDisplaySecret` imposta facoltativamente il segreto HMAC usato quando `commands.ownerDisplay="hash"`.
+- `commands.allowFrom` (opzionale) imposta una allowlist per provider per l'autorizzazione dei comandi. Quando configurata, è l'unica
+ fonte di autorizzazione per comandi e direttive (le allowlist del canale/l'abbinamento e `commands.useAccessGroups`
+ vengono ignorati). Usa `"*"` per un valore predefinito globale; le chiavi specifiche del provider lo sovrascrivono.
+- `commands.useAccessGroups` (predefinito `true`) applica allowlist/policy ai comandi quando `commands.allowFrom` non è impostato.
## Elenco dei comandi
-Testo + nativi (quando abilitati):
+Fonte di verità attuale:
-- `/help`
-- `/commands`
-- `/tools [compact|verbose]` (mostra cosa l'agent corrente può usare in questo momento; `verbose` aggiunge descrizioni)
-- `/skill [input]` (esegue una Skill per nome)
-- `/status` (mostra lo stato corrente; include utilizzo/quota del provider per il provider del modello corrente quando disponibile)
-- `/tasks` (elenca le attività in background per la sessione corrente; mostra dettagli delle attività attive e recenti con conteggi di fallback locali all'agent)
-- `/allowlist` (elenca/aggiunge/rimuove voci di allowlist)
-- `/approve ` (risolve i prompt di approvazione exec; usa il messaggio di approvazione in sospeso per le decisioni disponibili)
-- `/context [list|detail|json]` (spiega il “contesto”; `detail` mostra dimensioni per file + per strumento + per Skill + prompt di sistema)
-- `/btw ` (fa una domanda laterale effimera sulla sessione corrente senza modificare il contesto futuro della sessione; consulta [/tools/btw](/it/tools/btw))
-- `/export-session [path]` (alias: `/export`) (esporta la sessione corrente in HTML con il prompt di sistema completo)
-- `/whoami` (mostra il tuo sender id; alias: `/id`)
-- `/session idle ` (gestisce il disallineamento automatico per inattività per i binding dei thread focalizzati)
-- `/session max-age ` (gestisce il disallineamento automatico hard max-age per i binding dei thread focalizzati)
-- `/subagents list|kill|log|info|send|steer|spawn` (ispeziona, controlla o avvia esecuzioni di sub-agent per la sessione corrente)
-- `/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions` (ispeziona e controlla le sessioni runtime ACP)
-- `/agents` (elenca gli agent associati ai thread per questa sessione)
-- `/focus ` (Discord: associa questo thread, o un nuovo thread, a una destinazione session/subagent)
-- `/unfocus` (Discord: rimuove l'associazione corrente del thread)
-- `/kill ` (interrompe immediatamente uno o tutti i sub-agent in esecuzione per questa sessione; nessun messaggio di conferma)
-- `/steer ` (indirizza immediatamente un sub-agent in esecuzione: durante l'esecuzione quando possibile, altrimenti interrompe il lavoro corrente e riavvia sul messaggio di indirizzamento)
-- `/tell ` (alias per `/steer`)
-- `/config show|get|set|unset` (rende persistente la configurazione su disco, solo proprietario; richiede `commands.config: true`)
-- `/mcp show|get|set|unset` (gestisce la configurazione del server MCP OpenClaw, solo proprietario; richiede `commands.mcp: true`)
-- `/plugins list|show|get|install|enable|disable` (ispeziona i plugin rilevati, installa nuovi plugin e attiva/disattiva l'abilitazione; solo proprietario per le scritture; richiede `commands.plugins: true`)
- - `/plugin` è un alias per `/plugins`.
- - `/plugin install ` accetta le stesse specifiche di plugin di `openclaw plugins install`: percorso locale/archivio, pacchetto npm o `clawhub:`.
- - Le scritture di abilitazione/disabilitazione rispondono comunque con un suggerimento di riavvio. Su un gateway foreground monitorato, OpenClaw può eseguire automaticamente quel riavvio subito dopo la scrittura.
-- `/debug show|set|unset|reset` (override runtime, solo proprietario; richiede `commands.debug: true`)
-- `/usage off|tokens|full|cost` (footer di utilizzo per risposta o riepilogo locale dei costi)
-- `/tts off|always|inbound|tagged|status|provider|limit|summary|audio` (controlla TTS; consulta [/tts](/it/tools/tts))
- - Discord: il comando nativo è `/voice` (Discord riserva `/tts`); il testo `/tts` continua a funzionare.
-- `/stop`
-- `/restart`
-- `/dock-telegram` (alias: `/dock_telegram`) (sposta le risposte su Telegram)
-- `/dock-discord` (alias: `/dock_discord`) (sposta le risposte su Discord)
-- `/dock-slack` (alias: `/dock_slack`) (sposta le risposte su Slack)
-- `/activation mention|always` (solo gruppi)
-- `/send on|off|inherit` (solo proprietario)
-- `/reset` o `/new [model]` (suggerimento modello opzionale; il resto viene inoltrato)
-- `/think ` (scelte dinamiche per modello/provider; alias: `/thinking`, `/t`)
-- `/fast status|on|off` (omettere l'argomento mostra lo stato effettivo corrente della modalità fast)
-- `/verbose on|full|off` (alias: `/v`)
-- `/reasoning on|off|stream` (alias: `/reason`; quando è attivo, invia un messaggio separato prefissato `Reasoning:`; `stream` = solo bozza Telegram)
-- `/elevated on|off|ask|full` (alias: `/elev`; `full` salta le approvazioni exec)
-- `/exec host= security= ask= node=` (invia `/exec` per mostrare il valore corrente)
-- `/model ` (alias: `/models`; oppure `/` da `agents.defaults.models.*.alias`)
-- `/queue ` (più opzioni come `debounce:2s cap:25 drop:summarize`; invia `/queue` per vedere le impostazioni correnti)
-- `/bash ` (solo host; alias per `! `; richiede `commands.bash: true` + allowlist `tools.elevated`)
-- `/dreaming [on|off|status|help]` (attiva/disattiva dreaming globale o mostra lo stato; consulta [Dreaming](/concepts/dreaming))
+- i built-in core provengono da `src/auto-reply/commands-registry.shared.ts`
+- i comandi dock generati provengono da `src/auto-reply/commands-registry.data.ts`
+- i comandi dei plugin provengono dalle chiamate `registerCommand()` dei plugin
+- la disponibilità effettiva sul tuo gateway dipende comunque dai flag di configurazione, dalla superficie del canale e dai plugin installati/abilitati
-Solo testo:
+### Comandi built-in core
-- `/compact [instructions]` (consulta [/concepts/compaction](/it/concepts/compaction))
-- `! ` (solo host; uno alla volta; usa `!poll` + `!stop` per job di lunga durata)
-- `!poll` (controlla output / stato; accetta `sessionId` opzionale; funziona anche `/bash poll`)
-- `!stop` (interrompe il job bash in esecuzione; accetta `sessionId` opzionale; funziona anche `/bash stop`)
+Comandi built-in disponibili oggi:
+
+- `/new [model]` avvia una nuova sessione; `/reset` è l'alias di reset.
+- `/compact [instructions]` compatta il contesto della sessione. Vedi [/concepts/compaction](/it/concepts/compaction).
+- `/stop` interrompe l'esecuzione corrente.
+- `/session idle ` e `/session max-age ` gestiscono la scadenza del binding del thread.
+- `/think ` imposta il livello di thinking. Alias: `/thinking`, `/t`.
+- `/verbose on|off|full` attiva/disattiva l'output verboso. Alias: `/v`.
+- `/fast [status|on|off]` mostra o imposta la modalità veloce.
+- `/reasoning [on|off|stream]` attiva/disattiva la visibilità del reasoning. Alias: `/reason`.
+- `/elevated [on|off|ask|full]` attiva/disattiva la modalità elevata. Alias: `/elev`.
+- `/exec host= security= ask= node=` mostra o imposta i valori predefiniti di exec.
+- `/model [name|#|status]` mostra o imposta il modello.
+- `/models [provider] [page] [limit=|size=|all]` elenca i provider o i modelli di un provider.
+- `/queue ` gestisce il comportamento della coda (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`) più opzioni come `debounce:2s cap:25 drop:summarize`.
+- `/help` mostra il riepilogo breve della guida.
+- `/commands` mostra il catalogo dei comandi generato.
+- `/tools [compact|verbose]` mostra cosa può usare in questo momento l'agente corrente.
+- `/status` mostra lo stato del runtime, incluso l'uso/quota del provider quando disponibile.
+- `/tasks` elenca le attività in background attive/recenti per la sessione corrente.
+- `/context [list|detail|json]` spiega come viene assemblato il contesto.
+- `/export-session [path]` esporta la sessione corrente in HTML. Alias: `/export`.
+- `/whoami` mostra il tuo ID mittente. Alias: `/id`.
+- `/skill [input]` esegue una skill per nome.
+- `/allowlist [list|add|remove] ...` gestisce le voci della allowlist. Solo testo.
+- `/approve ` risolve le richieste di approvazione exec.
+- `/btw ` pone una domanda laterale senza modificare il contesto futuro della sessione. Vedi [/tools/btw](/it/tools/btw).
+- `/subagents list|kill|log|info|send|steer|spawn` gestisce le esecuzioni dei sub-agent per la sessione corrente.
+- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` gestisce le sessioni ACP e le opzioni del runtime.
+- `/focus ` collega il thread Discord corrente o il topic/conversation Telegram a un target di sessione.
+- `/unfocus` rimuove il binding corrente.
+- `/agents` elenca gli agenti collegati al thread per la sessione corrente.
+- `/kill ` interrompe uno o tutti i sub-agent in esecuzione.
+- `/steer ` invia indicazioni a un sub-agent in esecuzione. Alias: `/tell`.
+- `/config show|get|set|unset` legge o scrive `openclaw.json`. Solo proprietario. Richiede `commands.config: true`.
+- `/mcp show|get|set|unset` legge o scrive la configurazione del server MCP gestita da OpenClaw sotto `mcp.servers`. Solo proprietario. Richiede `commands.mcp: true`.
+- `/plugins list|inspect|show|get|install|enable|disable` ispeziona o modifica lo stato dei plugin. `/plugin` è un alias. Solo proprietario per le scritture. Richiede `commands.plugins: true`.
+- `/debug show|set|unset|reset` gestisce gli override di configurazione solo runtime. Solo proprietario. Richiede `commands.debug: true`.
+- `/usage off|tokens|full|cost` controlla il piè di pagina di utilizzo per risposta oppure stampa un riepilogo locale dei costi.
+- `/tts on|off|status|provider|limit|summary|audio|help` controlla TTS. Vedi [/tools/tts](/it/tools/tts).
+- `/restart` riavvia OpenClaw quando abilitato. Predefinito: abilitato; imposta `commands.restart: false` per disabilitarlo.
+- `/activation mention|always` imposta la modalità di attivazione del gruppo.
+- `/send on|off|inherit` imposta la policy di invio. Solo proprietario.
+- `/bash ` esegue un comando shell sull'host. Solo testo. Alias: `! `. Richiede `commands.bash: true` più le allowlist di `tools.elevated`.
+- `!poll [sessionId]` controlla un job bash in background.
+- `!stop [sessionId]` arresta un job bash in background.
+
+### Comandi dock generati
+
+I comandi dock vengono generati dai plugin canale con supporto per i comandi nativi. Set bundled attuale:
+
+- `/dock-discord` (alias: `/dock_discord`)
+- `/dock-mattermost` (alias: `/dock_mattermost`)
+- `/dock-slack` (alias: `/dock_slack`)
+- `/dock-telegram` (alias: `/dock_telegram`)
+
+### Comandi dei plugin bundled
+
+I plugin bundled possono aggiungere altri comandi slash. Comandi bundled attuali in questo repo:
+
+- `/dreaming [on|off|status|help]` attiva/disattiva il memory dreaming. Vedi [Dreaming](/it/concepts/dreaming).
+- `/pair [qr|status|pending|approve|cleanup|notify]` gestisce il flusso di abbinamento/configurazione del dispositivo. Vedi [Pairing](/it/channels/pairing).
+- `/phone status|arm [duration]|disarm` abilita temporaneamente i comandi del nodo telefono ad alto rischio.
+- `/voice status|list [limit]|set ` gestisce la configurazione della voce Talk. Su Discord, il nome del comando nativo è `/talkvoice`.
+- `/card ...` invia preset di rich card LINE. Vedi [LINE](/it/channels/line).
+- Comandi solo QQBot:
+ - `/bot-ping`
+ - `/bot-version`
+ - `/bot-help`
+ - `/bot-upgrade`
+ - `/bot-logs`
+
+### Comandi skill dinamici
+
+Le skill invocabili dall'utente sono esposte anche come comandi slash:
+
+- `/skill [input]` funziona sempre come entrypoint generico.
+- le skill possono anche comparire come comandi diretti come `/prose` quando la skill/il plugin li registra.
+- la registrazione nativa dei comandi skill è controllata da `commands.nativeSkills` e `channels..commands.nativeSkills`.
Note:
-- I comandi accettano un `:` opzionale tra comando e argomenti (ad esempio `/think: high`, `/send: on`, `/help:`).
-- `/new ` accetta un alias modello, `provider/model` o un nome provider (corrispondenza fuzzy); se non c'è corrispondenza, il testo viene trattato come corpo del messaggio.
-- Per il dettaglio completo dell'utilizzo per provider, usa `openclaw status --usage`.
+- I comandi accettano un `:` facoltativo tra il comando e gli argomenti (ad esempio `/think: high`, `/send: on`, `/help:`).
+- `/new ` accetta un alias di modello, `provider/model` o un nome provider (corrispondenza fuzzy); se non c'è corrispondenza, il testo viene trattato come corpo del messaggio.
+- Per il dettaglio completo dell'utilizzo del provider, usa `openclaw status --usage`.
- `/allowlist add|remove` richiede `commands.config=true` e rispetta `configWrites` del canale.
-- Nei canali multi-account, anche `/allowlist --account ` con target di configurazione e `/config set channels..accounts....` rispettano `configWrites` dell'account di destinazione.
-- `/usage` controlla il footer di utilizzo per risposta; `/usage cost` stampa un riepilogo locale dei costi dai log di sessione OpenClaw.
+- Nei canali multi-account, anche `/allowlist --account ` mirato alla configurazione e `/config set channels..accounts....` rispettano `configWrites` dell'account di destinazione.
+- `/usage` controlla il piè di pagina di utilizzo per risposta; `/usage cost` stampa un riepilogo locale dei costi dai log di sessione OpenClaw.
- `/restart` è abilitato per impostazione predefinita; imposta `commands.restart: false` per disabilitarlo.
+- `/plugins install ` accetta le stesse specifiche di plugin di `openclaw plugins install`: percorso/archivio locale, pacchetto npm o `clawhub:`.
+- `/plugins enable|disable` aggiorna la configurazione del plugin e può richiedere un riavvio.
- Comando nativo solo Discord: `/vc join|leave|status` controlla i canali vocali (richiede `channels.discord.voice` e comandi nativi; non disponibile come testo).
-- I comandi di binding dei thread Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) richiedono che i binding effettivi dei thread siano abilitati (`session.threadBindings.enabled` e/o `channels.discord.threadBindings.enabled`).
-- Riferimento dei comandi ACP e comportamento runtime: [ACP Agents](/it/tools/acp-agents).
-- `/verbose` è pensato per il debug e per una visibilità aggiuntiva; mantienilo **disattivato** nell'uso normale.
-- `/fast on|off` rende persistente un override di sessione. Usa l'opzione `inherit` nell'interfaccia Sessions per cancellarlo e tornare ai valori predefiniti della configurazione.
-- `/fast` è specifico del provider: OpenAI/OpenAI Codex lo mappano a `service_tier=priority` sugli endpoint nativi Responses, mentre le richieste Anthropic pubbliche dirette, incluso il traffico autenticato OAuth inviato a `api.anthropic.com`, lo mappano a `service_tier=auto` o `standard_only`. Consulta [OpenAI](/it/providers/openai) e [Anthropic](/it/providers/anthropic).
-- I riepiloghi dei guasti degli strumenti vengono comunque mostrati quando rilevanti, ma il testo dettagliato del guasto viene incluso solo quando `/verbose` è `on` o `full`.
+- I comandi di binding del thread Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) richiedono che i binding del thread effettivi siano abilitati (`session.threadBindings.enabled` e/o `channels.discord.threadBindings.enabled`).
+- Riferimento dei comandi ACP e comportamento del runtime: [ACP Agents](/it/tools/acp-agents).
+- `/verbose` è pensato per il debug e per una visibilità aggiuntiva; tienilo **off** nell'uso normale.
+- `/fast on|off` rende persistente un override della sessione. Usa l'opzione `inherit` dell'interfaccia Sessions per cancellarlo e tornare ai valori predefiniti della configurazione.
+- `/fast` è specifico del provider: OpenAI/OpenAI Codex lo mappano a `service_tier=priority` sugli endpoint nativi Responses, mentre le richieste Anthropic pubbliche dirette, incluso il traffico autenticato OAuth inviato a `api.anthropic.com`, lo mappano a `service_tier=auto` o `standard_only`. Vedi [OpenAI](/it/providers/openai) e [Anthropic](/it/providers/anthropic).
+- I riepiloghi degli errori degli strumenti vengono comunque mostrati quando pertinenti, ma il testo dettagliato dell'errore viene incluso solo quando `/verbose` è `on` o `full`.
- `/reasoning` (e `/verbose`) sono rischiosi in contesti di gruppo: possono rivelare reasoning interno o output degli strumenti che non intendevi esporre. È preferibile lasciarli disattivati, soprattutto nelle chat di gruppo.
-- `/model` rende persistente immediatamente il nuovo modello di sessione.
-- Se l'agent è inattivo, l'esecuzione successiva lo usa subito.
-- Se è già attiva un'esecuzione, OpenClaw contrassegna un cambio live come in sospeso e riavvia nel nuovo modello solo in un punto di retry pulito.
-- Se è già iniziata l'attività degli strumenti o l'output della risposta, il cambio in sospeso può restare in coda fino a una successiva opportunità di retry o al turno utente successivo.
+- `/model` rende immediatamente persistente il nuovo modello di sessione.
+- Se l'agente è inattivo, la prossima esecuzione lo usa subito.
+- Se un'esecuzione è già attiva, OpenClaw contrassegna un cambio live come in sospeso e riavvia nel nuovo modello solo in un punto di retry pulito.
+- Se l'attività degli strumenti o l'output della risposta sono già iniziati, il cambio in sospeso può restare in coda fino a una successiva opportunità di retry o al turno utente successivo.
- **Percorso rapido:** i messaggi composti solo da comandi provenienti da mittenti in allowlist vengono gestiti immediatamente (saltano coda + modello).
-- **Controllo delle menzioni nei gruppi:** i messaggi composti solo da comandi provenienti da mittenti in allowlist bypassano i requisiti di menzione.
-- **Scorciatoie inline (solo mittenti in allowlist):** alcuni comandi funzionano anche quando sono incorporati in un normale messaggio e vengono rimossi prima che il modello veda il testo rimanente.
+- **Blocco per menzione nei gruppi:** i messaggi composti solo da comandi provenienti da mittenti in allowlist saltano i requisiti di menzione.
+- **Scorciatoie inline (solo mittenti in allowlist):** alcuni comandi funzionano anche quando incorporati in un messaggio normale e vengono rimossi prima che il modello veda il testo rimanente.
- Esempio: `hey /status` attiva una risposta di stato e il testo rimanente continua nel flusso normale.
- Attualmente: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
-- I messaggi composti solo da comandi non autorizzati vengono ignorati silenziosamente e i token inline `/...` vengono trattati come testo normale.
-- **Comandi Skill:** le Skills `user-invocable` vengono esposte come slash command. I nomi vengono sanitizzati in `a-z0-9_` (massimo 32 caratteri); le collisioni ricevono suffissi numerici (ad esempio `_2`).
- - `/skill [input]` esegue una Skill per nome (utile quando i limiti dei comandi nativi impediscono comandi per-Skill).
- - Per impostazione predefinita, i comandi Skill vengono inoltrati al modello come richiesta normale.
- - Le Skills possono facoltativamente dichiarare `command-dispatch: tool` per instradare il comando direttamente a uno strumento (deterministico, senza modello).
- - Esempio: `/prose` (plugin OpenProse) — consulta [OpenProse](/it/prose).
-- **Argomenti dei comandi nativi:** Discord usa autocomplete per le opzioni dinamiche (e menu a pulsanti quando ometti gli argomenti richiesti). Telegram e Slack mostrano un menu a pulsanti quando un comando supporta scelte e ometti l'argomento.
+- I messaggi composti solo da comandi non autorizzati vengono ignorati silenziosamente, e i token inline `/...` vengono trattati come testo normale.
+- **Comandi skill:** le skill `user-invocable` sono esposte come comandi slash. I nomi vengono sanitizzati in `a-z0-9_` (massimo 32 caratteri); i conflitti ricevono suffissi numerici (ad esempio `_2`).
+ - `/skill [input]` esegue una skill per nome (utile quando i limiti dei comandi nativi impediscono comandi per singola skill).
+ - Per impostazione predefinita, i comandi skill vengono inoltrati al modello come richiesta normale.
+ - Le skill possono facoltativamente dichiarare `command-dispatch: tool` per instradare il comando direttamente a uno strumento (deterministico, senza modello).
+ - Esempio: `/prose` (plugin OpenProse) — vedi [OpenProse](/it/prose).
+- **Argomenti dei comandi nativi:** Discord usa l'autocomplete per le opzioni dinamiche (e menu a pulsanti quando ometti argomenti obbligatori). Telegram e Slack mostrano un menu a pulsanti quando un comando supporta scelte e ometti l'argomento.
## `/tools`
-`/tools` risponde a una domanda runtime, non a una domanda di configurazione: **cosa può usare questo agent in questo momento in
+`/tools` risponde a una domanda di runtime, non a una domanda di configurazione: **cosa questo agente può usare in questo momento in
questa conversazione**.
- Il valore predefinito di `/tools` è compatto e ottimizzato per una scansione rapida.
- `/tools verbose` aggiunge brevi descrizioni.
-- Le superfici di comando nativo che supportano argomenti espongono lo stesso selettore di modalità `compact|verbose`.
-- I risultati hanno ambito di sessione, quindi cambiare agent, canale, thread, autorizzazione del mittente o modello può
+- Le superfici dei comandi nativi che supportano argomenti espongono lo stesso cambio di modalità come `compact|verbose`.
+- I risultati sono limitati alla sessione, quindi cambiare agente, canale, thread, autorizzazione del mittente o modello può
cambiare l'output.
-- `/tools` include gli strumenti realmente raggiungibili a runtime, inclusi strumenti core, strumenti
- di plugin connessi e strumenti posseduti dal canale.
+- `/tools` include gli strumenti effettivamente raggiungibili a runtime, inclusi strumenti core, strumenti dei
+ plugin connessi e strumenti posseduti dal canale.
-Per modificare profili e override, usa il pannello Tools della Control UI o le superfici di configurazione/catalogo invece
-di trattare `/tools` come un catalogo statico.
+Per la modifica di profili e override, usa il pannello Tools della Control UI o le superfici config/catalogo
+invece di trattare `/tools` come un catalogo statico.
-## Superfici di utilizzo (cosa appare dove)
+## Superfici di utilizzo (cosa compare dove)
-- **Utilizzo/quota del provider** (esempio: “Claude 80% rimasto”) appare in `/status` per il provider del modello corrente quando il tracciamento dell'utilizzo è abilitato. OpenClaw normalizza le finestre dei provider in `% rimasto`; per MiniMax, i campi percentuali solo-rimanente vengono invertiti prima della visualizzazione, e le risposte `model_remains` privilegiano la voce del modello chat più un'etichetta del piano taggata sul modello.
-- Le righe **token/cache** in `/status` possono fare fallback all'ultima voce di utilizzo nella trascrizione quando lo snapshot live della sessione è scarso. I valori live esistenti diversi da zero continuano comunque ad avere la precedenza e il fallback della trascrizione può anche recuperare l'etichetta del modello runtime attivo più un totale più grande orientato al prompt quando i totali archiviati mancano o sono inferiori.
-- **Token/costo per risposta** è controllato da `/usage off|tokens|full` (aggiunto alle normali risposte).
-- `/model status` riguarda **modelli/autenticazione/endpoint**, non l'utilizzo.
+- **Uso/quota del provider** (esempio: “Claude 80% left”) compare in `/status` per il provider del modello corrente quando il tracciamento dell'utilizzo è abilitato. OpenClaw normalizza le finestre dei provider in `% left`; per MiniMax, i campi percentuali solo-rimanenti vengono invertiti prima della visualizzazione, e le risposte `model_remains` preferiscono la voce del modello di chat più un'etichetta del piano con tag del modello.
+- **Righe token/cache** in `/status` possono ripiegare sull'ultima voce di utilizzo della trascrizione quando lo snapshot live della sessione è scarno. I valori live non zero esistenti continuano comunque a prevalere, e il fallback alla trascrizione può anche recuperare l'etichetta del modello runtime attivo più un totale più ampio orientato al prompt quando i totali memorizzati mancano o sono inferiori.
+- **Token/costo per risposta** è controllato da `/usage off|tokens|full` (aggiunto alle risposte normali).
+- `/model status` riguarda **modelli/auth/endpoint**, non l'utilizzo.
## Selezione del modello (`/model`)
@@ -212,13 +251,13 @@ Esempi:
Note:
- `/model` e `/model list` mostrano un selettore compatto numerato (famiglia di modelli + provider disponibili).
-- Su Discord, `/model` e `/models` aprono un selettore interattivo con menu a discesa di provider e modello più un passaggio Submit.
-- `/model <#>` seleziona da quel selettore (e privilegia il provider corrente quando possibile).
-- `/model status` mostra la vista dettagliata, inclusi endpoint provider configurato (`baseUrl`) e modalità API (`api`) quando disponibili.
+- Su Discord, `/model` e `/models` aprono un selettore interattivo con menu a discesa per provider e modello più un passaggio Submit.
+- `/model <#>` seleziona da quel selettore (e preferisce il provider corrente quando possibile).
+- `/model status` mostra la vista dettagliata, incluso l'endpoint provider configurato (`baseUrl`) e la modalità API (`api`) quando disponibili.
## Override di debug
-`/debug` consente di impostare override di configurazione **solo runtime** (in memoria, non su disco). Solo proprietario. Disabilitato per impostazione predefinita; abilitalo con `commands.debug: true`.
+`/debug` ti permette di impostare override di configurazione **solo runtime** (in memoria, non su disco). Solo proprietario. Disabilitato per impostazione predefinita; abilitalo con `commands.debug: true`.
Esempi:
@@ -235,7 +274,7 @@ Note:
- Gli override si applicano immediatamente alle nuove letture della configurazione, ma **non** scrivono in `openclaw.json`.
- Usa `/debug reset` per cancellare tutti gli override e tornare alla configurazione su disco.
-## Aggiornamenti di configurazione
+## Aggiornamenti della configurazione
`/config` scrive nella configurazione su disco (`openclaw.json`). Solo proprietario. Disabilitato per impostazione predefinita; abilitalo con `commands.config: true`.
@@ -251,12 +290,12 @@ Esempi:
Note:
-- La configurazione viene convalidata prima della scrittura; le modifiche non valide vengono rifiutate.
-- Gli aggiornamenti `/config` persistono tra i riavvii.
+- La configurazione viene validata prima della scrittura; le modifiche non valide vengono rifiutate.
+- Gli aggiornamenti di `/config` persistono dopo i riavvii.
## Aggiornamenti MCP
-`/mcp` scrive le definizioni dei server MCP gestite da OpenClaw sotto `mcp.servers`. Solo proprietario. Disabilitato per impostazione predefinita; abilitalo con `commands.mcp: true`.
+`/mcp` scrive le definizioni del server MCP gestite da OpenClaw sotto `mcp.servers`. Solo proprietario. Disabilitato per impostazione predefinita; abilitalo con `commands.mcp: true`.
Esempi:
@@ -269,12 +308,12 @@ Esempi:
Note:
-- `/mcp` archivia la configurazione nella configurazione OpenClaw, non nelle impostazioni di progetto possedute da Pi.
-- Gli adapter runtime decidono quali trasporti sono effettivamente eseguibili.
+- `/mcp` memorizza la configurazione nella configurazione OpenClaw, non nelle impostazioni di progetto possedute da Pi.
+- Gli adapter di runtime decidono quali transport sono effettivamente eseguibili.
## Aggiornamenti dei plugin
-`/plugins` consente agli operatori di ispezionare i plugin rilevati e di attivare/disattivare l'abilitazione nella configurazione. I flussi in sola lettura possono usare `/plugin` come alias. Disabilitato per impostazione predefinita; abilitalo con `commands.plugins: true`.
+`/plugins` permette agli operatori di ispezionare i plugin rilevati e attivare/disattivare l'abilitazione nella configurazione. I flussi di sola lettura possono usare `/plugin` come alias. Disabilitato per impostazione predefinita; abilitalo con `commands.plugins: true`.
Esempi:
@@ -288,35 +327,35 @@ Esempi:
Note:
-- `/plugins list` e `/plugins show` usano la reale discovery dei plugin rispetto al workspace corrente più la configurazione su disco.
+- `/plugins list` e `/plugins show` usano il rilevamento reale dei plugin rispetto al workspace corrente più la configurazione su disco.
- `/plugins enable|disable` aggiorna solo la configurazione del plugin; non installa né disinstalla i plugin.
- Dopo modifiche di abilitazione/disabilitazione, riavvia il gateway per applicarle.
## Note sulle superfici
-- **Comandi testuali** vengono eseguiti nella normale sessione chat (i DM condividono `main`, i gruppi hanno la propria sessione).
+- **Comandi testuali** vengono eseguiti nella normale sessione di chat (i DM condividono `main`, i gruppi hanno la propria sessione).
- **Comandi nativi** usano sessioni isolate:
- Discord: `agent::discord:slash:`
- Slack: `agent::slack:slash:` (prefisso configurabile tramite `channels.slack.slashCommand.sessionPrefix`)
- - Telegram: `telegram:slash:` (indirizza la sessione chat tramite `CommandTargetSessionKey`)
-- **`/stop`** prende di mira la sessione chat attiva così può interrompere l'esecuzione corrente.
-- **Slack:** `channels.slack.slashCommand` è ancora supportato per un singolo comando in stile `/openclaw`. Se abiliti `commands.native`, devi creare uno slash command Slack per ogni comando integrato (stessi nomi di `/help`). I menu degli argomenti dei comandi per Slack vengono forniti come pulsanti Block Kit effimeri.
- - Eccezione nativa Slack: registra `/agentstatus` (non `/status`) perché Slack riserva `/status`. Il testo `/status` continua a funzionare nei messaggi Slack.
+ - Telegram: `telegram:slash:` (destina la sessione di chat tramite `CommandTargetSessionKey`)
+- **`/stop`** punta alla sessione di chat attiva così da poter interrompere l'esecuzione corrente.
+- **Slack:** `channels.slack.slashCommand` è ancora supportato per un singolo comando in stile `/openclaw`. Se abiliti `commands.native`, devi creare un comando slash Slack per ogni comando built-in (con gli stessi nomi di `/help`). I menu argomenti dei comandi per Slack vengono consegnati come pulsanti Block Kit effimeri.
+ - Eccezione nativa Slack: registra `/agentstatus` (non `/status`) perché Slack riserva `/status`. Il testo `/status` continua comunque a funzionare nei messaggi Slack.
## Domande laterali BTW
`/btw` è una rapida **domanda laterale** sulla sessione corrente.
-A differenza della normale chat:
+A differenza della chat normale:
- usa la sessione corrente come contesto di sfondo,
-- viene eseguita come chiamata one-shot separata **senza strumenti**,
+- viene eseguita come chiamata separata **senza strumenti** e one-shot,
- non modifica il contesto futuro della sessione,
- non viene scritta nella cronologia della trascrizione,
- viene consegnata come risultato laterale live invece che come normale messaggio dell'assistente.
-Questo rende `/btw` utile quando vuoi un chiarimento temporaneo mentre il task principale
-continua.
+Questo rende `/btw` utile quando vuoi un chiarimento temporaneo mentre
+l'attività principale continua.
Esempio:
@@ -324,5 +363,5 @@ Esempio:
/btw cosa stiamo facendo in questo momento?
```
-Consulta [BTW Side Questions](/it/tools/btw) per il comportamento completo e i
+Vedi [BTW Side Questions](/it/tools/btw) per il comportamento completo e i
dettagli UX del client.
diff --git a/docs/it/tools/tts.md b/docs/it/tools/tts.md
index 095479a7b..65fdb2c0a 100644
--- a/docs/it/tools/tts.md
+++ b/docs/it/tools/tts.md
@@ -1,15 +1,15 @@
---
read_when:
- Abilitazione della sintesi vocale per le risposte
- - Configurazione di provider o limiti TTS
+ - Configurazione dei provider TTS o dei limiti
- Uso dei comandi /tts
summary: Sintesi vocale (TTS) per le risposte in uscita
title: Sintesi vocale
x-i18n:
- generated_at: "2026-04-05T14:08:22Z"
+ generated_at: "2026-04-08T06:01:52Z"
model: gpt-5.4
provider: openai
- source_hash: 8487c8acef7585bd4eb5e3b39e2a063ebc6b5f0103524abdcbadd3a7781ffc46
+ source_hash: 6e0fbcaf61282733c134f682e05a71f94d2169c03a85131ce9ad233c71a1e533
source_path: tools/tts.md
workflow: 15
---
@@ -28,14 +28,14 @@ Funziona ovunque OpenClaw possa inviare audio.
### Note sulla sintesi vocale Microsoft
-Il provider di sintesi vocale Microsoft bundled attualmente usa il servizio TTS
-neurale online di Microsoft Edge tramite la libreria `node-edge-tts`. È un servizio hosted (non
+Il provider di sintesi vocale Microsoft bundled usa attualmente il servizio TTS neurale
+online di Microsoft Edge tramite la libreria `node-edge-tts`. È un servizio ospitato (non
locale), usa endpoint Microsoft e non richiede una chiave API.
-`node-edge-tts` espone opzioni di configurazione della sintesi e formati di output, ma
+`node-edge-tts` espone opzioni di configurazione della sintesi vocale e formati di output, ma
non tutte le opzioni sono supportate dal servizio. La configurazione legacy e l'input direttiva
-che usa `edge` continuano a funzionare e vengono normalizzati in `microsoft`.
+che usa `edge` continuano a funzionare e vengono normalizzati a `microsoft`.
-Poiché questo percorso è un servizio web pubblico senza SLA o quota pubblicati,
+Poiché questo percorso è un servizio web pubblico senza uno SLA o una quota pubblicati,
consideralo best-effort. Se hai bisogno di limiti garantiti e supporto, usa OpenAI
o ElevenLabs.
@@ -49,31 +49,31 @@ Se vuoi usare OpenAI, ElevenLabs o MiniMax:
La sintesi vocale Microsoft **non** richiede una chiave API.
-Se sono configurati più provider, viene usato prima il provider selezionato e gli altri diventano opzioni di fallback.
+Se sono configurati più provider, il provider selezionato viene usato per primo e gli altri sono opzioni di fallback.
Il riepilogo automatico usa il `summaryModel` configurato (o `agents.defaults.model.primary`),
quindi anche quel provider deve essere autenticato se abiliti i riepiloghi.
## Link ai servizi
- [Guida OpenAI Text-to-Speech](https://platform.openai.com/docs/guides/text-to-speech)
-- [Riferimento API OpenAI Audio](https://platform.openai.com/docs/api-reference/audio)
+- [Riferimento API Audio di OpenAI](https://platform.openai.com/docs/api-reference/audio)
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
- [Autenticazione ElevenLabs](https://elevenlabs.io/docs/api-reference/authentication)
- [API MiniMax T2A v2](https://platform.minimaxi.com/document/T2A%20V2)
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
-- [Formati di output Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
+- [Formati di output di Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
## È abilitato per impostazione predefinita?
No. L'auto‑TTS è **disattivato** per impostazione predefinita. Abilitalo nella configurazione con
-`messages.tts.auto` o per sessione con `/tts always` (alias: `/tts on`).
+`messages.tts.auto` oppure localmente con `/tts on`.
Quando `messages.tts.provider` non è impostato, OpenClaw sceglie il primo
provider di sintesi vocale configurato nell'ordine di selezione automatica del registro.
## Configurazione
-La configurazione TTS si trova sotto `messages.tts` in `openclaw.json`.
+La configurazione TTS si trova in `messages.tts` in `openclaw.json`.
Lo schema completo è in [Configurazione del Gateway](/it/gateway/configuration).
### Configurazione minima (abilitazione + provider)
@@ -130,7 +130,7 @@ Lo schema completo è in [Configurazione del Gateway](/it/gateway/configuration)
}
```
-### Microsoft primario (nessuna chiave API)
+### Microsoft primario (senza chiave API)
```json5
{
@@ -208,7 +208,7 @@ Lo schema completo è in [Configurazione del Gateway](/it/gateway/configuration)
}
```
-### Rispondere con audio solo dopo un messaggio vocale in entrata
+### Rispondi con audio solo dopo un messaggio vocale in ingresso
```json5
{
@@ -220,7 +220,7 @@ Lo schema completo è in [Configurazione del Gateway](/it/gateway/configuration)
}
```
-### Disabilitare il riepilogo automatico per risposte lunghe
+### Disabilitare il riepilogo automatico per le risposte lunghe
```json5
{
@@ -232,7 +232,7 @@ Lo schema completo è in [Configurazione del Gateway](/it/gateway/configuration)
}
```
-Quindi esegui:
+Poi esegui:
```
/tts summary off
@@ -241,25 +241,25 @@ Quindi esegui:
### Note sui campi
- `auto`: modalità auto‑TTS (`off`, `always`, `inbound`, `tagged`).
- - `inbound` invia audio solo dopo un messaggio vocale in entrata.
+ - `inbound` invia audio solo dopo un messaggio vocale in ingresso.
- `tagged` invia audio solo quando la risposta include tag `[[tts]]`.
- `enabled`: interruttore legacy (doctor lo migra in `auto`).
-- `mode`: `"final"` (predefinito) o `"all"` (include risposte di strumenti/blocchi).
+- `mode`: `"final"` (predefinito) oppure `"all"` (include risposte di strumenti/blocchi).
- `provider`: ID del provider di sintesi vocale come `"elevenlabs"`, `"microsoft"`, `"minimax"` o `"openai"` (il fallback è automatico).
- Se `provider` **non è impostato**, OpenClaw usa il primo provider di sintesi vocale configurato nell'ordine di selezione automatica del registro.
-- Il legacy `provider: "edge"` continua a funzionare e viene normalizzato in `microsoft`.
-- `summaryModel`: modello economico facoltativo per il riepilogo automatico; il valore predefinito è `agents.defaults.model.primary`.
+- Il valore legacy `provider: "edge"` continua a funzionare e viene normalizzato a `microsoft`.
+- `summaryModel`: modello economico facoltativo per il riepilogo automatico; per impostazione predefinita usa `agents.defaults.model.primary`.
- Accetta `provider/model` o un alias di modello configurato.
- `modelOverrides`: consente al modello di emettere direttive TTS (attivo per impostazione predefinita).
- - `allowProvider` è `false` per impostazione predefinita (il cambio provider è facoltativo).
-- `providers.`: impostazioni gestite dal provider, con chiave sull'ID del provider di sintesi vocale.
-- I blocchi provider legacy diretti (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) vengono migrati automaticamente in `messages.tts.providers.` al caricamento.
-- `maxTextLength`: limite rigido per l'input TTS (caratteri). `/tts audio` fallisce se viene superato.
+ - `allowProvider` per impostazione predefinita è `false` (il cambio provider richiede opt-in).
+- `providers.`: impostazioni di proprietà del provider indicizzate per ID provider di sintesi vocale.
+- I blocchi provider legacy diretti (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) vengono migrati automaticamente a `messages.tts.providers.` al caricamento.
+- `maxTextLength`: limite rigido per l'input TTS (caratteri). `/tts audio` non riesce se viene superato.
- `timeoutMs`: timeout della richiesta (ms).
-- `prefsPath`: sovrascrive il percorso JSON locale delle preferenze (provider/limite/riepilogo).
+- `prefsPath`: sostituisce il percorso del file JSON delle preferenze locali (provider/limite/riepilogo).
- I valori `apiKey` usano come fallback le variabili d'ambiente (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
-- `providers.elevenlabs.baseUrl`: sovrascrive l'URL base dell'API ElevenLabs.
-- `providers.openai.baseUrl`: sovrascrive l'endpoint OpenAI TTS.
+- `providers.elevenlabs.baseUrl`: sostituisce l'URL di base dell'API ElevenLabs.
+- `providers.openai.baseUrl`: sostituisce l'endpoint TTS OpenAI.
- Ordine di risoluzione: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1`
- I valori non predefiniti vengono trattati come endpoint TTS compatibili con OpenAI, quindi sono accettati nomi personalizzati di modello e voce.
- `providers.elevenlabs.voiceSettings`:
@@ -269,21 +269,21 @@ Quindi esegui:
- `providers.elevenlabs.applyTextNormalization`: `auto|on|off`
- `providers.elevenlabs.languageCode`: ISO 639-1 a 2 lettere (per esempio `en`, `de`)
- `providers.elevenlabs.seed`: intero `0..4294967295` (determinismo best-effort)
-- `providers.minimax.baseUrl`: sovrascrive l'URL base dell'API MiniMax (predefinito `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
+- `providers.minimax.baseUrl`: sostituisce l'URL di base dell'API MiniMax (predefinito `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
- `providers.minimax.model`: modello TTS (predefinito `speech-2.8-hd`, env: `MINIMAX_TTS_MODEL`).
-- `providers.minimax.voiceId`: identificatore voce (predefinito `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`).
-- `providers.minimax.speed`: velocità di riproduzione `0.5..2.0` (predefinito 1.0).
+- `providers.minimax.voiceId`: identificatore della voce (predefinito `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`).
+- `providers.minimax.speed`: velocità di riproduzione `0.5..2.0` (predefinita 1.0).
- `providers.minimax.vol`: volume `(0, 10]` (predefinito 1.0; deve essere maggiore di 0).
-- `providers.minimax.pitch`: variazione di tono `-12..12` (predefinito 0).
+- `providers.minimax.pitch`: variazione di tono `-12..12` (predefinita 0).
- `providers.microsoft.enabled`: consente l'uso della sintesi vocale Microsoft (predefinito `true`; nessuna chiave API).
- `providers.microsoft.voice`: nome della voce neurale Microsoft (per esempio `en-US-MichelleNeural`).
- `providers.microsoft.lang`: codice lingua (per esempio `en-US`).
- `providers.microsoft.outputFormat`: formato di output Microsoft (per esempio `audio-24khz-48kbitrate-mono-mp3`).
- - Vedi i formati di output Microsoft Speech per i valori validi; non tutti i formati sono supportati dal trasporto bundled basato su Edge.
+ - Vedi i formati di output di Microsoft Speech per i valori validi; non tutti i formati sono supportati dal trasporto bundled basato su Edge.
- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: stringhe percentuali (per esempio `+10%`, `-5%`).
- `providers.microsoft.saveSubtitles`: scrive sottotitoli JSON accanto al file audio.
-- `providers.microsoft.proxy`: URL proxy per le richieste di sintesi vocale Microsoft.
-- `providers.microsoft.timeoutMs`: override del timeout richiesta (ms).
+- `providers.microsoft.proxy`: URL del proxy per le richieste di sintesi vocale Microsoft.
+- `providers.microsoft.timeoutMs`: override del timeout della richiesta (ms).
- `edge.*`: alias legacy per le stesse impostazioni Microsoft.
## Override guidati dal modello (attivi per impostazione predefinita)
@@ -291,14 +291,14 @@ Quindi esegui:
Per impostazione predefinita, il modello **può** emettere direttive TTS per una singola risposta.
Quando `messages.tts.auto` è `tagged`, queste direttive sono necessarie per attivare l'audio.
-Quando è abilitato, il modello può emettere direttive `[[tts:...]]` per sovrascrivere la voce
+Quando è abilitato, il modello può emettere direttive `[[tts:...]]` per sostituire la voce
per una singola risposta, più un blocco facoltativo `[[tts:text]]...[[/tts:text]]` per
fornire tag espressivi (risate, indicazioni di canto, ecc.) che devono comparire solo
nell'audio.
Le direttive `provider=...` vengono ignorate a meno che `modelOverrides.allowProvider: true`.
-Payload di risposta di esempio:
+Esempio di payload di risposta:
```
Here you go.
@@ -307,11 +307,11 @@ Here you go.
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
```
-Chiavi di direttiva disponibili (quando abilitate):
+Chiavi direttiva disponibili (quando abilitate):
- `provider` (ID provider di sintesi vocale registrato, per esempio `openai`, `elevenlabs`, `minimax` o `microsoft`; richiede `allowProvider: true`)
-- `voice` (voce OpenAI) o `voiceId` (ElevenLabs / MiniMax)
-- `model` (modello OpenAI TTS, ID modello ElevenLabs o modello MiniMax)
+- `voice` (voce OpenAI) oppure `voiceId` (ElevenLabs / MiniMax)
+- `model` (modello TTS OpenAI, model id ElevenLabs o modello MiniMax)
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
- `vol` / `volume` (volume MiniMax, 0-10)
- `pitch` (tono MiniMax, da -12 a 12)
@@ -333,7 +333,7 @@ Disabilita tutti gli override del modello:
}
```
-Allowlist facoltativa (abilita il cambio provider mantenendo configurabili gli altri controlli):
+Allowlist facoltativa (abilita il cambio provider mantenendo configurabili gli altri parametri):
```json5
{
@@ -351,76 +351,74 @@ Allowlist facoltativa (abilita il cambio provider mantenendo configurabili gli a
## Preferenze per utente
-I comandi slash scrivono override locali in `prefsPath` (predefinito:
-`~/.openclaw/settings/tts.json`, sovrascrivibile con `OPENCLAW_TTS_PREFS` o
+I comandi slash scrivono gli override locali in `prefsPath` (predefinito:
+`~/.openclaw/settings/tts.json`, sostituibile con `OPENCLAW_TTS_PREFS` o
`messages.tts.prefsPath`).
Campi memorizzati:
- `enabled`
- `provider`
-- `maxLength` (soglia di riepilogo; predefinito 1500 caratteri)
+- `maxLength` (soglia del riepilogo; predefinita 1500 caratteri)
- `summarize` (predefinito `true`)
-Questi campi sovrascrivono `messages.tts.*` per quell'host.
+Questi sostituiscono `messages.tts.*` per quell'host.
## Formati di output (fissi)
- **Feishu / Matrix / Telegram / WhatsApp**: messaggio vocale Opus (`opus_48000_64` da ElevenLabs, `opus` da OpenAI).
- 48kHz / 64kbps è un buon compromesso per i messaggi vocali.
- **Altri canali**: MP3 (`mp3_44100_128` da ElevenLabs, `mp3` da OpenAI).
- - 44.1kHz / 128kbps è il bilanciamento predefinito per la chiarezza del parlato.
-- **MiniMax**: MP3 (`speech-2.8-hd`, frequenza di campionamento 32kHz). Il formato nota vocale non è supportato nativamente; usa OpenAI o ElevenLabs per messaggi vocali Opus garantiti.
+ - 44,1kHz / 128kbps è il bilanciamento predefinito per la chiarezza del parlato.
+- **MiniMax**: MP3 (modello `speech-2.8-hd`, frequenza di campionamento 32kHz). Il formato per note vocali non è supportato in modo nativo; usa OpenAI o ElevenLabs per messaggi vocali Opus garantiti.
- **Microsoft**: usa `microsoft.outputFormat` (predefinito `audio-24khz-48kbitrate-mono-mp3`).
- Il trasporto bundled accetta un `outputFormat`, ma non tutti i formati sono disponibili dal servizio.
- - I valori del formato di output seguono i formati di output Microsoft Speech (inclusi Ogg/WebM Opus).
+ - I valori del formato di output seguono i formati di output di Microsoft Speech (inclusi Ogg/WebM Opus).
- Telegram `sendVoice` accetta OGG/MP3/M4A; usa OpenAI/ElevenLabs se hai bisogno
di messaggi vocali Opus garantiti.
- Se il formato di output Microsoft configurato fallisce, OpenClaw riprova con MP3.
I formati di output OpenAI/ElevenLabs sono fissi per canale (vedi sopra).
-## Comportamento auto-TTS
+## Comportamento dell'auto-TTS
Quando è abilitato, OpenClaw:
-- salta il TTS se la risposta contiene già media o una direttiva `MEDIA:`.
+- salta il TTS se la risposta contiene già contenuti multimediali o una direttiva `MEDIA:`.
- salta le risposte molto brevi (< 10 caratteri).
-- riassume le risposte lunghe quando abilitato usando `agents.defaults.model.primary` (o `summaryModel`).
+- riepiloga le risposte lunghe quando abilitato usando `agents.defaults.model.primary` (o `summaryModel`).
- allega l'audio generato alla risposta.
-Se la risposta supera `maxLength` e il riepilogo è disattivato (o manca una chiave API per il
+Se la risposta supera `maxLength` e il riepilogo è disattivato (o non c'è una chiave API per il
modello di riepilogo), l'audio
viene saltato e viene inviata la normale risposta testuale.
-## Diagramma di flusso
+## Diagramma del flusso
```
Reply -> TTS enabled?
- no -> invia testo
- yes -> ha media / MEDIA: / è breve?
- yes -> invia testo
- no -> lunghezza > limite?
- no -> TTS -> allega audio
- yes -> riepilogo abilitato?
- no -> invia testo
- yes -> riepiloga (summaryModel o agents.defaults.model.primary)
- -> TTS -> allega audio
+ no -> send text
+ yes -> has media / MEDIA: / short?
+ yes -> send text
+ no -> length > limit?
+ no -> TTS -> attach audio
+ yes -> summary enabled?
+ no -> send text
+ yes -> summarize (summaryModel or agents.defaults.model.primary)
+ -> TTS -> attach audio
```
## Uso dei comandi slash
Esiste un solo comando: `/tts`.
-Vedi [Comandi slash](/tools/slash-commands) per i dettagli di abilitazione.
+Vedi [Comandi slash](/it/tools/slash-commands) per i dettagli sull'abilitazione.
-Nota Discord: `/tts` è un comando Discord integrato, quindi OpenClaw registra
+Nota su Discord: `/tts` è un comando integrato di Discord, quindi OpenClaw registra
`/voice` come comando nativo lì. Il testo `/tts ...` continua a funzionare.
```
/tts off
-/tts always
-/tts inbound
-/tts tagged
+/tts on
/tts status
/tts provider openai
/tts limit 2000
@@ -430,24 +428,26 @@ Nota Discord: `/tts` è un comando Discord integrato, quindi OpenClaw registra
Note:
-- I comandi richiedono un mittente autorizzato (continuano ad applicarsi le regole allowlist/proprietario).
-- `commands.text` o la registrazione del comando nativo devono essere abilitati.
-- `off|always|inbound|tagged` sono interruttori per sessione (`/tts on` è un alias di `/tts always`).
+- I comandi richiedono un mittente autorizzato (si applicano comunque le regole di allowlist/proprietario).
+- `commands.text` o la registrazione dei comandi nativi devono essere abilitati.
+- La configurazione `messages.tts.auto` accetta `off|always|inbound|tagged`.
+- `/tts on` scrive la preferenza TTS locale su `always`; `/tts off` la scrive su `off`.
+- Usa la configurazione quando vuoi i valori predefiniti `inbound` o `tagged`.
- `limit` e `summary` vengono memorizzati nelle preferenze locali, non nella configurazione principale.
-- `/tts audio` genera una risposta audio una tantum (non abilita/disabilita il TTS).
+- `/tts audio` genera una risposta audio una tantum (non attiva il TTS).
- `/tts status` include la visibilità del fallback per l'ultimo tentativo:
- fallback riuscito: `Fallback: -> ` più `Attempts: ...`
- errore: `Error: ...` più `Attempts: ...`
- diagnostica dettagliata: `Attempt details: provider:outcome(reasonCode) latency`
-- Gli errori API OpenAI ed ElevenLabs ora includono dettagli dell'errore provider analizzati e request id (quando restituito dal provider), che vengono mostrati negli errori/log TTS.
+- I fallimenti API di OpenAI ed ElevenLabs ora includono il dettaglio di errore del provider analizzato e l'ID richiesta (quando restituito dal provider), che viene mostrato negli errori/log TTS.
## Strumento agente
-Lo strumento `tts` converte il testo in sintesi vocale e restituisce un allegato audio per
+Lo strumento `tts` converte il testo in parlato e restituisce un allegato audio per
la consegna della risposta. Quando il canale è Feishu, Matrix, Telegram o WhatsApp,
-l'audio viene recapitato come messaggio vocale invece che come allegato file.
+l'audio viene consegnato come messaggio vocale anziché come allegato file.
-## RPC del Gateway
+## Gateway RPC
Metodi Gateway: