chore(i18n): refresh it translations
This commit is contained in:
parent
2e5f510f77
commit
d262326b48
@ -1,36 +1,36 @@
|
||||
---
|
||||
read_when:
|
||||
- Vuoi installare o gestire i Plugin Gateway o pacchetti compatibili
|
||||
- Vuoi installare o gestire plugin del Gateway o bundle compatibili
|
||||
- Vuoi eseguire il debug degli errori di caricamento dei Plugin
|
||||
sidebarTitle: Plugins
|
||||
summary: Riferimento CLI per `openclaw plugins` (list, install, marketplace, uninstall, enable/disable, doctor)
|
||||
summary: Riferimento CLI per `openclaw plugins` (elenco, installazione, marketplace, disinstallazione, abilitazione/disabilitazione, diagnostica)
|
||||
title: Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-05-04T08:40:01Z"
|
||||
generated_at: "2026-05-04T09:37:12Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: d3f0ac9412e24f3598e9bab6389f770b3d0d26268d9907891697919d9371f1c1
|
||||
source_hash: f561ce098181b07f25db3520b1726162863469ac05fb4a3e786915257d97c9a4
|
||||
source_path: cli/plugins.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Gestisci i Plugin del Gateway, i pacchetti di hook e i bundle compatibili.
|
||||
Gestisci Plugin del Gateway, pacchetti di hook e bundle compatibili.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Sistema di Plugin" href="/it/tools/plugin">
|
||||
Guida per l'utente finale per installare, abilitare e risolvere i problemi dei Plugin.
|
||||
<Card title="Sistema Plugin" href="/it/tools/plugin">
|
||||
Guida per utenti finali all'installazione, all'abilitazione e alla risoluzione dei problemi dei plugin.
|
||||
</Card>
|
||||
<Card title="Gestisci Plugin" href="/it/plugins/manage-plugins">
|
||||
<Card title="Gestire i plugin" href="/it/plugins/manage-plugins">
|
||||
Esempi rapidi per installazione, elenco, aggiornamento, disinstallazione e pubblicazione.
|
||||
</Card>
|
||||
<Card title="Bundle di Plugin" href="/it/plugins/bundles">
|
||||
<Card title="Bundle Plugin" href="/it/plugins/bundles">
|
||||
Modello di compatibilità dei bundle.
|
||||
</Card>
|
||||
<Card title="Manifest del Plugin" href="/it/plugins/manifest">
|
||||
<Card title="Manifest Plugin" href="/it/plugins/manifest">
|
||||
Campi del manifest e schema di configurazione.
|
||||
</Card>
|
||||
<Card title="Sicurezza" href="/it/gateway/security">
|
||||
Rafforzamento della sicurezza per le installazioni dei Plugin.
|
||||
Rafforzamento della sicurezza per le installazioni dei plugin.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -62,16 +62,16 @@ openclaw plugins marketplace list <marketplace>
|
||||
openclaw plugins marketplace list <marketplace> --json
|
||||
```
|
||||
|
||||
Per analizzare installazioni, ispezioni, disinstallazioni o aggiornamenti del registro lenti, esegui il
|
||||
Per indagare su installazioni, ispezioni, disinstallazioni o aggiornamenti del registro lenti, esegui il
|
||||
comando con `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`. La traccia scrive i tempi delle fasi
|
||||
su stderr e mantiene analizzabile l'output JSON. Vedi [Debugging](/it/help/debugging#plugin-lifecycle-trace).
|
||||
|
||||
<Note>
|
||||
I Plugin inclusi vengono distribuiti con OpenClaw. Alcuni sono abilitati per impostazione predefinita (per esempio provider di modelli inclusi, provider vocali inclusi e il Plugin browser incluso); altri richiedono `plugins enable`.
|
||||
I plugin inclusi vengono distribuiti con OpenClaw. Alcuni sono abilitati per impostazione predefinita (ad esempio provider di modelli inclusi, provider vocali inclusi e il Plugin browser incluso); altri richiedono `plugins enable`.
|
||||
|
||||
I Plugin OpenClaw nativi devono distribuire `openclaw.plugin.json` con un JSON Schema inline (`configSchema`, anche se vuoto). I bundle compatibili usano invece i propri manifest di bundle.
|
||||
I Plugin OpenClaw nativi devono distribuire `openclaw.plugin.json` con uno Schema JSON inline (`configSchema`, anche se vuoto). I bundle compatibili usano invece i propri manifest di bundle.
|
||||
|
||||
`plugins list` mostra `Format: openclaw` o `Format: bundle`. L'output dettagliato di elenco/info mostra anche il sottotipo del bundle (`codex`, `claude` o `cursor`) più le funzionalità del bundle rilevate.
|
||||
`plugins list` mostra `Format: openclaw` o `Format: bundle`. L'output dettagliato di elenco/info mostra anche il sottotipo del bundle (`codex`, `claude` o `cursor`) più le capacità del bundle rilevate.
|
||||
</Note>
|
||||
|
||||
### Installazione
|
||||
@ -93,71 +93,71 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
|
||||
```
|
||||
|
||||
<Warning>
|
||||
I nomi di pacchetto senza prefisso vengono installati da npm per impostazione predefinita durante la transizione di lancio. Usa `clawhub:<package>` per ClawHub. Tratta le installazioni dei Plugin come codice in esecuzione. Preferisci versioni fissate.
|
||||
I nomi di pacchetto senza prefisso installano da npm per impostazione predefinita durante il passaggio di lancio. Usa `clawhub:<package>` per ClawHub. Tratta le installazioni dei plugin come esecuzione di codice. Preferisci versioni fissate.
|
||||
</Warning>
|
||||
|
||||
`plugins search` interroga ClawHub per pacchetti Plugin installabili e stampa
|
||||
nomi di pacchetto pronti per l'installazione. Cerca pacchetti code-plugin e bundle-plugin,
|
||||
`plugins search` interroga ClawHub per pacchetti plugin installabili e stampa
|
||||
nomi di pacchetti pronti per l'installazione. Cerca pacchetti code-plugin e bundle-plugin,
|
||||
non Skills. Usa `openclaw skills search` per le Skills di ClawHub.
|
||||
|
||||
<Note>
|
||||
ClawHub è la superficie principale di distribuzione e scoperta per la maggior parte dei Plugin. Npm
|
||||
rimane un fallback supportato e un percorso di installazione diretta. I pacchetti Plugin
|
||||
`@openclaw/*` di proprietà di OpenClaw sono di nuovo pubblicati su npm; vedi l'elenco attuale
|
||||
su [npmjs.com/org/openclaw](https://www.npmjs.com/org/openclaw) o
|
||||
[l'inventario dei Plugin](/it/plugins/plugin-inventory). Le installazioni stabili usano `latest`.
|
||||
ClawHub è la superficie principale di distribuzione e scoperta per la maggior parte dei plugin. Npm
|
||||
rimane un fallback supportato e un percorso di installazione diretta. I pacchetti plugin
|
||||
`@openclaw/*` di proprietà di OpenClaw sono di nuovo pubblicati su npm; consulta l'elenco corrente
|
||||
su [npmjs.com/org/openclaw](https://www.npmjs.com/org/openclaw) o l'
|
||||
[inventario dei plugin](/it/plugins/plugin-inventory). Le installazioni stabili usano `latest`.
|
||||
Le installazioni e gli aggiornamenti del canale beta preferiscono il dist-tag npm `beta` quando quel tag
|
||||
è disponibile, poi ripiegano su `latest`.
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Include di configurazione e riparazione di configurazione non valida">
|
||||
Se la tua sezione `plugins` è supportata da un `$include` a file singolo, `plugins install/update/enable/disable/uninstall` scrive in quel file incluso e lascia `openclaw.json` intatto. Include root, array di include e include con override fratelli falliscono in modo chiuso invece di essere appiattiti. Vedi [Include di configurazione](/it/gateway/configuration) per le forme supportate.
|
||||
<Accordion title="Include di configurazione e riparazione della configurazione non valida">
|
||||
Se la tua sezione `plugins` è supportata da un `$include` a file singolo, `plugins install/update/enable/disable/uninstall` scrive in quel file incluso e lascia `openclaw.json` invariato. Gli include root, gli array di include e gli include con override fratelli falliscono in modo chiuso invece di appiattirsi. Vedi [Include di configurazione](/it/gateway/configuration) per le forme supportate.
|
||||
|
||||
Se la configurazione non è valida durante l'installazione, `plugins install` normalmente fallisce in modo chiuso e ti dice di eseguire prima `openclaw doctor --fix`. Durante l'avvio del Gateway e il ricaricamento a caldo, una configurazione Plugin non valida fallisce in modo chiuso come qualsiasi altra configurazione non valida; `openclaw doctor --fix` può mettere in quarantena la voce Plugin non valida. L'unica eccezione documentata in fase di installazione è uno stretto percorso di ripristino per Plugin inclusi che aderiscono esplicitamente a `openclaw.install.allowInvalidConfigRecovery`.
|
||||
Se la configurazione non è valida durante l'installazione, `plugins install` normalmente fallisce in modo chiuso e ti dice di eseguire prima `openclaw doctor --fix`. Durante l'avvio del Gateway e il ricaricamento a caldo, una configurazione plugin non valida fallisce in modo chiuso come qualsiasi altra configurazione non valida; `openclaw doctor --fix` può mettere in quarantena la voce plugin non valida. L'unica eccezione documentata in fase di installazione è un percorso ristretto di recupero dei plugin inclusi per i plugin che aderiscono esplicitamente a `openclaw.install.allowInvalidConfigRecovery`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--force e reinstallazione rispetto ad aggiornamento">
|
||||
`--force` riutilizza la destinazione di installazione esistente e sovrascrive sul posto un Plugin o pacchetto di hook già installato. Usalo quando stai reinstallando intenzionalmente lo stesso id da un nuovo percorso locale, archivio, pacchetto ClawHub o artefatto npm. Per aggiornamenti ordinari di un Plugin npm già tracciato, preferisci `openclaw plugins update <id-or-npm-spec>`.
|
||||
<Accordion title="--force e reinstallazione vs aggiornamento">
|
||||
`--force` riutilizza la destinazione di installazione esistente e sovrascrive sul posto un plugin o un pacchetto di hook già installato. Usalo quando stai reinstallando intenzionalmente lo stesso id da un nuovo percorso locale, archivio, pacchetto ClawHub o artefatto npm. Per aggiornamenti di routine di un plugin npm già tracciato, preferisci `openclaw plugins update <id-or-npm-spec>`.
|
||||
|
||||
Se esegui `plugins install` per un id Plugin già installato, OpenClaw si ferma e ti indirizza a `plugins update <id-or-npm-spec>` per un aggiornamento normale, oppure a `plugins install <package> --force` quando vuoi davvero sovrascrivere l'installazione corrente da una fonte diversa.
|
||||
Se esegui `plugins install` per un id plugin già installato, OpenClaw si ferma e ti indirizza a `plugins update <id-or-npm-spec>` per un normale aggiornamento, oppure a `plugins install <package> --force` quando vuoi davvero sovrascrivere l'installazione corrente da una fonte diversa.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Ambito di --pin">
|
||||
`--pin` si applica solo alle installazioni npm. Non è supportato con installazioni `git:`; usa un ref git esplicito come `git:github.com/acme/plugin@v1.2.3` quando vuoi una fonte fissata. Non è supportato con `--marketplace`, perché le installazioni marketplace persistono metadati della fonte marketplace invece di una spec npm.
|
||||
`--pin` si applica solo alle installazioni npm. Non è supportato con installazioni `git:`; usa un ref git esplicito come `git:github.com/acme/plugin@v1.2.3` quando vuoi una fonte fissata. Non è supportato con `--marketplace`, perché le installazioni marketplace persistono i metadati della fonte marketplace invece di una spec npm.
|
||||
</Accordion>
|
||||
<Accordion title="--dangerously-force-unsafe-install">
|
||||
`--dangerously-force-unsafe-install` è un'opzione di emergenza per falsi positivi nello scanner integrato di codice pericoloso. Permette all'installazione di continuare anche quando lo scanner integrato segnala risultati `critical`, ma **non** aggira i blocchi di policy dell'hook `before_install` del Plugin e **non** aggira i fallimenti della scansione.
|
||||
`--dangerously-force-unsafe-install` è un'opzione di emergenza per falsi positivi nello scanner integrato di codice pericoloso. Permette all'installazione di continuare anche quando lo scanner integrato segnala risultati `critical`, ma **non** aggira i blocchi delle policy degli hook `before_install` dei plugin e **non** aggira i fallimenti della scansione.
|
||||
|
||||
Questo flag CLI si applica ai flussi di installazione/aggiornamento dei Plugin. Le installazioni delle dipendenze Skills supportate dal Gateway usano l'override di richiesta corrispondente `dangerouslyForceUnsafeInstall`, mentre `openclaw skills install` rimane un flusso separato di download/installazione di Skills ClawHub.
|
||||
Questo flag CLI si applica ai flussi di installazione/aggiornamento dei plugin. Le installazioni di dipendenze delle Skills gestite dal Gateway usano l'override di richiesta corrispondente `dangerouslyForceUnsafeInstall`, mentre `openclaw skills install` rimane un flusso separato di download/installazione delle Skills da ClawHub.
|
||||
|
||||
Se un Plugin che hai pubblicato su ClawHub è bloccato da una scansione del registro, usa i passaggi per publisher in [ClawHub](/it/tools/clawhub).
|
||||
Se un plugin che hai pubblicato su ClawHub viene bloccato da una scansione del registro, usa i passaggi per publisher in [ClawHub](/it/tools/clawhub).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Pacchetti di hook e spec npm">
|
||||
`plugins install` è anche la superficie di installazione per pacchetti di hook che espongono `openclaw.hooks` in `package.json`. Usa `openclaw hooks` per visibilità filtrata degli hook e abilitazione per singolo hook, non per l'installazione del pacchetto.
|
||||
`plugins install` è anche la superficie di installazione per i pacchetti di hook che espongono `openclaw.hooks` in `package.json`. Usa `openclaw hooks` per la visibilità filtrata degli hook e l'abilitazione per singolo hook, non per l'installazione dei pacchetti.
|
||||
|
||||
Le spec npm sono **solo registro** (nome pacchetto + **versione esatta** facoltativa o **dist-tag**). Spec Git/URL/file e intervalli semver vengono rifiutati. Le installazioni delle dipendenze vengono eseguite localmente al progetto con `--ignore-scripts` per sicurezza, anche quando la tua shell ha impostazioni globali di installazione npm.
|
||||
Le specifiche npm sono **solo registry** (nome del pacchetto + **versione esatta** opzionale o **dist-tag**). Le specifiche Git/URL/file e gli intervalli semver vengono rifiutati. Le installazioni delle dipendenze vengono eseguite a livello di progetto con `--ignore-scripts` per sicurezza, anche quando la tua shell ha impostazioni globali di installazione npm.
|
||||
|
||||
Usa `npm:<package>` quando vuoi rendere esplicita la risoluzione npm. Anche le spec di pacchetto senza prefisso installano direttamente da npm durante la transizione di lancio.
|
||||
Usa `npm:<package>` quando vuoi rendere esplicita la risoluzione npm. Le specifiche di pacchetto semplici vengono installate direttamente da npm anche durante la transizione del lancio.
|
||||
|
||||
Le spec senza prefisso e `@latest` restano sul canale stabile. Le versioni correttive datate di OpenClaw come `2026.5.3-1` sono release stabili per questo controllo. Se npm risolve una di queste in una prerelease, OpenClaw si ferma e ti chiede di aderire esplicitamente con un tag prerelease come `@beta`/`@rc` o una versione prerelease esatta come `@1.2.3-beta.4`.
|
||||
Le specifiche semplici e `@latest` restano sul canale stabile. Le versioni correttive datate di OpenClaw come `2026.5.3-1` sono release stabili per questo controllo. Se npm risolve una di queste in una prerelease, OpenClaw si arresta e ti chiede di aderire esplicitamente con un tag di prerelease come `@beta`/`@rc` o una versione di prerelease esatta come `@1.2.3-beta.4`.
|
||||
|
||||
Se una spec di installazione senza prefisso corrisponde a un id Plugin ufficiale (per esempio `diffs`), OpenClaw installa direttamente la voce del catalogo. Per installare un pacchetto npm con lo stesso nome, usa una spec con scope esplicito (per esempio `@scope/diffs`).
|
||||
Se una specifica di installazione semplice corrisponde a un id ufficiale di Plugin (per esempio `diffs`), OpenClaw installa direttamente la voce del catalogo. Per installare un pacchetto npm con lo stesso nome, usa una specifica con scope esplicito (per esempio `@scope/diffs`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Repository Git">
|
||||
Usa `git:<repo>` per installare direttamente da un repository git. Le forme supportate includono URL clone `git:github.com/owner/repo`, `git:owner/repo`, `https://` completo, `ssh://`, `git://`, `file://` e `git@host:owner/repo.git`. Aggiungi `@<ref>` o `#<ref>` per fare il checkout di un branch, tag o commit prima dell'installazione.
|
||||
Usa `git:<repo>` per installare direttamente da un repository git. I formati supportati includono URL di clonazione `git:github.com/owner/repo`, `git:owner/repo`, `https://` completo, `ssh://`, `git://`, `file://` e `git@host:owner/repo.git`. Aggiungi `@<ref>` o `#<ref>` per fare il checkout di un branch, tag o commit prima dell'installazione.
|
||||
|
||||
Le installazioni Git clonano in una directory temporanea, fanno il checkout del ref richiesto quando presente, poi usano il normale installer della directory Plugin. Questo significa che validazione del manifest, scansione di codice pericoloso, lavoro di installazione del package manager e record di installazione si comportano come installazioni npm. Le installazioni git registrate includono URL/ref di origine più il commit risolto, così `openclaw plugins update` può risolvere di nuovo la fonte in seguito.
|
||||
Le installazioni Git clonano in una directory temporanea, fanno il checkout del ref richiesto quando presente, quindi usano il normale installer della directory del Plugin. Questo significa che la validazione del manifest, la scansione del codice pericoloso, il lavoro di installazione del package manager e i record di installazione si comportano come le installazioni npm. Le installazioni git registrate includono l'URL/ref sorgente più il commit risolto, così `openclaw plugins update` può risolvere nuovamente la sorgente in seguito.
|
||||
|
||||
Dopo l'installazione da git, usa `openclaw plugins inspect <id> --runtime --json` per verificare registrazioni runtime come metodi del Gateway e comandi CLI. Se il Plugin ha registrato una root CLI con `api.registerCli`, esegui quel comando direttamente tramite la CLI root di OpenClaw, per esempio `openclaw demo-plugin ping`.
|
||||
Dopo l'installazione da git, usa `openclaw plugins inspect <id> --runtime --json` per verificare le registrazioni runtime come i metodi Gateway e i comandi CLI. Se il Plugin ha registrato una root CLI con `api.registerCli`, esegui quel comando direttamente tramite la CLI root di OpenClaw, per esempio `openclaw demo-plugin ping`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Archivi">
|
||||
Archivi supportati: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Gli archivi Plugin OpenClaw nativi devono contenere un `openclaw.plugin.json` valido alla root estratta del Plugin; gli archivi che contengono solo `package.json` vengono rifiutati prima che OpenClaw scriva record di installazione.
|
||||
Archivi supportati: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Gli archivi Plugin nativi di OpenClaw devono contenere un `openclaw.plugin.json` valido nella root del Plugin estratto; gli archivi che contengono solo `package.json` vengono rifiutati prima che OpenClaw scriva i record di installazione.
|
||||
|
||||
Sono supportate anche le installazioni marketplace Claude.
|
||||
Sono supportate anche le installazioni dal marketplace di Claude.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -169,7 +169,7 @@ openclaw plugins install clawhub:openclaw-codex-app-server
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
|
||||
```
|
||||
|
||||
Le spec Plugin compatibili con npm senza prefisso installano da npm per impostazione predefinita durante la transizione di lancio:
|
||||
Le specifiche Plugin semplici sicure per npm vengono installate da npm per impostazione predefinita durante la transizione del lancio:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
@ -182,19 +182,19 @@ openclaw plugins install npm:openclaw-codex-app-server
|
||||
openclaw plugins install npm:@scope/plugin-name@1.0.1
|
||||
```
|
||||
|
||||
OpenClaw controlla la compatibilità dichiarata dell'API Plugin / del Gateway minimo prima dell'installazione. Quando la versione ClawHub selezionata pubblica un artefatto ClawPack, OpenClaw scarica il `.tgz` npm-pack versionato, verifica l'header digest ClawHub e il digest dell'artefatto, poi lo installa tramite il normale percorso archivio. Le versioni ClawHub più vecchie senza metadati ClawPack installano ancora tramite il percorso di verifica dell'archivio pacchetto legacy. Le installazioni registrate conservano i propri metadati della fonte ClawHub, tipo di artefatto, integrità npm, shasum npm, nome tarball e dati digest ClawPack per aggiornamenti successivi.
|
||||
Le installazioni ClawHub senza versione mantengono una spec registrata senza versione così `openclaw plugins update` può seguire release ClawHub più recenti; selettori espliciti di versione o tag come `clawhub:pkg@1.2.3` e `clawhub:pkg@beta` rimangono fissati a quel selettore.
|
||||
OpenClaw controlla la compatibilità pubblicizzata dell'API del Plugin / Gateway minimo prima dell'installazione. Quando la versione ClawHub selezionata pubblica un artefatto ClawPack, OpenClaw scarica il `.tgz` versionato npm-pack, verifica l'header digest di ClawHub e il digest dell'artefatto, quindi lo installa tramite il normale percorso degli archivi. Le versioni ClawHub più vecchie senza metadati ClawPack vengono ancora installate tramite il percorso legacy di verifica dell'archivio del pacchetto. Le installazioni registrate conservano i metadati della loro sorgente ClawHub, il tipo di artefatto, l'integrità npm, lo shasum npm, il nome del tarball e i dati di digest ClawPack per aggiornamenti successivi.
|
||||
Le installazioni ClawHub senza versione mantengono una specifica registrata senza versione, così `openclaw plugins update` può seguire release ClawHub più recenti; i selettori di versione o tag espliciti come `clawhub:pkg@1.2.3` e `clawhub:pkg@beta` restano fissati a quel selettore.
|
||||
|
||||
#### Abbreviazione marketplace
|
||||
#### Abbreviazione del marketplace
|
||||
|
||||
Usa l'abbreviazione `plugin@marketplace` quando il nome del marketplace esiste nella cache del registro locale di Claude in `~/.claude/plugins/known_marketplaces.json`:
|
||||
Usa l'abbreviazione `plugin@marketplace` quando il nome del marketplace esiste nella cache del registry locale di Claude in `~/.claude/plugins/known_marketplaces.json`:
|
||||
|
||||
```bash
|
||||
openclaw plugins marketplace list <marketplace-name>
|
||||
openclaw plugins install <plugin-name>@<marketplace-name>
|
||||
```
|
||||
|
||||
Usa `--marketplace` quando vuoi passare esplicitamente la fonte marketplace:
|
||||
Usa `--marketplace` quando vuoi passare esplicitamente la sorgente del marketplace:
|
||||
|
||||
```bash
|
||||
openclaw plugins install <plugin-name> --marketplace <marketplace-name>
|
||||
@ -205,27 +205,27 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Marketplace sources">
|
||||
- un nome di marketplace Claude noto da `~/.claude/plugins/known_marketplaces.json`
|
||||
- un nome di marketplace noto a Claude da `~/.claude/plugins/known_marketplaces.json`
|
||||
- una radice di marketplace locale o un percorso `marketplace.json`
|
||||
- una forma abbreviata di repository GitHub come `owner/repo`
|
||||
- un'abbreviazione di repository GitHub come `owner/repo`
|
||||
- un URL di repository GitHub come `https://github.com/owner/repo`
|
||||
- un URL git
|
||||
|
||||
</Tab>
|
||||
<Tab title="Remote marketplace rules">
|
||||
Per i marketplace remoti caricati da GitHub o git, le voci Plugin devono rimanere all'interno del repository marketplace clonato. OpenClaw accetta sorgenti con percorso relativo da quel repository e rifiuta sorgenti Plugin HTTP(S), con percorso assoluto, git, GitHub e altre sorgenti Plugin non basate su percorso dai manifest remoti.
|
||||
Per i marketplace remoti caricati da GitHub o git, le voci dei plugin devono rimanere all'interno del repository marketplace clonato. OpenClaw accetta sorgenti con percorsi relativi da quel repository e rifiuta sorgenti di plugin HTTP(S), con percorso assoluto, git, GitHub e altre sorgenti non basate su percorso dai manifest remoti.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Per percorsi locali e archivi, OpenClaw rileva automaticamente:
|
||||
Per i percorsi e gli archivi locali, OpenClaw rileva automaticamente:
|
||||
|
||||
- Plugin OpenClaw nativi (`openclaw.plugin.json`)
|
||||
- plugin OpenClaw nativi (`openclaw.plugin.json`)
|
||||
- bundle compatibili con Codex (`.codex-plugin/plugin.json`)
|
||||
- bundle compatibili con Claude (`.claude-plugin/plugin.json` o il layout predefinito dei componenti Claude)
|
||||
- bundle compatibili con Cursor (`.cursor-plugin/plugin.json`)
|
||||
|
||||
<Note>
|
||||
I bundle compatibili vengono installati nella normale radice dei Plugin e partecipano allo stesso flusso di elenco/info/abilitazione/disabilitazione. Oggi sono supportati Skills dei bundle, Skills di comando Claude, valori predefiniti Claude `settings.json`, valori predefiniti Claude `.lsp.json` / `lspServers` dichiarati nel manifest, Skills di comando Cursor e directory hook compatibili con Codex; altre funzionalità dei bundle rilevate sono mostrate in diagnostica/info ma non sono ancora collegate all'esecuzione runtime.
|
||||
I bundle compatibili vengono installati nella normale radice dei plugin e partecipano allo stesso flusso list/info/enable/disable. Oggi sono supportati Skills dei bundle, command-skills Claude, impostazioni predefinite Claude `settings.json`, impostazioni predefinite Claude `.lsp.json` / `lspServers` dichiarati dal manifest, command-skills Cursor e directory hook compatibili con Codex; le altre funzionalità rilevate dei bundle sono mostrate in diagnostica/info ma non sono ancora collegate all'esecuzione runtime.
|
||||
</Note>
|
||||
|
||||
### Elenco
|
||||
@ -241,39 +241,40 @@ openclaw plugins search <query> --json
|
||||
```
|
||||
|
||||
<ParamField path="--enabled" type="boolean">
|
||||
Mostra solo i Plugin abilitati.
|
||||
Mostra solo i plugin abilitati.
|
||||
</ParamField>
|
||||
<ParamField path="--verbose" type="boolean">
|
||||
Passa dalla vista tabellare a righe di dettaglio per Plugin con metadati di sorgente/origine/versione/attivazione.
|
||||
Passa dalla vista tabellare a righe di dettaglio per plugin con metadati di sorgente/origine/versione/attivazione.
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Inventario leggibile dalla macchina più diagnostica del registro e stato di installazione delle dipendenze del pacchetto.
|
||||
</ParamField>
|
||||
|
||||
<Note>
|
||||
`plugins list` legge prima il registro Plugin locale persistito, con un fallback derivato solo dal manifest quando il registro è mancante o non valido. È utile per verificare se un Plugin è installato, abilitato e visibile alla pianificazione dell'avvio a freddo, ma non è una sonda runtime live di un processo Gateway già in esecuzione. Dopo aver modificato codice Plugin, abilitazione, policy degli hook o `plugins.load.paths`, riavvia il Gateway che serve il canale prima di aspettarti l'esecuzione del nuovo codice `register(api)` o degli hook. Per distribuzioni remote/container, verifica di riavviare il vero processo figlio `openclaw gateway run`, non solo un processo wrapper.
|
||||
`plugins list` legge prima il registro locale persistente dei plugin, con un fallback derivato solo dal manifest quando il registro manca o non è valido. È utile per verificare se un plugin è installato, abilitato e visibile alla pianificazione dell'avvio a freddo, ma non è una sonda runtime live di un processo Gateway già in esecuzione. Dopo aver modificato codice del plugin, abilitazione, criteri degli hook o `plugins.load.paths`, riavvia il Gateway che serve il canale prima di aspettarti che nuovo codice `register(api)` o nuovi hook vengano eseguiti. Per distribuzioni remote/container, verifica di riavviare il processo figlio effettivo `openclaw gateway run`, non solo un processo wrapper.
|
||||
|
||||
`plugins list --json` include il `dependencyStatus` di ciascun Plugin da `package.json`
|
||||
`plugins list --json` include il `dependencyStatus` di ciascun plugin da `package.json`
|
||||
`dependencies` e `optionalDependencies`. OpenClaw verifica se quei nomi di pacchetto
|
||||
sono presenti lungo il normale percorso di lookup Node `node_modules` del Plugin; non
|
||||
importa codice runtime del Plugin, non esegue un gestore di pacchetti e non ripara
|
||||
sono presenti lungo il normale percorso di ricerca Node `node_modules` del plugin; non
|
||||
importa codice runtime del plugin, non esegue un gestore di pacchetti e non ripara
|
||||
dipendenze mancanti.
|
||||
</Note>
|
||||
|
||||
`plugins search` è una ricerca nel catalogo remoto ClawHub. Non ispeziona lo
|
||||
stato locale, non modifica la configurazione, non installa pacchetti e non carica codice runtime dei Plugin. I risultati di ricerca includono il nome del pacchetto ClawHub, famiglia, canale, versione, riepilogo e un suggerimento di installazione come `openclaw plugins install clawhub:<package>`.
|
||||
stato locale, non modifica la configurazione, non installa pacchetti e non carica codice runtime del plugin. I risultati di ricerca includono nome del pacchetto ClawHub, famiglia, canale, versione, riepilogo e
|
||||
un suggerimento di installazione come `openclaw plugins install clawhub:<package>`.
|
||||
|
||||
Per lavorare su Plugin inclusi all'interno di un'immagine Docker pacchettizzata, monta con bind la directory
|
||||
sorgente del Plugin sopra il percorso sorgente pacchettizzato corrispondente, ad esempio
|
||||
`/app/extensions/synology-chat`. OpenClaw scoprirà quell'overlay sorgente montato
|
||||
Per il lavoro sui plugin in bundle all'interno di un'immagine Docker pacchettizzata, monta con bind la directory
|
||||
sorgente del plugin sopra il percorso sorgente pacchettizzato corrispondente, ad esempio
|
||||
`/app/extensions/synology-chat`. OpenClaw scoprirà quell'overlay della sorgente montata
|
||||
prima di `/app/dist/extensions/synology-chat`; una semplice directory sorgente copiata
|
||||
rimane inerte, così le normali installazioni pacchettizzate continuano a usare la dist compilata.
|
||||
rimane inerte, quindi le normali installazioni pacchettizzate continuano a usare il dist compilato.
|
||||
|
||||
Per il debug degli hook runtime:
|
||||
|
||||
- `openclaw plugins inspect <id> --runtime --json` mostra hook registrati e diagnostica da un passaggio di ispezione con modulo caricato. L'ispezione runtime non installa mai dipendenze; usa `openclaw doctor --fix` per pulire lo stato legacy delle dipendenze o installare Plugin scaricabili configurati mancanti.
|
||||
- `openclaw gateway status --deep --require-rpc` conferma il Gateway raggiungibile, suggerimenti su servizio/processo, percorso di configurazione e stato RPC.
|
||||
- Gli hook di conversazione non inclusi (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) richiedono `plugins.entries.<id>.hooks.allowConversationAccess=true`.
|
||||
- `openclaw plugins inspect <id> --runtime --json` mostra hook registrati e diagnostica da un passaggio di ispezione con modulo caricato. L'ispezione runtime non installa mai dipendenze; usa `openclaw doctor --fix` per ripulire lo stato di dipendenze legacy o installare plugin scaricabili configurati mancanti.
|
||||
- `openclaw gateway status --deep --require-rpc` conferma il Gateway raggiungibile, suggerimenti su servizio/processo, percorso di configurazione e salute RPC.
|
||||
- Gli hook di conversazione non in bundle (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) richiedono `plugins.entries.<id>.hooks.allowConversationAccess=true`.
|
||||
|
||||
Usa `--link` per evitare di copiare una directory locale (aggiunge a `plugins.load.paths`):
|
||||
|
||||
@ -284,14 +285,14 @@ openclaw plugins install -l ./my-plugin
|
||||
<Note>
|
||||
`--force` non è supportato con `--link` perché le installazioni collegate riutilizzano il percorso sorgente invece di copiare sopra una destinazione di installazione gestita.
|
||||
|
||||
Usa `--pin` nelle installazioni npm per salvare la specifica esatta risolta (`name@version`) nell'indice Plugin gestito mantenendo non fissato il comportamento predefinito.
|
||||
Usa `--pin` sulle installazioni npm per salvare la specifica esatta risolta (`name@version`) nell'indice dei plugin gestiti mantenendo non vincolato il comportamento predefinito.
|
||||
</Note>
|
||||
|
||||
### Indice Plugin
|
||||
### Indice dei plugin
|
||||
|
||||
I metadati di installazione dei Plugin sono stato gestito dalla macchina, non configurazione utente. Installazioni e aggiornamenti li scrivono in `plugins/installs.json` sotto la directory di stato OpenClaw attiva. La sua mappa di primo livello `installRecords` è la sorgente durevole dei metadati di installazione, inclusi i record per manifest Plugin danneggiati o mancanti. L'array `plugins` è la cache del registro a freddo derivata dal manifest. Il file include un avviso di non modifica ed è usato da `openclaw plugins update`, disinstallazione, diagnostica e registro Plugin a freddo.
|
||||
I metadati di installazione dei plugin sono stato gestito dalla macchina, non configurazione utente. Installazioni e aggiornamenti li scrivono in `plugins/installs.json` sotto la directory di stato OpenClaw attiva. La mappa di primo livello `installRecords` è la sorgente durevole dei metadati di installazione, inclusi i record per manifest di plugin rotti o mancanti. L'array `plugins` è la cache del registro a freddo derivata dal manifest. Il file include un avviso di non modifica ed è usato da `openclaw plugins update`, disinstallazione, diagnostica e registro dei plugin a freddo.
|
||||
|
||||
Quando OpenClaw vede record legacy forniti `plugins.installs` nella configurazione, li sposta nell'indice Plugin e rimuove la chiave di configurazione; se una delle due scritture fallisce, i record di configurazione vengono mantenuti affinché i metadati di installazione non vadano persi.
|
||||
Quando OpenClaw vede record legacy distribuiti `plugins.installs` nella configurazione, li sposta nell'indice dei plugin e rimuove la chiave di configurazione; se una delle due scritture fallisce, i record di configurazione vengono mantenuti così i metadati di installazione non vanno persi.
|
||||
|
||||
### Disinstallazione
|
||||
|
||||
@ -301,7 +302,7 @@ openclaw plugins uninstall <id> --dry-run
|
||||
openclaw plugins uninstall <id> --keep-files
|
||||
```
|
||||
|
||||
`uninstall` rimuove i record Plugin da `plugins.entries`, dall'indice Plugin persistito, dalle voci dell'elenco allow/deny dei Plugin e dalle voci collegate `plugins.load.paths` quando applicabile. A meno che `--keep-files` non sia impostato, la disinstallazione rimuove anche la directory di installazione gestita tracciata quando si trova all'interno della radice delle estensioni Plugin di OpenClaw. Per i Plugin di memoria attiva, lo slot di memoria viene reimpostato a `memory-core`.
|
||||
`uninstall` rimuove i record dei plugin da `plugins.entries`, dall'indice persistente dei plugin, dalle voci dell'elenco di consenso/diniego dei plugin e dalle voci collegate di `plugins.load.paths` quando applicabile. A meno che `--keep-files` sia impostato, la disinstallazione rimuove anche la directory di installazione gestita tracciata quando si trova dentro la radice delle estensioni plugin di OpenClaw. Per i plugin di Active Memory, lo slot di memoria viene reimpostato su `memory-core`.
|
||||
|
||||
<Note>
|
||||
`--keep-config` è supportato come alias deprecato di `--keep-files`.
|
||||
@ -317,29 +318,29 @@ openclaw plugins update @openclaw/voice-call
|
||||
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
|
||||
```
|
||||
|
||||
Gli aggiornamenti si applicano alle installazioni Plugin tracciate nell'indice Plugin gestito e alle installazioni hook-pack tracciate in `hooks.internal.installs`.
|
||||
Gli aggiornamenti si applicano alle installazioni di plugin tracciate nell'indice dei plugin gestiti e alle installazioni di hook-pack tracciate in `hooks.internal.installs`.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Resolving plugin id vs npm spec">
|
||||
Quando passi un id Plugin, OpenClaw riutilizza la specifica di installazione registrata per quel Plugin. Ciò significa che dist-tag memorizzati in precedenza come `@beta` e versioni esatte fissate continuano a essere usati nelle esecuzioni successive di `update <id>`.
|
||||
Quando passi un id plugin, OpenClaw riutilizza la specifica di installazione registrata per quel plugin. Questo significa che dist-tag memorizzati in precedenza come `@beta` e versioni esatte fissate continuano a essere usati nelle successive esecuzioni di `update <id>`.
|
||||
|
||||
Per le installazioni npm, puoi anche passare una specifica esplicita di pacchetto npm con un dist-tag o una versione esatta. OpenClaw risolve quel nome di pacchetto tornando al record Plugin tracciato, aggiorna quel Plugin installato e registra la nuova specifica npm per futuri aggiornamenti basati su id.
|
||||
Per le installazioni npm, puoi anche passare una specifica esplicita di pacchetto npm con un dist-tag o una versione esatta. OpenClaw risolve quel nome di pacchetto verso il record del plugin tracciato, aggiorna quel plugin installato e registra la nuova specifica npm per futuri aggiornamenti basati su id.
|
||||
|
||||
Passare il nome del pacchetto npm senza una versione o tag risolve anch'esso tornando al record Plugin tracciato. Usalo quando un Plugin era fissato a una versione esatta e vuoi riportarlo alla linea di rilascio predefinita del registro.
|
||||
Passare il nome del pacchetto npm senza versione o tag risolve anch'esso verso il record del plugin tracciato. Usalo quando un plugin era fissato a una versione esatta e vuoi riportarlo alla linea di rilascio predefinita del registro.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Beta channel updates">
|
||||
`openclaw plugins update` riutilizza la specifica Plugin tracciata a meno che tu non passi una nuova specifica. `openclaw update` conosce inoltre il canale di aggiornamento OpenClaw attivo: sul canale beta, i record Plugin npm e ClawHub della linea predefinita provano prima `@beta`, poi ripiegano sulla specifica predefinita/latest registrata se non esiste alcun rilascio beta del Plugin. Versioni esatte e tag espliciti restano fissati a quel selettore.
|
||||
`openclaw plugins update` riutilizza la specifica del plugin tracciato a meno che tu non passi una nuova specifica. `openclaw update` conosce inoltre il canale di aggiornamento OpenClaw attivo: sul canale beta, i record di plugin npm e ClawHub sulla linea predefinita provano prima `@beta`, poi ripiegano sulla specifica predefinita/latest registrata se non esiste alcuna release beta del plugin. Versioni esatte e tag espliciti restano fissati a quel selettore.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Version checks and integrity drift">
|
||||
Prima di un aggiornamento npm live, OpenClaw controlla la versione del pacchetto installato rispetto ai metadati del registro npm. Se la versione installata e l'identità dell'artefatto registrata corrispondono già al target risolto, l'aggiornamento viene saltato senza scaricare, reinstallare o riscrivere `openclaw.json`.
|
||||
Prima di un aggiornamento npm live, OpenClaw verifica la versione del pacchetto installato rispetto ai metadati del registro npm. Se la versione installata e l'identità dell'artefatto registrata corrispondono già al target risolto, l'aggiornamento viene saltato senza scaricare, reinstallare o riscrivere `openclaw.json`.
|
||||
|
||||
Quando esiste un hash di integrità memorizzato e l'hash dell'artefatto recuperato cambia, OpenClaw lo tratta come deriva dell'artefatto npm. Il comando interattivo `openclaw plugins update` stampa gli hash attesi ed effettivi e chiede conferma prima di procedere. Gli helper di aggiornamento non interattivi falliscono in modo chiuso a meno che il chiamante non fornisca una policy di continuazione esplicita.
|
||||
Quando esiste un hash di integrità memorizzato e l'hash dell'artefatto recuperato cambia, OpenClaw lo tratta come deriva dell'artefatto npm. Il comando interattivo `openclaw plugins update` stampa gli hash attesi e reali e chiede conferma prima di procedere. Gli helper di aggiornamento non interattivi falliscono in modo chiuso a meno che il chiamante fornisca un criterio di continuazione esplicito.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--dangerously-force-unsafe-install on update">
|
||||
`--dangerously-force-unsafe-install` è disponibile anche su `plugins update` come override di emergenza per falsi positivi della scansione integrata di codice pericoloso durante gli aggiornamenti Plugin. Non aggira comunque i blocchi di policy `before_install` dei Plugin né il blocco per fallimento della scansione, e si applica solo agli aggiornamenti Plugin, non agli aggiornamenti hook-pack.
|
||||
`--dangerously-force-unsafe-install` è disponibile anche su `plugins update` come override di emergenza per falsi positivi della scansione del codice pericoloso integrata durante gli aggiornamenti dei plugin. Continua a non bypassare i blocchi dei criteri `before_install` del plugin o i blocchi per fallimento della scansione, e si applica solo agli aggiornamenti dei plugin, non agli aggiornamenti degli hook-pack.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -351,21 +352,21 @@ openclaw plugins inspect <id> --runtime
|
||||
openclaw plugins inspect <id> --json
|
||||
```
|
||||
|
||||
Inspect mostra identità, stato di caricamento, sorgente, funzionalità del manifest, flag di policy, diagnostica, metadati di installazione, funzionalità dei bundle e qualsiasi supporto server MCP o LSP rilevato senza importare codice runtime del Plugin per impostazione predefinita. Aggiungi `--runtime` per caricare il modulo Plugin e includere hook registrati, strumenti, comandi, servizi, metodi Gateway e route HTTP. L'ispezione runtime segnala direttamente le dipendenze Plugin mancanti; installazioni e riparazioni restano in `openclaw plugins install`, `openclaw plugins update` e `openclaw doctor --fix`.
|
||||
Inspect mostra identità, stato di caricamento, sorgente, funzionalità del manifest, flag dei criteri, diagnostica, metadati di installazione, funzionalità dei bundle e qualsiasi supporto server MCP o LSP rilevato senza importare per impostazione predefinita il runtime del plugin. Aggiungi `--runtime` per caricare il modulo del plugin e includere hook, strumenti, comandi, servizi, metodi gateway e route HTTP registrati. L'ispezione runtime segnala direttamente dipendenze plugin mancanti; installazioni e riparazioni restano in `openclaw plugins install`, `openclaw plugins update` e `openclaw doctor --fix`.
|
||||
|
||||
I comandi CLI di proprietà dei Plugin sono installati come gruppi di comandi root `openclaw`. Dopo che `inspect --runtime` mostra un comando sotto `cliCommands`, eseguilo come `openclaw <command> ...`; per esempio, un Plugin che registra `demo-git` può essere verificato con `openclaw demo-git ping`.
|
||||
I comandi CLI posseduti dai plugin sono installati come gruppi di comandi root `openclaw`. Dopo che `inspect --runtime` mostra un comando sotto `cliCommands`, eseguilo come `openclaw <command> ...`; ad esempio un plugin che registra `demo-git` può essere verificato con `openclaw demo-git ping`.
|
||||
|
||||
Ogni Plugin è classificato in base a ciò che registra effettivamente a runtime:
|
||||
Ogni plugin è classificato in base a ciò che registra effettivamente a runtime:
|
||||
|
||||
- **plain-capability** — un tipo di funzionalità (ad esempio un Plugin solo provider)
|
||||
- **hybrid-capability** — più tipi di funzionalità (ad esempio testo + parlato + immagini)
|
||||
- **plain-capability** — un tipo di funzionalità (ad es. un plugin solo provider)
|
||||
- **hybrid-capability** — più tipi di funzionalità (ad es. testo + voce + immagini)
|
||||
- **hook-only** — solo hook, nessuna funzionalità o superficie
|
||||
- **non-capability** — strumenti/comandi/servizi ma nessuna funzionalità
|
||||
|
||||
Vedi [Forme dei Plugin](/it/plugins/architecture#plugin-shapes) per maggiori informazioni sul modello delle funzionalità.
|
||||
Vedi [Forme dei plugin](/it/plugins/architecture#plugin-shapes) per ulteriori informazioni sul modello di funzionalità.
|
||||
|
||||
<Note>
|
||||
Il flag `--json` produce un report leggibile dalla macchina adatto a scripting e audit. `inspect --all` renderizza una tabella a livello di flotta con colonne per forma, tipi di funzionalità, avvisi di compatibilità, funzionalità dei bundle e riepilogo degli hook. `info` è un alias di `inspect`.
|
||||
Il flag `--json` produce un report leggibile dalla macchina adatto a scripting e audit. `inspect --all` renderizza una tabella su tutta la flotta con colonne per forma, tipi di funzionalità, avvisi di compatibilità, funzionalità dei bundle e riepilogo degli hook. `info` è un alias di `inspect`.
|
||||
</Note>
|
||||
|
||||
### Doctor
|
||||
@ -374,11 +375,11 @@ Il flag `--json` produce un report leggibile dalla macchina adatto a scripting e
|
||||
openclaw plugins doctor
|
||||
```
|
||||
|
||||
`doctor` segnala errori di caricamento dei Plugin, diagnostica di manifest/discovery e avvisi di compatibilità. Quando tutto è pulito, stampa `No plugin issues detected.`
|
||||
`doctor` segnala errori di caricamento dei plugin, diagnostica di manifest/discovery e avvisi di compatibilità. Quando tutto è pulito stampa `No plugin issues detected.`
|
||||
|
||||
Se un Plugin configurato è presente su disco ma bloccato dai controlli di sicurezza dei percorsi del loader, la validazione della configurazione mantiene la voce Plugin e la segnala come `present but blocked`. Correggi la diagnostica precedente del Plugin bloccato, come proprietà del percorso o permessi world-writable, invece di rimuovere la configurazione `plugins.entries.<id>` o `plugins.allow`.
|
||||
Se un plugin configurato è presente su disco ma bloccato dai controlli di sicurezza del percorso del loader, la validazione della configurazione mantiene la voce del plugin e la segnala come `present but blocked`. Correggi la diagnostica precedente del plugin bloccato, come proprietà del percorso o permessi scrivibili da tutti, invece di rimuovere la configurazione `plugins.entries.<id>` o `plugins.allow`.
|
||||
|
||||
Per errori di forma del modulo come export `register`/`activate` mancanti, riesegui con `OPENCLAW_PLUGIN_LOAD_DEBUG=1` per includere un riepilogo compatto della forma degli export nell'output diagnostico.
|
||||
Per fallimenti della forma del modulo come esportazioni `register`/`activate` mancanti, riesegui con `OPENCLAW_PLUGIN_LOAD_DEBUG=1` per includere un riepilogo compatto della forma delle esportazioni nell'output diagnostico.
|
||||
|
||||
### Registro
|
||||
|
||||
@ -388,14 +389,14 @@ openclaw plugins registry --refresh
|
||||
openclaw plugins registry --json
|
||||
```
|
||||
|
||||
Il registro Plugin locale è il modello di lettura a freddo persistito di OpenClaw per identità Plugin installata, abilitazione, metadati sorgente e proprietà dei contributi. Avvio normale, lookup del proprietario provider, classificazione della configurazione del canale e inventario Plugin possono leggerlo senza importare moduli runtime dei Plugin.
|
||||
Il registro locale dei plugin è il modello di lettura a freddo persistente di OpenClaw per identità dei plugin, abilitazione, metadati di sorgente e proprietà dei contributi. Avvio normale, ricerca del proprietario del provider, classificazione della configurazione del canale e inventario dei plugin possono leggerlo senza importare moduli runtime dei plugin.
|
||||
|
||||
Usa `plugins registry` per verificare se il registry persistente è presente, aggiornato o obsoleto. Usa `--refresh` per ricrearlo dall’indice dei plugin persistente, dalla policy di configurazione e dai metadati di manifest/pacchetto. Questo è un percorso di riparazione, non un percorso di attivazione a runtime.
|
||||
Usa `plugins registry` per verificare se il registro persistente è presente, aggiornato o obsoleto. Usa `--refresh` per ricostruirlo dall'indice dei plugin persistente, dalla policy di configurazione e dai metadati di manifest/package. Questo è un percorso di riparazione, non un percorso di attivazione a runtime.
|
||||
|
||||
`openclaw doctor --fix` ripara anche la deriva npm gestita adiacente al registry: se un pacchetto `@openclaw/*` orfano sotto la radice npm dei plugin gestiti oscura un plugin incluso, doctor rimuove quel pacchetto obsoleto e ricrea il registry in modo che l’avvio convalidi rispetto al manifest incluso.
|
||||
`openclaw doctor --fix` ripara anche i disallineamenti npm gestiti adiacenti al registro: se un package `@openclaw/*` orfano o recuperato sotto la radice npm dei plugin gestiti oscura un plugin incluso, doctor rimuove quel package obsoleto e ricostruisce il registro in modo che l'avvio venga validato rispetto al manifest incluso.
|
||||
|
||||
<Warning>
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` è un interruttore di compatibilità di emergenza deprecato per errori di lettura del registry. Preferisci `plugins registry --refresh` o `openclaw doctor --fix`; il fallback env serve solo per il ripristino di emergenza dell’avvio mentre la migrazione viene distribuita.
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` è uno switch di compatibilità break-glass deprecato per errori di lettura del registro. Preferisci `plugins registry --refresh` o `openclaw doctor --fix`; il fallback env è solo per il ripristino di emergenza dell'avvio durante la distribuzione della migrazione.
|
||||
</Warning>
|
||||
|
||||
### Marketplace
|
||||
@ -405,10 +406,10 @@ openclaw plugins marketplace list <source>
|
||||
openclaw plugins marketplace list <source> --json
|
||||
```
|
||||
|
||||
L’elenco del marketplace accetta un percorso di marketplace locale, un percorso `marketplace.json`, un’abbreviazione GitHub come `owner/repo`, un URL di repository GitHub o un URL git. `--json` stampa l’etichetta della sorgente risolta più il manifest marketplace analizzato e le voci dei plugin.
|
||||
L'elenco Marketplace accetta un percorso marketplace locale, un percorso `marketplace.json`, una scorciatoia GitHub come `owner/repo`, un URL di repo GitHub o un URL git. `--json` stampa l'etichetta della sorgente risolta più il manifest marketplace analizzato e le voci dei plugin.
|
||||
|
||||
## Correlati
|
||||
|
||||
- [Creare plugin](/it/plugins/building-plugins)
|
||||
- [Creazione di plugin](/it/plugins/building-plugins)
|
||||
- [Riferimento CLI](/it/cli)
|
||||
- [Plugin della community](/it/plugins/community)
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
---
|
||||
read_when:
|
||||
- Aggiungere o modificare le migrazioni di doctor
|
||||
- Introduzione di modifiche di configurazione incompatibili
|
||||
- Aggiungere o modificare migrazioni di doctor
|
||||
- Introduzione di modifiche di configurazione non retrocompatibili
|
||||
sidebarTitle: Doctor
|
||||
summary: 'Comando doctor: controlli di integrità, migrazioni della configurazione e passaggi di riparazione'
|
||||
title: Diagnostica
|
||||
x-i18n:
|
||||
generated_at: "2026-05-04T08:39:57Z"
|
||||
generated_at: "2026-05-04T09:37:09Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 00124eb5d85445080439d2603c65b78e85b0a2fded1cff121f21c330464f42cf
|
||||
source_hash: 1bc8615f5e49e8c20785a9dc9779c447fd0d5794c80663d2396b0a20b4187798
|
||||
source_path: gateway/doctor.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
`openclaw doctor` è lo strumento di riparazione e migrazione per OpenClaw. Corregge configurazioni/stati obsoleti, controlla l'integrità e fornisce passaggi di riparazione attuabili.
|
||||
`openclaw doctor` è lo strumento di riparazione + migrazione per OpenClaw. Corregge configurazioni/stato obsoleti, controlla lo stato di salute e fornisce passaggi di riparazione attuabili.
|
||||
|
||||
## Avvio rapido
|
||||
|
||||
@ -30,7 +30,7 @@ openclaw doctor
|
||||
openclaw doctor --yes
|
||||
```
|
||||
|
||||
Accetta le impostazioni predefinite senza richieste interattive (inclusi i passaggi di riavvio/servizio/riparazione sandbox quando applicabile).
|
||||
Accetta i valori predefiniti senza chiedere conferma (inclusi i passaggi di riavvio/riparazione servizio/sandbox quando applicabili).
|
||||
|
||||
</Tab>
|
||||
<Tab title="--repair">
|
||||
@ -38,7 +38,7 @@ openclaw doctor
|
||||
openclaw doctor --repair
|
||||
```
|
||||
|
||||
Applica le riparazioni consigliate senza richieste interattive (riparazioni + riavvii quando sono sicuri).
|
||||
Applica le riparazioni consigliate senza chiedere conferma (riparazioni + riavvii dove sicuro).
|
||||
|
||||
</Tab>
|
||||
<Tab title="--repair --force">
|
||||
@ -46,7 +46,7 @@ openclaw doctor
|
||||
openclaw doctor --repair --force
|
||||
```
|
||||
|
||||
Applica anche le riparazioni aggressive (sovrascrive le configurazioni supervisor personalizzate).
|
||||
Applica anche riparazioni aggressive (sovrascrive le configurazioni supervisor personalizzate).
|
||||
|
||||
</Tab>
|
||||
<Tab title="--non-interactive">
|
||||
@ -54,7 +54,7 @@ openclaw doctor
|
||||
openclaw doctor --non-interactive
|
||||
```
|
||||
|
||||
Esegue senza richieste interattive e applica solo migrazioni sicure (normalizzazione della configurazione + spostamenti dello stato su disco). Salta le azioni di riavvio/servizio/sandbox che richiedono conferma umana. Le migrazioni dello stato legacy vengono eseguite automaticamente quando rilevate.
|
||||
Esegue senza prompt e applica solo migrazioni sicure (normalizzazione della configurazione + spostamenti dello stato su disco). Salta le azioni di riavvio/servizio/sandbox che richiedono conferma umana. Le migrazioni dello stato legacy vengono eseguite automaticamente quando rilevate.
|
||||
|
||||
</Tab>
|
||||
<Tab title="--deep">
|
||||
@ -62,12 +62,12 @@ openclaw doctor
|
||||
openclaw doctor --deep
|
||||
```
|
||||
|
||||
Scansiona i servizi di sistema per installazioni Gateway aggiuntive (launchd/systemd/schtasks).
|
||||
Analizza i servizi di sistema alla ricerca di installazioni Gateway aggiuntive (launchd/systemd/schtasks).
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Se vuoi esaminare le modifiche prima di scrivere, apri prima il file di configurazione:
|
||||
Se vuoi rivedere le modifiche prima della scrittura, apri prima il file di configurazione:
|
||||
|
||||
```bash
|
||||
cat ~/.openclaw/openclaw.json
|
||||
@ -76,110 +76,110 @@ cat ~/.openclaw/openclaw.json
|
||||
## Cosa fa (riepilogo)
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Integrità, UI e aggiornamenti">
|
||||
- Aggiornamento pre-flight opzionale per installazioni git (solo interattivo).
|
||||
- Controllo di freschezza del protocollo UI (ricompila Control UI quando lo schema del protocollo è più recente).
|
||||
- Controllo di integrità + richiesta di riavvio.
|
||||
- Riepilogo dello stato Skills (idonee/mancanti/bloccate) e stato dei Plugin.
|
||||
<Accordion title="Salute, UI e aggiornamenti">
|
||||
- Aggiornamento pre-flight facoltativo per installazioni git (solo interattivo).
|
||||
- Controllo della freschezza del protocollo UI (ricostruisce l'Interfaccia di controllo quando lo schema del protocollo è più recente).
|
||||
- Controllo di salute + prompt di riavvio.
|
||||
- Riepilogo dello stato Skills (idonee/mancanti/bloccate) e stato dei plugin.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Configurazione e migrazioni">
|
||||
- Normalizzazione della configurazione per valori legacy.
|
||||
- Migrazione della configurazione Talk dai campi piatti legacy `talk.*` a `talk.provider` + `talk.providers.<provider>`.
|
||||
- Controlli di migrazione del browser per configurazioni legacy dell'estensione Chrome e prontezza Chrome MCP.
|
||||
- Avvisi sulle sostituzioni del provider OpenCode (`models.providers.opencode` / `models.providers.opencode-go`).
|
||||
- Avvisi di shadowing OAuth di Codex (`models.providers.openai-codex`).
|
||||
- Controllo dei prerequisiti OAuth TLS per i profili OAuth OpenAI Codex.
|
||||
- Avvisi sulla allowlist di Plugin/strumenti quando `plugins.allow` è restrittivo ma la policy degli strumenti richiede ancora wildcard o strumenti di proprietà dei Plugin.
|
||||
- Migrazione dello stato legacy su disco (sessioni/directory agent/autenticazione WhatsApp).
|
||||
- Migrazione delle chiavi legacy del contratto del manifesto Plugin (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders` → `contracts`).
|
||||
- Migrazione dello store Cron legacy (`jobId`, `schedule.cron`, campi delivery/payload di primo livello, payload `provider`, processi fallback Webhook semplici `notify: true`).
|
||||
- Migrazione della runtime-policy legacy degli agent a `agents.defaults.agentRuntime` e `agents.list[].agentRuntime`.
|
||||
- Pulizia della configurazione Plugin obsoleta quando i Plugin sono abilitati; quando `plugins.enabled=false`, i riferimenti Plugin obsoleti vengono trattati come configurazione di contenimento inerte e conservati.
|
||||
- Migrazione della configurazione Talk dai campi flat legacy `talk.*` a `talk.provider` + `talk.providers.<provider>`.
|
||||
- Controlli di migrazione browser per configurazioni legacy dell'estensione Chrome e preparazione Chrome MCP.
|
||||
- Avvisi sugli override del provider OpenCode (`models.providers.opencode` / `models.providers.opencode-go`).
|
||||
- Avvisi di shadowing OAuth Codex (`models.providers.openai-codex`).
|
||||
- Controllo dei prerequisiti TLS OAuth per i profili OAuth OpenAI Codex.
|
||||
- Avvisi allowlist plugin/strumenti quando `plugins.allow` è restrittivo ma la policy degli strumenti richiede ancora wildcard o strumenti di proprietà del plugin.
|
||||
- Migrazione dello stato legacy su disco (sessioni/directory agent/auth WhatsApp).
|
||||
- Migrazione delle chiavi legacy del contratto manifest plugin (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders` → `contracts`).
|
||||
- Migrazione dello store Cron legacy (`jobId`, `schedule.cron`, campi delivery/payload di primo livello, payload `provider`, job Webhook di fallback semplici `notify: true`).
|
||||
- Migrazione della runtime-policy agent legacy a `agents.defaults.agentRuntime` e `agents.list[].agentRuntime`.
|
||||
- Pulizia della configurazione plugin obsoleta quando i plugin sono abilitati; quando `plugins.enabled=false`, i riferimenti plugin obsoleti sono trattati come configurazione di contenimento inerte e vengono preservati.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Stato e integrità">
|
||||
- Ispezione dei file di lock delle sessioni e pulizia dei lock obsoleti.
|
||||
- Riparazione delle trascrizioni delle sessioni per rami duplicati di riscrittura prompt creati dalle build 2026.4.24 interessate.
|
||||
- Rilevamento di tombstone di recupero-riavvio per subagent bloccati, con supporto `--fix` per cancellare flag di recupero interrotto obsoleti, così l'avvio non continua a trattare il child come interrotto dal riavvio.
|
||||
- Controlli di integrità dello stato e dei permessi (sessioni, trascrizioni, directory dello stato).
|
||||
- Riparazione delle trascrizioni di sessione per rami duplicati di prompt-rewrite creati dalle build 2026.4.24 interessate.
|
||||
- Rilevamento delle tombstone di restart-recovery dei subagent bloccati, con supporto `--fix` per cancellare flag di recovery aborted obsoleti, così l'avvio non continua a trattare il figlio come restart-aborted.
|
||||
- Controlli di integrità e permessi dello stato (sessioni, trascrizioni, directory di stato).
|
||||
- Controlli dei permessi del file di configurazione (chmod 600) durante l'esecuzione locale.
|
||||
- Integrità dell'autenticazione dei modelli: controlla la scadenza OAuth, può aggiornare token in scadenza e segnala stati di cooldown/disabilitazione dei profili di autenticazione.
|
||||
- Rilevamento di directory workspace aggiuntive (`~/openclaw`).
|
||||
- Salute auth modelli: controlla la scadenza OAuth, può aggiornare token in scadenza e segnala stati cooldown/disabilitati degli auth-profile.
|
||||
- Rilevamento di directory workspace aggiuntiva (`~/openclaw`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Gateway, servizi e supervisor">
|
||||
- Riparazione dell'immagine sandbox quando il sandboxing è abilitato.
|
||||
- Migrazione dei servizi legacy e rilevamento di Gateway aggiuntivi.
|
||||
- Migrazione dello stato legacy del canale Matrix (in modalità `--fix` / `--repair`).
|
||||
- Controlli runtime del Gateway (servizio installato ma non in esecuzione; etichetta launchd memorizzata nella cache).
|
||||
- Controlli runtime Gateway (servizio installato ma non in esecuzione; etichetta launchd in cache).
|
||||
- Avvisi sullo stato dei canali (sondati dal Gateway in esecuzione).
|
||||
- Audit della configurazione supervisor (launchd/systemd/schtasks) con riparazione opzionale.
|
||||
- Pulizia dell'ambiente proxy incorporato per servizi Gateway che hanno acquisito valori shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` durante installazione o aggiornamento.
|
||||
- Controlli delle best practice runtime del Gateway (Node vs Bun, percorsi dei gestori di versione).
|
||||
- Diagnostica delle collisioni della porta Gateway (predefinita `18789`).
|
||||
- Audit della configurazione supervisor (launchd/systemd/schtasks) con riparazione facoltativa.
|
||||
- Pulizia dell'ambiente proxy incorporato per servizi Gateway che hanno catturato valori shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` durante installazione o aggiornamento.
|
||||
- Controlli delle best practice runtime Gateway (Node vs Bun, percorsi dei version-manager).
|
||||
- Diagnostica delle collisioni di porta Gateway (predefinita `18789`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Autenticazione, sicurezza e associazione">
|
||||
<Accordion title="Auth, sicurezza e pairing">
|
||||
- Avvisi di sicurezza per policy DM aperte.
|
||||
- Controlli di autenticazione del Gateway per la modalità token locale (offre la generazione del token quando non esiste una sorgente token; non sovrascrive le configurazioni token SecretRef).
|
||||
- Rilevamento dei problemi di associazione dei dispositivi (richieste di prima associazione in sospeso, upgrade ruolo/ambito in sospeso, deriva obsoleta della cache token dispositivo locale e deriva dell'autenticazione dei record associati).
|
||||
- Controlli auth Gateway per la modalità token locale (offre la generazione del token quando non esiste alcuna origine token; non sovrascrive configurazioni token SecretRef).
|
||||
- Rilevamento dei problemi di pairing dei dispositivi (richieste di primo pairing in sospeso, upgrade ruolo/scope in sospeso, drift della cache token dispositivo locale obsoleta e drift auth dei record abbinati).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Workspace e shell">
|
||||
- Controllo systemd linger su Linux.
|
||||
- Controllo della dimensione dei file bootstrap del workspace (avvisi di troncamento/quasi limite per file di contesto).
|
||||
- Controllo di prontezza Skills per l'agent predefinito; segnala skill consentite con binari, env, configurazione o requisiti OS mancanti, e `--fix` può disabilitare skill non disponibili in `skills.entries`.
|
||||
- Controllo dimensione file bootstrap workspace (avvisi di troncamento/quasi limite per file di contesto).
|
||||
- Controllo di preparazione Skills per l'agent predefinito; segnala Skills consentite con binari, env, configurazione o requisiti OS mancanti, e `--fix` può disabilitare Skills non disponibili in `skills.entries`.
|
||||
- Controllo dello stato del completamento shell e installazione/upgrade automatici.
|
||||
- Controllo di prontezza del provider di embedding per la ricerca in memoria (modello locale, chiave API remota o binario QMD).
|
||||
- Controlli delle installazioni da sorgente (mancata corrispondenza del workspace pnpm, asset UI mancanti, binario tsx mancante).
|
||||
- Scrive configurazione aggiornata + metadati del wizard.
|
||||
- Controllo di preparazione del provider embedding per la ricerca memoria (modello locale, chiave API remota o binario QMD).
|
||||
- Controlli installazione sorgente (mismatch workspace pnpm, asset UI mancanti, binario tsx mancante).
|
||||
- Scrive configurazione aggiornata + metadati wizard.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Riempimento retroattivo e ripristino dell'UI Dreams
|
||||
## Backfill e reset UI Dreams
|
||||
|
||||
La scena Dreams di Control UI include le azioni **Riempimento retroattivo**, **Reimposta** e **Cancella elementi fondati** per il flusso di lavoro di Dreaming fondato. Queste azioni usano metodi RPC in stile Gateway doctor, ma **non** fanno parte della riparazione/migrazione CLI di `openclaw doctor`.
|
||||
La scena Dreams dell'Interfaccia di controllo include azioni **Backfill**, **Reset** e **Clear Grounded** per il workflow grounded dreaming. Queste azioni usano metodi RPC in stile doctor del Gateway, ma **non** fanno parte della riparazione/migrazione CLI di `openclaw doctor`.
|
||||
|
||||
Cosa fanno:
|
||||
|
||||
- **Riempimento retroattivo** scansiona i file storici `memory/YYYY-MM-DD.md` nel workspace attivo, esegue il passaggio del diario REM fondato e scrive voci di riempimento retroattivo reversibili in `DREAMS.md`.
|
||||
- **Reimposta** rimuove da `DREAMS.md` solo quelle voci di diario contrassegnate come riempimento retroattivo.
|
||||
- **Cancella elementi fondati** rimuove solo le voci a breve termine solo fondate preparate che provengono dalla riproduzione storica e non hanno ancora accumulato richiamo live o supporto quotidiano.
|
||||
- **Backfill** analizza i file storici `memory/YYYY-MM-DD.md` nel workspace attivo, esegue il pass diario REM grounded e scrive voci backfill reversibili in `DREAMS.md`.
|
||||
- **Reset** rimuove solo quelle voci diario backfill marcate da `DREAMS.md`.
|
||||
- **Clear Grounded** rimuove solo le voci staged grounded-only a breve termine che provengono da replay storico e non hanno ancora accumulato richiamo live o supporto giornaliero.
|
||||
|
||||
Cosa **non** fanno da sole:
|
||||
|
||||
- non modificano `MEMORY.md`
|
||||
- non eseguono migrazioni doctor complete
|
||||
- non preparano automaticamente candidati fondati nello store live di promozione a breve termine, a meno che tu non esegua esplicitamente prima il percorso CLI staged
|
||||
- non mettono automaticamente in stage candidati grounded nello store live di promozione a breve termine, a meno che tu non esegua prima esplicitamente il percorso CLI staged
|
||||
|
||||
Se vuoi che la riproduzione storica fondata influenzi il normale percorso di promozione profonda, usa invece il flusso CLI:
|
||||
Se vuoi che il replay storico grounded influenzi il normale canale di promozione profonda, usa invece il flusso CLI:
|
||||
|
||||
```bash
|
||||
openclaw memory rem-backfill --path ./memory --stage-short-term
|
||||
```
|
||||
|
||||
Questo prepara candidati durevoli fondati nello store di Dreaming a breve termine, mantenendo `DREAMS.md` come superficie di revisione.
|
||||
Questo mette in stage candidati durevoli grounded nello store dreaming a breve termine mantenendo `DREAMS.md` come superficie di revisione.
|
||||
|
||||
## Comportamento dettagliato e motivazione
|
||||
## Comportamento dettagliato e razionale
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="0. Aggiornamento opzionale (installazioni git)">
|
||||
Se si tratta di un checkout git e doctor è in esecuzione in modo interattivo, offre di aggiornare (fetch/rebase/build) prima di eseguire doctor.
|
||||
<Accordion title="0. Aggiornamento facoltativo (installazioni git)">
|
||||
Se questo è un checkout git e doctor viene eseguito in modo interattivo, offre di aggiornare (fetch/rebase/build) prima di eseguire doctor.
|
||||
</Accordion>
|
||||
<Accordion title="1. Normalizzazione della configurazione">
|
||||
Se la configurazione contiene forme di valori legacy (per esempio `messages.ackReaction` senza una sostituzione specifica per canale), doctor le normalizza nello schema corrente.
|
||||
Se la configurazione contiene forme di valori legacy (per esempio `messages.ackReaction` senza override specifico per canale), doctor le normalizza nello schema corrente.
|
||||
|
||||
Questo include i campi piatti legacy Talk. La configurazione Talk pubblica corrente è `talk.provider` + `talk.providers.<provider>`. Doctor riscrive le vecchie forme `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` nella mappa provider.
|
||||
Questo include i campi flat Talk legacy. La configurazione Talk pubblica corrente è `talk.provider` + `talk.providers.<provider>`. Doctor riscrive le vecchie forme `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` nella mappa provider.
|
||||
|
||||
Doctor avvisa anche quando `plugins.allow` non è vuoto e la policy degli strumenti usa
|
||||
wildcard o voci strumento di proprietà dei Plugin. `tools.allow: ["*"]` corrisponde solo agli strumenti
|
||||
dei Plugin che vengono effettivamente caricati; non aggira la allowlist esclusiva dei Plugin.
|
||||
voci wildcard o strumenti di proprietà del plugin. `tools.allow: ["*"]` corrisponde solo agli strumenti
|
||||
da plugin che vengono effettivamente caricati; non aggira l'allowlist plugin esclusiva.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2. Migrazioni delle chiavi di configurazione legacy">
|
||||
Quando la configurazione contiene chiavi deprecate, gli altri comandi si rifiutano di essere eseguiti e chiedono di eseguire `openclaw doctor`.
|
||||
Quando la configurazione contiene chiavi deprecate, gli altri comandi rifiutano di essere eseguiti e ti chiedono di eseguire `openclaw doctor`.
|
||||
|
||||
Doctor:
|
||||
|
||||
@ -187,19 +187,19 @@ Questo prepara candidati durevoli fondati nello store di Dreaming a breve termin
|
||||
- Mostrerà la migrazione applicata.
|
||||
- Riscriverà `~/.openclaw/openclaw.json` con lo schema aggiornato.
|
||||
|
||||
Il Gateway esegue automaticamente anche le migrazioni doctor all'avvio quando rileva un formato di configurazione legacy, quindi le configurazioni obsolete vengono riparate senza intervento manuale. Le migrazioni dello store dei processi Cron sono gestite da `openclaw doctor --fix`.
|
||||
Anche il Gateway esegue automaticamente le migrazioni doctor all'avvio quando rileva un formato di configurazione legacy, quindi le configurazioni obsolete vengono riparate senza intervento manuale. Le migrazioni dello store job Cron sono gestite da `openclaw doctor --fix`.
|
||||
|
||||
Migrazioni attuali:
|
||||
Migrazioni correnti:
|
||||
|
||||
- `routing.allowFrom` → `channels.whatsapp.allowFrom`
|
||||
- `routing.groupChat.requireMention` → `channels.whatsapp/telegram/imessage.groups."*".requireMention`
|
||||
- `routing.groupChat.historyLimit` → `messages.groupChat.historyLimit`
|
||||
- `routing.groupChat.mentionPatterns` → `messages.groupChat.mentionPatterns`
|
||||
- configurazioni dei canali configurati senza policy di risposta visibile → `messages.groupChat.visibleReplies: "message_tool"`
|
||||
- configurazioni dei canali configurati senza criterio di risposta visibile → `messages.groupChat.visibleReplies: "message_tool"`
|
||||
- `routing.queue` → `messages.queue`
|
||||
- `routing.bindings` → `bindings` di primo livello
|
||||
- `routing.bindings` → `bindings` di livello superiore
|
||||
- `routing.agents`/`routing.defaultAgentId` → `agents.list` + `agents.list[].default`
|
||||
- legacy `talk.voiceId`/`talk.voiceAliases`/`talk.modelId`/`talk.outputFormat`/`talk.apiKey` → `talk.provider` + `talk.providers.<provider>`
|
||||
- `talk.voiceId`/`talk.voiceAliases`/`talk.modelId`/`talk.outputFormat`/`talk.apiKey` legacy → `talk.provider` + `talk.providers.<provider>`
|
||||
- `routing.agentToAgent` → `tools.agentToAgent`
|
||||
- `routing.transcribeAudio` → `tools.media.audio.models`
|
||||
- `messages.tts.<provider>` (`openai`/`elevenlabs`/`microsoft`/`edge`) → `messages.tts.providers.<provider>`
|
||||
@ -213,7 +213,7 @@ Questo prepara candidati durevoli fondati nello store di Dreaming a breve termin
|
||||
- `plugins.entries.voice-call.config.streaming.sttProvider` → `plugins.entries.voice-call.config.streaming.provider`
|
||||
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold` → `plugins.entries.voice-call.config.streaming.providers.openai.*`
|
||||
- `bindings[].match.accountID` → `bindings[].match.accountId`
|
||||
- Per i canali con `accounts` denominati ma con valori di canale di primo livello ad account singolo ancora presenti, sposta quei valori con ambito account nell'account promosso scelto per quel canale (`accounts.default` per la maggior parte dei canali; Matrix può preservare una destinazione denominata/predefinita corrispondente esistente)
|
||||
- Per i canali con `accounts` denominati ma con valori di canale di livello superiore per account singolo ancora presenti, sposta quei valori con ambito account nell'account promosso scelto per quel canale (`accounts.default` per la maggior parte dei canali; Matrix può conservare un target denominato/predefinito corrispondente esistente)
|
||||
- `identity` → `agents.list[].identity`
|
||||
- `agent.*` → `agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
|
||||
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks` → `agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
|
||||
@ -221,276 +221,276 @@ Questo prepara candidati durevoli fondati nello store di Dreaming a breve termin
|
||||
- `browser.ssrfPolicy.allowPrivateNetwork` → `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
|
||||
- `browser.profiles.*.driver: "extension"` → `"existing-session"`
|
||||
- rimuovi `browser.relayBindHost` (impostazione legacy del relay dell'estensione)
|
||||
- legacy `models.providers.*.api: "openai"` → `"openai-completions"` (l'avvio del Gateway salta anche i provider il cui `api` è impostato su un valore enum futuro o sconosciuto invece di fallire chiudendo l'avvio)
|
||||
- `models.providers.*.api: "openai"` legacy → `"openai-completions"` (l'avvio del Gateway ignora anche i provider il cui `api` è impostato su un valore enum futuro o sconosciuto invece di fallire in modo chiuso)
|
||||
|
||||
Gli avvisi di doctor includono anche indicazioni sull'account predefinito per i canali multi-account:
|
||||
|
||||
- Se due o più voci `channels.<channel>.accounts` sono configurate senza `channels.<channel>.defaultAccount` o `accounts.default`, doctor avvisa che il routing di fallback può scegliere un account inatteso.
|
||||
- Se sono configurate due o più voci `channels.<channel>.accounts` senza `channels.<channel>.defaultAccount` o `accounts.default`, doctor avvisa che l'instradamento di fallback può scegliere un account imprevisto.
|
||||
- Se `channels.<channel>.defaultAccount` è impostato su un ID account sconosciuto, doctor avvisa ed elenca gli ID account configurati.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2b. Override del provider OpenCode">
|
||||
Se hai aggiunto manualmente `models.providers.opencode`, `opencode-zen` o `opencode-go`, sovrascrive il catalogo OpenCode integrato da `@mariozechner/pi-ai`. Questo può forzare i modelli sull'API sbagliata o azzerare i costi. Doctor avvisa così puoi rimuovere l'override e ripristinare routing API + costi per modello.
|
||||
<Accordion title="2b. Override dei provider OpenCode">
|
||||
Se hai aggiunto manualmente `models.providers.opencode`, `opencode-zen` o `opencode-go`, questi sovrascrivono il catalogo OpenCode integrato da `@mariozechner/pi-ai`. Questo può forzare i modelli sull'API sbagliata o azzerare i costi. Doctor avvisa così puoi rimuovere l'override e ripristinare l'instradamento API e i costi per modello.
|
||||
</Accordion>
|
||||
<Accordion title="2c. Migrazione del browser e preparazione a Chrome MCP">
|
||||
Se la tua configurazione del browser punta ancora al percorso della vecchia estensione Chrome rimossa, doctor la normalizza al modello corrente di collegamento Chrome MCP locale all'host:
|
||||
Se la configurazione del browser punta ancora al percorso dell'estensione Chrome rimossa, doctor la normalizza al modello attuale di collegamento Chrome MCP locale all'host:
|
||||
|
||||
- `browser.profiles.*.driver: "extension"` diventa `"existing-session"`
|
||||
- `browser.relayBindHost` viene rimosso
|
||||
|
||||
Doctor verifica anche il percorso Chrome MCP locale all'host quando usi `defaultProfile: "user"` o un profilo `existing-session` configurato:
|
||||
|
||||
- controlla se Google Chrome è installato sullo stesso host per i profili predefiniti di connessione automatica
|
||||
- controlla la versione Chrome rilevata e avvisa quando è inferiore a Chrome 144
|
||||
- ti ricorda di abilitare il debug remoto nella pagina di ispezione del browser (per esempio `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` o `edge://inspect/#remote-debugging`)
|
||||
- controlla se Google Chrome è installato sullo stesso host per i profili predefiniti con connessione automatica
|
||||
- controlla la versione di Chrome rilevata e avvisa quando è inferiore a Chrome 144
|
||||
- ricorda di abilitare il debug remoto nella pagina di ispezione del browser (ad esempio `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` o `edge://inspect/#remote-debugging`)
|
||||
|
||||
Doctor non può abilitare l'impostazione lato Chrome al posto tuo. Chrome MCP locale all'host richiede ancora:
|
||||
Doctor non può abilitare l'impostazione lato Chrome al posto tuo. Chrome MCP locale all'host richiede comunque:
|
||||
|
||||
- un browser basato su Chromium 144+ sull'host gateway/node
|
||||
- un browser basato su Chromium 144+ sull'host Gateway/Node
|
||||
- il browser in esecuzione localmente
|
||||
- debug remoto abilitato in quel browser
|
||||
- approvazione del primo prompt di consenso al collegamento nel browser
|
||||
- il debug remoto abilitato in quel browser
|
||||
- l'approvazione del primo prompt di consenso al collegamento nel browser
|
||||
|
||||
Qui la preparazione riguarda solo i prerequisiti di collegamento locale. Existing-session mantiene i limiti di route correnti di Chrome MCP; route avanzate come `responsebody`, esportazione PDF, intercettazione dei download e azioni batch richiedono ancora un browser gestito o un profilo CDP raw.
|
||||
La preparazione qui riguarda solo i prerequisiti di collegamento locale. Existing-session mantiene gli attuali limiti di instradamento Chrome MCP; route avanzate come `responsebody`, esportazione PDF, intercettazione dei download e azioni batch richiedono ancora un browser gestito o un profilo CDP grezzo.
|
||||
|
||||
Questo controllo **non** si applica a Docker, sandbox, remote-browser o altri flussi headless. Questi continuano a usare CDP raw.
|
||||
Questo controllo **non** si applica a Docker, sandbox, remote-browser o altri flussi headless. Questi continuano a usare CDP grezzo.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2d. Prerequisiti TLS OAuth">
|
||||
Quando è configurato un profilo OAuth OpenAI Codex, doctor sonda l'endpoint di autorizzazione OpenAI per verificare che lo stack TLS locale Node/OpenSSL possa convalidare la catena di certificati. Se la sonda fallisce con un errore di certificato (per esempio `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, certificato scaduto o certificato autofirmato), doctor stampa indicazioni di correzione specifiche per la piattaforma. Su macOS con un Node Homebrew, la correzione di solito è `brew postinstall ca-certificates`. Con `--deep`, la sonda viene eseguita anche se il gateway è integro.
|
||||
Quando è configurato un profilo OAuth OpenAI Codex, doctor interroga l'endpoint di autorizzazione OpenAI per verificare che lo stack TLS Node/OpenSSL locale possa validare la catena di certificati. Se il probe fallisce con un errore di certificato (ad esempio `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, certificato scaduto o certificato autofirmato), doctor stampa indicazioni di correzione specifiche per piattaforma. Su macOS con un Node Homebrew, la correzione è di solito `brew postinstall ca-certificates`. Con `--deep`, il probe viene eseguito anche se il gateway è integro.
|
||||
</Accordion>
|
||||
<Accordion title="2e. Override del provider Codex OAuth">
|
||||
Se in precedenza hai aggiunto impostazioni di trasporto OpenAI legacy sotto `models.providers.openai-codex`, possono oscurare il percorso del provider Codex OAuth integrato che le versioni più recenti usano automaticamente. Doctor avvisa quando rileva quelle vecchie impostazioni di trasporto insieme a Codex OAuth, così puoi rimuovere o riscrivere l'override di trasporto obsoleto e recuperare il comportamento integrato di routing/fallback. Proxy personalizzati e override solo-header sono ancora supportati e non attivano questo avviso.
|
||||
Se in precedenza hai aggiunto impostazioni di trasporto OpenAI legacy sotto `models.providers.openai-codex`, queste possono oscurare il percorso del provider Codex OAuth integrato che le versioni più recenti usano automaticamente. Doctor avvisa quando vede quelle vecchie impostazioni di trasporto insieme a Codex OAuth, così puoi rimuovere o riscrivere l'override di trasporto obsoleto e recuperare il comportamento integrato di instradamento/fallback. Proxy personalizzati e override solo di header sono ancora supportati e non attivano questo avviso.
|
||||
</Accordion>
|
||||
<Accordion title="2f. Avvisi sulle route del Plugin Codex">
|
||||
Quando il Plugin Codex in bundle è abilitato, doctor controlla anche se i riferimenti al modello primario `openai-codex/*` si risolvono ancora tramite il runner PI predefinito. Questa combinazione è valida quando vuoi l'autenticazione OAuth/subscription di Codex tramite PI, ma è facile confonderla con l'harness app-server Codex nativo. Doctor avvisa e indica la forma app-server esplicita: `openai/*` più `agentRuntime.id: "codex"` oppure `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
<Accordion title="2f. Avvisi sulle route del plugin Codex">
|
||||
Quando il plugin Codex in bundle è abilitato, doctor controlla anche se i riferimenti al modello primario `openai-codex/*` si risolvono ancora tramite il runner PI predefinito. Questa combinazione è valida quando vuoi l'autenticazione Codex OAuth/sottoscrizione tramite PI, ma è facile confonderla con l'harness nativo del server app Codex. Doctor avvisa e indica la forma esplicita del server app: `openai/*` più `agentRuntime.id: "codex"` o `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
|
||||
Doctor non ripara automaticamente questo caso perché entrambe le route sono valide:
|
||||
Doctor non ripara automaticamente questo aspetto perché entrambe le route sono valide:
|
||||
|
||||
- `openai-codex/*` + PI significa "usa l'autenticazione OAuth/subscription Codex tramite il normale runner OpenClaw."
|
||||
- `openai/*` + `agentRuntime.id: "codex"` significa "esegui il turno incorporato tramite app-server Codex nativo."
|
||||
- `openai-codex/*` + PI significa "usa l'autenticazione Codex OAuth/sottoscrizione tramite il runner OpenClaw normale."
|
||||
- `openai/*` + `agentRuntime.id: "codex"` significa "esegui il turno incorporato tramite il server app Codex nativo."
|
||||
- `/codex ...` significa "controlla o associa una conversazione Codex nativa dalla chat."
|
||||
- `/acp ...` o `runtime: "acp"` significa "usa l'adapter ACP/acpx esterno."
|
||||
- `/acp ...` o `runtime: "acp"` significa "usa l'adattatore ACP/acpx esterno."
|
||||
|
||||
Se compare l'avviso, scegli la route che intendevi e modifica manualmente la configurazione. Mantieni l'avviso così com'è quando PI Codex OAuth è intenzionale.
|
||||
Se appare l'avviso, scegli la route prevista e modifica manualmente la configurazione. Mantieni l'avviso così com'è quando PI Codex OAuth è intenzionale.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3. Migrazioni dello stato legacy (layout su disco)">
|
||||
Doctor può migrare layout su disco più vecchi nella struttura corrente:
|
||||
Doctor può migrare layout su disco più vecchi nella struttura attuale:
|
||||
|
||||
- Archivio sessioni + trascrizioni:
|
||||
- da `~/.openclaw/sessions/` a `~/.openclaw/agents/<agentId>/sessions/`
|
||||
- Directory agente:
|
||||
- da `~/.openclaw/agent/` a `~/.openclaw/agents/<agentId>/agent/`
|
||||
- Stato di autenticazione WhatsApp (Baileys):
|
||||
- da legacy `~/.openclaw/credentials/*.json` (tranne `oauth.json`)
|
||||
- da `~/.openclaw/credentials/*.json` legacy (tranne `oauth.json`)
|
||||
- a `~/.openclaw/credentials/whatsapp/<accountId>/...` (ID account predefinito: `default`)
|
||||
|
||||
Queste migrazioni sono best-effort e idempotenti; doctor emetterà avvisi quando lascia cartelle legacy come backup. Anche Gateway/CLI esegue automaticamente la migrazione dello store sessioni legacy + directory agente all'avvio, così cronologia/auth/modelli finiscono nel percorso per-agente senza un'esecuzione manuale di doctor. L'autenticazione WhatsApp viene intenzionalmente migrata solo tramite `openclaw doctor`. La normalizzazione provider/mappa provider di talk ora confronta per uguaglianza strutturale, quindi le diff dovute solo all'ordine delle chiavi non attivano più modifiche no-op ripetute con `doctor --fix`.
|
||||
Queste migrazioni sono best-effort e idempotenti; doctor emetterà avvisi quando lascia cartelle legacy come backup. Anche Gateway/CLI migra automaticamente all'avvio le sessioni legacy + la directory agente, così cronologia/autenticazione/modelli finiscono nel percorso per agente senza un'esecuzione manuale di doctor. L'autenticazione WhatsApp viene intenzionalmente migrata solo tramite `openclaw doctor`. La normalizzazione del provider/della mappa provider di Talk ora confronta per uguaglianza strutturale, quindi le differenze dovute solo all'ordine delle chiavi non attivano più modifiche no-op ripetute di `doctor --fix`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3a. Migrazioni dei manifest Plugin legacy">
|
||||
Doctor analizza tutti i manifest dei Plugin installati alla ricerca di chiavi di capability di primo livello deprecate (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`). Quando le trova, offre di spostarle nell'oggetto `contracts` e riscrivere il file manifest in-place. Questa migrazione è idempotente; se la chiave `contracts` contiene già gli stessi valori, la chiave legacy viene rimossa senza duplicare i dati.
|
||||
<Accordion title="3a. Migrazioni dei manifest plugin legacy">
|
||||
Doctor analizza tutti i manifest dei plugin installati alla ricerca di chiavi di capacità di livello superiore deprecate (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`). Quando le trova, propone di spostarle nell'oggetto `contracts` e riscrivere il file manifest sul posto. Questa migrazione è idempotente; se la chiave `contracts` ha già gli stessi valori, la chiave legacy viene rimossa senza duplicare i dati.
|
||||
</Accordion>
|
||||
<Accordion title="3b. Migrazioni dello store Cron legacy">
|
||||
Doctor controlla anche lo store dei job cron (`~/.openclaw/cron/jobs.json` per impostazione predefinita, o `cron.store` quando sovrascritto) per vecchie forme di job che lo scheduler accetta ancora per compatibilità.
|
||||
<Accordion title="3b. Migrazioni dell'archivio Cron legacy">
|
||||
Doctor controlla anche l'archivio dei job Cron (`~/.openclaw/cron/jobs.json` per impostazione predefinita, o `cron.store` quando sovrascritto) alla ricerca di vecchie forme di job che lo scheduler accetta ancora per compatibilità.
|
||||
|
||||
Le pulizie Cron correnti includono:
|
||||
Le pulizie Cron attuali includono:
|
||||
|
||||
- `jobId` → `id`
|
||||
- `schedule.cron` → `schedule.expr`
|
||||
- campi payload di primo livello (`message`, `model`, `thinking`, ...) → `payload`
|
||||
- campi di consegna di primo livello (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
|
||||
- alias di consegna `provider` del payload → `delivery.channel` esplicito
|
||||
- semplici job webhook fallback legacy `notify: true` → `delivery.mode="webhook"` esplicito con `delivery.to=cron.webhook`
|
||||
- campi payload di livello superiore (`message`, `model`, `thinking`, ...) → `payload`
|
||||
- campi di consegna di livello superiore (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
|
||||
- alias di consegna `provider` nel payload → `delivery.channel` esplicito
|
||||
- semplici job fallback webhook legacy `notify: true` → `delivery.mode="webhook"` esplicito con `delivery.to=cron.webhook`
|
||||
|
||||
Doctor migra automaticamente i job `notify: true` solo quando può farlo senza cambiare comportamento. Se un job combina il fallback notify legacy con una modalità di consegna non-webhook esistente, doctor avvisa e lascia quel job alla revisione manuale.
|
||||
Doctor migra automaticamente i job `notify: true` solo quando può farlo senza cambiare comportamento. Se un job combina il fallback notify legacy con una modalità di consegna non-webhook esistente, doctor avvisa e lascia quel job per revisione manuale.
|
||||
|
||||
Su Linux, doctor avvisa anche quando il crontab dell'utente invoca ancora il legacy `~/.openclaw/bin/ensure-whatsapp.sh`. Quello script locale all'host non è mantenuto da OpenClaw corrente e può scrivere falsi messaggi `Gateway inactive` in `~/.openclaw/logs/whatsapp-health.log` quando cron non riesce a raggiungere il bus utente systemd. Rimuovi la voce crontab obsoleta con `crontab -e`; usa `openclaw channels status --probe`, `openclaw doctor` e `openclaw gateway status` per i controlli di integrità correnti.
|
||||
Su Linux, doctor avvisa anche quando il crontab dell'utente invoca ancora `~/.openclaw/bin/ensure-whatsapp.sh` legacy. Quello script locale all'host non è mantenuto dall'OpenClaw attuale e può scrivere falsi messaggi `Gateway inactive` in `~/.openclaw/logs/whatsapp-health.log` quando cron non riesce a raggiungere il bus utente systemd. Rimuovi la voce crontab obsoleta con `crontab -e`; usa `openclaw channels status --probe`, `openclaw doctor` e `openclaw gateway status` per i controlli di integrità attuali.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3c. Pulizia dei lock di sessione">
|
||||
Doctor esamina ogni directory di sessione degli agenti alla ricerca di file di write-lock obsoleti, cioè file rimasti quando una sessione è terminata in modo anomalo. Per ogni file di lock trovato segnala: il percorso, il PID, se il PID è ancora attivo, l'età del lock e se è considerato obsoleto (PID morto o più vecchio di 30 minuti). In modalità `--fix` / `--repair` rimuove automaticamente i file di lock obsoleti; altrimenti stampa una nota e indica di rieseguire con `--fix`.
|
||||
<Accordion title="3c. Pulizia dei blocchi di sessione">
|
||||
Doctor esegue la scansione di ogni directory di sessione degli agenti alla ricerca di file di blocco di scrittura obsoleti, ovvero file lasciati quando una sessione è terminata in modo anomalo. Per ogni file di blocco trovato segnala: il percorso, il PID, se il PID è ancora attivo, l'età del blocco e se è considerato obsoleto (PID non attivo o più vecchio di 30 minuti). In modalità `--fix` / `--repair` rimuove automaticamente i file di blocco obsoleti; altrimenti stampa una nota e indica di rieseguire con `--fix`.
|
||||
</Accordion>
|
||||
<Accordion title="3d. Riparazione del ramo della trascrizione di sessione">
|
||||
Doctor esamina i file JSONL delle sessioni degli agenti alla ricerca della forma di ramo duplicata creata dal bug di riscrittura della trascrizione del prompt del 2026.4.24: un turno utente abbandonato con contesto di runtime interno di OpenClaw più un elemento fratello attivo contenente lo stesso prompt utente visibile. In modalità `--fix` / `--repair`, doctor crea un backup di ogni file interessato accanto all'originale e riscrive la trascrizione sul ramo attivo, così la cronologia del gateway e i lettori di memoria non vedono più turni duplicati.
|
||||
<Accordion title="3d. Riparazione dei rami delle trascrizioni di sessione">
|
||||
Doctor esegue la scansione dei file JSONL delle sessioni degli agenti alla ricerca della forma di ramo duplicata creata dal bug della riscrittura delle trascrizioni dei prompt del 2026.4.24: un turno utente abbandonato con il contesto runtime interno di OpenClaw più un elemento fratello attivo contenente lo stesso prompt utente visibile. In modalità `--fix` / `--repair`, doctor esegue il backup di ogni file interessato accanto all'originale e riscrive la trascrizione sul ramo attivo, in modo che la cronologia del Gateway e i lettori di memoria non vedano più turni duplicati.
|
||||
</Accordion>
|
||||
<Accordion title="4. Controlli di integrità dello stato (persistenza delle sessioni, routing e sicurezza)">
|
||||
La directory di stato è il centro operativo essenziale. Se scompare, perdi sessioni, credenziali, log e configurazione (a meno che tu non abbia backup altrove).
|
||||
La directory di stato è il centro operativo. Se scompare, perdi sessioni, credenziali, log e configurazione (a meno che tu non abbia backup altrove).
|
||||
|
||||
Doctor controlla:
|
||||
|
||||
- **Directory di stato mancante**: avvisa della perdita catastrofica dello stato, chiede di ricreare la directory e ricorda che non può recuperare i dati mancanti.
|
||||
- **Permessi della directory di stato**: verifica la scrivibilità; offre di riparare i permessi (ed emette un suggerimento `chown` quando rileva una mancata corrispondenza tra proprietario/gruppo).
|
||||
- **Directory di stato sincronizzata su cloud macOS**: avvisa quando lo stato risolve sotto iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) o `~/Library/CloudStorage/...`, perché i percorsi basati su sincronizzazione possono causare I/O più lento e race tra lock e sincronizzazione.
|
||||
- **Directory di stato Linux su SD o eMMC**: avvisa quando lo stato risolve a una sorgente di mount `mmcblk*`, perché l'I/O casuale basato su SD o eMMC può essere più lento e usurarsi più rapidamente con le scritture di sessioni e credenziali.
|
||||
- **Directory di sessione mancanti**: `sessions/` e la directory dell'archivio sessioni sono necessarie per conservare la cronologia ed evitare crash `ENOENT`.
|
||||
- **Mancata corrispondenza della trascrizione**: avvisa quando voci di sessione recenti hanno file di trascrizione mancanti.
|
||||
- **Permessi della directory di stato**: verifica la scrivibilità; offre di riparare i permessi (ed emette un suggerimento `chown` quando viene rilevata una mancata corrispondenza di proprietario/gruppo).
|
||||
- **Directory di stato sincronizzata con il cloud su macOS**: avvisa quando lo stato si risolve sotto iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) o `~/Library/CloudStorage/...` perché i percorsi basati sulla sincronizzazione possono causare I/O più lento e conflitti di blocco/sincronizzazione.
|
||||
- **Directory di stato Linux su SD o eMMC**: avvisa quando lo stato si risolve in una sorgente di mount `mmcblk*`, perché l'I/O casuale basato su SD o eMMC può essere più lento e usurarsi più rapidamente durante le scritture di sessioni e credenziali.
|
||||
- **Directory delle sessioni mancanti**: `sessions/` e la directory dell'archivio sessioni sono necessarie per mantenere la cronologia ed evitare crash `ENOENT`.
|
||||
- **Mancata corrispondenza della trascrizione**: avvisa quando le voci di sessione recenti hanno file di trascrizione mancanti.
|
||||
- **Sessione principale "JSONL a 1 riga"**: segnala quando la trascrizione principale ha una sola riga (la cronologia non si sta accumulando).
|
||||
- **Più directory di stato**: avvisa quando esistono più cartelle `~/.openclaw` in diverse directory home o quando `OPENCLAW_STATE_DIR` punta altrove (la cronologia può dividersi tra installazioni).
|
||||
- **Promemoria modalità remota**: se `gateway.mode=remote`, doctor ricorda di eseguirlo sull'host remoto (lo stato vive lì).
|
||||
- **Permessi del file di configurazione**: avvisa se `~/.openclaw/openclaw.json` è leggibile da gruppo/mondo e offre di restringere i permessi a `600`.
|
||||
- **Più directory di stato**: avvisa quando esistono più cartelle `~/.openclaw` tra le directory home o quando `OPENCLAW_STATE_DIR` punta altrove (la cronologia può dividersi tra installazioni).
|
||||
- **Promemoria modalità remota**: se `gateway.mode=remote`, doctor ricorda di eseguirlo sull'host remoto (lo stato si trova lì).
|
||||
- **Permessi del file di configurazione**: avvisa se `~/.openclaw/openclaw.json` è leggibile dal gruppo/mondo e offre di restringere i permessi a `600`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="5. Salute dell'autenticazione dei modelli (scadenza OAuth)">
|
||||
Doctor ispeziona i profili OAuth nell'archivio di autenticazione, avvisa quando i token stanno per scadere o sono scaduti e può aggiornarli quando è sicuro. Se il profilo OAuth/token Anthropic è obsoleto, suggerisce una chiave API Anthropic o il percorso setup-token di Anthropic. Le richieste di aggiornamento compaiono solo durante l'esecuzione interattiva (TTY); `--non-interactive` salta i tentativi di aggiornamento.
|
||||
<Accordion title="5. Stato dell'autenticazione del modello (scadenza OAuth)">
|
||||
Doctor ispeziona i profili OAuth nell'archivio di autenticazione, avvisa quando i token stanno per scadere o sono scaduti e può aggiornarli quando è sicuro farlo. Se il profilo OAuth/token di Anthropic è obsoleto, suggerisce una chiave API Anthropic o il percorso setup-token di Anthropic. Le richieste di aggiornamento compaiono solo durante l'esecuzione interattiva (TTY); `--non-interactive` salta i tentativi di aggiornamento.
|
||||
|
||||
Quando un aggiornamento OAuth fallisce in modo permanente (per esempio `refresh_token_reused`, `invalid_grant` o un provider che indica di accedere di nuovo), doctor segnala che è necessaria una nuova autenticazione e stampa il comando esatto `openclaw models auth login --provider ...` da eseguire.
|
||||
|
||||
Doctor segnala anche i profili di autenticazione temporaneamente inutilizzabili a causa di:
|
||||
|
||||
- cooldown brevi (limiti di frequenza/timeout/errori di autenticazione)
|
||||
- brevi cooldown (limiti di frequenza/timeout/errori di autenticazione)
|
||||
- disabilitazioni più lunghe (errori di fatturazione/credito)
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="6. Validazione del modello degli hook">
|
||||
Se `hooks.gmail.model` è impostato, doctor valida il riferimento del modello rispetto al catalogo e all'allowlist e avvisa quando non si risolverà o non è consentito.
|
||||
<Accordion title="6. Convalida del modello Hooks">
|
||||
Se `hooks.gmail.model` è impostato, doctor convalida il riferimento del modello rispetto al catalogo e alla allowlist e avvisa quando non può essere risolto o non è consentito.
|
||||
</Accordion>
|
||||
<Accordion title="7. Riparazione dell'immagine sandbox">
|
||||
Quando il sandboxing è abilitato, doctor controlla le immagini Docker e offre di creare o passare ai nomi legacy se l'immagine corrente manca.
|
||||
Quando il sandboxing è abilitato, doctor controlla le immagini Docker e offre di creare o passare ai nomi legacy se l'immagine corrente è mancante.
|
||||
</Accordion>
|
||||
<Accordion title="7b. Pulizia dell'installazione dei Plugin">
|
||||
Doctor rimuove lo stato legacy di staging delle dipendenze dei Plugin generato da OpenClaw in modalità `openclaw doctor --fix` / `openclaw doctor --repair`. Questo copre radici di dipendenze generate obsolete, vecchie directory install-stage, residui locali del pacchetto dal precedente codice di riparazione delle dipendenze dei bundled-plugin e copie npm gestite orfane dei Plugin `@openclaw/*` inclusi che possono oscurare il manifest incluso corrente.
|
||||
Doctor rimuove lo stato legacy di staging delle dipendenze dei plugin generato da OpenClaw in modalità `openclaw doctor --fix` / `openclaw doctor --repair`. Questo copre root di dipendenze generate obsolete, vecchie directory di install-stage, residui locali al pacchetto provenienti dal precedente codice di riparazione delle dipendenze dei plugin in bundle e copie npm gestite orfane o recuperate dei plugin `@openclaw/*` in bundle che possono oscurare il manifest in bundle corrente.
|
||||
|
||||
Doctor può anche reinstallare i Plugin scaricabili configurati quando la configurazione li riferimento ma il registry locale dei Plugin non riesce a trovarli. Per l'esternalizzazione dei bundled-plugin del 2026.5.2, doctor installa automaticamente i Plugin scaricabili che la configurazione esistente usa già e poi si affida a `meta.lastTouchedVersion` per eseguire quel passaggio di release una sola volta. L'avvio del Gateway e il ricaricamento della configurazione non eseguono package manager; le installazioni dei Plugin restano operazioni esplicite di doctor/install/update.
|
||||
Doctor può anche reinstallare i plugin scaricabili configurati quando la configurazione li riferisce ma il registro plugin locale non riesce a trovarli. Per l'esternalizzazione dei plugin in bundle del 2026.5.2, doctor installa automaticamente i plugin scaricabili già usati dalla configurazione esistente e poi si affida a `meta.lastTouchedVersion` per eseguire quel passaggio di rilascio una sola volta. L'avvio del Gateway e il ricaricamento della configurazione non eseguono gestori di pacchetti; le installazioni dei plugin restano attività esplicite di doctor/install/update.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="8. Migrazioni del servizio Gateway e suggerimenti di pulizia">
|
||||
Doctor rileva i servizi Gateway legacy (launchd/systemd/schtasks) e offre di rimuoverli e installare il servizio OpenClaw usando la porta Gateway corrente. Può anche esaminare servizi aggiuntivi simili al Gateway e stampare suggerimenti di pulizia. I servizi Gateway OpenClaw con nome di profilo sono considerati di prima classe e non vengono segnalati come "extra".
|
||||
Doctor rileva i servizi gateway legacy (launchd/systemd/schtasks) e offre di rimuoverli e installare il servizio OpenClaw usando la porta Gateway corrente. Può anche cercare servizi aggiuntivi simili al gateway e stampare suggerimenti di pulizia. I servizi gateway OpenClaw con nome di profilo sono considerati di prima classe e non vengono segnalati come "extra".
|
||||
|
||||
Su Linux, se il servizio Gateway a livello utente manca ma esiste un servizio Gateway OpenClaw a livello di sistema, doctor non installa automaticamente un secondo servizio a livello utente. Ispeziona con `openclaw gateway status --deep` o `openclaw doctor --deep`, poi rimuovi il duplicato o imposta `OPENCLAW_SERVICE_REPAIR_POLICY=external` quando un supervisore di sistema possiede il ciclo di vita del Gateway.
|
||||
Su Linux, se il servizio Gateway a livello utente manca ma esiste un servizio Gateway OpenClaw a livello di sistema, doctor non installa automaticamente un secondo servizio a livello utente. Ispeziona con `openclaw gateway status --deep` o `openclaw doctor --deep`, quindi rimuovi il duplicato o imposta `OPENCLAW_SERVICE_REPAIR_POLICY=external` quando un supervisore di sistema possiede il ciclo di vita del gateway.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="8b. Migrazione Matrix all'avvio">
|
||||
Quando un account di canale Matrix ha una migrazione dello stato legacy in sospeso o azionabile, doctor (in modalità `--fix` / `--repair`) crea uno snapshot pre-migrazione e poi esegue i passaggi di migrazione best-effort: migrazione dello stato legacy Matrix e preparazione dello stato cifrato legacy. Entrambi i passaggi non sono fatali; gli errori vengono registrati e l'avvio continua. In modalità sola lettura (`openclaw doctor` senza `--fix`) questo controllo viene saltato completamente.
|
||||
<Accordion title="8b. Migrazione di avvio Matrix">
|
||||
Quando un account del canale Matrix ha una migrazione dello stato legacy in sospeso o azionabile, doctor (in modalità `--fix` / `--repair`) crea uno snapshot pre-migrazione e poi esegue i passaggi di migrazione best-effort: migrazione dello stato Matrix legacy e preparazione dello stato crittografato legacy. Entrambi i passaggi non sono fatali; gli errori vengono registrati e l'avvio continua. In modalità di sola lettura (`openclaw doctor` senza `--fix`) questo controllo viene saltato completamente.
|
||||
</Accordion>
|
||||
<Accordion title="8c. Associazione dei dispositivi e deriva dell'autenticazione">
|
||||
Doctor ora ispeziona lo stato di associazione dei dispositivi come parte del normale controllo di salute.
|
||||
<Accordion title="8c. Abbinamento dei dispositivi e deriva dell'autenticazione">
|
||||
Doctor ora ispeziona lo stato di abbinamento dei dispositivi come parte del normale controllo di salute.
|
||||
|
||||
Cosa segnala:
|
||||
|
||||
- richieste di prima associazione in sospeso
|
||||
- upgrade di ruolo in sospeso per dispositivi già associati
|
||||
- upgrade di ambito in sospeso per dispositivi già associati
|
||||
- riparazioni di mancata corrispondenza della chiave pubblica in cui l'id del dispositivo corrisponde ancora ma l'identità del dispositivo non corrisponde più al record approvato
|
||||
- record associati senza un token attivo per un ruolo approvato
|
||||
- token associati i cui ambiti derivano fuori dal baseline di associazione approvato
|
||||
- voci locali memorizzate nella cache del token dispositivo per la macchina corrente precedenti a una rotazione del token lato Gateway o con metadati di ambito obsoleti
|
||||
- richieste di abbinamento iniziale in sospeso
|
||||
- aggiornamenti di ruolo in sospeso per dispositivi già abbinati
|
||||
- aggiornamenti di ambito in sospeso per dispositivi già abbinati
|
||||
- riparazioni di mancata corrispondenza della chiave pubblica in cui l'id del dispositivo corrisponde ancora, ma l'identità del dispositivo non corrisponde più al record approvato
|
||||
- record abbinati privi di un token attivo per un ruolo approvato
|
||||
- token abbinati i cui ambiti divergono dalla baseline di abbinamento approvata
|
||||
- voci locali memorizzate nella cache del token del dispositivo per la macchina corrente che precedono una rotazione del token lato gateway o contengono metadati di ambito obsoleti
|
||||
|
||||
Doctor non approva automaticamente richieste di associazione né ruota automaticamente i token dei dispositivi. Stampa invece i passaggi successivi esatti:
|
||||
Doctor non approva automaticamente le richieste di abbinamento né ruota automaticamente i token dei dispositivi. Stampa invece i passaggi successivi esatti:
|
||||
|
||||
- ispeziona le richieste in sospeso con `openclaw devices list`
|
||||
- approva la richiesta esatta con `openclaw devices approve <requestId>`
|
||||
- ruota un token fresco con `openclaw devices rotate --device <deviceId> --role <role>`
|
||||
- rimuovi e riapprova un record obsoleto con `openclaw devices remove <deviceId>`
|
||||
- ruota un nuovo token con `openclaw devices rotate --device <deviceId> --role <role>`
|
||||
- rimuovi e approva di nuovo un record obsoleto con `openclaw devices remove <deviceId>`
|
||||
|
||||
Questo chiude il comune caso "già associato ma riceve ancora richiesta di associazione": doctor ora distingue la prima associazione dagli upgrade di ruolo/ambito in sospeso e dalla deriva obsoleta di token/identità dispositivo.
|
||||
Questo chiude il comune vuoto "già abbinato ma ricevo ancora pairing required": doctor ora distingue il primo abbinamento dagli aggiornamenti di ruolo/ambito in sospeso e dalla deriva di token/identità del dispositivo obsoleti.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="9. Avvisi di sicurezza">
|
||||
Doctor emette avvisi quando un provider è aperto ai DM senza un'allowlist, o quando una policy è configurata in modo pericoloso.
|
||||
Doctor emette avvisi quando un provider è aperto ai DM senza allowlist, o quando una policy è configurata in modo pericoloso.
|
||||
</Accordion>
|
||||
<Accordion title="10. systemd linger (Linux)">
|
||||
Se in esecuzione come servizio utente systemd, doctor assicura che il lingering sia abilitato così il Gateway resta attivo dopo il logout.
|
||||
Se eseguito come servizio utente systemd, doctor garantisce che il lingering sia abilitato affinché il gateway resti attivo dopo il logout.
|
||||
</Accordion>
|
||||
<Accordion title="11. Stato del workspace (Skills, Plugin e directory legacy)">
|
||||
<Accordion title="11. Stato del workspace (skills, plugin e directory legacy)">
|
||||
Doctor stampa un riepilogo dello stato del workspace per l'agente predefinito:
|
||||
|
||||
- **Stato delle Skills**: conta Skills idonee, con requisiti mancanti e bloccate dall'allowlist.
|
||||
- **Stato delle Skills**: conta le skill idonee, con requisiti mancanti e bloccate da allowlist.
|
||||
- **Directory workspace legacy**: avvisa quando `~/openclaw` o altre directory workspace legacy esistono insieme al workspace corrente.
|
||||
- **Stato dei Plugin**: conta Plugin abilitati/disabilitati/con errori; elenca gli ID dei Plugin per eventuali errori; segnala le capacità dei Plugin inclusi.
|
||||
- **Avvisi di compatibilità dei Plugin**: segnala i Plugin che hanno problemi di compatibilità con il runtime corrente.
|
||||
- **Diagnostica dei Plugin**: espone eventuali avvisi o errori in fase di caricamento emessi dal registry dei Plugin.
|
||||
- **Stato dei Plugin**: conta i plugin abilitati/disabilitati/con errore; elenca gli ID dei plugin per eventuali errori; riporta le funzionalità dei plugin bundle.
|
||||
- **Avvisi di compatibilità dei Plugin**: segnala i plugin che hanno problemi di compatibilità con il runtime corrente.
|
||||
- **Diagnostica dei Plugin**: mostra eventuali avvisi o errori emessi dal registro dei plugin durante il caricamento.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="11b. Dimensione del file bootstrap">
|
||||
Doctor controlla se i file bootstrap del workspace (per esempio `AGENTS.md`, `CLAUDE.md` o altri file di contesto iniettati) sono vicini o superiori al budget di caratteri configurato. Segnala per ogni file il conteggio dei caratteri grezzi rispetto a quelli iniettati, la percentuale di troncamento, la causa del troncamento (`max/file` o `max/total`) e il totale dei caratteri iniettati come frazione del budget totale. Quando i file vengono troncati o sono vicini al limite, doctor stampa suggerimenti per regolare `agents.defaults.bootstrapMaxChars` e `agents.defaults.bootstrapTotalMaxChars`.
|
||||
Doctor controlla se i file bootstrap del workspace (ad esempio `AGENTS.md`, `CLAUDE.md` o altri file di contesto iniettati) sono vicini o superiori al budget di caratteri configurato. Riporta, per ogni file, conteggi di caratteri grezzi rispetto a quelli iniettati, percentuale di troncamento, causa del troncamento (`max/file` o `max/total`) e caratteri iniettati totali come frazione del budget totale. Quando i file sono troncati o vicini al limite, doctor stampa suggerimenti per regolare `agents.defaults.bootstrapMaxChars` e `agents.defaults.bootstrapTotalMaxChars`.
|
||||
</Accordion>
|
||||
<Accordion title="11d. Pulizia dei Plugin di canale obsoleti">
|
||||
Quando `openclaw doctor --fix` rimuove un Plugin di canale mancante, rimuove anche la configurazione pendente con ambito di canale che faceva riferimento a quel Plugin: voci `channels.<id>`, destinazioni Heartbeat che nominavano il canale e override `agents.*.models["<channel>/*"]`. Questo impedisce loop di avvio del Gateway in cui il runtime del canale non esiste più ma la configurazione chiede ancora al gateway di collegarsi a esso.
|
||||
<Accordion title="11d. Pulizia dei plugin di canale obsoleti">
|
||||
Quando `openclaw doctor --fix` rimuove un plugin di canale mancante, rimuove anche la configurazione pendente con ambito canale che faceva riferimento a quel plugin: voci `channels.<id>`, destinazioni heartbeat che nominavano il canale e override `agents.*.models["<channel>/*"]`. Questo evita cicli di avvio del Gateway in cui il runtime del canale non esiste più, ma la configurazione chiede ancora al gateway di collegarsi a esso.
|
||||
</Accordion>
|
||||
<Accordion title="11c. Completamento della shell">
|
||||
Doctor controlla se il completamento con tab è installato per la shell corrente (zsh, bash, fish o PowerShell):
|
||||
|
||||
- Se il profilo della shell usa un pattern di completamento dinamico lento (`source <(openclaw completion ...)`), doctor lo aggiorna alla variante più veloce con file in cache.
|
||||
- Se il profilo shell usa un pattern di completamento dinamico lento (`source <(openclaw completion ...)`), doctor lo aggiorna alla variante più rapida con file memorizzato nella cache.
|
||||
- Se il completamento è configurato nel profilo ma il file di cache manca, doctor rigenera automaticamente la cache.
|
||||
- Se non è configurato alcun completamento, doctor chiede di installarlo (solo modalità interattiva; saltato con `--non-interactive`).
|
||||
- Se non è configurato alcun completamento, doctor chiede di installarlo (solo in modalità interattiva; saltato con `--non-interactive`).
|
||||
|
||||
Esegui `openclaw completion --write-state` per rigenerare manualmente la cache.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="12. Controlli di autenticazione Gateway (token locale)">
|
||||
Doctor controlla la prontezza dell'autenticazione con token del Gateway locale.
|
||||
Doctor controlla la disponibilità dell'autenticazione tramite token del gateway locale.
|
||||
|
||||
- Se la modalità token richiede un token e non esiste alcuna sorgente token, doctor offre di generarne uno.
|
||||
- Se la modalità token richiede un token e non esiste alcuna sorgente di token, doctor offre di generarne uno.
|
||||
- Se `gateway.auth.token` è gestito da SecretRef ma non disponibile, doctor avvisa e non lo sovrascrive con testo in chiaro.
|
||||
- `openclaw doctor --generate-gateway-token` forza la generazione solo quando non è configurato alcun SecretRef del token.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="12b. Riparazioni in sola lettura consapevoli di SecretRef">
|
||||
<Accordion title="12b. Riparazioni di sola lettura consapevoli di SecretRef">
|
||||
Alcuni flussi di riparazione devono ispezionare le credenziali configurate senza indebolire il comportamento fail-fast del runtime.
|
||||
|
||||
- `openclaw doctor --fix` ora usa lo stesso modello di riepilogo SecretRef in sola lettura dei comandi della famiglia status per riparazioni di configurazione mirate.
|
||||
- Esempio: la riparazione di `allowFrom` / `groupAllowFrom` `@username` di Telegram prova a usare le credenziali bot configurate quando disponibili.
|
||||
- Se il token bot Telegram è configurato tramite SecretRef ma non disponibile nel percorso del comando corrente, doctor segnala che la credenziale è configurata ma non disponibile e salta la risoluzione automatica invece di andare in crash o segnalare erroneamente il token come mancante.
|
||||
- `openclaw doctor --fix` ora usa lo stesso modello di riepilogo SecretRef di sola lettura dei comandi della famiglia status per riparazioni mirate della configurazione.
|
||||
- Esempio: la riparazione di Telegram `allowFrom` / `groupAllowFrom` `@username` prova a usare le credenziali bot configurate quando disponibili.
|
||||
- Se il token del bot Telegram è configurato tramite SecretRef ma non disponibile nel percorso del comando corrente, doctor riporta che la credenziale è configurata ma non disponibile e salta la risoluzione automatica invece di bloccarsi o segnalare erroneamente che il token manca.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="13. Controllo di integrità del Gateway + riavvio">
|
||||
Doctor esegue un controllo di integrità e propone di riavviare il Gateway quando sembra non integro.
|
||||
<Accordion title="13. Controllo dello stato del Gateway + riavvio">
|
||||
Doctor esegue un controllo dello stato e propone di riavviare il gateway quando risulta non integro.
|
||||
</Accordion>
|
||||
<Accordion title="13b. Prontezza della ricerca in memoria">
|
||||
Doctor verifica se il provider di embedding per la ricerca in memoria configurato è pronto per l'agente predefinito. Il comportamento dipende dal backend e dal provider configurati:
|
||||
Doctor verifica se il provider di embedding configurato per la ricerca in memoria è pronto per l’agente predefinito. Il comportamento dipende dal backend e dal provider configurati:
|
||||
|
||||
- **Backend QMD**: verifica se il binario `qmd` è disponibile e avviabile. In caso contrario, stampa indicazioni per la correzione, inclusi il pacchetto npm e un'opzione per il percorso manuale del binario.
|
||||
- **Provider locale esplicito**: controlla la presenza di un file di modello locale o di un URL di modello remoto/scaricabile riconosciuto. Se manca, suggerisce di passare a un provider remoto.
|
||||
- **Provider remoto esplicito** (`openai`, `voyage`, ecc.): verifica che una chiave API sia presente nell'ambiente o nell'archivio di autenticazione. Stampa suggerimenti di correzione applicabili se manca.
|
||||
- **Provider automatico**: controlla prima la disponibilità del modello locale, poi prova ciascun provider remoto nell'ordine di selezione automatica.
|
||||
- **Backend QMD**: verifica se il binario `qmd` è disponibile e avviabile. In caso contrario, stampa indicazioni di correzione che includono il pacchetto npm e un’opzione per il percorso manuale del binario.
|
||||
- **Provider locale esplicito**: controlla la presenza di un file modello locale o di un URL di modello remoto/scaricabile riconosciuto. Se manca, suggerisce di passare a un provider remoto.
|
||||
- **Provider remoto esplicito** (`openai`, `voyage`, ecc.): verifica che una chiave API sia presente nell’ambiente o nell’archivio di autenticazione. Stampa suggerimenti di correzione attuabili se manca.
|
||||
- **Provider automatico**: controlla prima la disponibilità del modello locale, poi prova ciascun provider remoto nell’ordine di selezione automatica.
|
||||
|
||||
Quando è disponibile un risultato memorizzato nella cache del probe del Gateway (il Gateway era integro al momento del controllo), doctor confronta il risultato con la configurazione visibile dalla CLI e segnala eventuali discrepanze. Doctor non avvia un nuovo ping di embedding nel percorso predefinito; usa il comando di stato memoria approfondito quando vuoi un controllo live del provider.
|
||||
Quando è disponibile un risultato memorizzato nella cache del probe del gateway (il gateway era integro al momento del controllo), doctor confronta il suo risultato con la configurazione visibile dalla CLI e segnala eventuali discrepanze. Doctor non avvia un nuovo ping degli embedding nel percorso predefinito; usa il comando di stato memoria approfondito quando vuoi un controllo live del provider.
|
||||
|
||||
Usa `openclaw memory status --deep` per verificare la prontezza degli embedding in fase di esecuzione.
|
||||
Usa `openclaw memory status --deep` per verificare la prontezza degli embedding a runtime.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="14. Avvisi sullo stato del canale">
|
||||
Se il Gateway è integro, doctor esegue un probe dello stato del canale e segnala avvisi con correzioni suggerite.
|
||||
Se il gateway è integro, doctor esegue un probe dello stato dei canali e segnala gli avvisi con correzioni suggerite.
|
||||
</Accordion>
|
||||
<Accordion title="15. Audit + riparazione della configurazione del supervisore">
|
||||
Doctor controlla la configurazione del supervisore installata (launchd/systemd/schtasks) per individuare valori predefiniti mancanti o obsoleti (ad esempio, dipendenze systemd network-online e ritardo di riavvio). Quando trova una mancata corrispondenza, consiglia un aggiornamento e può riscrivere il file di servizio/attività con i valori predefiniti correnti.
|
||||
Doctor controlla la configurazione installata del supervisore (launchd/systemd/schtasks) per individuare impostazioni predefinite mancanti o obsolete (ad esempio dipendenze systemd da network-online e ritardo di riavvio). Quando trova una mancata corrispondenza, consiglia un aggiornamento e può riscrivere il file di servizio/task con i valori predefiniti attuali.
|
||||
|
||||
Note:
|
||||
|
||||
- `openclaw doctor` chiede conferma prima di riscrivere la configurazione del supervisore.
|
||||
- `openclaw doctor --yes` accetta le richieste di riparazione predefinite.
|
||||
- `openclaw doctor --repair` applica le correzioni consigliate senza richieste.
|
||||
- `openclaw doctor --repair --force` sovrascrive le configurazioni del supervisore personalizzate.
|
||||
- `OPENCLAW_SERVICE_REPAIR_POLICY=external` mantiene doctor in sola lettura per il ciclo di vita del servizio Gateway. Continua a segnalare l'integrità del servizio ed esegue riparazioni non relative al servizio, ma salta installazione/avvio/riavvio/bootstrap del servizio, riscritture della configurazione del supervisore e pulizia dei servizi legacy perché quel ciclo di vita è gestito da un supervisore esterno.
|
||||
- Su Linux, doctor non riscrive i metadati di comando/entrypoint mentre l'unità Gateway systemd corrispondente è attiva. Ignora inoltre le unità aggiuntive inattive non legacy simili al Gateway durante la scansione dei servizi duplicati, così i file di servizio companion non generano rumore di pulizia.
|
||||
- Se l'autenticazione con token richiede un token e `gateway.auth.token` è gestito da SecretRef, l'installazione/riparazione del servizio doctor convalida il SecretRef ma non persiste i valori del token in chiaro risolti nei metadati dell'ambiente del servizio del supervisore.
|
||||
- Doctor rileva valori di ambiente del servizio gestiti e basati su `.env`/SecretRef che installazioni LaunchAgent, systemd o Windows Scheduled Task più vecchie incorporavano inline e riscrive i metadati del servizio in modo che tali valori vengano caricati dalla sorgente di runtime anziché dalla definizione del supervisore.
|
||||
- Doctor rileva quando il comando del servizio mantiene ancora un vecchio `--port` dopo modifiche a `gateway.port` e riscrive i metadati del servizio sulla porta corrente.
|
||||
- Se l'autenticazione con token richiede un token e il SecretRef del token configurato non viene risolto, doctor blocca il percorso di installazione/riparazione con indicazioni applicabili.
|
||||
- `openclaw doctor --repair` applica le correzioni consigliate senza richieste di conferma.
|
||||
- `openclaw doctor --repair --force` sovrascrive le configurazioni personalizzate del supervisore.
|
||||
- `OPENCLAW_SERVICE_REPAIR_POLICY=external` mantiene doctor in sola lettura per il ciclo di vita del servizio gateway. Segnala comunque lo stato del servizio ed esegue riparazioni non relative al servizio, ma salta installazione/avvio/riavvio/bootstrap del servizio, riscritture della configurazione del supervisore e pulizia dei servizi legacy perché un supervisore esterno possiede quel ciclo di vita.
|
||||
- Su Linux, doctor non riscrive i metadati di comando/entrypoint mentre l’unità gateway systemd corrispondente è attiva. Ignora inoltre le unità extra inattive non legacy simili a gateway durante la scansione dei servizi duplicati, così i file di servizio companion non generano rumore di pulizia.
|
||||
- Se l’autenticazione tramite token richiede un token e `gateway.auth.token` è gestito da SecretRef, l’installazione/riparazione del servizio doctor valida il SecretRef ma non persiste i valori del token in testo in chiaro risolti nei metadati dell’ambiente del servizio supervisore.
|
||||
- Doctor rileva i valori di ambiente del servizio gestiti basati su `.env`/SecretRef che installazioni più vecchie di LaunchAgent, systemd o Windows Scheduled Task incorporavano inline e riscrive i metadati del servizio in modo che tali valori vengano caricati dalla sorgente di runtime invece che dalla definizione del supervisore.
|
||||
- Doctor rileva quando il comando del servizio mantiene ancora un vecchio `--port` dopo modifiche a `gateway.port` e riscrive i metadati del servizio sulla porta attuale.
|
||||
- Se l’autenticazione tramite token richiede un token e il SecretRef del token configurato non è risolto, doctor blocca il percorso di installazione/riparazione con indicazioni attuabili.
|
||||
- Se sono configurati sia `gateway.auth.token` sia `gateway.auth.password` e `gateway.auth.mode` non è impostato, doctor blocca installazione/riparazione finché la modalità non viene impostata esplicitamente.
|
||||
- Per le unità Linux user-systemd, i controlli di divergenza del token di doctor ora includono sia le sorgenti `Environment=` sia `EnvironmentFile=` quando confrontano i metadati di autenticazione del servizio.
|
||||
- Le riparazioni del servizio doctor rifiutano di riscrivere, arrestare o riavviare un servizio Gateway da un binario OpenClaw più vecchio quando la configurazione è stata scritta l'ultima volta da una versione più recente. Consulta [Risoluzione dei problemi del Gateway](/it/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
|
||||
- Per le unità systemd utente su Linux, i controlli di drift dei token di doctor ora includono sia le sorgenti `Environment=` sia `EnvironmentFile=` quando confrontano i metadati di autenticazione del servizio.
|
||||
- Le riparazioni del servizio doctor rifiutano di riscrivere, arrestare o riavviare un servizio gateway da un binario OpenClaw precedente quando la configurazione è stata scritta l’ultima volta da una versione più recente. Vedi [Risoluzione dei problemi del Gateway](/it/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
|
||||
- Puoi sempre forzare una riscrittura completa tramite `openclaw gateway install --force`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="16. Runtime del Gateway + diagnostica della porta">
|
||||
Doctor ispeziona il runtime del servizio (PID, ultimo stato di uscita) e avvisa quando il servizio è installato ma non è effettivamente in esecuzione. Controlla anche collisioni di porta sulla porta del Gateway (predefinita `18789`) e segnala le cause probabili (Gateway già in esecuzione, tunnel SSH).
|
||||
<Accordion title="16. Diagnostica del runtime del Gateway + porta">
|
||||
Doctor ispeziona il runtime del servizio (PID, ultimo stato di uscita) e avvisa quando il servizio è installato ma non è effettivamente in esecuzione. Controlla anche eventuali collisioni sulla porta del gateway (predefinita `18789`) e segnala le cause probabili (gateway già in esecuzione, tunnel SSH).
|
||||
</Accordion>
|
||||
<Accordion title="17. Buone pratiche per il runtime del Gateway">
|
||||
Doctor avvisa quando il servizio Gateway viene eseguito su Bun o su un percorso Node gestito da version manager (`nvm`, `fnm`, `volta`, `asdf`, ecc.). I canali WhatsApp + Telegram richiedono Node, e i percorsi dei version manager possono interrompersi dopo gli aggiornamenti perché il servizio non carica l'inizializzazione della shell. Doctor propone di migrare a un'installazione Node di sistema quando disponibile (Homebrew/apt/choco).
|
||||
<Accordion title="17. Best practice per il runtime del Gateway">
|
||||
Doctor avvisa quando il servizio gateway viene eseguito su Bun o su un percorso Node gestito da version manager (`nvm`, `fnm`, `volta`, `asdf`, ecc.). I canali WhatsApp + Telegram richiedono Node, e i percorsi dei version manager possono interrompersi dopo gli aggiornamenti perché il servizio non carica l’inizializzazione della tua shell. Doctor propone la migrazione a un’installazione Node di sistema quando disponibile (Homebrew/apt/choco).
|
||||
|
||||
I LaunchAgent macOS appena installati o riparati usano un PATH di sistema canonico (`/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin`) invece di copiare il PATH della shell interattiva, così Volta, asdf, fnm, pnpm e altre directory dei version manager non modificano quale Node viene risolto dai processi figli. I servizi Linux mantengono comunque radici di ambiente esplicite (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) e directory user-bin stabili, ma le directory di fallback dei version manager stimate vengono scritte nel PATH del servizio solo quando tali directory esistono su disco.
|
||||
I LaunchAgent macOS appena installati o riparati usano un PATH di sistema canonico (`/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin`) invece di copiare il PATH della shell interattiva, quindi Volta, asdf, fnm, pnpm e altre directory dei version manager non cambiano quale Node risolvono i processi figli. I servizi Linux mantengono comunque radici di ambiente esplicite (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) e directory user-bin stabili, ma le directory fallback presunte dei version manager vengono scritte nel PATH del servizio solo quando tali directory esistono su disco.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="18. Scrittura della configurazione + metadati della procedura guidata">
|
||||
Doctor persiste eventuali modifiche alla configurazione e timbra i metadati della procedura guidata per registrare l'esecuzione di doctor.
|
||||
Doctor persiste qualsiasi modifica alla configurazione e timbra i metadati della procedura guidata per registrare l’esecuzione di doctor.
|
||||
</Accordion>
|
||||
<Accordion title="19. Suggerimenti per l'area di lavoro (backup + sistema di memoria)">
|
||||
Doctor suggerisce un sistema di memoria dell'area di lavoro quando manca e stampa un suggerimento di backup se l'area di lavoro non è già sotto git.
|
||||
<Accordion title="19. Suggerimenti per il workspace (backup + sistema di memoria)">
|
||||
Doctor suggerisce un sistema di memoria del workspace quando manca e stampa un suggerimento di backup se il workspace non è già sotto git.
|
||||
|
||||
Consulta [/concepts/agent-workspace](/it/concepts/agent-workspace) per una guida completa alla struttura dell'area di lavoro e al backup git (consigliati GitHub o GitLab privati).
|
||||
Vedi [/concepts/agent-workspace](/it/concepts/agent-workspace) per una guida completa alla struttura del workspace e al backup git (consigliato GitHub o GitLab privato).
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
---
|
||||
read_when:
|
||||
- Stai decidendo se un plugin viene distribuito nel pacchetto npm core o viene installato separatamente
|
||||
- Stai aggiornando i metadati del pacchetto Plugin incluso o l'automazione di rilascio
|
||||
- È necessario l'elenco canonico dei Plugin interni rispetto a quelli esterni
|
||||
summary: Inventario generato dei Plugin OpenClaw forniti nel core, pubblicati esternamente o mantenuti solo come sorgente
|
||||
- Stai decidendo se un Plugin viene distribuito nel pacchetto npm principale o installato separatamente
|
||||
- Stai aggiornando i metadati dei pacchetti Plugin in bundle o l'automazione del rilascio
|
||||
- Ti serve l'elenco canonico dei plugin interni rispetto a quelli esterni
|
||||
summary: Inventario generato dei Plugin OpenClaw inclusi nel core, pubblicati esternamente o mantenuti solo come sorgente
|
||||
title: Inventario dei Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T21:39:03Z"
|
||||
generated_at: "2026-05-04T09:37:24Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 2099d8a67847f54040db332287708a1f79aa6c08e6e33125425389fe962865cb
|
||||
source_hash: 64f3d27ae65faacf89deeaad1b456318fa72993fdcf16262f30fb3f48b898024
|
||||
source_path: plugins/plugin-inventory.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
# Inventario dei Plugin
|
||||
|
||||
Questa pagina è generata da `extensions/*/package.json`, `openclaw.plugin.json`
|
||||
Questa pagina è generata da `extensions/*/package.json`, `openclaw.plugin.json`,
|
||||
e dalle esclusioni `files` del pacchetto npm radice. Rigenerala con:
|
||||
|
||||
```bash
|
||||
@ -25,140 +25,160 @@ pnpm plugins:inventory:gen
|
||||
|
||||
## Definizioni
|
||||
|
||||
- **Pacchetto npm core:** integrato nel pacchetto npm `openclaw` e disponibile senza installare separatamente un Plugin.
|
||||
- **Pacchetto esterno ufficiale:** Plugin mantenuto da OpenClaw omesso dal pacchetto npm core, mantenuto in questo inventario ufficiale e installato su richiesta tramite ClawHub e/o npm.
|
||||
- **Solo checkout del sorgente:** Plugin locale al repo omesso dagli artefatti npm pubblicati e non pubblicizzato come pacchetto installabile.
|
||||
- **Pacchetto npm core:** integrato nel pacchetto npm `openclaw` e disponibile senza installare un Plugin separato.
|
||||
- **Pacchetto esterno ufficiale:** Plugin mantenuto da OpenClaw escluso dal pacchetto npm core, mantenuto in questo inventario ufficiale e installato su richiesta tramite ClawHub e/o npm.
|
||||
- **Solo checkout sorgente:** Plugin locale del repository escluso dagli artefatti npm pubblicati e non pubblicizzato come pacchetto installabile.
|
||||
|
||||
I checkout del sorgente sono diversi dalle installazioni npm: dopo `pnpm install`, i Plugin
|
||||
inclusi vengono caricati da `extensions/<id>`, quindi le modifiche locali e le dipendenze
|
||||
workspace locali al pacchetto sono disponibili.
|
||||
I checkout sorgente sono diversi dalle installazioni npm: dopo `pnpm install`, i
|
||||
Plugin inclusi vengono caricati da `extensions/<id>`, quindi sono disponibili le
|
||||
modifiche locali e le dipendenze dell'area di lavoro locali al pacchetto.
|
||||
|
||||
## Installare un Plugin
|
||||
|
||||
Usa la colonna **Distribuzione** per decidere se è necessaria l'installazione. I Plugin che
|
||||
indicano `included in OpenClaw` sono già presenti nel pacchetto core. I pacchetti
|
||||
esterni ufficiali richiedono un'installazione, poi un riavvio del Gateway.
|
||||
|
||||
Ad esempio, Discord è un pacchetto esterno ufficiale:
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/discord
|
||||
openclaw gateway restart
|
||||
openclaw plugins inspect discord --runtime --json
|
||||
```
|
||||
|
||||
Le specifiche di pacchetto semplici provano prima ClawHub, poi il fallback npm. Per forzare una sorgente, usa
|
||||
`clawhub:@openclaw/discord` o `npm:@openclaw/discord`. Dopo l'installazione, segui
|
||||
la documentazione di configurazione del Plugin, come [Discord](/it/channels/discord), per aggiungere credenziali
|
||||
e configurazione del canale. Consulta [Gestire i Plugin](/it/plugins/manage-plugins) per i comandi di aggiornamento,
|
||||
disinstallazione e pubblicazione.
|
||||
|
||||
## Pacchetto npm core
|
||||
|
||||
| Plugin | Descrizione | Distribuzione | Superficie |
|
||||
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [alibaba](/it/plugins/reference/alibaba) | Aggiunge il supporto per fornitori di generazione video. | `@openclaw/alibaba-provider`<br />incluso in OpenClaw | contracts: videoGenerationProviders |
|
||||
| [amazon-bedrock](/it/plugins/reference/amazon-bedrock) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Amazon Bedrock. | `@openclaw/amazon-bedrock-provider`<br />incluso in OpenClaw | providers: amazon-bedrock; contracts: memoryEmbeddingProviders |
|
||||
| [amazon-bedrock-mantle](/it/plugins/reference/amazon-bedrock-mantle) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Amazon Bedrock Mantle. | `@openclaw/amazon-bedrock-mantle-provider`<br />incluso in OpenClaw | providers: amazon-bedrock-mantle |
|
||||
| [anthropic](/it/plugins/reference/anthropic) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Anthropic. | `@openclaw/anthropic-provider`<br />incluso in OpenClaw | providers: anthropic; contracts: mediaUnderstandingProviders |
|
||||
| [anthropic-vertex](/it/plugins/reference/anthropic-vertex) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Anthropic Vertex. | `@openclaw/anthropic-vertex-provider`<br />incluso in OpenClaw | providers: anthropic-vertex |
|
||||
| [arcee](/it/plugins/reference/arcee) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Arcee. | `@openclaw/arcee-provider`<br />incluso in OpenClaw | providers: arcee |
|
||||
| [azure-speech](/it/plugins/reference/azure-speech) | Sintesi vocale da testo Azure AI Speech (MP3, note vocali Ogg/Opus native, telefonia PCM). | `@openclaw/azure-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [bonjour](/it/plugins/reference/bonjour) | Pubblicizza il Gateway OpenClaw locale tramite Bonjour/mDNS. | `@openclaw/bonjour`<br />incluso in OpenClaw | plugin |
|
||||
| [browser](/it/plugins/reference/browser) | Aggiunge strumenti richiamabili dall'agente. | `@openclaw/browser-plugin`<br />incluso in OpenClaw | contracts: tools; skills |
|
||||
| [byteplus](/it/plugins/reference/byteplus) | Aggiunge a OpenClaw il supporto per i fornitori di modelli BytePlus e BytePlus Plan. | `@openclaw/byteplus-provider`<br />incluso in OpenClaw | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders |
|
||||
| [cerebras](/it/plugins/reference/cerebras) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Cerebras. | `@openclaw/cerebras-provider`<br />incluso in OpenClaw | providers: cerebras |
|
||||
| [chutes](/it/plugins/reference/chutes) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Chutes. | `@openclaw/chutes-provider`<br />incluso in OpenClaw | providers: chutes |
|
||||
| [cloudflare-ai-gateway](/it/plugins/reference/cloudflare-ai-gateway) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Cloudflare AI Gateway. | `@openclaw/cloudflare-ai-gateway-provider`<br />incluso in OpenClaw | providers: cloudflare-ai-gateway |
|
||||
| [comfy](/it/plugins/reference/comfy) | Aggiunge a OpenClaw il supporto per il fornitore di modelli ComfyUI. | `@openclaw/comfy-provider`<br />incluso in OpenClaw | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders |
|
||||
| [copilot-proxy](/it/plugins/reference/copilot-proxy) | Aggiunge a OpenClaw il supporto per il fornitore di modelli Copilot Proxy. | `@openclaw/copilot-proxy`<br />incluso in OpenClaw | providers: copilot-proxy |
|
||||
| [deepgram](/it/plugins/reference/deepgram) | Aggiunge il supporto per fornitori di comprensione dei media. Aggiunge il supporto per fornitori di trascrizione in tempo reale. | `@openclaw/deepgram-provider`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders |
|
||||
| [deepinfra](/it/plugins/reference/deepinfra) | Aggiunge a OpenClaw il supporto per il fornitore di modelli DeepInfra. | `@openclaw/deepinfra-provider`<br />incluso in OpenClaw | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders |
|
||||
| [deepseek](/it/plugins/reference/deepseek) | Aggiunge a OpenClaw il supporto per il fornitore di modelli DeepSeek. | `@openclaw/deepseek-provider`<br />incluso in OpenClaw | providers: deepseek |
|
||||
| [document-extract](/it/plugins/reference/document-extract) | Estrae testo e immagini di pagina di ripiego dagli allegati di documenti locali. | `@openclaw/document-extract-plugin`<br />incluso in OpenClaw | contracts: documentExtractors |
|
||||
| [duckduckgo](/it/plugins/reference/duckduckgo) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/duckduckgo-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [elevenlabs](/it/plugins/reference/elevenlabs) | Aggiunge il supporto per provider di comprensione multimediale. Aggiunge il supporto per provider di trascrizione in tempo reale. Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/elevenlabs-speech`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders |
|
||||
| [exa](/it/plugins/reference/exa) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/exa-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [fal](/it/plugins/reference/fal) | Aggiunge a OpenClaw il supporto per provider di modelli fal. | `@openclaw/fal-provider`<br />incluso in OpenClaw | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders |
|
||||
| [file-transfer](/it/plugins/reference/file-transfer) | Recupera, elenca e scrive file su nodi associati tramite comandi node dedicati. Evita il troncamento di stdout di bash usando base64 su node.invoke per binari fino a 16 MB. | `@openclaw/file-transfer`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [firecrawl](/it/plugins/reference/firecrawl) | Aggiunge strumenti richiamabili dall'agente. Aggiunge il supporto per provider di recupero web. Aggiunge il supporto per provider di ricerca web. | `@openclaw/firecrawl-plugin`<br />incluso in OpenClaw | contracts: tools, webFetchProviders, webSearchProviders |
|
||||
| [fireworks](/it/plugins/reference/fireworks) | Aggiunge a OpenClaw il supporto per provider di modelli Fireworks. | `@openclaw/fireworks-provider`<br />incluso in OpenClaw | providers: fireworks |
|
||||
| [github-copilot](/it/plugins/reference/github-copilot) | Aggiunge a OpenClaw il supporto per provider di modelli GitHub Copilot. | `@openclaw/github-copilot-provider`<br />incluso in OpenClaw | providers: github-copilot; contracts: memoryEmbeddingProviders |
|
||||
| [google](/it/plugins/reference/google) | Aggiunge a OpenClaw il supporto per provider di modelli Google, Google Gemini CLI, Google Vertex. | `@openclaw/google-plugin`<br />incluso in OpenClaw | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders |
|
||||
| [gradium](/it/plugins/reference/gradium) | Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/gradium-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [groq](/it/plugins/reference/groq) | Aggiunge a OpenClaw il supporto per provider di modelli Groq. | `@openclaw/groq-provider`<br />incluso in OpenClaw | providers: groq; contracts: mediaUnderstandingProviders |
|
||||
| [huggingface](/it/plugins/reference/huggingface) | Aggiunge a OpenClaw il supporto per provider di modelli Hugging Face. | `@openclaw/huggingface-provider`<br />incluso in OpenClaw | providers: huggingface |
|
||||
| [imessage](/it/plugins/reference/imessage) | Aggiunge l'interfaccia di canale iMessage per inviare e ricevere messaggi OpenClaw. | `@openclaw/imessage`<br />incluso in OpenClaw | channels: imessage |
|
||||
| [inworld](/it/plugins/reference/inworld) | Sintesi vocale in streaming Inworld (MP3, OGG_OPUS, PCM per telefonia). | `@openclaw/inworld-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [irc](/it/plugins/reference/irc) | Aggiunge l'interfaccia di canale IRC per inviare e ricevere messaggi OpenClaw. | `@openclaw/irc`<br />incluso in OpenClaw | channels: irc |
|
||||
| [kilocode](/it/plugins/reference/kilocode) | Aggiunge a OpenClaw il supporto per provider di modelli Kilocode. | `@openclaw/kilocode-provider`<br />incluso in OpenClaw | providers: kilocode |
|
||||
| [kimi](/it/plugins/reference/kimi) | Aggiunge a OpenClaw il supporto per provider di modelli Kimi, Kimi Coding. | `@openclaw/kimi-provider`<br />incluso in OpenClaw | providers: kimi, kimi-coding |
|
||||
| [litellm](/it/plugins/reference/litellm) | Aggiunge a OpenClaw il supporto per provider di modelli LiteLLM. | `@openclaw/litellm-provider`<br />incluso in OpenClaw | providers: litellm; contracts: imageGenerationProviders |
|
||||
| [llm-task](/it/plugins/reference/llm-task) | Strumento LLM generico solo JSON per attività strutturate richiamabile dai workflow. | `@openclaw/llm-task`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [lmstudio](/it/plugins/reference/lmstudio) | Aggiunge a OpenClaw il supporto per provider di modelli LM Studio. | `@openclaw/lmstudio-provider`<br />incluso in OpenClaw | providers: lmstudio; contracts: memoryEmbeddingProviders |
|
||||
| [matrix](/it/plugins/reference/matrix) | Aggiunge l'interfaccia di canale Matrix per inviare e ricevere messaggi OpenClaw. | `@openclaw/matrix`<br />incluso in OpenClaw | channels: matrix |
|
||||
| [alibaba](/it/plugins/reference/alibaba) | Aggiunge il supporto per provider di generazione video. | `@openclaw/alibaba-provider`<br />incluso in OpenClaw | contracts: videoGenerationProviders |
|
||||
| [amazon-bedrock](/it/plugins/reference/amazon-bedrock) | Aggiunge a OpenClaw il supporto per il provider di modelli Amazon Bedrock. | `@openclaw/amazon-bedrock-provider`<br />incluso in OpenClaw | providers: amazon-bedrock; contracts: memoryEmbeddingProviders |
|
||||
| [amazon-bedrock-mantle](/it/plugins/reference/amazon-bedrock-mantle) | Aggiunge a OpenClaw il supporto per il provider di modelli Amazon Bedrock Mantle. | `@openclaw/amazon-bedrock-mantle-provider`<br />incluso in OpenClaw | providers: amazon-bedrock-mantle |
|
||||
| [anthropic](/it/plugins/reference/anthropic) | Aggiunge a OpenClaw il supporto per il provider di modelli Anthropic. | `@openclaw/anthropic-provider`<br />incluso in OpenClaw | providers: anthropic; contracts: mediaUnderstandingProviders |
|
||||
| [anthropic-vertex](/it/plugins/reference/anthropic-vertex) | Aggiunge a OpenClaw il supporto per il provider di modelli Anthropic Vertex. | `@openclaw/anthropic-vertex-provider`<br />incluso in OpenClaw | providers: anthropic-vertex |
|
||||
| [arcee](/it/plugins/reference/arcee) | Aggiunge a OpenClaw il supporto per il provider di modelli Arcee. | `@openclaw/arcee-provider`<br />incluso in OpenClaw | providers: arcee |
|
||||
| [azure-speech](/it/plugins/reference/azure-speech) | Sintesi vocale Azure AI Speech (MP3, note vocali native Ogg/Opus, telefonia PCM). | `@openclaw/azure-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [bonjour](/it/plugins/reference/bonjour) | Pubblicizza il gateway OpenClaw locale tramite Bonjour/mDNS. | `@openclaw/bonjour`<br />incluso in OpenClaw | plugin |
|
||||
| [browser](/it/plugins/reference/browser) | Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/browser-plugin`<br />incluso in OpenClaw | contracts: tools; skills |
|
||||
| [byteplus](/it/plugins/reference/byteplus) | Aggiunge a OpenClaw il supporto per i provider di modelli BytePlus e BytePlus Plan. | `@openclaw/byteplus-provider`<br />incluso in OpenClaw | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders |
|
||||
| [cerebras](/it/plugins/reference/cerebras) | Aggiunge a OpenClaw il supporto per il provider di modelli Cerebras. | `@openclaw/cerebras-provider`<br />incluso in OpenClaw | providers: cerebras |
|
||||
| [chutes](/it/plugins/reference/chutes) | Aggiunge a OpenClaw il supporto per il provider di modelli Chutes. | `@openclaw/chutes-provider`<br />incluso in OpenClaw | providers: chutes |
|
||||
| [cloudflare-ai-gateway](/it/plugins/reference/cloudflare-ai-gateway) | Aggiunge a OpenClaw il supporto per il provider di modelli Cloudflare AI Gateway. | `@openclaw/cloudflare-ai-gateway-provider`<br />incluso in OpenClaw | providers: cloudflare-ai-gateway |
|
||||
| [comfy](/it/plugins/reference/comfy) | Aggiunge a OpenClaw il supporto per il provider di modelli ComfyUI. | `@openclaw/comfy-provider`<br />incluso in OpenClaw | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders |
|
||||
| [copilot-proxy](/it/plugins/reference/copilot-proxy) | Aggiunge a OpenClaw il supporto per il provider di modelli Copilot Proxy. | `@openclaw/copilot-proxy`<br />incluso in OpenClaw | providers: copilot-proxy |
|
||||
| [deepgram](/it/plugins/reference/deepgram) | Aggiunge il supporto per provider di comprensione dei contenuti multimediali. Aggiunge il supporto per provider di trascrizione in tempo reale. | `@openclaw/deepgram-provider`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders |
|
||||
| [deepinfra](/it/plugins/reference/deepinfra) | Aggiunge a OpenClaw il supporto per il provider di modelli DeepInfra. | `@openclaw/deepinfra-provider`<br />incluso in OpenClaw | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders |
|
||||
| [deepseek](/it/plugins/reference/deepseek) | Aggiunge a OpenClaw il supporto per il provider di modelli DeepSeek. | `@openclaw/deepseek-provider`<br />incluso in OpenClaw | providers: deepseek |
|
||||
| [document-extract](/it/plugins/reference/document-extract) | Estrae testo e immagini di pagina di fallback dagli allegati di documenti locali. | `@openclaw/document-extract-plugin`<br />incluso in OpenClaw | contracts: documentExtractors |
|
||||
| [duckduckgo](/it/plugins/reference/duckduckgo) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/duckduckgo-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [elevenlabs](/it/plugins/reference/elevenlabs) | Aggiunge il supporto per provider di comprensione dei media. Aggiunge il supporto per provider di trascrizione in tempo reale. Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/elevenlabs-speech`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders |
|
||||
| [exa](/it/plugins/reference/exa) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/exa-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [fal](/it/plugins/reference/fal) | Aggiunge a OpenClaw il supporto per provider di modelli fal. | `@openclaw/fal-provider`<br />incluso in OpenClaw | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders |
|
||||
| [file-transfer](/it/plugins/reference/file-transfer) | Recupera, elenca e scrive file sui nodi associati tramite comandi di nodo dedicati. Aggira il troncamento di stdout di bash usando base64 tramite node.invoke per binari fino a 16 MB. | `@openclaw/file-transfer`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [firecrawl](/it/plugins/reference/firecrawl) | Aggiunge strumenti richiamabili dagli agenti. Aggiunge il supporto per provider di recupero web. Aggiunge il supporto per provider di ricerca web. | `@openclaw/firecrawl-plugin`<br />incluso in OpenClaw | contracts: tools, webFetchProviders, webSearchProviders |
|
||||
| [fireworks](/it/plugins/reference/fireworks) | Aggiunge a OpenClaw il supporto per provider di modelli Fireworks. | `@openclaw/fireworks-provider`<br />incluso in OpenClaw | providers: fireworks |
|
||||
| [github-copilot](/it/plugins/reference/github-copilot) | Aggiunge a OpenClaw il supporto per provider di modelli GitHub Copilot. | `@openclaw/github-copilot-provider`<br />incluso in OpenClaw | providers: github-copilot; contracts: memoryEmbeddingProviders |
|
||||
| [google](/it/plugins/reference/google) | Aggiunge a OpenClaw il supporto per provider di modelli Google, Google Gemini CLI e Google Vertex. | `@openclaw/google-plugin`<br />incluso in OpenClaw | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders |
|
||||
| [gradium](/it/plugins/reference/gradium) | Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/gradium-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [groq](/it/plugins/reference/groq) | Aggiunge a OpenClaw il supporto per provider di modelli Groq. | `@openclaw/groq-provider`<br />incluso in OpenClaw | providers: groq; contracts: mediaUnderstandingProviders |
|
||||
| [huggingface](/it/plugins/reference/huggingface) | Aggiunge a OpenClaw il supporto per provider di modelli Hugging Face. | `@openclaw/huggingface-provider`<br />incluso in OpenClaw | providers: huggingface |
|
||||
| [imessage](/it/plugins/reference/imessage) | Aggiunge la superficie del canale iMessage per inviare e ricevere messaggi OpenClaw. | `@openclaw/imessage`<br />incluso in OpenClaw | channels: imessage |
|
||||
| [inworld](/it/plugins/reference/inworld) | Sintesi vocale in streaming di Inworld (MP3, OGG_OPUS, telefonia PCM). | `@openclaw/inworld-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [irc](/it/plugins/reference/irc) | Aggiunge la superficie del canale IRC per inviare e ricevere messaggi OpenClaw. | `@openclaw/irc`<br />incluso in OpenClaw | channels: irc |
|
||||
| [kilocode](/it/plugins/reference/kilocode) | Aggiunge a OpenClaw il supporto per provider di modelli Kilocode. | `@openclaw/kilocode-provider`<br />incluso in OpenClaw | providers: kilocode |
|
||||
| [kimi](/it/plugins/reference/kimi) | Aggiunge a OpenClaw il supporto per provider di modelli Kimi e Kimi Coding. | `@openclaw/kimi-provider`<br />incluso in OpenClaw | providers: kimi, kimi-coding |
|
||||
| [litellm](/it/plugins/reference/litellm) | Aggiunge a OpenClaw il supporto per provider di modelli LiteLLM. | `@openclaw/litellm-provider`<br />incluso in OpenClaw | providers: litellm; contracts: imageGenerationProviders |
|
||||
| [llm-task](/it/plugins/reference/llm-task) | Strumento LLM generico solo JSON per attività strutturate richiamabili dai workflow. | `@openclaw/llm-task`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [lmstudio](/it/plugins/reference/lmstudio) | Aggiunge a OpenClaw il supporto per provider di modelli LM Studio. | `@openclaw/lmstudio-provider`<br />incluso in OpenClaw | providers: lmstudio; contracts: memoryEmbeddingProviders |
|
||||
| [matrix](/it/plugins/reference/matrix) | Aggiunge la superficie del canale Matrix per inviare e ricevere messaggi OpenClaw. | `@openclaw/matrix`<br />incluso in OpenClaw | channels: matrix |
|
||||
| [mattermost](/it/plugins/reference/mattermost) | Aggiunge la superficie del canale Mattermost per inviare e ricevere messaggi OpenClaw. | `@openclaw/mattermost`<br />incluso in OpenClaw | channels: mattermost |
|
||||
| [memory-core](/it/plugins/reference/memory-core) | Aggiunge il supporto per i provider di embedding della memoria. Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/memory-core`<br />incluso in OpenClaw | contracts: memoryEmbeddingProviders, tools |
|
||||
| [memory-wiki](/it/plugins/reference/memory-wiki) | Compilatore wiki persistente e vault di conoscenza compatibile con Obsidian per OpenClaw. | `@openclaw/memory-wiki`<br />incluso in OpenClaw | contracts: tools; skills |
|
||||
| [microsoft](/it/plugins/reference/microsoft) | Aggiunge il supporto per i provider di sintesi vocale. | `@openclaw/microsoft-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [microsoft-foundry](/it/plugins/reference/microsoft-foundry) | Aggiunge a OpenClaw il supporto per il provider di modelli Microsoft Foundry. | `@openclaw/microsoft-foundry`<br />incluso in OpenClaw | providers: microsoft-foundry |
|
||||
| [memory-core](/it/plugins/reference/memory-core) | Aggiunge supporto per i provider di embedding della memoria. Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/memory-core`<br />incluso in OpenClaw | contracts: memoryEmbeddingProviders, tools |
|
||||
| [memory-wiki](/it/plugins/reference/memory-wiki) | Compilatore wiki persistente e archivio di conoscenza compatibile con Obsidian per OpenClaw. | `@openclaw/memory-wiki`<br />incluso in OpenClaw | contracts: tools; skills |
|
||||
| [microsoft](/it/plugins/reference/microsoft) | Aggiunge supporto per i provider di sintesi vocale. | `@openclaw/microsoft-speech`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [microsoft-foundry](/it/plugins/reference/microsoft-foundry) | Aggiunge supporto per il provider di modelli Microsoft Foundry a OpenClaw. | `@openclaw/microsoft-foundry`<br />incluso in OpenClaw | providers: microsoft-foundry |
|
||||
| [migrate-claude](/it/plugins/reference/migrate-claude) | Importa in OpenClaw istruzioni di Claude Code e Claude Desktop, server MCP, skills e configurazione sicura. | `@openclaw/migrate-claude`<br />incluso in OpenClaw | contracts: migrationProviders |
|
||||
| [migrate-hermes](/it/plugins/reference/migrate-hermes) | Importa in OpenClaw configurazione, memorie, skills e credenziali supportate di Hermes. | `@openclaw/migrate-hermes`<br />incluso in OpenClaw | contracts: migrationProviders |
|
||||
| [minimax](/it/plugins/reference/minimax) | Aggiunge a OpenClaw il supporto per i provider di modelli MiniMax e MiniMax Portal. | `@openclaw/minimax-provider`<br />incluso in OpenClaw | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders |
|
||||
| [mistral](/it/plugins/reference/mistral) | Aggiunge a OpenClaw il supporto per il provider di modelli Mistral. | `@openclaw/mistral-provider`<br />incluso in OpenClaw | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders |
|
||||
| [moonshot](/it/plugins/reference/moonshot) | Aggiunge a OpenClaw il supporto per il provider di modelli Moonshot. | `@openclaw/moonshot-provider`<br />incluso in OpenClaw | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders |
|
||||
| [nvidia](/it/plugins/reference/nvidia) | Aggiunge a OpenClaw il supporto per il provider di modelli NVIDIA. | `@openclaw/nvidia-provider`<br />incluso in OpenClaw | providers: nvidia |
|
||||
| [ollama](/it/plugins/reference/ollama) | Aggiunge a OpenClaw il supporto per il provider di modelli Ollama. | `@openclaw/ollama-provider`<br />incluso in OpenClaw | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders |
|
||||
| [open-prose](/it/plugins/reference/open-prose) | Pacchetto di Skills OpenProse VM con un comando slash /prose. | `@openclaw/open-prose`<br />incluso in OpenClaw | skills |
|
||||
| [openai](/it/plugins/reference/openai) | Aggiunge a OpenClaw il supporto per i provider di modelli OpenAI e OpenAI Codex. | `@openclaw/openai-provider`<br />incluso in OpenClaw | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders |
|
||||
| [opencode](/it/plugins/reference/opencode) | Aggiunge a OpenClaw il supporto per il provider di modelli OpenCode. | `@openclaw/opencode-provider`<br />incluso in OpenClaw | providers: opencode; contracts: mediaUnderstandingProviders |
|
||||
| [opencode-go](/it/plugins/reference/opencode-go) | Aggiunge a OpenClaw il supporto per il provider di modelli OpenCode Go. | `@openclaw/opencode-go-provider`<br />incluso in OpenClaw | providers: opencode-go; contracts: mediaUnderstandingProviders |
|
||||
| [openrouter](/it/plugins/reference/openrouter) | Aggiunge a OpenClaw il supporto per il provider di modelli OpenRouter. | `@openclaw/openrouter-provider`<br />incluso in OpenClaw | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders |
|
||||
| [openshell](/it/plugins/reference/openshell) | Backend sandbox basato su OpenShell con aree di lavoro locali replicate ed esecuzione dei comandi tramite SSH. | `@openclaw/openshell-sandbox`<br />incluso in OpenClaw | plugin |
|
||||
| [perplexity](/it/plugins/reference/perplexity) | Aggiunge il supporto per i provider di ricerca web. | `@openclaw/perplexity-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [qianfan](/it/plugins/reference/qianfan) | Aggiunge a OpenClaw il supporto per il provider di modelli Qianfan. | `@openclaw/qianfan-provider`<br />incluso in OpenClaw | providers: qianfan |
|
||||
| [qwen](/it/plugins/reference/qwen) | Aggiunge a OpenClaw il supporto per i provider di modelli Qwen, Qwen Cloud, Model Studio e DashScope. | `@openclaw/qwen-provider`<br />incluso in OpenClaw | providers: qwen, qwencloud, modelstudio, dashscope; contracts: mediaUnderstandingProviders, videoGenerationProviders |
|
||||
| [runway](/it/plugins/reference/runway) | Aggiunge il supporto per provider di generazione video. | `@openclaw/runway-provider`<br />incluso in OpenClaw | contracts: videoGenerationProviders |
|
||||
| [searxng](/it/plugins/reference/searxng) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/searxng-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [senseaudio](/it/plugins/reference/senseaudio) | Aggiunge il supporto per provider di comprensione dei media. | `@openclaw/senseaudio-provider`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders |
|
||||
| [sglang](/it/plugins/reference/sglang) | Aggiunge a OpenClaw il supporto per provider di modelli SGLang. | `@openclaw/sglang-provider`<br />incluso in OpenClaw | providers: sglang |
|
||||
| [signal](/it/plugins/reference/signal) | Aggiunge la superficie di canale Signal per inviare e ricevere messaggi OpenClaw. | `@openclaw/signal`<br />incluso in OpenClaw | channels: signal |
|
||||
| [skill-workshop](/it/plugins/reference/skill-workshop) | Acquisisce workflow ripetibili come Skills dell'area di lavoro, con revisione in sospeso, scritture sicure e aggiornamento dei prompt delle skill. | `@openclaw/skill-workshop`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [slack](/it/plugins/reference/slack) | Aggiunge la superficie di canale Slack per inviare e ricevere messaggi OpenClaw. | `@openclaw/slack`<br />incluso in OpenClaw | channels: slack |
|
||||
| [stepfun](/it/plugins/reference/stepfun) | Aggiunge a OpenClaw il supporto per provider di modelli StepFun e StepFun Plan. | `@openclaw/stepfun-provider`<br />incluso in OpenClaw | providers: stepfun, stepfun-plan |
|
||||
| [synthetic](/it/plugins/reference/synthetic) | Aggiunge a OpenClaw il supporto per provider di modelli Synthetic. | `@openclaw/synthetic-provider`<br />incluso in OpenClaw | providers: synthetic |
|
||||
| [tavily](/it/plugins/reference/tavily) | Aggiunge strumenti richiamabili dagli agenti. Aggiunge il supporto per provider di ricerca web. | `@openclaw/tavily-plugin`<br />incluso in OpenClaw | contracts: tools, webSearchProviders; skills |
|
||||
| [telegram](/it/plugins/reference/telegram) | Aggiunge la superficie di canale Telegram per inviare e ricevere messaggi OpenClaw. | `@openclaw/telegram`<br />incluso in OpenClaw | channels: telegram |
|
||||
| [tencent](/it/plugins/reference/tencent) | Aggiunge a OpenClaw il supporto per provider di modelli Tencent TokenHub. | `@openclaw/tencent-provider`<br />incluso in OpenClaw | providers: tencent-tokenhub |
|
||||
| [together](/it/plugins/reference/together) | Aggiunge a OpenClaw il supporto per provider di modelli Together. | `@openclaw/together-provider`<br />incluso in OpenClaw | providers: together; contracts: videoGenerationProviders |
|
||||
| [tokenjuice](/it/plugins/reference/tokenjuice) | Compatta i risultati degli strumenti exec e bash con i reducer tokenjuice. | `@openclaw/tokenjuice`<br />incluso in OpenClaw | contracts: agentToolResultMiddleware |
|
||||
| [tts-local-cli](/it/plugins/reference/tts-local-cli) | Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/tts-local-cli`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [venice](/it/plugins/reference/venice) | Aggiunge a OpenClaw il supporto per provider di modelli Venice. | `@openclaw/venice-provider`<br />incluso in OpenClaw | providers: venice |
|
||||
| [vercel-ai-gateway](/it/plugins/reference/vercel-ai-gateway) | Aggiunge a OpenClaw il supporto per provider di modelli Vercel AI Gateway. | `@openclaw/vercel-ai-gateway-provider`<br />incluso in OpenClaw | providers: vercel-ai-gateway |
|
||||
| [vllm](/it/plugins/reference/vllm) | Aggiunge a OpenClaw il supporto per provider di modelli vLLM. | `@openclaw/vllm-provider`<br />incluso in OpenClaw | providers: vllm |
|
||||
| [volcengine](/it/plugins/reference/volcengine) | Aggiunge a OpenClaw il supporto per provider di modelli Volcengine e Volcengine Plan. | `@openclaw/volcengine-provider`<br />incluso in OpenClaw | providers: volcengine, volcengine-plan; contracts: speechProviders |
|
||||
| [voyage](/it/plugins/reference/voyage) | Aggiunge il supporto per provider di embedding della memoria. | `@openclaw/voyage-provider`<br />incluso in OpenClaw | contracts: memoryEmbeddingProviders |
|
||||
| [vydra](/it/plugins/reference/vydra) | Aggiunge a OpenClaw il supporto per provider di modelli Vydra. | `@openclaw/vydra-provider`<br />incluso in OpenClaw | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders |
|
||||
| [web-readability](/it/plugins/reference/web-readability) | Estrae il contenuto leggibile dell'articolo dalle risposte locali di recupero web HTML. | `@openclaw/web-readability-plugin`<br />incluso in OpenClaw | contracts: webContentExtractors |
|
||||
| [webhooks](/it/plugins/reference/webhooks) | Webhook in ingresso autenticati che collegano l'automazione esterna ai TaskFlow di OpenClaw. | `@openclaw/webhooks`<br />incluso in OpenClaw | plugin |
|
||||
| [xai](/it/plugins/reference/xai) | Aggiunge il supporto del provider di modelli xAI a OpenClaw. | `@openclaw/xai-plugin`<br />incluso in OpenClaw | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders |
|
||||
| [xiaomi](/it/plugins/reference/xiaomi) | Aggiunge il supporto del provider di modelli Xiaomi a OpenClaw. | `@openclaw/xiaomi-provider`<br />incluso in OpenClaw | providers: xiaomi; contracts: speechProviders |
|
||||
| [zai](/it/plugins/reference/zai) | Aggiunge il supporto del provider di modelli Z.AI a OpenClaw. | `@openclaw/zai-provider`<br />incluso in OpenClaw | providers: zai; contracts: mediaUnderstandingProviders |
|
||||
| [minimax](/it/plugins/reference/minimax) | Aggiunge supporto per i provider di modelli MiniMax e MiniMax Portal a OpenClaw. | `@openclaw/minimax-provider`<br />incluso in OpenClaw | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders |
|
||||
| [mistral](/it/plugins/reference/mistral) | Aggiunge supporto per il provider di modelli Mistral a OpenClaw. | `@openclaw/mistral-provider`<br />incluso in OpenClaw | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders |
|
||||
| [moonshot](/it/plugins/reference/moonshot) | Aggiunge supporto per il provider di modelli Moonshot a OpenClaw. | `@openclaw/moonshot-provider`<br />incluso in OpenClaw | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders |
|
||||
| [nvidia](/it/plugins/reference/nvidia) | Aggiunge supporto per il provider di modelli NVIDIA a OpenClaw. | `@openclaw/nvidia-provider`<br />incluso in OpenClaw | providers: nvidia |
|
||||
| [ollama](/it/plugins/reference/ollama) | Aggiunge supporto per il provider di modelli Ollama a OpenClaw. | `@openclaw/ollama-provider`<br />incluso in OpenClaw | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders |
|
||||
| [open-prose](/it/plugins/reference/open-prose) | Pacchetto skill OpenProse VM con comando slash /prose. | `@openclaw/open-prose`<br />incluso in OpenClaw | skills |
|
||||
| [openai](/it/plugins/reference/openai) | Aggiunge supporto per i provider di modelli OpenAI e OpenAI Codex a OpenClaw. | `@openclaw/openai-provider`<br />incluso in OpenClaw | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders |
|
||||
| [opencode](/it/plugins/reference/opencode) | Aggiunge supporto per il provider di modelli OpenCode a OpenClaw. | `@openclaw/opencode-provider`<br />incluso in OpenClaw | providers: opencode; contracts: mediaUnderstandingProviders |
|
||||
| [opencode-go](/it/plugins/reference/opencode-go) | Aggiunge supporto per il provider di modelli OpenCode Go a OpenClaw. | `@openclaw/opencode-go-provider`<br />incluso in OpenClaw | providers: opencode-go; contracts: mediaUnderstandingProviders |
|
||||
| [openrouter](/it/plugins/reference/openrouter) | Aggiunge supporto per il provider di modelli OpenRouter a OpenClaw. | `@openclaw/openrouter-provider`<br />incluso in OpenClaw | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders |
|
||||
| [openshell](/it/plugins/reference/openshell) | Backend sandbox basato su OpenShell con workspace locali mirror e esecuzione dei comandi tramite SSH. | `@openclaw/openshell-sandbox`<br />incluso in OpenClaw | plugin |
|
||||
| [perplexity](/it/plugins/reference/perplexity) | Aggiunge supporto per i provider di ricerca web. | `@openclaw/perplexity-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [qianfan](/it/plugins/reference/qianfan) | Aggiunge supporto per il provider di modelli Qianfan a OpenClaw. | `@openclaw/qianfan-provider`<br />incluso in OpenClaw | providers: qianfan |
|
||||
| [qwen](/it/plugins/reference/qwen) | Aggiunge supporto per i provider di modelli Qwen, Qwen Cloud, Model Studio e DashScope a OpenClaw. | `@openclaw/qwen-provider`<br />incluso in OpenClaw | providers: qwen, qwencloud, modelstudio, dashscope; contracts: mediaUnderstandingProviders, videoGenerationProviders |
|
||||
| [runway](/it/plugins/reference/runway) | Aggiunge il supporto per provider di generazione video. | `@openclaw/runway-provider`<br />incluso in OpenClaw | contracts: videoGenerationProviders |
|
||||
| [searxng](/it/plugins/reference/searxng) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/searxng-plugin`<br />incluso in OpenClaw | contracts: webSearchProviders |
|
||||
| [senseaudio](/it/plugins/reference/senseaudio) | Aggiunge il supporto per provider di comprensione multimediale. | `@openclaw/senseaudio-provider`<br />incluso in OpenClaw | contracts: mediaUnderstandingProviders |
|
||||
| [sglang](/it/plugins/reference/sglang) | Aggiunge a OpenClaw il supporto per provider di modelli SGLang. | `@openclaw/sglang-provider`<br />incluso in OpenClaw | providers: sglang |
|
||||
| [signal](/it/plugins/reference/signal) | Aggiunge la superficie di canale Signal per inviare e ricevere messaggi OpenClaw. | `@openclaw/signal`<br />incluso in OpenClaw | channels: signal |
|
||||
| [skill-workshop](/it/plugins/reference/skill-workshop) | Acquisisce flussi di lavoro ripetibili come Skills dell'area di lavoro, con revisione in sospeso, scritture sicure e aggiornamento del prompt delle Skills. | `@openclaw/skill-workshop`<br />incluso in OpenClaw | contracts: tools |
|
||||
| [slack](/it/plugins/reference/slack) | Aggiunge la superficie di canale Slack per inviare e ricevere messaggi OpenClaw. | `@openclaw/slack`<br />incluso in OpenClaw | channels: slack |
|
||||
| [stepfun](/it/plugins/reference/stepfun) | Aggiunge a OpenClaw il supporto per provider di modelli StepFun e StepFun Plan. | `@openclaw/stepfun-provider`<br />incluso in OpenClaw | providers: stepfun, stepfun-plan |
|
||||
| [synthetic](/it/plugins/reference/synthetic) | Aggiunge a OpenClaw il supporto per provider di modelli Synthetic. | `@openclaw/synthetic-provider`<br />incluso in OpenClaw | providers: synthetic |
|
||||
| [tavily](/it/plugins/reference/tavily) | Aggiunge strumenti richiamabili dagli agenti. Aggiunge il supporto per provider di ricerca web. | `@openclaw/tavily-plugin`<br />incluso in OpenClaw | contracts: tools, webSearchProviders; skills |
|
||||
| [telegram](/it/plugins/reference/telegram) | Aggiunge la superficie di canale Telegram per inviare e ricevere messaggi OpenClaw. | `@openclaw/telegram`<br />incluso in OpenClaw | channels: telegram |
|
||||
| [tencent](/it/plugins/reference/tencent) | Aggiunge a OpenClaw il supporto per provider di modelli Tencent TokenHub. | `@openclaw/tencent-provider`<br />incluso in OpenClaw | providers: tencent-tokenhub |
|
||||
| [together](/it/plugins/reference/together) | Aggiunge a OpenClaw il supporto per provider di modelli Together. | `@openclaw/together-provider`<br />incluso in OpenClaw | providers: together; contracts: videoGenerationProviders |
|
||||
| [tokenjuice](/it/plugins/reference/tokenjuice) | Compatta i risultati degli strumenti exec e bash con i riduttori tokenjuice. | `@openclaw/tokenjuice`<br />incluso in OpenClaw | contracts: agentToolResultMiddleware |
|
||||
| [tts-local-cli](/it/plugins/reference/tts-local-cli) | Aggiunge il supporto per provider di sintesi vocale. | `@openclaw/tts-local-cli`<br />incluso in OpenClaw | contracts: speechProviders |
|
||||
| [venice](/it/plugins/reference/venice) | Aggiunge a OpenClaw il supporto per provider di modelli Venice. | `@openclaw/venice-provider`<br />incluso in OpenClaw | providers: venice |
|
||||
| [vercel-ai-gateway](/it/plugins/reference/vercel-ai-gateway) | Aggiunge a OpenClaw il supporto per provider di modelli Vercel AI Gateway. | `@openclaw/vercel-ai-gateway-provider`<br />incluso in OpenClaw | providers: vercel-ai-gateway |
|
||||
| [vllm](/it/plugins/reference/vllm) | Aggiunge a OpenClaw il supporto per provider di modelli vLLM. | `@openclaw/vllm-provider`<br />incluso in OpenClaw | providers: vllm |
|
||||
| [volcengine](/it/plugins/reference/volcengine) | Aggiunge a OpenClaw il supporto per provider di modelli Volcengine e Volcengine Plan. | `@openclaw/volcengine-provider`<br />incluso in OpenClaw | providers: volcengine, volcengine-plan; contracts: speechProviders |
|
||||
| [voyage](/it/plugins/reference/voyage) | Aggiunge il supporto per provider di embedding della memoria. | `@openclaw/voyage-provider`<br />incluso in OpenClaw | contracts: memoryEmbeddingProviders |
|
||||
| [vydra](/it/plugins/reference/vydra) | Aggiunge a OpenClaw il supporto per provider di modelli Vydra. | `@openclaw/vydra-provider`<br />incluso in OpenClaw | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders |
|
||||
| [web-readability](/it/plugins/reference/web-readability) | Estrae il contenuto leggibile dell'articolo dalle risposte di fetch web HTML locali. | `@openclaw/web-readability-plugin`<br />incluso in OpenClaw | contracts: webContentExtractors |
|
||||
| [webhooks](/it/plugins/reference/webhooks) | Webhook in ingresso autenticati che collegano l'automazione esterna ai TaskFlow di OpenClaw. | `@openclaw/webhooks`<br />incluso in OpenClaw | plugin |
|
||||
| [xai](/it/plugins/reference/xai) | Aggiunge a OpenClaw il supporto per il provider di modelli xAI. | `@openclaw/xai-plugin`<br />incluso in OpenClaw | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders |
|
||||
| [xiaomi](/it/plugins/reference/xiaomi) | Aggiunge a OpenClaw il supporto per il provider di modelli Xiaomi. | `@openclaw/xiaomi-provider`<br />incluso in OpenClaw | providers: xiaomi; contracts: speechProviders |
|
||||
| [zai](/it/plugins/reference/zai) | Aggiunge a OpenClaw il supporto per il provider di modelli Z.AI. | `@openclaw/zai-provider`<br />incluso in OpenClaw | providers: zai; contracts: mediaUnderstandingProviders |
|
||||
|
||||
## Pacchetti esterni ufficiali
|
||||
|
||||
| Plugin | Descrizione | Distribuzione | Superficie |
|
||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| [acpx](/it/plugins/reference/acpx) | Backend runtime ACP incorporato con gestione di sessione e trasporto di proprietà del plugin. | `@openclaw/acpx`<br />npm; ClawHub | skills |
|
||||
| [bluebubbles](/it/plugins/reference/bluebubbles) | Aggiunge la superficie del canale BlueBubbles per inviare e ricevere messaggi OpenClaw. | `@openclaw/bluebubbles`<br />npm; ClawHub | channels: bluebubbles |
|
||||
| [brave](/it/plugins/reference/brave) | Aggiunge il supporto per il provider di ricerca web. | `@openclaw/brave-plugin`<br />npm; ClawHub | contracts: webSearchProviders |
|
||||
| [codex](/it/plugins/reference/codex) | Harness app-server Codex e catalogo di modelli GPT gestito da Codex. | `@openclaw/codex`<br />npm; ClawHub | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders |
|
||||
| [diagnostics-otel](/it/plugins/reference/diagnostics-otel) | Esportatore OpenTelemetry per la diagnostica OpenClaw. | `@openclaw/diagnostics-otel`<br />npm; ClawHub: `clawhub:@openclaw/diagnostics-otel` | plugin |
|
||||
| [diagnostics-prometheus](/it/plugins/reference/diagnostics-prometheus) | Esportatore Prometheus per la diagnostica OpenClaw. | `@openclaw/diagnostics-prometheus`<br />npm; ClawHub: `clawhub:@openclaw/diagnostics-prometheus` | plugin |
|
||||
| [diffs](/it/plugins/reference/diffs) | Visualizzatore diff di sola lettura e renderer di file per agenti. | `@openclaw/diffs`<br />npm; ClawHub | contracts: tools; skills |
|
||||
| [discord](/it/plugins/reference/discord) | Aggiunge la superficie del canale Discord per inviare e ricevere messaggi OpenClaw. | `@openclaw/discord`<br />npm; ClawHub | channels: discord |
|
||||
| [feishu](/it/plugins/reference/feishu) | Aggiunge la superficie del canale Feishu per inviare e ricevere messaggi OpenClaw. | `@openclaw/feishu`<br />npm; ClawHub | channels: feishu; contracts: tools; skills |
|
||||
| [google-meet](/it/plugins/reference/google-meet) | Partecipa alle chiamate Google Meet tramite trasporti Chrome o Twilio. | `@openclaw/google-meet`<br />npm; ClawHub | contracts: tools |
|
||||
| [googlechat](/it/plugins/reference/googlechat) | Aggiunge la superficie del canale Google Chat per inviare e ricevere messaggi OpenClaw. | `@openclaw/googlechat`<br />npm; ClawHub | channels: googlechat |
|
||||
| [line](/it/plugins/reference/line) | Aggiunge la superficie del canale LINE per inviare e ricevere messaggi OpenClaw. | `@openclaw/line`<br />npm; ClawHub | channels: line |
|
||||
| [lobster](/it/plugins/reference/lobster) | Strumento di workflow tipizzato con approvazioni ripristinabili. | `@openclaw/lobster`<br />npm; ClawHub | contracts: tools |
|
||||
| [memory-lancedb](/it/plugins/reference/memory-lancedb) | Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/memory-lancedb`<br />npm; ClawHub | contracts: tools |
|
||||
| [msteams](/it/plugins/reference/msteams) | Aggiunge la superficie del canale Microsoft Teams per inviare e ricevere messaggi OpenClaw. | `@openclaw/msteams`<br />npm; ClawHub | channels: msteams |
|
||||
| [nextcloud-talk](/it/plugins/reference/nextcloud-talk) | Aggiunge la superficie del canale Nextcloud Talk per inviare e ricevere messaggi OpenClaw. | `@openclaw/nextcloud-talk`<br />npm; ClawHub | channels: nextcloud-talk |
|
||||
| [nostr](/it/plugins/reference/nostr) | Aggiunge la superficie del canale Nostr per inviare e ricevere messaggi OpenClaw. | `@openclaw/nostr`<br />npm; ClawHub | channels: nostr |
|
||||
| [qqbot](/it/plugins/reference/qqbot) | Aggiunge la superficie del canale QQ Bot per inviare e ricevere messaggi OpenClaw. | `@openclaw/qqbot`<br />npm; ClawHub | channels: qqbot; contracts: tools; skills |
|
||||
| [synology-chat](/it/plugins/reference/synology-chat) | Aggiunge la superficie del canale Synology Chat per inviare e ricevere messaggi OpenClaw. | `@openclaw/synology-chat`<br />npm; ClawHub | channels: synology-chat |
|
||||
| [tlon](/it/plugins/reference/tlon) | Aggiunge la superficie del canale Tlon per inviare e ricevere messaggi OpenClaw. | `@openclaw/tlon`<br />npm; ClawHub | channels: tlon; contracts: tools; skills |
|
||||
| [twitch](/it/plugins/reference/twitch) | Aggiunge la superficie del canale Twitch per inviare e ricevere messaggi OpenClaw. | `@openclaw/twitch`<br />npm; ClawHub | channels: twitch |
|
||||
| [voice-call](/it/plugins/reference/voice-call) | Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/voice-call`<br />npm; ClawHub | contracts: tools |
|
||||
| [whatsapp](/it/plugins/reference/whatsapp) | Aggiunge la superficie del canale WhatsApp per inviare e ricevere messaggi OpenClaw. | `@openclaw/whatsapp`<br />npm; ClawHub | channels: whatsapp |
|
||||
| [zalo](/it/plugins/reference/zalo) | Aggiunge la superficie del canale Zalo per inviare e ricevere messaggi OpenClaw. | `@openclaw/zalo`<br />npm; ClawHub | channels: zalo |
|
||||
| [zalouser](/it/plugins/reference/zalouser) | Aggiunge la superficie del canale Zalo Personal per inviare e ricevere messaggi OpenClaw. | `@openclaw/zalouser`<br />npm; ClawHub | channels: zalouser; contracts: tools |
|
||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- |
|
||||
| [acpx](/it/plugins/reference/acpx) | Backend runtime ACP incorporato con gestione delle sessioni e dei trasporti di proprietà del Plugin. | `@openclaw/acpx`<br />npm; ClawHub | skills |
|
||||
| [bluebubbles](/it/plugins/reference/bluebubbles) | Aggiunge la superficie del canale BlueBubbles per inviare e ricevere messaggi OpenClaw. | `@openclaw/bluebubbles`<br />npm; ClawHub | channels: bluebubbles |
|
||||
| [brave](/it/plugins/reference/brave) | Aggiunge il supporto per provider di ricerca web. | `@openclaw/brave-plugin`<br />npm; ClawHub | contracts: webSearchProviders |
|
||||
| [codex](/it/plugins/reference/codex) | Harness app-server di Codex e catalogo di modelli GPT gestito da Codex. | `@openclaw/codex`<br />npm; ClawHub | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders |
|
||||
| [diagnostics-otel](/it/plugins/reference/diagnostics-otel) | Esportatore OpenTelemetry per la diagnostica di OpenClaw. | `@openclaw/diagnostics-otel`<br />npm; ClawHub: `clawhub:@openclaw/diagnostics-otel` | plugin |
|
||||
| [diagnostics-prometheus](/it/plugins/reference/diagnostics-prometheus) | Esportatore Prometheus per la diagnostica di OpenClaw. | `@openclaw/diagnostics-prometheus`<br />npm; ClawHub: `clawhub:@openclaw/diagnostics-prometheus` | plugin |
|
||||
| [diffs](/it/plugins/reference/diffs) | Visualizzatore di diff in sola lettura e renderer di file per agenti. | `@openclaw/diffs`<br />npm; ClawHub | contracts: tools; skills |
|
||||
| [discord](/it/plugins/reference/discord) | Aggiunge la superficie del canale Discord per inviare e ricevere messaggi OpenClaw. | `@openclaw/discord`<br />npm; ClawHub | channels: discord |
|
||||
| [feishu](/it/plugins/reference/feishu) | Aggiunge la superficie del canale Feishu per inviare e ricevere messaggi OpenClaw. | `@openclaw/feishu`<br />npm; ClawHub | channels: feishu; contracts: tools; skills |
|
||||
| [google-meet](/it/plugins/reference/google-meet) | Partecipa alle chiamate Google Meet tramite trasporti Chrome o Twilio. | `@openclaw/google-meet`<br />npm; ClawHub | contracts: tools |
|
||||
| [googlechat](/it/plugins/reference/googlechat) | Aggiunge la superficie del canale Google Chat per inviare e ricevere messaggi OpenClaw. | `@openclaw/googlechat`<br />npm; ClawHub | channels: googlechat |
|
||||
| [line](/it/plugins/reference/line) | Aggiunge la superficie del canale LINE per inviare e ricevere messaggi OpenClaw. | `@openclaw/line`<br />npm; ClawHub | channels: line |
|
||||
| [lobster](/it/plugins/reference/lobster) | Strumento di workflow tipizzato con approvazioni riprendibili. | `@openclaw/lobster`<br />npm; ClawHub | contracts: tools |
|
||||
| [memory-lancedb](/it/plugins/reference/memory-lancedb) | Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/memory-lancedb`<br />npm; ClawHub | contracts: tools |
|
||||
| [msteams](/it/plugins/reference/msteams) | Aggiunge la superficie del canale Microsoft Teams per inviare e ricevere messaggi OpenClaw. | `@openclaw/msteams`<br />npm; ClawHub | channels: msteams |
|
||||
| [nextcloud-talk](/it/plugins/reference/nextcloud-talk) | Aggiunge la superficie del canale Nextcloud Talk per inviare e ricevere messaggi OpenClaw. | `@openclaw/nextcloud-talk`<br />npm; ClawHub | channels: nextcloud-talk |
|
||||
| [nostr](/it/plugins/reference/nostr) | Aggiunge la superficie del canale Nostr per inviare e ricevere messaggi OpenClaw. | `@openclaw/nostr`<br />npm; ClawHub | channels: nostr |
|
||||
| [qqbot](/it/plugins/reference/qqbot) | Aggiunge la superficie del canale QQ Bot per inviare e ricevere messaggi OpenClaw. | `@openclaw/qqbot`<br />npm; ClawHub | channels: qqbot; contracts: tools; skills |
|
||||
| [synology-chat](/it/plugins/reference/synology-chat) | Aggiunge la superficie del canale Synology Chat per inviare e ricevere messaggi OpenClaw. | `@openclaw/synology-chat`<br />npm; ClawHub | channels: synology-chat |
|
||||
| [tlon](/it/plugins/reference/tlon) | Aggiunge la superficie del canale Tlon per inviare e ricevere messaggi OpenClaw. | `@openclaw/tlon`<br />npm; ClawHub | channels: tlon; contracts: tools; skills |
|
||||
| [twitch](/it/plugins/reference/twitch) | Aggiunge la superficie del canale Twitch per inviare e ricevere messaggi OpenClaw. | `@openclaw/twitch`<br />npm; ClawHub | channels: twitch |
|
||||
| [voice-call](/it/plugins/reference/voice-call) | Aggiunge strumenti richiamabili dagli agenti. | `@openclaw/voice-call`<br />npm; ClawHub | contracts: tools |
|
||||
| [whatsapp](/it/plugins/reference/whatsapp) | Aggiunge la superficie del canale WhatsApp per inviare e ricevere messaggi OpenClaw. | `@openclaw/whatsapp`<br />npm; ClawHub | channels: whatsapp |
|
||||
| [zalo](/it/plugins/reference/zalo) | Aggiunge la superficie del canale Zalo per inviare e ricevere messaggi OpenClaw. | `@openclaw/zalo`<br />npm; ClawHub | channels: zalo |
|
||||
| [zalouser](/it/plugins/reference/zalouser) | Aggiunge la superficie del canale Zalo Personal per inviare e ricevere messaggi OpenClaw. | `@openclaw/zalouser`<br />npm; ClawHub | channels: zalouser; contracts: tools |
|
||||
|
||||
## Solo checkout del sorgente
|
||||
## Solo checkout dei sorgenti
|
||||
|
||||
| Plugin | Descrizione | Distribuzione | Superficie |
|
||||
| ------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------- | -------------------- |
|
||||
| [qa-channel](/it/plugins/reference/qa-channel) | Aggiunge la superficie del canale QA Channel per inviare e ricevere messaggi OpenClaw. | `@openclaw/qa-channel`<br />solo checkout del sorgente | channels: qa-channel |
|
||||
| [qa-lab](/it/plugins/reference/qa-lab) | Plugin del laboratorio QA OpenClaw con UI di debugger privata ed esecutore di scenari. | `@openclaw/qa-lab`<br />solo checkout del sorgente | plugin |
|
||||
| [qa-matrix](/it/plugins/reference/qa-matrix) | Esecutore e substrato del trasporto QA Matrix. | `@openclaw/qa-matrix`<br />solo checkout del sorgente | plugin |
|
||||
| ------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------ | -------------------- |
|
||||
| [qa-channel](/it/plugins/reference/qa-channel) | Aggiunge la superficie del canale QA Channel per inviare e ricevere messaggi OpenClaw. | `@openclaw/qa-channel`<br />solo checkout dei sorgenti | channels: qa-channel |
|
||||
| [qa-lab](/it/plugins/reference/qa-lab) | Plugin QA lab di OpenClaw con UI privata di debug e runner di scenari. | `@openclaw/qa-lab`<br />solo checkout dei sorgenti | plugin |
|
||||
| [qa-matrix](/it/plugins/reference/qa-matrix) | Runner e substrato per il trasporto QA Matrix. | `@openclaw/qa-matrix`<br />solo checkout dei sorgenti | plugin |
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
---
|
||||
read_when:
|
||||
- Analisi del motivo per cui un agente ha risposto, ha fallito o ha chiamato gli strumenti in un determinato modo
|
||||
- Debug del motivo per cui un agente ha risposto, ha fallito o ha chiamato strumenti in un certo modo
|
||||
- Esportazione di un pacchetto di supporto per una sessione OpenClaw
|
||||
- Analisi del contesto del prompt, delle chiamate agli strumenti, degli errori di runtime o dei metadati di utilizzo
|
||||
- Disabilitare o spostare l'acquisizione della traiettoria
|
||||
summary: Esporta bundle di traiettorie oscurati per il debug di una sessione dell'agente OpenClaw
|
||||
- Disabilitare o spostare l'acquisizione delle traiettorie
|
||||
summary: Esporta bundle di traiettorie con dati oscurati per eseguire il debug di una sessione di agente OpenClaw
|
||||
title: Pacchetti di traiettorie
|
||||
x-i18n:
|
||||
generated_at: "2026-04-30T09:18:27Z"
|
||||
generated_at: "2026-05-04T09:37:27Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 8dad01b3662d5e75b7626eb7ed3c3ac2dce4e3a7db2ba5952d7086c721151d1f
|
||||
source_hash: b8b1256e52d27185a48ceddaf7937b4f37ad6d57d075fea0d0b6d3abb871f1d8
|
||||
source_path: tools/trajectory.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
La cattura della traiettoria è il registratore di volo per sessione di OpenClaw. Registra una
|
||||
timeline strutturata per ogni esecuzione dell’agente, quindi `/export-trajectory` confeziona la
|
||||
timeline strutturata per ogni esecuzione dell'agente, quindi `/export-trajectory` impacchetta la
|
||||
sessione corrente in un bundle di supporto redatto.
|
||||
|
||||
Usala quando devi rispondere a domande come:
|
||||
|
||||
- Quali prompt, prompt di sistema e strumenti sono stati inviati al modello?
|
||||
- Quali messaggi della trascrizione e chiamate agli strumenti hanno portato a questa risposta?
|
||||
- L’esecuzione è andata in timeout, è stata interrotta, ha eseguito una compaction o ha incontrato un errore del provider?
|
||||
- Quali modello, plugin, Skills e impostazioni di runtime erano attivi?
|
||||
- Quale prompt, prompt di sistema e strumenti sono stati inviati al modello?
|
||||
- Quali messaggi di trascrizione e chiamate agli strumenti hanno portato a questa risposta?
|
||||
- L'esecuzione è scaduta, si è interrotta, è stata compattata o ha riscontrato un errore del provider?
|
||||
- Quale modello, plugin, Skills e impostazioni di runtime erano attivi?
|
||||
- Quali metadati di utilizzo e della cache dei prompt ha restituito il provider?
|
||||
|
||||
Se stai aprendo una segnalazione di supporto ampia per un problema live del Gateway, inizia con
|
||||
Se stai inviando un report di supporto ampio per un problema del Gateway live, inizia con
|
||||
[`/diagnostics`](/it/gateway/diagnostics#chat-command). Diagnostics raccoglie il
|
||||
bundle sanitizzato del Gateway e, per le sessioni dell’harness OpenAI Codex, può anche inviare
|
||||
feedback Codex ai server OpenAI dopo l’approvazione. Usa `/export-trajectory` quando
|
||||
ti serve nello specifico la timeline dettagliata per sessione di prompt, strumenti e trascrizione.
|
||||
bundle Gateway sanificato e, per le sessioni dell'harness OpenAI Codex, può anche inviare
|
||||
feedback Codex ai server OpenAI dopo l'approvazione. Usa `/export-trajectory` quando
|
||||
ti serve specificamente la timeline dettagliata per sessione di prompt, strumenti e trascrizione.
|
||||
|
||||
## Avvio rapido
|
||||
|
||||
@ -47,30 +47,30 @@ Alias:
|
||||
/trajectory
|
||||
```
|
||||
|
||||
OpenClaw scrive il bundle sotto il workspace:
|
||||
OpenClaw scrive il bundle sotto l'area di lavoro:
|
||||
|
||||
```text
|
||||
.openclaw/trajectory-exports/openclaw-trajectory-<session>-<timestamp>/
|
||||
```
|
||||
|
||||
Puoi scegliere il nome di una directory di output relativa:
|
||||
Puoi scegliere un nome di directory di output relativo:
|
||||
|
||||
```text
|
||||
/export-trajectory bug-1234
|
||||
```
|
||||
|
||||
Il percorso personalizzato viene risolto dentro `.openclaw/trajectory-exports/`. I percorsi assoluti
|
||||
e i percorsi `~` vengono rifiutati.
|
||||
Il percorso personalizzato viene risolto dentro `.openclaw/trajectory-exports/`. I percorsi
|
||||
assoluti e i percorsi `~` vengono rifiutati.
|
||||
|
||||
I bundle di traiettoria possono contenere prompt, messaggi del modello, schemi degli strumenti, risultati degli strumenti,
|
||||
eventi di runtime e percorsi locali. Il comando slash della chat passa quindi
|
||||
attraverso l’approvazione exec ogni volta. Approva l’esportazione una sola volta quando intendi
|
||||
eventi di runtime e percorsi locali. Il comando slash della chat quindi passa
|
||||
attraverso l'approvazione exec ogni volta. Approva l'esportazione una volta quando intendi
|
||||
creare il bundle; non usare allow-all. Nelle chat di gruppo, OpenClaw invia il
|
||||
prompt di approvazione e il risultato dell’esportazione al proprietario in privato invece di pubblicare i
|
||||
prompt di approvazione e il risultato dell'esportazione al proprietario in privato invece di pubblicare i
|
||||
dettagli della traiettoria nella stanza condivisa.
|
||||
|
||||
Per l’ispezione locale o i flussi di supporto, puoi anche eseguire direttamente il percorso del comando
|
||||
approvato:
|
||||
Per l'ispezione locale o i flussi di supporto, puoi anche eseguire direttamente il percorso
|
||||
del comando approvato:
|
||||
|
||||
```bash
|
||||
openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:123" --workspace .
|
||||
@ -78,7 +78,7 @@ openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:12
|
||||
|
||||
## Accesso
|
||||
|
||||
L’esportazione della traiettoria è un comando del proprietario. Il mittente deve superare i normali controlli di
|
||||
L'esportazione della traiettoria è un comando del proprietario. Il mittente deve superare i normali controlli di
|
||||
autorizzazione dei comandi e i controlli del proprietario per il canale.
|
||||
|
||||
## Cosa viene registrato
|
||||
@ -91,22 +91,22 @@ Gli eventi di runtime includono:
|
||||
- `trace.metadata`
|
||||
- `context.compiled`
|
||||
- `prompt.submitted`
|
||||
- `model.fallback_step`, inclusi il modello sorgente, il modello successivo, motivo/dettaglio dell’errore, posizione nella catena e se il fallback è avanzato, riuscito o ha esaurito la catena
|
||||
- `model.fallback_step`, inclusi il modello di origine, il modello successivo, motivo/dettaglio dell'errore, posizione nella catena e se il fallback è avanzato, riuscito o ha esaurito la catena
|
||||
- `model.completed`
|
||||
- `trace.artifacts`
|
||||
- `session.ended`
|
||||
|
||||
Anche gli eventi della trascrizione vengono ricostruiti dal branch di sessione attivo:
|
||||
Gli eventi di trascrizione vengono anche ricostruiti dal ramo di sessione attivo:
|
||||
|
||||
- messaggi utente
|
||||
- messaggi dell’assistente
|
||||
- messaggi dell'assistente
|
||||
- chiamate agli strumenti
|
||||
- risultati degli strumenti
|
||||
- compaction
|
||||
- modifiche del modello
|
||||
- compattazioni
|
||||
- cambiamenti di modello
|
||||
- etichette e voci di sessione personalizzate
|
||||
|
||||
Gli eventi sono scritti come JSON Lines con questo marker di schema:
|
||||
Gli eventi vengono scritti come JSON Lines con questo marker di schema:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -121,11 +121,11 @@ Un bundle esportato può contenere:
|
||||
|
||||
| File | Contenuti |
|
||||
| --------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `manifest.json` | Schema del bundle, file sorgente, conteggi degli eventi ed elenco dei file generati |
|
||||
| `manifest.json` | Schema del bundle, file sorgente, conteggi degli eventi ed elenco dei file generati |
|
||||
| `events.jsonl` | Timeline ordinata di runtime e trascrizione |
|
||||
| `session-branch.json` | Branch della trascrizione attiva redatto e intestazione della sessione |
|
||||
| `metadata.json` | Versione di OpenClaw, OS/runtime, modello, snapshot di configurazione, plugin, Skills e metadati dei prompt |
|
||||
| `artifacts.json` | Stato finale, errori, utilizzo, cache dei prompt, conteggio delle compaction, testo dell’assistente e metadati degli strumenti |
|
||||
| `session-branch.json` | Ramo di trascrizione attivo redatto e intestazione della sessione |
|
||||
| `metadata.json` | Versione OpenClaw, sistema operativo/runtime, modello, snapshot della configurazione, plugin, Skills e metadati dei prompt |
|
||||
| `artifacts.json` | Stato finale, errori, utilizzo, cache dei prompt, conteggio delle compattazioni, testo dell'assistente e metadati degli strumenti |
|
||||
| `prompts.json` | Prompt inviati e dettagli selezionati di costruzione dei prompt |
|
||||
| `system-prompt.txt` | Ultimo prompt di sistema compilato, quando catturato |
|
||||
| `tools.json` | Definizioni degli strumenti inviate al modello, quando catturate |
|
||||
@ -133,9 +133,9 @@ Un bundle esportato può contenere:
|
||||
`manifest.json` elenca i file presenti in quel bundle. Alcuni file vengono omessi
|
||||
quando la sessione non ha catturato i dati di runtime corrispondenti.
|
||||
|
||||
## Posizione della cattura
|
||||
## Posizione di cattura
|
||||
|
||||
Per impostazione predefinita, gli eventi di traiettoria di runtime vengono scritti accanto al file di sessione:
|
||||
Per impostazione predefinita, gli eventi di traiettoria runtime vengono scritti accanto al file di sessione:
|
||||
|
||||
```text
|
||||
<session>.trajectory.jsonl
|
||||
@ -147,7 +147,7 @@ OpenClaw scrive anche un file puntatore best-effort accanto alla sessione:
|
||||
<session>.trajectory-path.json
|
||||
```
|
||||
|
||||
Imposta `OPENCLAW_TRAJECTORY_DIR` per archiviare i sidecar di traiettoria di runtime in una
|
||||
Imposta `OPENCLAW_TRAJECTORY_DIR` per archiviare i sidecar di traiettoria runtime in una
|
||||
directory dedicata:
|
||||
|
||||
```bash
|
||||
@ -158,9 +158,9 @@ Quando questa variabile è impostata, OpenClaw scrive un file JSONL per ogni id
|
||||
directory.
|
||||
|
||||
La manutenzione delle sessioni rimuove i sidecar di traiettoria quando la voce della sessione proprietaria
|
||||
viene eliminata, limitata o espulsa dal budget disco delle sessioni. I file di runtime fuori
|
||||
dalla directory delle sessioni vengono rimossi solo quando il target del puntatore dimostra ancora che
|
||||
appartiene a quella sessione.
|
||||
viene eliminata, limitata o espulsa dal budget su disco delle sessioni. I file di runtime fuori
|
||||
dalla directory delle sessioni vengono rimossi solo quando il target del puntatore dimostra ancora di
|
||||
appartenere a quella sessione.
|
||||
|
||||
## Disabilitare la cattura
|
||||
|
||||
@ -170,8 +170,8 @@ Imposta `OPENCLAW_TRAJECTORY=0` prima di avviare OpenClaw:
|
||||
export OPENCLAW_TRAJECTORY=0
|
||||
```
|
||||
|
||||
Questo disabilita la cattura della traiettoria di runtime. `/export-trajectory` può comunque esportare
|
||||
il branch della trascrizione, ma i file solo di runtime come il contesto compilato,
|
||||
Questo disabilita la cattura della traiettoria runtime. `/export-trajectory` può comunque esportare
|
||||
il ramo di trascrizione, ma i file solo runtime come il contesto compilato,
|
||||
gli artefatti del provider e i metadati dei prompt potrebbero mancare.
|
||||
|
||||
## Privacy e limiti
|
||||
@ -179,26 +179,26 @@ gli artefatti del provider e i metadati dei prompt potrebbero mancare.
|
||||
I bundle di traiettoria sono progettati per supporto e debug, non per la pubblicazione pubblica.
|
||||
OpenClaw redige i valori sensibili prima di scrivere i file di esportazione:
|
||||
|
||||
- credenziali e campi di payload noti simili a segreti
|
||||
- credenziali e campi payload noti simili a segreti
|
||||
- dati immagine
|
||||
- percorsi dello stato locale
|
||||
- percorsi del workspace, sostituiti con `$WORKSPACE_DIR`
|
||||
- percorsi di stato locali
|
||||
- percorsi dell'area di lavoro, sostituiti con `$WORKSPACE_DIR`
|
||||
- percorsi della home directory, quando rilevati
|
||||
|
||||
L’esportatore limita anche la dimensione dell’input:
|
||||
L'esportatore limita anche la dimensione dell'input:
|
||||
|
||||
- file sidecar di runtime: 50 MiB
|
||||
- file sidecar di runtime: la cattura live si ferma a 10 MiB e registra un evento di troncamento quando rimane spazio; l'esportazione accetta sidecar di runtime esistenti fino a 50 MiB
|
||||
- file di sessione: 50 MiB
|
||||
- eventi di runtime: 200.000
|
||||
- eventi esportati totali: 250.000
|
||||
- le singole righe degli eventi di runtime vengono troncate oltre 256 KiB
|
||||
- le singole righe degli eventi di runtime vengono troncate sopra 256 KiB
|
||||
|
||||
Rivedi i bundle prima di condividerli fuori dal tuo team. La redazione è best-effort
|
||||
e non può conoscere ogni segreto specifico dell’applicazione.
|
||||
e non può conoscere ogni segreto specifico dell'applicazione.
|
||||
|
||||
## Risoluzione dei problemi
|
||||
|
||||
Se l’esportazione non contiene eventi di runtime:
|
||||
Se l'esportazione non ha eventi di runtime:
|
||||
|
||||
- conferma che OpenClaw sia stato avviato senza `OPENCLAW_TRAJECTORY=0`
|
||||
- controlla se `OPENCLAW_TRAJECTORY_DIR` punta a una directory scrivibile
|
||||
@ -209,10 +209,10 @@ Se il comando rifiuta il percorso di output:
|
||||
|
||||
- usa un nome relativo come `bug-1234`
|
||||
- non passare `/tmp/...` o `~/...`
|
||||
- mantieni l’esportazione dentro `.openclaw/trajectory-exports/`
|
||||
- mantieni l'esportazione dentro `.openclaw/trajectory-exports/`
|
||||
|
||||
Se l’esportazione fallisce con un errore di dimensione, la sessione o il sidecar ha superato i
|
||||
limiti di sicurezza dell’esportazione. Avvia una nuova sessione o esporta una riproduzione più piccola.
|
||||
Se l'esportazione fallisce con un errore di dimensione, la sessione o il sidecar ha superato i
|
||||
limiti di sicurezza dell'esportazione. Avvia una nuova sessione o esporta una riproduzione più piccola.
|
||||
|
||||
## Correlati
|
||||
|
||||
|
||||
@ -6,18 +6,18 @@ sidebarTitle: Control UI
|
||||
summary: Interfaccia utente di controllo basata su browser per il Gateway (chat, nodi, configurazione)
|
||||
title: Interfaccia di controllo
|
||||
x-i18n:
|
||||
generated_at: "2026-05-04T08:39:49Z"
|
||||
generated_at: "2026-05-04T09:37:05Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 896c75116d7a396571017ac6e6db7ff6ce328617e44470c303fd41af58aa2bd7
|
||||
source_hash: 4b68b5203b369de6a3354a7e7442ee38ee790875b2d7054b0c8ec997098fd9de
|
||||
source_path: web/control-ui.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
La UI di controllo è una piccola app a pagina singola **Vite + Lit** servita dal Gateway:
|
||||
L'UI di controllo è una piccola app a pagina singola **Vite + Lit** servita dal Gateway:
|
||||
|
||||
- predefinito: `http://<host>:18789/`
|
||||
- prefisso opzionale: imposta `gateway.controlUi.basePath` (ad es. `/openclaw`)
|
||||
- prefisso facoltativo: imposta `gateway.controlUi.basePath` (ad es. `/openclaw`)
|
||||
|
||||
Comunica **direttamente con il WebSocket del Gateway** sulla stessa porta.
|
||||
|
||||
@ -33,121 +33,121 @@ L'autenticazione viene fornita durante l'handshake WebSocket tramite:
|
||||
|
||||
- `connect.params.auth.token`
|
||||
- `connect.params.auth.password`
|
||||
- header di identità Tailscale Serve quando `gateway.auth.allowTailscale: true`
|
||||
- header di identità di proxy attendibile quando `gateway.auth.mode: "trusted-proxy"`
|
||||
- intestazioni di identità Tailscale Serve quando `gateway.auth.allowTailscale: true`
|
||||
- intestazioni di identità trusted-proxy quando `gateway.auth.mode: "trusted-proxy"`
|
||||
|
||||
Il pannello delle impostazioni della dashboard conserva un token per la sessione della scheda corrente del browser e per l'URL del gateway selezionato; le password non vengono mantenute. L'onboarding di solito genera un token del gateway per l'autenticazione a segreto condiviso alla prima connessione, ma anche l'autenticazione con password funziona quando `gateway.auth.mode` è `"password"`.
|
||||
Il pannello delle impostazioni della dashboard mantiene un token per la sessione della scheda del browser corrente e l'URL del gateway selezionato; le password non vengono conservate. L'onboarding di solito genera un token gateway per l'autenticazione con segreto condiviso alla prima connessione, ma anche l'autenticazione tramite password funziona quando `gateway.auth.mode` è `"password"`.
|
||||
|
||||
## Abbinamento del dispositivo (prima connessione)
|
||||
## Associazione del dispositivo (prima connessione)
|
||||
|
||||
Quando ti connetti alla UI di controllo da un nuovo browser o dispositivo, il Gateway di solito richiede una **approvazione di abbinamento una tantum**. È una misura di sicurezza per impedire accessi non autorizzati.
|
||||
Quando ti connetti all'UI di controllo da un nuovo browser o dispositivo, il Gateway di solito richiede una **approvazione di associazione una tantum**. Questa è una misura di sicurezza per impedire accessi non autorizzati.
|
||||
|
||||
**Cosa vedrai:** "disconnesso (1008): abbinamento richiesto"
|
||||
**Cosa vedrai:** "disconnesso (1008): associazione richiesta"
|
||||
|
||||
<Steps>
|
||||
<Step title="List pending requests">
|
||||
<Step title="Elenca le richieste in sospeso">
|
||||
```bash
|
||||
openclaw devices list
|
||||
```
|
||||
</Step>
|
||||
<Step title="Approve by request ID">
|
||||
<Step title="Approva tramite ID richiesta">
|
||||
```bash
|
||||
openclaw devices approve <requestId>
|
||||
```
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Se il browser riprova l'abbinamento con dettagli di autenticazione modificati (ruolo/ambiti/chiave pubblica), la richiesta in sospeso precedente viene sostituita e viene creato un nuovo `requestId`. Esegui di nuovo `openclaw devices list` prima dell'approvazione.
|
||||
Se il browser riprova l'associazione con dettagli di autenticazione modificati (ruolo/ambiti/chiave pubblica), la richiesta in sospeso precedente viene sostituita e viene creato un nuovo `requestId`. Esegui di nuovo `openclaw devices list` prima dell'approvazione.
|
||||
|
||||
Se il browser è già abbinato e lo modifichi da accesso in lettura ad accesso in scrittura/admin, questa operazione viene trattata come un upgrade dell'approvazione, non come una riconnessione silenziosa. OpenClaw mantiene attiva la vecchia approvazione, blocca la riconnessione con permessi più ampi e ti chiede di approvare esplicitamente il nuovo insieme di ambiti.
|
||||
Se il browser è già associato e lo passi dall'accesso in lettura all'accesso in scrittura/admin, questo viene trattato come un aggiornamento dell'approvazione, non come una riconnessione silenziosa. OpenClaw mantiene attiva la vecchia approvazione, blocca la riconnessione con privilegi più ampi e ti chiede di approvare esplicitamente il nuovo insieme di ambiti.
|
||||
|
||||
Una volta approvato, il dispositivo viene ricordato e non richiederà una nuova approvazione a meno che tu non lo revochi con `openclaw devices revoke --device <id> --role <role>`. Consulta [CLI dispositivi](/it/cli/devices) per rotazione e revoca dei token.
|
||||
Una volta approvato, il dispositivo viene ricordato e non richiederà una nuova approvazione a meno che tu non lo revochi con `openclaw devices revoke --device <id> --role <role>`. Consulta [CLI dispositivi](/it/cli/devices) per la rotazione e la revoca dei token.
|
||||
|
||||
<Note>
|
||||
- Le connessioni dirette del browser tramite local loopback (`127.0.0.1` / `localhost`) vengono approvate automaticamente.
|
||||
- Tailscale Serve può saltare il viaggio di andata e ritorno dell'abbinamento per le sessioni operatore della UI di controllo quando `gateway.auth.allowTailscale: true`, l'identità Tailscale viene verificata e il browser presenta la propria identità dispositivo.
|
||||
- Bind diretti Tailnet, connessioni browser LAN e profili browser senza identità dispositivo richiedono comunque approvazione esplicita.
|
||||
- Ogni profilo browser genera un ID dispositivo univoco, quindi cambiare browser o cancellare i dati del browser richiederà un nuovo abbinamento.
|
||||
- Le connessioni dirette dal browser tramite local loopback (`127.0.0.1` / `localhost`) sono approvate automaticamente.
|
||||
- Tailscale Serve può saltare il passaggio di associazione per le sessioni operatore dell'UI di controllo quando `gateway.auth.allowTailscale: true`, l'identità Tailscale viene verificata e il browser presenta la propria identità del dispositivo.
|
||||
- I bind diretti Tailnet, le connessioni browser LAN e i profili browser senza identità del dispositivo richiedono comunque approvazione esplicita.
|
||||
- Ogni profilo browser genera un ID dispositivo univoco, quindi cambiare browser o cancellare i dati del browser richiederà una nuova associazione.
|
||||
|
||||
</Note>
|
||||
|
||||
## Identità personale (locale al browser)
|
||||
|
||||
La UI di controllo supporta un'identità personale per browser (nome visualizzato e avatar) allegata ai messaggi in uscita per l'attribuzione nelle sessioni condivise. Risiede nell'archiviazione del browser, è limitata al profilo browser corrente e non viene sincronizzata su altri dispositivi né mantenuta lato server oltre ai normali metadati di paternità della trascrizione sui messaggi che invii effettivamente. Cancellare i dati del sito o cambiare browser la reimposta a vuota.
|
||||
L'UI di controllo supporta un'identità personale per browser (nome visualizzato e avatar) allegata ai messaggi in uscita per l'attribuzione nelle sessioni condivise. Risiede nell'archiviazione del browser, è limitata al profilo browser corrente e non viene sincronizzata con altri dispositivi né persistita lato server oltre ai normali metadati di paternità della trascrizione sui messaggi che invii effettivamente. Cancellare i dati del sito o cambiare browser la reimposta a vuoto.
|
||||
|
||||
Lo stesso modello locale al browser si applica all'override dell'avatar dell'assistente. Gli avatar dell'assistente caricati si sovrappongono all'identità risolta dal gateway solo nel browser locale e non fanno mai un viaggio di andata e ritorno tramite `config.patch`. Il campo di configurazione condiviso `ui.assistant.avatar` resta disponibile per i client non UI che scrivono direttamente il campo (come gateway con script o dashboard personalizzate).
|
||||
Lo stesso modello locale al browser si applica all'override dell'avatar dell'assistente. Gli avatar assistente caricati sovrappongono l'identità risolta dal gateway solo nel browser locale e non fanno mai un round-trip tramite `config.patch`. Il campo di configurazione condiviso `ui.assistant.avatar` resta disponibile per client non UI che scrivono direttamente il campo (come gateway scriptati o dashboard personalizzate).
|
||||
|
||||
## Endpoint di configurazione runtime
|
||||
|
||||
La UI di controllo recupera le proprie impostazioni runtime da `/__openclaw/control-ui-config.json`. Quell'endpoint è protetto dalla stessa autenticazione del gateway del resto della superficie HTTP: i browser non autenticati non possono recuperarlo, e un recupero riuscito richiede un token/password del gateway già valido, un'identità Tailscale Serve o un'identità di proxy attendibile.
|
||||
L'UI di controllo recupera le proprie impostazioni runtime da `/__openclaw/control-ui-config.json`. Questo endpoint è protetto dalla stessa autenticazione gateway del resto della superficie HTTP: i browser non autenticati non possono recuperarlo, e un recupero riuscito richiede un token/password gateway già valido, un'identità Tailscale Serve oppure un'identità trusted-proxy.
|
||||
|
||||
## Supporto linguistico
|
||||
|
||||
La UI di controllo può localizzarsi al primo caricamento in base alla lingua del browser. Per modificarla in seguito, apri **Panoramica -> Accesso Gateway -> Lingua**. Il selettore della lingua si trova nella scheda Accesso Gateway, non sotto Aspetto.
|
||||
L'UI di controllo può localizzarsi al primo caricamento in base alla lingua del browser. Per modificarla in seguito, apri **Panoramica -> Accesso Gateway -> Lingua**. Il selettore della lingua si trova nella scheda Accesso Gateway, non sotto Aspetto.
|
||||
|
||||
- Lingue supportate: `en`, `zh-CN`, `zh-TW`, `pt-BR`, `de`, `es`, `ja-JP`, `ko`, `fr`, `ar`, `it`, `tr`, `uk`, `id`, `pl`, `th`, `vi`, `nl`, `fa`
|
||||
- Le traduzioni diverse dall'inglese vengono caricate in modo lazy nel browser.
|
||||
- Le traduzioni non inglesi vengono caricate in modo lazy nel browser.
|
||||
- La lingua selezionata viene salvata nell'archiviazione del browser e riutilizzata nelle visite future.
|
||||
- Le chiavi di traduzione mancanti ricadono sull'inglese.
|
||||
- Le chiavi di traduzione mancanti ripiegano sull'inglese.
|
||||
|
||||
Le traduzioni della documentazione vengono generate per lo stesso insieme di lingue non inglesi, ma il selettore lingua integrato del sito di documentazione Mintlify è limitato ai codici lingua accettati da Mintlify. La documentazione in thailandese (`th`) e persiano (`fa`) viene comunque generata nel repo di pubblicazione; potrebbe non comparire in quel selettore finché Mintlify non supporterà quei codici.
|
||||
Le traduzioni della documentazione sono generate per lo stesso insieme di lingue non inglesi, ma il selettore lingua integrato del sito di documentazione Mintlify è limitato ai codici lingua accettati da Mintlify. La documentazione in thailandese (`th`) e persiano (`fa`) viene comunque generata nel repository di pubblicazione; potrebbe non comparire in quel selettore finché Mintlify non supporterà quei codici.
|
||||
|
||||
## Temi di aspetto
|
||||
|
||||
Il pannello Aspetto mantiene i temi integrati Claw, Knot e Dash, più uno slot di importazione tweakcn locale al browser. Per importare un tema, apri [editor tweakcn](https://tweakcn.com/editor/theme), scegli o crea un tema, fai clic su **Condividi** e incolla il link del tema copiato in Aspetto. L'importatore accetta anche URL di registro `https://tweakcn.com/r/themes/<id>`, URL dell'editor come `https://tweakcn.com/editor/theme?theme=amethyst-haze`, percorsi relativi `/themes/<id>`, ID tema grezzi e nomi di temi predefiniti come `amethyst-haze`.
|
||||
|
||||
I temi importati vengono memorizzati solo nel profilo browser corrente. Non vengono scritti nella configurazione del gateway e non si sincronizzano tra dispositivi. Sostituire il tema importato aggiorna l'unico slot locale; cancellarlo riporta il tema attivo a Claw se il tema importato era selezionato.
|
||||
I temi importati vengono memorizzati solo nel profilo browser corrente. Non vengono scritti nella configurazione gateway e non si sincronizzano tra dispositivi. Sostituire il tema importato aggiorna l'unico slot locale; cancellarlo riporta il tema attivo a Claw se il tema importato era selezionato.
|
||||
|
||||
## Cosa può fare (oggi)
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Chat and Talk">
|
||||
<Accordion title="Chat e conversazione vocale">
|
||||
- Chatta con il modello tramite Gateway WS (`chat.history`, `chat.send`, `chat.abort`, `chat.inject`).
|
||||
- Parla tramite sessioni realtime nel browser. OpenAI usa WebRTC diretto, Google Live usa un token browser monouso vincolato su WebSocket, e i Plugin vocali realtime solo backend usano il trasporto relay del Gateway. Il relay mantiene le credenziali del provider sul Gateway mentre il browser trasmette PCM del microfono tramite RPC `talk.realtime.relay*` e invia chiamate tool `openclaw_agent_consult` tramite `chat.send` al modello OpenClaw configurato più grande.
|
||||
- Trasmetti in streaming chiamate tool + schede di output tool live in Chat (eventi agente).
|
||||
- Parla tramite sessioni realtime del browser. OpenAI usa WebRTC diretto, Google Live usa un token browser monouso vincolato tramite WebSocket e i plugin vocali realtime solo backend usano il trasporto relay del Gateway. Il relay mantiene le credenziali del provider sul Gateway mentre il browser trasmette PCM del microfono tramite RPC `talk.realtime.relay*` e invia chiamate strumento `openclaw_agent_consult` tramite `chat.send` per il modello OpenClaw configurato più grande.
|
||||
- Trasmetti in streaming chiamate strumento + schede di output strumento live nella Chat (eventi agente).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Channels, instances, sessions, dreams">
|
||||
- Canali: stato dei canali integrati più canali Plugin in bundle/esterni, accesso QR e configurazione per canale (`channels.status`, `web.login.*`, `config.patch`).
|
||||
- Istanze: elenco presenza + aggiornamento (`system-presence`).
|
||||
<Accordion title="Canali, istanze, sessioni, sogni">
|
||||
- Canali: integrati più stato dei canali di plugin in bundle/esterni, login QR e configurazione per canale (`channels.status`, `web.login.*`, `config.patch`).
|
||||
- Istanze: elenco presenze + aggiornamento (`system-presence`).
|
||||
- Sessioni: elenco + override per sessione di modello/thinking/fast/verbose/trace/reasoning (`sessions.list`, `sessions.patch`).
|
||||
- Dreams: stato dreaming, toggle abilita/disabilita e lettore Dream Diary (`doctor.memory.status`, `doctor.memory.dreamDiary`, `config.patch`).
|
||||
- Sogni: stato dreaming, interruttore abilita/disabilita e lettore Dream Diary (`doctor.memory.status`, `doctor.memory.dreamDiary`, `config.patch`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Cron, skills, nodes, exec approvals">
|
||||
- Job Cron: elenco/aggiunta/modifica/esecuzione/abilitazione/disabilitazione + cronologia esecuzioni (`cron.*`).
|
||||
<Accordion title="Cron, Skills, nodi, approvazioni exec">
|
||||
- Processi Cron: elenco/aggiungi/modifica/esegui/abilita/disabilita + cronologia esecuzioni (`cron.*`).
|
||||
- Skills: stato, abilita/disabilita, installazione, aggiornamenti chiave API (`skills.*`).
|
||||
- Node: elenco + capacità (`node.list`).
|
||||
- Approvazioni exec: modifica allowlist gateway o Node + criterio di richiesta per `exec host=gateway/node` (`exec.approvals.*`).
|
||||
- Nodi: elenco + capacità (`node.list`).
|
||||
- Approvazioni exec: modifica allowlist di gateway o nodi + policy di richiesta per `exec host=gateway/node` (`exec.approvals.*`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Config">
|
||||
<Accordion title="Configurazione">
|
||||
- Visualizza/modifica `~/.openclaw/openclaw.json` (`config.get`, `config.set`).
|
||||
- Applica + riavvia con validazione (`config.apply`) e risveglia l'ultima sessione attiva.
|
||||
- Le scritture includono una protezione base-hash per impedire di sovrascrivere modifiche concorrenti.
|
||||
- Le scritture (`config.set`/`config.apply`/`config.patch`) eseguono un preflight della risoluzione SecretRef attiva per i riferimenti nel payload di configurazione inviato; i riferimenti attivi inviati non risolti vengono rifiutati prima della scrittura.
|
||||
- Rendering schema + modulo (`config.schema` / `config.schema.lookup`, inclusi `title` / `description` del campo, suggerimenti UI corrispondenti, riepiloghi immediati dei figli, metadati documentazione su nodi oggetto/wildcard/array/composizione annidati, più schemi Plugin + canali quando disponibili); l'editor JSON grezzo è disponibile solo quando lo snapshot consente un round-trip grezzo sicuro.
|
||||
- Se uno snapshot non può eseguire in sicurezza il round-trip del testo grezzo, la UI di controllo forza la modalità Modulo e disabilita la modalità Grezza per quello snapshot.
|
||||
- "Ripristina al salvato" dell'editor JSON grezzo conserva la forma scritta in grezzo (formattazione, commenti, layout `$include`) invece di rigenerare uno snapshot appiattito, così le modifiche esterne sopravvivono a un ripristino quando lo snapshot può eseguire in sicurezza il round-trip.
|
||||
- I valori oggetto SecretRef strutturati vengono renderizzati in sola lettura negli input di testo del modulo per impedire la corruzione accidentale da oggetto a stringa.
|
||||
- Le scritture (`config.set`/`config.apply`/`config.patch`) eseguono un controllo preliminare della risoluzione SecretRef attiva per i riferimenti nel payload di configurazione inviato; i riferimenti attivi inviati ma non risolti vengono rifiutati prima della scrittura.
|
||||
- Rendering di schema + modulo (`config.schema` / `config.schema.lookup`, inclusi `title` / `description` del campo, suggerimenti UI corrispondenti, riepiloghi dei figli immediati, metadati documentazione su nodi oggetto nidificato/wildcard/array/composizione, più schemi plugin + canale quando disponibili); l'editor JSON grezzo è disponibile solo quando lo snapshot ha un round-trip grezzo sicuro.
|
||||
- Se uno snapshot non può eseguire in sicurezza il round-trip del testo grezzo, l'UI di controllo forza la modalità Modulo e disabilita la modalità Grezza per quello snapshot.
|
||||
- L'editor JSON grezzo "Reimposta a salvato" preserva la forma scritta in modo grezzo (formattazione, commenti, layout `$include`) invece di renderizzare di nuovo uno snapshot appiattito, così le modifiche esterne sopravvivono a un reset quando lo snapshot può eseguire in sicurezza il round-trip.
|
||||
- I valori oggetto SecretRef strutturati vengono renderizzati in sola lettura negli input di testo del modulo per prevenire corruzioni accidentali da oggetto a stringa.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Debug, logs, update">
|
||||
- Debug: snapshot di stato/salute/modelli + registro eventi + chiamate RPC manuali (`status`, `health`, `models.list`).
|
||||
- Il registro eventi include tempi di aggiornamento/RPC della UI di controllo più voci di reattività del browser per frame di animazione lunghi o attività lunghe quando il browser espone quei tipi di entry PerformanceObserver.
|
||||
<Accordion title="Debug, log, aggiornamento">
|
||||
- Debug: snapshot di stato/integrità/modelli + log eventi + chiamate RPC manuali (`status`, `health`, `models.list`).
|
||||
- Il log eventi include tempi di aggiornamento/RPC dell'UI di controllo più voci di reattività del browser per frame di animazione lunghi o task lunghi quando il browser espone quei tipi di voce PerformanceObserver.
|
||||
- Log: tail live dei log file del gateway con filtro/esportazione (`logs.tail`).
|
||||
- Aggiornamento: esegui un aggiornamento pacchetto/git + riavvio (`update.run`) con report di riavvio, poi esegui il polling di `update.status` dopo la riconnessione per verificare la versione del gateway in esecuzione.
|
||||
- Aggiornamento: esegui un aggiornamento package/git + riavvio (`update.run`) con un report di riavvio, poi interroga `update.status` dopo la riconnessione per verificare la versione del gateway in esecuzione.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Cron jobs panel notes">
|
||||
- Per job isolati, la consegna predefinita annuncia il riepilogo. Puoi passare a nessuna se vuoi esecuzioni solo interne.
|
||||
- I campi canale/destinazione compaiono quando annuncio è selezionato.
|
||||
<Accordion title="Note del pannello processi Cron">
|
||||
- Per processi isolati, la consegna è predefinita sull'annuncio del riepilogo. Puoi passare a nessuna se vuoi esecuzioni solo interne.
|
||||
- I campi canale/destinazione appaiono quando è selezionato annuncio.
|
||||
- La modalità Webhook usa `delivery.mode = "webhook"` con `delivery.to` impostato su un URL webhook HTTP(S) valido.
|
||||
- Per i job della sessione principale sono disponibili le modalità di consegna webhook e nessuna.
|
||||
- I controlli di modifica avanzata includono elimina dopo l'esecuzione, cancella override agente, opzioni cron esatto/scaglionato, override modello/thinking agente e toggle di consegna best-effort.
|
||||
- Per i processi della sessione principale, sono disponibili le modalità di consegna webhook e nessuna.
|
||||
- I controlli di modifica avanzati includono elimina dopo l'esecuzione, cancella override agente, opzioni cron exact/stagger, override modello/thinking dell'agente e interruttori di consegna best-effort.
|
||||
- La validazione del modulo è inline con errori a livello di campo; valori non validi disabilitano il pulsante di salvataggio finché non vengono corretti.
|
||||
- Imposta `cron.webhookToken` per inviare un token bearer dedicato; se omesso, il webhook viene inviato senza header di autenticazione.
|
||||
- Fallback deprecato: i job legacy memorizzati con `notify: true` possono ancora usare `cron.webhook` finché non vengono migrati.
|
||||
- Imposta `cron.webhookToken` per inviare un token bearer dedicato; se omesso, il webhook viene inviato senza intestazione di autenticazione.
|
||||
- Fallback deprecato: i processi legacy memorizzati con `notify: true` possono ancora usare `cron.webhook` finché non vengono migrati.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -155,63 +155,66 @@ I temi importati vengono memorizzati solo nel profilo browser corrente. Non veng
|
||||
## Comportamento della chat
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Send and history semantics">
|
||||
- `chat.send` è **non bloccante**: conferma subito con `{ runId, status: "started" }` e la risposta viene trasmessa tramite eventi `chat`.
|
||||
- I caricamenti della chat accettano immagini e file non video. Le immagini mantengono il percorso immagine nativo; gli altri file vengono archiviati come media gestiti e mostrati nella cronologia come link di allegato.
|
||||
- Reinviare con lo stesso `idempotencyKey` restituisce `{ status: "in_flight" }` mentre è in esecuzione, e `{ status: "ok" }` dopo il completamento.
|
||||
- Le risposte di `chat.history` hanno limiti di dimensione per la sicurezza dell'interfaccia. Quando le voci della trascrizione sono troppo grandi, Gateway può troncare i campi di testo lunghi, omettere blocchi di metadati pesanti e sostituire i messaggi troppo grandi con un segnaposto (`[chat.history omitted: message too large]`).
|
||||
- Le immagini assistente/generate vengono persistite come riferimenti a media gestiti e restituite tramite URL media autenticati di Gateway, quindi i ricaricamenti non dipendono dal fatto che i payload immagine raw base64 rimangano nella risposta della cronologia chat.
|
||||
- `chat.history` rimuove inoltre dal testo visibile dell'assistente i tag direttiva inline solo di visualizzazione (per esempio `[[reply_to_*]]` e `[[audio_as_voice]]`), i payload XML delle chiamate agli strumenti in testo normale (inclusi `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` e blocchi di chiamate agli strumenti troncati), e i token di controllo del modello ASCII/a larghezza piena trapelati, e omette le voci dell'assistente il cui intero testo visibile è solo l'esatto token silenzioso `NO_REPLY` / `no_reply`.
|
||||
- Durante un invio attivo e l'aggiornamento finale della cronologia, la vista chat mantiene visibili i messaggi utente/assistente locali ottimistici se `chat.history` restituisce brevemente uno snapshot precedente; la trascrizione canonica sostituisce quei messaggi locali quando la cronologia Gateway si aggiorna.
|
||||
- Gli eventi `chat` live sono stato di consegna, mentre `chat.history` viene ricostruito dalla trascrizione durevole della sessione. Dopo gli eventi finali degli strumenti, l'interfaccia di controllo ricarica la cronologia e unisce solo una piccola coda ottimistica; il confine della trascrizione è documentato in [WebChat](/it/web/webchat).
|
||||
- `chat.inject` aggiunge una nota dell'assistente alla trascrizione della sessione e trasmette un evento `chat` per aggiornamenti solo interfaccia (nessuna esecuzione dell'agente, nessuna consegna al canale).
|
||||
- I selettori del modello e del thinking nell'intestazione della chat aggiornano immediatamente la sessione attiva tramite `sessions.patch`; sono override persistenti della sessione, non opzioni di invio valide per un solo turno.
|
||||
- Digitare `/new` nell'interfaccia di controllo crea e passa alla stessa nuova sessione dashboard di New Chat. Digitare `/reset` mantiene il reset esplicito in-place di Gateway per la sessione corrente.
|
||||
- Il selettore del modello chat richiede la vista modello configurata di Gateway. Se `agents.defaults.models` è presente, quella allowlist guida il selettore. Altrimenti il selettore mostra le voci esplicite `models.providers.*.models` più i provider con autenticazione utilizzabile. Il catalogo completo resta disponibile tramite l'RPC di debug `models.list` con `view: "all"`.
|
||||
- Quando i report di utilizzo freschi della sessione Gateway mostrano alta pressione di contesto, l'area del compositore chat mostra un avviso di contesto e, ai livelli di Compaction consigliati, un pulsante compatto che esegue il normale percorso di Compaction della sessione. Gli snapshot dei token obsoleti sono nascosti finché Gateway non segnala di nuovo un utilizzo fresco.
|
||||
<Accordion title="Semantica di invio e cronologia">
|
||||
- `chat.send` è **non bloccante**: conferma immediatamente con `{ runId, status: "started" }` e la risposta viene trasmessa in streaming tramite eventi `chat`.
|
||||
- I caricamenti chat accettano immagini e file non video. Le immagini mantengono il percorso immagine nativo; gli altri file vengono archiviati come media gestiti e mostrati nella cronologia come link ad allegati.
|
||||
- Il reinvio con lo stesso `idempotencyKey` restituisce `{ status: "in_flight" }` durante l'esecuzione e `{ status: "ok" }` dopo il completamento.
|
||||
- Le risposte di `chat.history` sono limitate in dimensione per la sicurezza della UI. Quando le voci della trascrizione sono troppo grandi, Gateway può troncare i campi di testo lunghi, omettere blocchi di metadati pesanti e sostituire messaggi sovradimensionati con un segnaposto (`[chat.history omitted: message too large]`).
|
||||
- Le immagini dell'assistente/generate vengono mantenute come riferimenti a media gestiti e restituite tramite URL media autenticati del Gateway, così i ricaricamenti non dipendono dalla permanenza dei payload immagine base64 grezzi nella risposta della cronologia chat.
|
||||
- `chat.history` rimuove anche i tag direttiva inline solo di visualizzazione dal testo visibile dell'assistente (ad esempio `[[reply_to_*]]` e `[[audio_as_voice]]`), i payload XML di chiamata strumento in testo normale (inclusi `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` e blocchi di chiamata strumento troncati), e i token di controllo del modello ASCII/a larghezza piena trapelati, e omette le voci dell'assistente il cui intero testo visibile è solo l'esatto token silenzioso `NO_REPLY` / `no_reply`.
|
||||
- Durante un invio attivo e l'aggiornamento finale della cronologia, la vista chat mantiene visibili i messaggi locali ottimistici dell'utente/assistente se `chat.history` restituisce brevemente uno snapshot più vecchio; la trascrizione canonica sostituisce quei messaggi locali quando la cronologia Gateway si aggiorna.
|
||||
- Gli eventi `chat` live sono stato di consegna, mentre `chat.history` viene ricostruita dalla trascrizione durevole della sessione. Dopo gli eventi finali degli strumenti, la Control UI ricarica la cronologia e unisce solo una piccola coda ottimistica; il confine della trascrizione è documentato in [WebChat](/it/web/webchat).
|
||||
- `chat.inject` aggiunge una nota dell'assistente alla trascrizione della sessione e trasmette un evento `chat` per aggiornamenti solo UI (nessuna esecuzione agente, nessuna consegna al canale).
|
||||
- L'intestazione della chat mostra il filtro agente prima del selettore di sessione, e il selettore di sessione è limitato all'agente selezionato. Cambiare agente mostra solo le sessioni legate a quell'agente e ripiega sulla sessione principale di quell'agente quando non ha ancora sessioni dashboard salvate.
|
||||
- Alle larghezze desktop, i controlli chat restano su una riga compatta e si comprimono durante lo scorrimento verso il basso della trascrizione; scorrere verso l'alto, tornare all'inizio o raggiungere il fondo ripristina i controlli.
|
||||
- Messaggi consecutivi duplicati di solo testo vengono renderizzati come una bolla con un badge di conteggio. I messaggi che contengono immagini, allegati, output di strumenti o anteprime canvas non vengono compressi.
|
||||
- I selettori di modello chat e ragionamento applicano subito patch alla sessione attiva tramite `sessions.patch`; sono override persistenti della sessione, non opzioni di invio valide per un solo turno.
|
||||
- Digitare `/new` nella Control UI crea e passa alla stessa sessione dashboard fresca di Nuova chat. Digitare `/reset` mantiene il reset esplicito in loco del Gateway per la sessione corrente.
|
||||
- Il selettore modello chat richiede la vista modello configurata del Gateway. Se `agents.defaults.models` è presente, quell'allowlist guida il selettore. Altrimenti il selettore mostra le voci esplicite `models.providers.*.models` più i fornitori con autenticazione utilizzabile. Il catalogo completo resta disponibile tramite la RPC di debug `models.list` con `view: "all"`.
|
||||
- Quando i report freschi sull'uso della sessione Gateway indicano alta pressione di contesto, l'area del compositore chat mostra un avviso di contesto e, ai livelli consigliati di Compaction, un pulsante compatto che esegue il normale percorso di Compaction della sessione. Gli snapshot di token obsoleti sono nascosti finché il Gateway non segnala di nuovo un uso aggiornato.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Talk mode (browser realtime)">
|
||||
La modalità Talk usa un provider vocale realtime registrato. Configura OpenAI con `talk.provider: "openai"` più `talk.providers.openai.apiKey`, oppure configura Google con `talk.provider: "google"` più `talk.providers.google.apiKey`; la configurazione del provider realtime di Voice Call può comunque essere riutilizzata come fallback. Il browser non riceve mai una chiave API provider standard. OpenAI riceve un segreto client Realtime effimero per WebRTC. Google Live riceve un token di autenticazione Live API vincolato monouso per una sessione WebSocket del browser, con istruzioni e dichiarazioni degli strumenti bloccate nel token da Gateway. I provider che espongono solo un bridge realtime backend passano attraverso il trasporto relay di Gateway, quindi credenziali e socket del fornitore restano lato server mentre l'audio del browser passa tramite RPC Gateway autenticati. Il prompt della sessione Realtime è assemblato da Gateway; `talk.realtime.session` non accetta override delle istruzioni forniti dal chiamante.
|
||||
<Accordion title="Modalità Talk (tempo reale nel browser)">
|
||||
La modalità Talk usa un fornitore vocale in tempo reale registrato. Configura OpenAI con `talk.provider: "openai"` più `talk.providers.openai.apiKey`, oppure configura Google con `talk.provider: "google"` più `talk.providers.google.apiKey`; la configurazione del fornitore in tempo reale di Voice Call può ancora essere riutilizzata come alternativa di riserva. Il browser non riceve mai una chiave API standard del fornitore. OpenAI riceve un segreto client Realtime effimero per WebRTC. Google Live riceve un token di autenticazione Live API vincolato e monouso per una sessione WebSocket del browser, con istruzioni e dichiarazioni degli strumenti bloccate nel token dal Gateway. I fornitori che espongono solo un ponte in tempo reale di backend passano attraverso il trasporto relay del Gateway, così credenziali e socket del fornitore restano lato server mentre l'audio del browser passa attraverso RPC Gateway autenticate. Il prompt della sessione Realtime viene assemblato dal Gateway; `talk.realtime.session` non accetta override delle istruzioni forniti dal chiamante.
|
||||
|
||||
Nel compositore Chat, il controllo Talk è il pulsante con onde accanto al pulsante di dettatura tramite microfono. Quando Talk si avvia, la riga di stato del compositore mostra `Connecting Talk...`, poi `Talk live` mentre l'audio è connesso, oppure `Asking OpenClaw...` mentre una chiamata realtime a uno strumento consulta il modello più grande configurato tramite `chat.send`.
|
||||
Nel compositore Chat, il controllo Talk è il pulsante a onde accanto al pulsante di dettatura microfono. Quando Talk si avvia, la riga di stato del compositore mostra `Connecting Talk...`, poi `Talk live` mentre l'audio è connesso, oppure `Asking OpenClaw...` mentre una chiamata strumento in tempo reale consulta il modello più ampio configurato tramite `chat.send`.
|
||||
|
||||
Smoke live per maintainer: `OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts` verifica lo scambio SDP WebRTC del browser OpenAI, la configurazione WebSocket browser con token vincolato di Google Live e l'adattatore browser del relay Gateway con media microfono fittizi. Il comando stampa solo lo stato del provider e non registra segreti.
|
||||
Smoke test live per manutentori: `OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts` verifica lo scambio SDP WebRTC del browser OpenAI, la configurazione WebSocket del browser con token vincolato Google Live e l'adattatore browser del relay Gateway con media microfono simulati. Il comando stampa solo lo stato del fornitore e non registra segreti.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Stop and abort">
|
||||
- Fai clic su **Stop** (chiama `chat.abort`).
|
||||
- Mentre un'esecuzione è attiva, i follow-up normali vengono accodati. Fai clic su **Steer** su un messaggio in coda per iniettare quel follow-up nel turno in esecuzione.
|
||||
- Digita `/stop` (o frasi di interruzione autonome come `stop`, `stop action`, `stop run`, `stop openclaw`, `please stop`) per interrompere fuori banda.
|
||||
- `chat.abort` supporta `{ sessionKey }` (senza `runId`) per interrompere tutte le esecuzioni attive per quella sessione.
|
||||
<Accordion title="Interruzione e annullamento">
|
||||
- Fai clic su **Interrompi** (chiama `chat.abort`).
|
||||
- Mentre un'esecuzione è attiva, i normali follow-up vengono accodati. Fai clic su **Orienta** su un messaggio in coda per iniettare quel follow-up nel turno in esecuzione.
|
||||
- Digita `/stop` (o frasi di annullamento autonome come `stop`, `stop action`, `stop run`, `stop openclaw`, `please stop`) per annullare fuori banda.
|
||||
- `chat.abort` supporta `{ sessionKey }` (senza `runId`) per annullare tutte le esecuzioni attive per quella sessione.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Abort partial retention">
|
||||
- Quando un'esecuzione viene interrotta, il testo parziale dell'assistente può comunque essere mostrato nell'interfaccia.
|
||||
- Gateway persiste il testo parziale interrotto dell'assistente nella cronologia della trascrizione quando esiste output bufferizzato.
|
||||
- Le voci persistite includono metadati di interruzione, così i consumatori della trascrizione possono distinguere i parziali interrotti dall'output di completamento normale.
|
||||
<Accordion title="Conservazione dei parziali all'annullamento">
|
||||
- Quando un'esecuzione viene annullata, il testo parziale dell'assistente può comunque essere mostrato nella UI.
|
||||
- Gateway mantiene il testo parziale annullato dell'assistente nella cronologia della trascrizione quando esiste output nel buffer.
|
||||
- Le voci mantenute includono metadati di annullamento, così i consumatori della trascrizione possono distinguere i parziali annullati dall'output di completamento normale.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Installazione PWA e web push
|
||||
## Installazione PWA e Web Push
|
||||
|
||||
L'interfaccia di controllo include un `manifest.webmanifest` e un service worker, quindi i browser moderni possono installarla come PWA autonoma. Web Push consente a Gateway di riattivare la PWA installata con notifiche anche quando la scheda o la finestra del browser non è aperta.
|
||||
La Control UI include un `manifest.webmanifest` e un service worker, quindi i browser moderni possono installarla come PWA autonoma. Web Push consente al Gateway di riattivare la PWA installata con notifiche anche quando la scheda o la finestra del browser non è aperta.
|
||||
|
||||
| Superficie | Cosa fa |
|
||||
| Superficie | Cosa fa |
|
||||
| ----------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| `ui/public/manifest.webmanifest` | Manifest PWA. I browser offrono "Installa app" quando è raggiungibile. |
|
||||
| `ui/public/sw.js` | Service worker che gestisce eventi `push` e clic sulle notifiche. |
|
||||
| `push/vapid-keys.json` (nella directory di stato di OpenClaw) | Coppia di chiavi VAPID generata automaticamente, usata per firmare payload Web Push. |
|
||||
| `push/web-push-subscriptions.json` | Endpoint di sottoscrizione browser persistiti. |
|
||||
| `push/vapid-keys.json` (sotto la directory di stato OpenClaw) | Coppia di chiavi VAPID generata automaticamente usata per firmare payload Web Push. |
|
||||
| `push/web-push-subscriptions.json` | Endpoint di sottoscrizione browser mantenuti. |
|
||||
|
||||
Esegui l'override della coppia di chiavi VAPID tramite variabili d'ambiente sul processo Gateway quando vuoi fissare le chiavi (per distribuzioni multi-host, rotazione dei segreti o test):
|
||||
Sovrascrivi la coppia di chiavi VAPID tramite variabili d'ambiente sul processo Gateway quando vuoi fissare le chiavi (per distribuzioni multi-host, rotazione dei segreti o test):
|
||||
|
||||
- `OPENCLAW_VAPID_PUBLIC_KEY`
|
||||
- `OPENCLAW_VAPID_PRIVATE_KEY`
|
||||
- `OPENCLAW_VAPID_SUBJECT` (predefinito a `mailto:openclaw@localhost`)
|
||||
- `OPENCLAW_VAPID_SUBJECT` (predefinito: `mailto:openclaw@localhost`)
|
||||
|
||||
L'interfaccia di controllo usa questi metodi Gateway con ambito controllato per registrare e testare le sottoscrizioni browser:
|
||||
La Control UI usa questi metodi Gateway protetti per ambito per registrare e testare le sottoscrizioni browser:
|
||||
|
||||
- `push.web.vapidPublicKey` — recupera la chiave pubblica VAPID attiva.
|
||||
- `push.web.subscribe` — registra un `endpoint` più `keys.p256dh`/`keys.auth`.
|
||||
@ -219,22 +222,22 @@ L'interfaccia di controllo usa questi metodi Gateway con ambito controllato per
|
||||
- `push.web.test` — invia una notifica di test alla sottoscrizione del chiamante.
|
||||
|
||||
<Note>
|
||||
Web Push è indipendente dal percorso relay iOS APNS (vedi [Configurazione](/it/gateway/configuration) per il push con backend relay) e dal metodo `push.test` esistente, che hanno come destinazione l'abbinamento mobile nativo.
|
||||
Web Push è indipendente dal percorso relay iOS APNS (vedi [Configurazione](/it/gateway/configuration) per il push supportato da relay) e dal metodo `push.test` esistente, che puntano all'abbinamento mobile nativo.
|
||||
</Note>
|
||||
|
||||
## Embed ospitati
|
||||
## Incorporamenti ospitati
|
||||
|
||||
I messaggi dell'assistente possono renderizzare contenuti web ospitati inline con lo shortcode `[embed ...]`. La policy sandbox dell'iframe è controllata da `gateway.controlUi.embedSandbox`:
|
||||
I messaggi dell'assistente possono renderizzare contenuti web ospitati inline con lo shortcode `[embed ...]`. Il criterio sandbox dell'iframe è controllato da `gateway.controlUi.embedSandbox`:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="strict">
|
||||
Disabilita l'esecuzione degli script dentro gli embed ospitati.
|
||||
Disabilita l'esecuzione di script dentro gli incorporamenti ospitati.
|
||||
</Tab>
|
||||
<Tab title="scripts (default)">
|
||||
Consente embed interattivi mantenendo l'isolamento dell'origine; è il valore predefinito ed è di solito sufficiente per giochi/widget browser autonomi.
|
||||
<Tab title="scripts (predefinito)">
|
||||
Consente incorporamenti interattivi mantenendo l'isolamento dell'origine; è il valore predefinito e di solito basta per giochi/widget browser autonomi.
|
||||
</Tab>
|
||||
<Tab title="trusted">
|
||||
Aggiunge `allow-same-origin` oltre a `allow-scripts` per documenti dello stesso sito che necessitano intenzionalmente di privilegi più forti.
|
||||
Aggiunge `allow-same-origin` oltre a `allow-scripts` per documenti dello stesso sito che richiedono intenzionalmente privilegi più forti.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
@ -251,14 +254,14 @@ Esempio:
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Usa `trusted` solo quando il documento incorporato ha davvero bisogno di comportamento same-origin. Per la maggior parte dei giochi generati da agenti e delle canvas interattive, `scripts` è la scelta più sicura.
|
||||
Usa `trusted` solo quando il documento incorporato richiede davvero il comportamento di stessa origine. Per la maggior parte dei giochi generati dall'agente e dei canvas interattivi, `scripts` è la scelta più sicura.
|
||||
</Warning>
|
||||
|
||||
Gli URL embed esterni assoluti `http(s)` restano bloccati per impostazione predefinita. Se vuoi intenzionalmente che `[embed url="https://..."]` carichi pagine di terze parti, imposta `gateway.controlUi.allowExternalEmbedUrls: true`.
|
||||
Gli URL di incorporamento `http(s)` esterni assoluti restano bloccati per impostazione predefinita. Se vuoi intenzionalmente che `[embed url="https://..."]` carichi pagine di terze parti, imposta `gateway.controlUi.allowExternalEmbedUrls: true`.
|
||||
|
||||
## Larghezza dei messaggi chat
|
||||
|
||||
I messaggi chat raggruppati usano una max-width predefinita leggibile. Le distribuzioni su monitor ampi possono sostituirla senza modificare il CSS incluso impostando `gateway.controlUi.chatMessageMaxWidth`:
|
||||
I messaggi chat raggruppati usano una larghezza massima predefinita leggibile. Le distribuzioni su monitor larghi possono sovrascriverla senza modificare il CSS incluso impostando `gateway.controlUi.chatMessageMaxWidth`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -272,11 +275,11 @@ I messaggi chat raggruppati usano una max-width predefinita leggibile. Le distri
|
||||
|
||||
Il valore viene validato prima di raggiungere il browser. I valori supportati includono lunghezze semplici e percentuali come `960px` o `82%`, più espressioni di larghezza vincolate `min(...)`, `max(...)`, `clamp(...)`, `calc(...)` e `fit-content(...)`.
|
||||
|
||||
## Accesso tailnet (consigliato)
|
||||
## Accesso alla tailnet (consigliato)
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Integrated Tailscale Serve (preferred)">
|
||||
Mantieni Gateway su loopback e lascia che Tailscale Serve lo proxii con HTTPS:
|
||||
<Tab title="Tailscale Serve integrato (preferito)">
|
||||
Mantieni il Gateway su loopback e lascia che Tailscale Serve lo proxy con HTTPS:
|
||||
|
||||
```bash
|
||||
openclaw gateway --tailscale serve
|
||||
@ -286,16 +289,16 @@ Il valore viene validato prima di raggiungere il browser. I valori supportati in
|
||||
|
||||
- `https://<magicdns>/` (o il tuo `gateway.controlUi.basePath` configurato)
|
||||
|
||||
Per impostazione predefinita, le richieste Control UI/WebSocket Serve possono autenticarsi tramite header identità Tailscale (`tailscale-user-login`) quando `gateway.auth.allowTailscale` è `true`. OpenClaw verifica l'identità risolvendo l'indirizzo `x-forwarded-for` con `tailscale whois` e confrontandolo con l'header, e li accetta solo quando la richiesta raggiunge local loopback con gli header `x-forwarded-*` di Tailscale. Per le sessioni operatore dell'interfaccia di controllo con identità dispositivo browser, questo percorso Serve verificato salta anche il round trip di abbinamento del dispositivo; i browser senza dispositivo e le connessioni con ruolo nodo seguono comunque i normali controlli dispositivo. Imposta `gateway.auth.allowTailscale: false` se vuoi richiedere credenziali esplicite con segreto condiviso anche per il traffico Serve. Poi usa `gateway.auth.mode: "token"` o `"password"`.
|
||||
Per impostazione predefinita, le richieste Serve della Control UI/WebSocket possono autenticarsi tramite header di identità Tailscale (`tailscale-user-login`) quando `gateway.auth.allowTailscale` è `true`. OpenClaw verifica l'identità risolvendo l'indirizzo `x-forwarded-for` con `tailscale whois` e confrontandolo con l'header, e accetta questi header solo quando la richiesta arriva su loopback con gli header `x-forwarded-*` di Tailscale. Per le sessioni operatore della Control UI con identità dispositivo del browser, questo percorso Serve verificato salta anche il passaggio di abbinamento del dispositivo; i browser senza dispositivo e le connessioni con ruolo nodo seguono comunque i normali controlli dispositivo. Imposta `gateway.auth.allowTailscale: false` se vuoi richiedere credenziali esplicite con segreto condiviso anche per il traffico Serve. Poi usa `gateway.auth.mode: "token"` o `"password"`.
|
||||
|
||||
Per quel percorso identità Serve asincrono, i tentativi di autenticazione falliti per lo stesso IP client e ambito di autenticazione vengono serializzati prima delle scritture del rate-limit. Retry errati concorrenti dallo stesso browser possono quindi mostrare `retry later` sulla seconda richiesta invece di due semplici mancati riscontri in competizione parallela.
|
||||
Per quel percorso asincrono di identità Serve, i tentativi di autenticazione falliti per lo stesso IP client e ambito di autenticazione vengono serializzati prima delle scritture del rate limit. I tentativi errati concorrenti dallo stesso browser possono quindi mostrare `retry later` sulla seconda richiesta invece di due semplici mancate corrispondenze in competizione in parallelo.
|
||||
|
||||
<Warning>
|
||||
L'autenticazione Serve senza token presume che l'host gateway sia attendibile. Se codice locale non attendibile può essere eseguito su quell'host, richiedi autenticazione token/password.
|
||||
L'autenticazione Serve senza token presuppone che l'host Gateway sia attendibile. Se codice locale non attendibile può essere eseguito su quell'host, richiedi autenticazione con token/password.
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
<Tab title="Bind to tailnet + token">
|
||||
<Tab title="Binding alla tailnet + token">
|
||||
```bash
|
||||
openclaw gateway --bind tailnet --token "$(openssl rand -hex 32)"
|
||||
```
|
||||
@ -304,28 +307,28 @@ Il valore viene validato prima di raggiungere il browser. I valori supportati in
|
||||
|
||||
- `http://<tailscale-ip>:18789/` (o il tuo `gateway.controlUi.basePath` configurato)
|
||||
|
||||
Incolla il segreto condiviso corrispondente nelle impostazioni dell'interfaccia (inviato come `connect.params.auth.token` o `connect.params.auth.password`).
|
||||
Incolla il segreto condiviso corrispondente nelle impostazioni dell'UI (inviato come `connect.params.auth.token` o `connect.params.auth.password`).
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## HTTP non sicuro
|
||||
|
||||
Se apri la dashboard tramite HTTP semplice (`http://<lan-ip>` o `http://<tailscale-ip>`), il browser viene eseguito in un **contesto non sicuro** e blocca WebCrypto. Per impostazione predefinita, OpenClaw **blocca** le connessioni dell'interfaccia di controllo senza identità dispositivo.
|
||||
Se apri la dashboard tramite HTTP semplice (`http://<lan-ip>` o `http://<tailscale-ip>`), il browser viene eseguito in un **contesto non sicuro** e blocca WebCrypto. Per impostazione predefinita, OpenClaw **blocca** le connessioni alla Control UI senza identità del dispositivo.
|
||||
|
||||
Eccezioni documentate:
|
||||
|
||||
- compatibilità HTTP non sicuro solo localhost con `gateway.controlUi.allowInsecureAuth=true`
|
||||
- autenticazione riuscita dell'interfaccia di controllo operatore tramite `gateway.auth.mode: "trusted-proxy"`
|
||||
- autenticazione Control UI operatore riuscita tramite `gateway.auth.mode: "trusted-proxy"`
|
||||
- emergenza `gateway.controlUi.dangerouslyDisableDeviceAuth=true`
|
||||
|
||||
**Correzione consigliata:** usa HTTPS (Tailscale Serve) oppure apri la UI localmente:
|
||||
**Correzione consigliata:** usa HTTPS (Tailscale Serve) oppure apri l'UI localmente:
|
||||
|
||||
- `https://<magicdns>/` (Serve)
|
||||
- `http://127.0.0.1:18789/` (sull'host del Gateway)
|
||||
- `http://127.0.0.1:18789/` (sull'host del gateway)
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Comportamento dell'opzione di autenticazione non sicura">
|
||||
<Accordion title="Comportamento dell'interruttore di autenticazione non sicura">
|
||||
```json5
|
||||
{
|
||||
gateway: {
|
||||
@ -336,10 +339,10 @@ Eccezioni documentate:
|
||||
}
|
||||
```
|
||||
|
||||
`allowInsecureAuth` è solo un'opzione di compatibilità locale:
|
||||
`allowInsecureAuth` è solo un interruttore di compatibilità locale:
|
||||
|
||||
- Consente alle sessioni Control UI localhost di procedere senza identità del dispositivo in contesti HTTP non sicuri.
|
||||
- Non bypassa i controlli di pairing.
|
||||
- Non aggira i controlli di pairing.
|
||||
- Non allenta i requisiti di identità del dispositivo remoto (non localhost).
|
||||
|
||||
</Accordion>
|
||||
@ -355,56 +358,56 @@ Eccezioni documentate:
|
||||
```
|
||||
|
||||
<Warning>
|
||||
`dangerouslyDisableDeviceAuth` disabilita i controlli di identità del dispositivo della Control UI ed è un grave indebolimento della sicurezza. Ripristina rapidamente dopo l'uso di emergenza.
|
||||
`dangerouslyDisableDeviceAuth` disabilita i controlli di identità del dispositivo della Control UI ed è un grave declassamento della sicurezza. Ripristina rapidamente dopo l'uso di emergenza.
|
||||
</Warning>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Nota sul proxy attendibile">
|
||||
- Un'autenticazione con proxy attendibile riuscita può ammettere sessioni Control UI **operatore** senza identità del dispositivo.
|
||||
- L'autenticazione trusted-proxy riuscita può ammettere sessioni Control UI **operatore** senza identità del dispositivo.
|
||||
- Questo **non** si estende alle sessioni Control UI con ruolo nodo.
|
||||
- I reverse proxy local loopback sullo stesso host continuano a non soddisfare l'autenticazione con proxy attendibile; consulta [Autenticazione con proxy attendibile](/it/gateway/trusted-proxy-auth).
|
||||
- I reverse proxy local loopback sullo stesso host continuano a non soddisfare l'autenticazione trusted-proxy; consulta [Autenticazione proxy attendibile](/it/gateway/trusted-proxy-auth).
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Consulta [Tailscale](/it/gateway/tailscale) per indicazioni sulla configurazione HTTPS.
|
||||
|
||||
## Criterio di sicurezza dei contenuti
|
||||
## Criteri di sicurezza dei contenuti
|
||||
|
||||
La Control UI viene distribuita con un criterio `img-src` restrittivo: sono consentiti solo asset **same-origin**, URL `data:` e URL `blob:` generati localmente. Gli URL di immagini remoti `http(s)` e relativi al protocollo vengono rifiutati dal browser e non generano richieste di rete.
|
||||
La Control UI include una policy `img-src` rigorosa: sono consentiti solo asset **same-origin**, URL `data:` e URL `blob:` generati localmente. Gli URL di immagini remoti `http(s)` e relativi al protocollo vengono rifiutati dal browser e non generano richieste di rete.
|
||||
|
||||
In pratica significa che:
|
||||
Cosa significa in pratica:
|
||||
|
||||
- Avatar e immagini serviti tramite percorsi relativi (per esempio `/avatars/<id>`) vengono comunque visualizzati, incluse le route avatar autenticate che la UI recupera e converte in URL `blob:` locali.
|
||||
- Gli URL inline `data:image/...` vengono comunque visualizzati (utile per payload nel protocollo).
|
||||
- Gli URL `blob:` locali creati dalla Control UI vengono comunque visualizzati.
|
||||
- Gli URL avatar remoti emessi dai metadati del canale vengono rimossi dagli helper avatar della Control UI e sostituiti con il logo/badge integrato, quindi un canale compromesso o malevolo non può forzare recuperi arbitrari di immagini remote dal browser di un operatore.
|
||||
- Avatar e immagini serviti sotto percorsi relativi (per esempio `/avatars/<id>`) vengono comunque renderizzati, incluse le route avatar autenticate che l'UI recupera e converte in URL `blob:` locali.
|
||||
- Gli URL inline `data:image/...` vengono comunque renderizzati (utile per payload nel protocollo).
|
||||
- Gli URL `blob:` locali creati dalla Control UI vengono comunque renderizzati.
|
||||
- Gli URL avatar remoti emessi dai metadati del canale vengono rimossi dagli helper avatar della Control UI e sostituiti con il logo/badge integrato, quindi un canale compromesso o malevolo non può forzare richieste arbitrarie di immagini remote dal browser di un operatore.
|
||||
|
||||
Non devi modificare nulla per ottenere questo comportamento: è sempre attivo e non configurabile.
|
||||
Non devi cambiare nulla per ottenere questo comportamento: è sempre attivo e non configurabile.
|
||||
|
||||
## Autenticazione della route avatar
|
||||
## Autenticazione route avatar
|
||||
|
||||
Quando l'autenticazione del Gateway è configurata, l'endpoint avatar della Control UI richiede lo stesso token del Gateway del resto dell'API:
|
||||
Quando l'autenticazione del gateway è configurata, l'endpoint avatar della Control UI richiede lo stesso token del gateway del resto dell'API:
|
||||
|
||||
- `GET /avatar/<agentId>` restituisce l'immagine avatar solo ai chiamanti autenticati. `GET /avatar/<agentId>?meta=1` restituisce i metadati avatar con la stessa regola.
|
||||
- Le richieste non autenticate a entrambe le route vengono rifiutate (come la route sibling assistant-media). Questo impedisce alla route avatar di esporre l'identità dell'agente su host altrimenti protetti.
|
||||
- La Control UI inoltra il token del Gateway come header bearer quando recupera gli avatar e usa URL blob autenticati, così l'immagine viene comunque visualizzata nelle dashboard.
|
||||
- `GET /avatar/<agentId>` restituisce l'immagine avatar solo ai chiamanti autenticati. `GET /avatar/<agentId>?meta=1` restituisce i metadati avatar secondo la stessa regola.
|
||||
- Le richieste non autenticate a entrambe le route vengono rifiutate (come la route assistant-media vicina). Questo impedisce alla route avatar di far trapelare l'identità dell'agente su host che sono altrimenti protetti.
|
||||
- La Control UI inoltra direttamente il token del gateway come header bearer quando recupera gli avatar e usa URL blob autenticati, così l'immagine viene comunque renderizzata nelle dashboard.
|
||||
|
||||
Se disabiliti l'autenticazione del Gateway (sconsigliato su host condivisi), anche la route avatar diventa non autenticata, in linea con il resto del Gateway.
|
||||
Se disabiliti l'autenticazione del gateway (non consigliato su host condivisi), anche la route avatar diventa non autenticata, in linea con il resto del gateway.
|
||||
|
||||
## Autenticazione della route media dell'assistente
|
||||
## Autenticazione route media assistente
|
||||
|
||||
Quando l'autenticazione del Gateway è configurata, le anteprime dei media locali dell'assistente usano una route in due passaggi:
|
||||
Quando l'autenticazione del gateway è configurata, le anteprime dei media locali dell'assistente usano una route in due passaggi:
|
||||
|
||||
- `GET /__openclaw__/assistant-media?meta=1&source=<path>` richiede la normale autenticazione operatore della Control UI. Il browser invia il token del Gateway come header bearer quando controlla la disponibilità.
|
||||
- Le risposte di metadati riuscite includono un `mediaTicket` di breve durata limitato a quello specifico percorso sorgente.
|
||||
- Gli URL di immagini, audio, video e documenti renderizzati dal browser usano `mediaTicket=<ticket>` invece del token o della password attivi del Gateway. Il ticket scade rapidamente e non può autorizzare una sorgente diversa.
|
||||
- `GET /__openclaw__/assistant-media?meta=1&source=<path>` richiede la normale autenticazione operatore della Control UI. Il browser invia il token del gateway come header bearer quando controlla la disponibilità.
|
||||
- Le risposte dei metadati riuscite includono un `mediaTicket` di breve durata limitato a quel percorso sorgente esatto.
|
||||
- Gli URL di immagini, audio, video e documenti renderizzati dal browser usano `mediaTicket=<ticket>` invece del token o della password attivi del gateway. Il ticket scade rapidamente e non può autorizzare una sorgente diversa.
|
||||
|
||||
Questo mantiene il normale rendering dei media compatibile con gli elementi multimediali nativi del browser senza inserire credenziali riutilizzabili del Gateway negli URL media visibili.
|
||||
Questo mantiene il normale rendering dei media compatibile con gli elementi multimediali nativi del browser senza inserire credenziali gateway riutilizzabili negli URL media visibili.
|
||||
|
||||
## Creazione della UI
|
||||
## Compilazione dell'UI
|
||||
|
||||
Il Gateway serve file statici da `dist/control-ui`. Creali con:
|
||||
Il Gateway serve file statici da `dist/control-ui`. Compilali con:
|
||||
|
||||
```bash
|
||||
pnpm ui:build
|
||||
@ -416,20 +419,20 @@ Base assoluta opzionale (quando vuoi URL asset fissi):
|
||||
OPENCLAW_CONTROL_UI_BASE_PATH=/openclaw/ pnpm ui:build
|
||||
```
|
||||
|
||||
Per lo sviluppo locale (server di sviluppo separato):
|
||||
Per lo sviluppo locale (server dev separato):
|
||||
|
||||
```bash
|
||||
pnpm ui:dev
|
||||
```
|
||||
|
||||
Poi indirizza la UI all'URL WS del tuo Gateway (ad es. `ws://127.0.0.1:18789`).
|
||||
Poi punta l'UI all'URL WS del tuo Gateway (ad es. `ws://127.0.0.1:18789`).
|
||||
|
||||
## Debug/test: server di sviluppo + Gateway remoto
|
||||
## Debug/test: server dev + Gateway remoto
|
||||
|
||||
La Control UI è composta da file statici; il target WebSocket è configurabile e può essere diverso dall'origine HTTP. Questo è utile quando vuoi usare il server di sviluppo Vite localmente ma il Gateway viene eseguito altrove.
|
||||
La Control UI è composta da file statici; la destinazione WebSocket è configurabile e può essere diversa dall'origine HTTP. Questo è utile quando vuoi usare localmente il server dev Vite ma il Gateway è eseguito altrove.
|
||||
|
||||
<Steps>
|
||||
<Step title="Avvia il server di sviluppo della UI">
|
||||
<Step title="Avvia il server dev dell'UI">
|
||||
```bash
|
||||
pnpm ui:dev
|
||||
```
|
||||
@ -439,7 +442,7 @@ La Control UI è composta da file statici; il target WebSocket è configurabile
|
||||
http://localhost:5173/?gatewayUrl=ws%3A%2F%2F<gateway-host>%3A18789
|
||||
```
|
||||
|
||||
Autenticazione una tantum opzionale (se necessaria):
|
||||
Autenticazione monouso opzionale (se necessaria):
|
||||
|
||||
```text
|
||||
http://localhost:5173/?gatewayUrl=wss%3A%2F%2F<gateway-host>%3A18789#token=<gateway-token>
|
||||
@ -450,17 +453,17 @@ La Control UI è composta da file statici; il target WebSocket è configurabile
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Note">
|
||||
- `gatewayUrl` viene salvato in localStorage dopo il caricamento e rimosso dall'URL.
|
||||
- Se passi un endpoint completo `ws://` o `wss://` tramite `gatewayUrl`, codifica come URL il valore di `gatewayUrl` in modo che il browser analizzi correttamente la stringa di query.
|
||||
- `token` dovrebbe essere passato tramite il frammento URL (`#token=...`) ogni volta che è possibile. I frammenti non vengono inviati al server, evitando perdite nei log delle richieste e nel Referer. I parametri di query legacy `?token=` vengono ancora importati una volta per compatibilità, ma solo come fallback, e vengono rimossi immediatamente dopo il bootstrap.
|
||||
- `gatewayUrl` viene archiviato in localStorage dopo il caricamento e rimosso dall'URL.
|
||||
- Se passi un endpoint completo `ws://` o `wss://` tramite `gatewayUrl`, codifica URL il valore `gatewayUrl` in modo che il browser analizzi correttamente la stringa di query.
|
||||
- `token` dovrebbe essere passato tramite il frammento URL (`#token=...`) quando possibile. I frammenti non vengono inviati al server, evitando perdite nei log delle richieste e nel Referer. I parametri di query legacy `?token=` vengono ancora importati una volta per compatibilità, ma solo come fallback, e vengono rimossi subito dopo il bootstrap.
|
||||
- `password` viene mantenuta solo in memoria.
|
||||
- Quando `gatewayUrl` è impostato, la UI non ripiega su credenziali di configurazione o di ambiente. Fornisci esplicitamente `token` (o `password`). Le credenziali esplicite mancanti sono un errore.
|
||||
- Quando `gatewayUrl` è impostato, l'UI non ripiega sulle credenziali di configurazione o ambiente. Fornisci esplicitamente `token` (o `password`). La mancanza di credenziali esplicite è un errore.
|
||||
- Usa `wss://` quando il Gateway è dietro TLS (Tailscale Serve, proxy HTTPS, ecc.).
|
||||
- `gatewayUrl` viene accettato solo in una finestra di primo livello (non incorporata) per prevenire il clickjacking.
|
||||
- Le distribuzioni Control UI non loopback devono impostare esplicitamente `gateway.controlUi.allowedOrigins` (origini complete). Questo include le configurazioni di sviluppo remoto.
|
||||
- L'avvio del Gateway può inizializzare origini locali come `http://localhost:<port>` e `http://127.0.0.1:<port>` dal bind e dalla porta effettivi di runtime, ma le origini dei browser remoti richiedono comunque voci esplicite.
|
||||
- Non usare `gateway.controlUi.allowedOrigins: ["*"]` tranne che per test locali strettamente controllati. Significa consentire qualsiasi origine browser, non "corrispondi all'host che sto usando".
|
||||
- `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true` abilita la modalità di fallback dell'origine basata sull'header Host, ma è una modalità di sicurezza pericolosa.
|
||||
- `gatewayUrl` è accettato solo in una finestra di primo livello (non incorporata) per prevenire il clickjacking.
|
||||
- Le distribuzioni Control UI non loopback devono impostare esplicitamente `gateway.controlUi.allowedOrigins` (origini complete). Questo include configurazioni dev remote.
|
||||
- L'avvio del Gateway può inizializzare origini locali come `http://localhost:<port>` e `http://127.0.0.1:<port>` dal bind e dalla porta di runtime effettivi, ma le origini browser remote richiedono comunque voci esplicite.
|
||||
- Non usare `gateway.controlUi.allowedOrigins: ["*"]` tranne che per test locali strettamente controllati. Significa consentire qualsiasi origine browser, non "abbina qualunque host io stia usando".
|
||||
- `gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true` abilita la modalità di fallback dell'origine dall'header Host, ma è una modalità di sicurezza pericolosa.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -477,11 +480,11 @@ Esempio:
|
||||
}
|
||||
```
|
||||
|
||||
Dettagli di configurazione dell'accesso remoto: [Accesso remoto](/it/gateway/remote).
|
||||
Dettagli sulla configurazione dell'accesso remoto: [Accesso remoto](/it/gateway/remote).
|
||||
|
||||
## Correlati
|
||||
|
||||
- [Dashboard](/it/web/dashboard) — dashboard del Gateway
|
||||
- [Controlli di integrità](/it/gateway/health) — monitoraggio dell'integrità del Gateway
|
||||
- [Dashboard](/it/web/dashboard) — dashboard del gateway
|
||||
- [Health Checks](/it/gateway/health) — monitoraggio dello stato del gateway
|
||||
- [TUI](/it/web/tui) — interfaccia utente terminale
|
||||
- [WebChat](/it/web/webchat) — interfaccia chat basata su browser
|
||||
|
||||
Loading…
Reference in New Issue
Block a user