chore(i18n): refresh it translations
This commit is contained in:
parent
ed7ecf216f
commit
001b38734a
@ -2,14 +2,14 @@
|
||||
read_when:
|
||||
- Vuoi collegare OpenClaw a QQ
|
||||
- È necessario configurare le credenziali di QQ Bot
|
||||
- Vuoi il supporto per chat di gruppo o private di QQ Bot
|
||||
- Vuoi il supporto di QQ Bot per chat di gruppo o private
|
||||
summary: Installazione, configurazione e utilizzo di QQ Bot
|
||||
title: Bot QQ
|
||||
title: bot QQ
|
||||
x-i18n:
|
||||
generated_at: "2026-04-30T08:39:25Z"
|
||||
generated_at: "2026-04-30T09:35:02Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: aefece6b05bb16d5c4f588bf7af4fd710b5f98aab0dbed8221490c46bf3f379c
|
||||
source_hash: 964a92021acc534b7ec2749670fedd0e8caa47d5edf67ced80f0a8fb3eda7600
|
||||
source_path: channels/qqbot.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -18,12 +18,12 @@ QQ Bot si connette a OpenClaw tramite l'API ufficiale QQ Bot (Gateway WebSocket)
|
||||
Plugin supporta chat private C2C, @messaggi di gruppo e messaggi dei canali guild con
|
||||
contenuti multimediali avanzati (immagini, voce, video, file).
|
||||
|
||||
Stato: Plugin in bundle. Sono supportati messaggi diretti, chat di gruppo, canali guild e
|
||||
contenuti multimediali. Reazioni e thread non sono supportati.
|
||||
Stato: Plugin in bundle. Messaggi diretti, chat di gruppo, canali guild e
|
||||
contenuti multimediali sono supportati. Reazioni e thread non sono supportati.
|
||||
|
||||
## Plugin in bundle
|
||||
|
||||
Le versioni attuali di OpenClaw includono QQ Bot, quindi le build pacchettizzate normali non richiedono
|
||||
Le versioni attuali di OpenClaw includono QQ Bot in bundle, quindi le build pacchettizzate normali non richiedono
|
||||
un passaggio separato `openclaw plugins install`.
|
||||
|
||||
## Configurazione
|
||||
@ -51,7 +51,7 @@ openclaw channels add
|
||||
openclaw configure --section channels
|
||||
```
|
||||
|
||||
## Configurare
|
||||
## Configura
|
||||
|
||||
Configurazione minima:
|
||||
|
||||
@ -67,7 +67,7 @@ Configurazione minima:
|
||||
}
|
||||
```
|
||||
|
||||
Variabili di ambiente dell'account predefinito:
|
||||
Variabili d'ambiente dell'account predefinito:
|
||||
|
||||
- `QQBOT_APP_ID`
|
||||
- `QQBOT_CLIENT_SECRET`
|
||||
@ -90,7 +90,7 @@ Note:
|
||||
|
||||
- Il fallback env si applica solo all'account QQ Bot predefinito.
|
||||
- `openclaw channels add --channel qqbot --token-file ...` fornisce solo
|
||||
l'AppSecret; l'AppID deve essere già impostato nella configurazione o in `QQBOT_APP_ID`.
|
||||
AppSecret; AppID deve essere già impostato nella configurazione o in `QQBOT_APP_ID`.
|
||||
- `clientSecret` accetta anche input SecretRef, non solo una stringa in testo normale.
|
||||
|
||||
### Configurazione multi-account
|
||||
@ -116,7 +116,7 @@ Esegui più bot QQ sotto una singola istanza OpenClaw:
|
||||
}
|
||||
```
|
||||
|
||||
Ogni account avvia la propria connessione WebSocket e mantiene una cache dei token
|
||||
Ogni account avvia la propria connessione WebSocket e mantiene una cache token
|
||||
indipendente (isolata da `appId`).
|
||||
|
||||
Aggiungi un secondo bot tramite CLI:
|
||||
@ -127,7 +127,7 @@ openclaw channels add --channel qqbot --account bot2 --token "222222222:secret-o
|
||||
|
||||
### Chat di gruppo
|
||||
|
||||
Il supporto delle chat di gruppo di QQ Bot usa gli OpenID dei gruppi QQ, non i nomi visualizzati. Aggiungi il bot
|
||||
Il supporto alle chat di gruppo di QQ Bot usa gli OpenID dei gruppi QQ, non i nomi visualizzati. Aggiungi il bot
|
||||
a un gruppo, quindi menzionalo o configura il gruppo per funzionare senza menzione.
|
||||
|
||||
```json5
|
||||
@ -155,33 +155,33 @@ a un gruppo, quindi menzionalo o configura il gruppo per funzionare senza menzio
|
||||
}
|
||||
```
|
||||
|
||||
`groups["*"]` imposta i valori predefiniti per ogni gruppo e una voce concreta
|
||||
`groups.GROUP_OPENID` sovrascrive questi valori predefiniti per un gruppo. Le impostazioni di gruppo
|
||||
includono:
|
||||
`groups["*"]` imposta i valori predefiniti per ogni gruppo, e una voce concreta
|
||||
`groups.GROUP_OPENID` sovrascrive tali valori predefiniti per un gruppo. Le impostazioni
|
||||
di gruppo includono:
|
||||
|
||||
- `requireMention`: richiede una @mention prima che il bot risponda. Predefinito: `true`.
|
||||
- `requireMention`: richiede una @menzione prima che il bot risponda. Predefinito: `true`.
|
||||
- `ignoreOtherMentions`: scarta i messaggi che menzionano qualcun altro ma non il bot.
|
||||
- `historyLimit`: conserva i messaggi recenti del gruppo senza menzione come contesto per il prossimo turno menzionato. Imposta `0` per disabilitare.
|
||||
- `historyLimit`: conserva i messaggi recenti di gruppo senza menzione come contesto per il turno menzionato successivo. Imposta `0` per disabilitare.
|
||||
- `toolPolicy`: `full`, `restricted` o `none` per gli strumenti con ambito di gruppo.
|
||||
- `name`: etichetta leggibile usata nei log e nel contesto del gruppo.
|
||||
- `name`: etichetta descrittiva usata nei log e nel contesto di gruppo.
|
||||
- `prompt`: prompt di comportamento per gruppo aggiunto al contesto dell'agente.
|
||||
|
||||
Le modalità di attivazione sono `mention` e `always`. `requireMention: true` mappa a
|
||||
`mention`; `requireMention: false` mappa a `always`. Una sovrascrittura di attivazione
|
||||
a livello di sessione, quando presente, ha la precedenza sulla configurazione.
|
||||
Le modalità di attivazione sono `mention` e `always`. `requireMention: true` corrisponde a
|
||||
`mention`; `requireMention: false` corrisponde a `always`. Un override di attivazione a livello di sessione,
|
||||
se presente, prevale sulla configurazione.
|
||||
|
||||
La coda in ingresso è per peer. I peer di gruppo ottengono un limite di coda maggiore, mantengono i messaggi
|
||||
umani davanti alle chiacchiere generate dal bot quando la coda è piena e uniscono raffiche di normali
|
||||
messaggi di gruppo in un unico turno attribuito. I comandi slash vengono comunque eseguiti uno per volta.
|
||||
La coda in ingresso è per peer. I peer di gruppo ricevono un limite di coda più alto, mantengono i messaggi
|
||||
umani davanti alle conversazioni generate dal bot quando la coda è piena, e fondono raffiche di normali
|
||||
messaggi di gruppo in un unico turno attribuito. I comandi slash vengono comunque eseguiti uno per uno.
|
||||
|
||||
### Voce (STT / TTS)
|
||||
|
||||
Il supporto STT e TTS usa una configurazione a due livelli con fallback prioritario:
|
||||
Il supporto STT e TTS usa una configurazione a due livelli con fallback di priorità:
|
||||
|
||||
| Impostazione | Specifica del Plugin | Fallback del framework |
|
||||
| ------------ | --------------------------------------------------------- | ----------------------------- |
|
||||
| STT | `channels.qqbot.stt` | `tools.media.audio.models[0]` |
|
||||
| TTS | `channels.qqbot.tts`, `channels.qqbot.accounts.<id>.tts` | `messages.tts` |
|
||||
| ------- | -------------------------------------------------------- | ----------------------------- |
|
||||
| STT | `channels.qqbot.stt` | `tools.media.audio.models[0]` |
|
||||
| TTS | `channels.qqbot.tts`, `channels.qqbot.accounts.<id>.tts` | `messages.tts` |
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -211,15 +211,15 @@ Il supporto STT e TTS usa una configurazione a due livelli con fallback priorita
|
||||
```
|
||||
|
||||
Imposta `enabled: false` su uno dei due per disabilitarlo.
|
||||
Le sovrascritture TTS a livello di account usano la stessa forma di `messages.tts` ed eseguono un deep merge
|
||||
Gli override TTS a livello di account usano la stessa forma di `messages.tts` ed eseguono un deep merge
|
||||
sulla configurazione TTS del canale/globale.
|
||||
|
||||
Gli allegati vocali QQ in ingresso vengono esposti agli agenti come metadati multimediali audio, mantenendo
|
||||
i file vocali grezzi fuori da `MediaPaths` generici. Le risposte in testo normale `[[audio_as_voice]]`
|
||||
Gli allegati vocali QQ in ingresso sono esposti agli agenti come metadati multimediali audio, mantenendo
|
||||
al contempo i file vocali grezzi fuori dai `MediaPaths` generici. Le risposte in testo normale `[[audio_as_voice]]`
|
||||
sintetizzano TTS e inviano un messaggio vocale QQ nativo quando TTS è
|
||||
configurato.
|
||||
|
||||
Il comportamento di caricamento/transcodifica dell'audio in uscita può essere regolato anche con
|
||||
Il comportamento di caricamento/transcodifica audio in uscita può essere regolato anche con
|
||||
`channels.qqbot.audioFormatPolicy`:
|
||||
|
||||
- `sttDirectFormats`
|
||||
@ -234,61 +234,64 @@ Il comportamento di caricamento/transcodifica dell'audio in uscita può essere r
|
||||
| `qqbot:group:GROUP_OPENID` | Chat di gruppo |
|
||||
| `qqbot:channel:CHANNEL_ID` | Canale guild |
|
||||
|
||||
> Ogni bot ha il proprio set di OpenID utente. Un OpenID ricevuto dal Bot A **non può**
|
||||
> Ogni bot ha il proprio insieme di OpenID utente. Un OpenID ricevuto dal Bot A **non può**
|
||||
> essere usato per inviare messaggi tramite il Bot B.
|
||||
|
||||
## Comandi slash
|
||||
|
||||
Comandi integrati intercettati prima della coda AI:
|
||||
Comandi integrati intercettati prima della coda IA:
|
||||
|
||||
| Comando | Descrizione |
|
||||
| -------------- | -------------------------------------------------------------------------------------------------------------- |
|
||||
| `/bot-ping` | Test di latenza |
|
||||
| `/bot-version` | Mostra la versione del framework OpenClaw |
|
||||
| `/bot-help` | Elenca tutti i comandi |
|
||||
| `/bot-upgrade` | Mostra il link alla guida di aggiornamento QQBot |
|
||||
| `/bot-logs` | Esporta i log recenti del gateway come file |
|
||||
| Comando | Descrizione |
|
||||
| -------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `/bot-ping` | Test di latenza |
|
||||
| `/bot-version` | Mostra la versione del framework OpenClaw |
|
||||
| `/bot-help` | Elenca tutti i comandi |
|
||||
| `/bot-me` | Mostra l'ID utente QQ del mittente (openid) per la configurazione di `allowFrom`/`groupAllowFrom` |
|
||||
| `/bot-upgrade` | Mostra il link alla guida di aggiornamento di QQBot |
|
||||
| `/bot-logs` | Esporta i log recenti del Gateway come file |
|
||||
| `/bot-approve` | Approva un'azione QQ Bot in sospeso (ad esempio, la conferma di un caricamento C2C o di gruppo) tramite il flusso nativo. |
|
||||
|
||||
Aggiungi `?` a qualsiasi comando per l'aiuto all'uso (ad esempio `/bot-upgrade ?`).
|
||||
Aggiungi `?` a qualsiasi comando per la guida all'uso (ad esempio `/bot-upgrade ?`).
|
||||
|
||||
I comandi amministratore (`/bot-me`, `/bot-upgrade`, `/bot-logs`, `/bot-clear-storage`, `/bot-streaming`, `/bot-approve`) sono solo per messaggi diretti e richiedono l'openid del mittente in un elenco `allowFrom` esplicito e senza caratteri jolly. Un `allowFrom: ["*"]` con carattere jolly consente la chat ma non concede l'accesso ai comandi amministratore. I messaggi di gruppo vengono confrontati prima con `groupAllowFrom` e ricadono su `allowFrom`. L'esecuzione di un comando amministratore in un gruppo restituisce un suggerimento invece di scartarlo silenziosamente.
|
||||
|
||||
## Architettura del motore
|
||||
|
||||
QQ Bot viene fornito come motore autonomo all'interno del Plugin:
|
||||
QQ Bot viene distribuito come motore autonomo all'interno del Plugin:
|
||||
|
||||
- Ogni account possiede uno stack di risorse isolato (connessione WebSocket, client API, cache dei token, radice di archiviazione multimediale) indicizzato da `appId`. Gli account non condividono mai lo stato in ingresso/in uscita.
|
||||
- Il logger multi-account contrassegna le righe di log con l'account proprietario, in modo che la diagnostica resti separabile quando esegui più bot sotto un unico gateway.
|
||||
- I percorsi in ingresso, in uscita e bridge del gateway condividono una singola radice di payload multimediali sotto `~/.openclaw/media`, quindi upload, download e cache di transcodifica finiscono in una directory protetta invece che in un albero per sottosistema.
|
||||
- La consegna di contenuti multimediali avanzati passa attraverso un unico percorso `sendMedia` per destinazioni C2C e di gruppo. File locali e buffer sopra la soglia per file di grandi dimensioni usano gli endpoint di upload a blocchi di QQ, mentre i payload più piccoli usano l'API multimediale one-shot.
|
||||
- È possibile eseguire il backup e il ripristino delle credenziali come parte degli snapshot standard delle credenziali OpenClaw; al ripristino il motore riaggancia lo stack di risorse di ogni account senza richiedere una nuova coppia tramite codice QR.
|
||||
- Ogni account possiede uno stack di risorse isolato (connessione WebSocket, client API, cache token, radice di archiviazione multimediale) indicizzato da `appId`. Gli account non condividono mai lo stato in ingresso/in uscita.
|
||||
- Il logger multi-account etichetta le righe di log con l'account proprietario, così la diagnostica resta separabile quando esegui diversi bot sotto un solo Gateway.
|
||||
- I percorsi in ingresso, in uscita e del bridge Gateway condividono un'unica radice per i payload multimediali sotto `~/.openclaw/media`, così caricamenti, download e cache di transcodifica finiscono in una directory protetta invece che in un albero per sottosistema.
|
||||
- La consegna di contenuti multimediali avanzati passa attraverso un unico percorso `sendMedia` per destinazioni C2C e di gruppo. File locali e buffer sopra la soglia dei file grandi usano gli endpoint di caricamento a blocchi di QQ, mentre i payload più piccoli usano l'API multimediale one-shot.
|
||||
- Le credenziali possono essere sottoposte a backup e ripristinate come parte degli snapshot standard delle credenziali OpenClaw; il motore ricollega lo stack di risorse di ogni account al ripristino senza richiedere una nuova associazione con codice QR.
|
||||
|
||||
## Onboarding con codice QR
|
||||
|
||||
In alternativa all'incollare manualmente `AppID:AppSecret`, il motore supporta un flusso di onboarding con codice QR per collegare un QQ Bot a OpenClaw:
|
||||
|
||||
1. Esegui il percorso di configurazione di QQ Bot (ad esempio `openclaw channels add --channel qqbot`) e scegli il flusso con codice QR quando richiesto.
|
||||
1. Esegui il percorso di configurazione QQ Bot (ad esempio `openclaw channels add --channel qqbot`) e scegli il flusso con codice QR quando richiesto.
|
||||
2. Scansiona il codice QR generato con l'app del telefono collegata al QQ Bot di destinazione.
|
||||
3. Approva l'associazione sul telefono. OpenClaw conserva le credenziali restituite in `credentials/` sotto l'ambito dell'account corretto.
|
||||
3. Approva l'associazione sul telefono. OpenClaw salva le credenziali restituite in `credentials/` sotto l'ambito dell'account corretto.
|
||||
|
||||
I prompt di approvazione generati dal bot stesso (ad esempio, flussi "allow this action?" esposti dall'API QQ Bot) emergono come prompt OpenClaw nativi che puoi accettare con `/bot-approve` invece di rispondere tramite il client QQ grezzo.
|
||||
Le richieste di approvazione generate dal bot stesso (ad esempio, flussi "consentire questa azione?" esposti dall'API QQ Bot) appaiono come prompt nativi OpenClaw che puoi accettare con `/bot-approve` invece di rispondere tramite il client QQ grezzo.
|
||||
|
||||
## Risoluzione dei problemi
|
||||
|
||||
- **Il bot risponde "gone to Mars":** credenziali non configurate o Gateway non avviato.
|
||||
- **Nessun messaggio in ingresso:** verifica che `appId` e `clientSecret` siano corretti e che il
|
||||
- **Nessun messaggio in ingresso:** verifica che `appId` e `clientSecret` siano corretti, e che il
|
||||
bot sia abilitato sulla QQ Open Platform.
|
||||
- **Autorisposte ripetute:** OpenClaw registra gli indici ref in uscita di QQ come
|
||||
generati dal bot e ignora gli eventi in ingresso il cui `msgIdx` corrente corrisponde a quello
|
||||
dello stesso account bot. Questo impedisce loop di eco della piattaforma consentendo comunque agli utenti
|
||||
- **Auto-risposte ripetute:** OpenClaw registra gli indici di riferimento QQ in uscita come
|
||||
generati dal bot e ignora gli eventi in ingresso il cui `msgIdx` corrente corrisponde allo
|
||||
stesso account bot. Questo previene i loop di eco della piattaforma consentendo comunque agli utenti
|
||||
di citare o rispondere a messaggi precedenti del bot.
|
||||
- **La configurazione con `--token-file` risulta ancora non configurata:** `--token-file` imposta solo
|
||||
l'AppSecret. Serve comunque `appId` nella configurazione o `QQBOT_APP_ID`.
|
||||
- **I messaggi proattivi non arrivano:** QQ può intercettare i messaggi avviati dal bot se
|
||||
AppSecret. Serve comunque `appId` nella configurazione o `QQBOT_APP_ID`.
|
||||
- **Messaggi proattivi non ricevuti:** QQ può intercettare i messaggi avviati dal bot se
|
||||
l'utente non ha interagito di recente.
|
||||
- **La voce non viene trascritta:** assicurati che STT sia configurato e che il provider sia raggiungibile.
|
||||
- **Voce non trascritta:** assicurati che STT sia configurato e che il provider sia raggiungibile.
|
||||
|
||||
## Correlati
|
||||
|
||||
- [Associazione](/it/channels/pairing)
|
||||
- [Gruppi](/it/channels/groups)
|
||||
- [Risoluzione dei problemi del canale](/it/channels/troubleshooting)
|
||||
- [Risoluzione dei problemi dei canali](/it/channels/troubleshooting)
|
||||
|
||||
@ -2,23 +2,23 @@
|
||||
read_when:
|
||||
- Vuoi attività pianificate e riattivazioni
|
||||
- Stai eseguendo il debug dell'esecuzione di Cron e dei log
|
||||
summary: Riferimento CLI per `openclaw cron` (pianificare ed eseguire attività in secondo piano)
|
||||
summary: Riferimento CLI per `openclaw cron` (pianificare ed eseguire job in background)
|
||||
title: Cron
|
||||
x-i18n:
|
||||
generated_at: "2026-04-30T08:42:29Z"
|
||||
generated_at: "2026-04-30T09:34:53Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 658498b09e0f0997d0f05dcdbdbd8822284d747df932f1c51e86f97b94cd81a7
|
||||
source_hash: 03d79e0e2c71f673c900b84eb2beeab705662c1d016e1d0567323c8da73060bb
|
||||
source_path: cli/cron.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
# `openclaw cron`
|
||||
|
||||
Gestisci i job Cron per lo scheduler del Gateway.
|
||||
Gestisci i processi Cron per il pianificatore del Gateway.
|
||||
|
||||
<Tip>
|
||||
Esegui `openclaw cron --help` per l'intera superficie dei comandi. Consulta [job Cron](/it/automation/cron-jobs) per la guida concettuale.
|
||||
Esegui `openclaw cron --help` per la superficie completa del comando. Vedi [Processi Cron](/it/automation/cron-jobs) per la guida concettuale.
|
||||
</Tip>
|
||||
|
||||
## Sessioni
|
||||
@ -27,176 +27,176 @@ Esegui `openclaw cron --help` per l'intera superficie dei comandi. Consulta [job
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Chiavi di sessione">
|
||||
- `main` si associa alla sessione principale dell'agente.
|
||||
- `main` si collega alla sessione principale dell'agente.
|
||||
- `isolated` crea una nuova trascrizione e un id sessione per ogni esecuzione.
|
||||
- `current` si associa alla sessione attiva al momento della creazione.
|
||||
- `session:<id>` vincola a una chiave di sessione persistente esplicita.
|
||||
- `current` si collega alla sessione attiva al momento della creazione.
|
||||
- `session:<id>` fissa una chiave di sessione persistente esplicita.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Semantica delle sessioni isolate">
|
||||
Le esecuzioni isolate reimpostano il contesto di conversazione ambientale. Routing di canali e gruppi, criterio di invio/coda, elevazione, origine e associazione runtime ACP vengono reimpostati per la nuova esecuzione. Le preferenze sicure e gli override espliciti di modello o autenticazione selezionati dall'utente possono propagarsi tra le esecuzioni.
|
||||
Le esecuzioni isolate reimpostano il contesto ambientale della conversazione. Routing di canale e gruppo, criterio di invio/coda, elevazione, origine e associazione runtime ACP vengono reimpostati per la nuova esecuzione. Le preferenze sicure e gli override espliciti di modello o autenticazione selezionati dall'utente possono essere mantenuti tra le esecuzioni.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Consegna
|
||||
|
||||
`openclaw cron list` e `openclaw cron show <job-id>` mostrano in anteprima la rotta di consegna risolta. Per `channel: "last"`, l'anteprima mostra se la rotta è stata risolta dalla sessione principale o corrente, oppure se fallirà in modo chiuso.
|
||||
`openclaw cron list` e `openclaw cron show <job-id>` mostrano un'anteprima della route di consegna risolta. Per `channel: "last"`, l'anteprima mostra se la route è stata risolta dalla sessione principale o corrente, oppure se fallirà in modo chiuso.
|
||||
|
||||
<Note>
|
||||
I job `cron add` isolati usano per impostazione predefinita la consegna `--announce`. Usa `--no-deliver` per mantenere l'output interno. `--deliver` rimane come alias deprecato di `--announce`.
|
||||
I processi `cron add` isolati usano per impostazione predefinita la consegna `--announce`. Usa `--no-deliver` per mantenere l'output interno. `--deliver` rimane un alias deprecato di `--announce`.
|
||||
</Note>
|
||||
|
||||
### Proprietà della consegna
|
||||
|
||||
La consegna chat Cron isolata è condivisa tra l'agente e il runner:
|
||||
La consegna in chat dei Cron isolati è condivisa tra l'agente e il runner:
|
||||
|
||||
- L'agente può inviare direttamente usando lo strumento `message` quando è disponibile una rotta chat.
|
||||
- `announce` esegue la consegna di fallback della sola risposta finale quando l'agente non ha inviato direttamente al target risolto.
|
||||
- `webhook` pubblica il payload completato a un URL.
|
||||
- L'agente può inviare direttamente usando lo strumento `message` quando è disponibile una route di chat.
|
||||
- `announce` consegna come fallback solo la risposta finale quando l'agente non ha inviato direttamente al target risolto.
|
||||
- `webhook` pubblica il payload completato su un URL.
|
||||
- `none` disabilita la consegna di fallback del runner.
|
||||
|
||||
`--announce` è la consegna di fallback del runner per la risposta finale. `--no-deliver` disabilita quel fallback ma non rimuove lo strumento `message` dell'agente quando è disponibile una rotta chat.
|
||||
`--announce` è la consegna di fallback del runner per la risposta finale. `--no-deliver` disabilita quel fallback ma non rimuove lo strumento `message` dell'agente quando è disponibile una route di chat.
|
||||
|
||||
I promemoria creati da una chat attiva preservano il target di consegna chat live per la consegna announce di fallback. Le chiavi di sessione interne possono essere minuscole; non usarle come fonte di verità per ID provider sensibili alle maiuscole/minuscole, come gli ID stanza Matrix.
|
||||
I promemoria creati da una chat attiva conservano il target di consegna della chat live per la consegna di fallback tramite announce. Le chiavi di sessione interne possono essere minuscole; non usarle come fonte di verità per ID provider con distinzione tra maiuscole e minuscole, come gli ID delle stanze Matrix.
|
||||
|
||||
### Consegna degli errori
|
||||
|
||||
Le notifiche di errore vengono risolte in questo ordine:
|
||||
|
||||
1. `delivery.failureDestination` sul job.
|
||||
1. `delivery.failureDestination` nel processo.
|
||||
2. `cron.failureDestination` globale.
|
||||
3. Il target announce principale del job (quando non è impostata alcuna destinazione di errore esplicita).
|
||||
3. Il target announce principale del processo (quando non è impostata alcuna destinazione di errore esplicita).
|
||||
|
||||
<Note>
|
||||
I job della sessione principale possono usare `delivery.failureDestination` solo quando la modalità di consegna principale è `webhook`. I job isolati la accettano in tutte le modalità.
|
||||
I processi della sessione principale possono usare `delivery.failureDestination` solo quando la modalità di consegna principale è `webhook`. I processi isolati lo accettano in tutte le modalità.
|
||||
</Note>
|
||||
|
||||
Nota: le esecuzioni Cron isolate trattano gli errori dell'agente a livello di esecuzione come errori del job anche quando
|
||||
non viene prodotto alcun payload di risposta, quindi gli errori di modello/provider incrementano comunque i contatori
|
||||
di errore e attivano le notifiche di errore.
|
||||
Nota: le esecuzioni Cron isolate trattano gli errori dell'agente a livello di esecuzione come errori del processo anche quando
|
||||
non viene prodotto alcun payload di risposta, quindi gli errori di modello/provider incrementano comunque i contatori degli errori
|
||||
e attivano le notifiche di errore.
|
||||
|
||||
## Pianificazione
|
||||
|
||||
### Job una tantum
|
||||
### Processi una tantum
|
||||
|
||||
`--at <datetime>` pianifica un'esecuzione una tantum. Le date e ore senza offset sono trattate come UTC, a meno che tu non passi anche `--tz <iana>`, che interpreta l'ora di calendario nel fuso orario specificato.
|
||||
`--at <datetime>` pianifica un'esecuzione una tantum. Le date e ore senza offset vengono trattate come UTC, a meno che tu non passi anche `--tz <iana>`, che interpreta l'orario civile nel fuso orario specificato.
|
||||
|
||||
<Note>
|
||||
I job una tantum vengono eliminati dopo il successo per impostazione predefinita. Usa `--keep-after-run` per preservarli.
|
||||
I processi una tantum vengono eliminati dopo il successo per impostazione predefinita. Usa `--keep-after-run` per conservarli.
|
||||
</Note>
|
||||
|
||||
### Job ricorrenti
|
||||
### Processi ricorrenti
|
||||
|
||||
I job ricorrenti usano un backoff di nuovo tentativo esponenziale dopo errori consecutivi: 30s, 1m, 5m, 15m, 60m. La pianificazione torna normale dopo la successiva esecuzione riuscita.
|
||||
I processi ricorrenti usano un backoff esponenziale dei tentativi dopo errori consecutivi: 30s, 1m, 5m, 15m, 60m. La pianificazione torna normale dopo la successiva esecuzione riuscita.
|
||||
|
||||
Le esecuzioni saltate sono tracciate separatamente dagli errori di esecuzione. Non influiscono sul backoff di nuovo tentativo, ma `openclaw cron edit <job-id> --failure-alert-include-skipped` può includere gli avvisi di errore nelle notifiche ripetute di esecuzione saltata.
|
||||
Le esecuzioni saltate vengono tracciate separatamente dagli errori di esecuzione. Non influenzano il backoff dei tentativi, ma `openclaw cron edit <job-id> --failure-alert-include-skipped` può includere negli avvisi di errore le notifiche ripetute per esecuzioni saltate.
|
||||
|
||||
Per i job isolati che puntano a un provider di modello configurato localmente, Cron esegue un preflight leggero del provider prima di avviare il turno dell'agente. I provider Loopback, private-network e `.local` `api: "ollama"` vengono sondati su `/api/tags`; i provider locali compatibili con OpenAI, come vLLM, SGLang e LM Studio, vengono sondati su `/models`. Se l'endpoint non è raggiungibile, l'esecuzione viene registrata come `skipped` e riprovata in una pianificazione successiva; gli endpoint non funzionanti corrispondenti vengono memorizzati nella cache per 5 minuti per evitare che molti job martellino lo stesso server locale.
|
||||
Per i processi isolati che puntano a un provider di modelli locale configurato, Cron esegue un preflight leggero del provider prima di avviare il turno dell'agente. I provider local loopback, su rete privata e `.local` con `api: "ollama"` vengono sondati su `/api/tags`; i provider locali compatibili con OpenAI, come vLLM, SGLang e LM Studio, vengono sondati su `/models`. Se l'endpoint non è raggiungibile, l'esecuzione viene registrata come `skipped` e ritentata in una pianificazione successiva; gli endpoint non attivi corrispondenti vengono memorizzati nella cache per 5 minuti per evitare che molti processi sovraccarichino lo stesso server locale.
|
||||
|
||||
Nota: le definizioni dei job Cron risiedono in `jobs.json`, mentre lo stato runtime in sospeso risiede in `jobs-state.json`. Se `jobs.json` viene modificato esternamente, il Gateway ricarica le pianificazioni modificate e cancella gli slot in sospeso obsoleti; le riscritture di sola formattazione non cancellano lo slot in sospeso.
|
||||
Nota: le definizioni dei processi Cron si trovano in `jobs.json`, mentre lo stato runtime in sospeso si trova in `jobs-state.json`. Se `jobs.json` viene modificato esternamente, il Gateway ricarica le pianificazioni modificate e cancella gli slot in sospeso obsoleti; le riscritture solo di formattazione non cancellano lo slot in sospeso.
|
||||
|
||||
### Esecuzioni manuali
|
||||
|
||||
`openclaw cron run` restituisce non appena l'esecuzione manuale viene accodata. Le risposte riuscite includono `{ ok: true, enqueued: true, runId }`. Usa `openclaw cron runs --id <job-id>` per seguire l'esito finale.
|
||||
`openclaw cron run` ritorna non appena l'esecuzione manuale viene messa in coda. Le risposte riuscite includono `{ ok: true, enqueued: true, runId }`. Usa `openclaw cron runs --id <job-id>` per seguire l'esito finale.
|
||||
|
||||
<Note>
|
||||
`openclaw cron run <job-id>` esegue forzatamente per impostazione predefinita. Usa `--due` per mantenere il comportamento precedente "esegui solo se in scadenza".
|
||||
`openclaw cron run <job-id>` forza l'esecuzione per impostazione predefinita. Usa `--due` per mantenere il comportamento precedente "esegui solo se dovuto".
|
||||
</Note>
|
||||
|
||||
## Modelli
|
||||
|
||||
`cron add|edit --model <ref>` seleziona un modello consentito per il job.
|
||||
`cron add|edit --model <ref>` seleziona un modello consentito per il processo.
|
||||
|
||||
<Warning>
|
||||
Se il modello non è consentito o non può essere risolto, Cron fa fallire l'esecuzione con un errore di convalida esplicito invece di ripiegare sull'agente del job o sulla selezione del modello predefinito.
|
||||
Se il modello non è consentito o non può essere risolto, Cron fa fallire l'esecuzione con un errore di validazione esplicito invece di ripiegare sull'agente del processo o sulla selezione del modello predefinita.
|
||||
</Warning>
|
||||
|
||||
Cron `--model` è un **primario del job**, non un override `/model` della sessione chat. Ciò significa:
|
||||
Cron `--model` è una **primaria del processo**, non un override `/model` della sessione di chat. Questo significa:
|
||||
|
||||
- I fallback dei modelli configurati continuano ad applicarsi quando il modello selezionato per il job fallisce.
|
||||
- Il payload per job `fallbacks` sostituisce l'elenco dei fallback configurati quando presente.
|
||||
- Un elenco di fallback per job vuoto (`fallbacks: []` nel payload/API del job) rende l'esecuzione Cron rigorosa.
|
||||
- Quando un job ha `--model` ma non è configurato alcun elenco di fallback, OpenClaw passa un override di fallback vuoto esplicito, così il primario dell'agente non viene aggiunto come target di nuovo tentativo nascosto.
|
||||
- I fallback dei modelli configurati continuano ad applicarsi quando il modello selezionato per il processo fallisce.
|
||||
- Il payload per processo `fallbacks` sostituisce l'elenco di fallback configurato quando è presente.
|
||||
- Un elenco di fallback per processo vuoto (`fallbacks: []` nel payload/API del processo) rende rigorosa l'esecuzione Cron.
|
||||
- Quando un processo ha `--model` ma non è configurato alcun elenco di fallback, OpenClaw passa un override di fallback vuoto esplicito affinché la primaria dell'agente non venga aggiunta come target di nuovo tentativo nascosto.
|
||||
|
||||
### Precedenza dei modelli Cron isolati
|
||||
### Precedenza dei modelli per Cron isolato
|
||||
|
||||
Cron isolato risolve il modello attivo in questo ordine:
|
||||
|
||||
1. Override Gmail-hook.
|
||||
2. `--model` per job.
|
||||
1. Override dell'hook Gmail.
|
||||
2. `--model` per processo.
|
||||
3. Override del modello della sessione Cron memorizzato (quando l'utente ne ha selezionato uno).
|
||||
4. Agente o selezione del modello predefinito.
|
||||
4. Selezione dell'agente o del modello predefinito.
|
||||
|
||||
### Modalità veloce
|
||||
|
||||
La modalità veloce di Cron isolato segue la selezione del modello live risolta. La configurazione del modello `params.fastMode` si applica per impostazione predefinita, ma un override `fastMode` della sessione memorizzata prevale comunque sulla configurazione.
|
||||
La modalità veloce di Cron isolato segue la selezione del modello live risolta. La configurazione del modello `params.fastMode` si applica per impostazione predefinita, ma un override `fastMode` della sessione memorizzato prevale comunque sulla configurazione.
|
||||
|
||||
### Nuovi tentativi di cambio modello live
|
||||
### Nuovi tentativi dopo cambio modello live
|
||||
|
||||
Se un'esecuzione isolata genera `LiveSessionModelSwitchError`, Cron persiste il provider e il modello cambiati (e l'override del profilo di autenticazione cambiato quando presente) per l'esecuzione attiva prima di riprovare. Il ciclo esterno di nuovo tentativo è limitato a due nuovi tentativi di cambio dopo il tentativo iniziale, poi si interrompe invece di andare in loop per sempre.
|
||||
Se un'esecuzione isolata genera `LiveSessionModelSwitchError`, Cron persiste il provider e il modello cambiati (e l'override del profilo di autenticazione cambiato, quando presente) per l'esecuzione attiva prima di riprovare. Il ciclo esterno di retry è limitato a due retry di cambio dopo il tentativo iniziale, poi si interrompe invece di entrare in un ciclo infinito.
|
||||
|
||||
## Output di esecuzione e rifiuti
|
||||
|
||||
### Soppressione delle conferme obsolete
|
||||
### Soppressione degli acknowledgement obsoleti
|
||||
|
||||
I turni Cron isolati sopprimono le risposte obsolete di sola conferma. Se il primo risultato è solo un aggiornamento di stato provvisorio e nessuna esecuzione di subagente discendente è responsabile della risposta finale, Cron ripropone una volta la richiesta per ottenere il risultato reale prima della consegna.
|
||||
I turni Cron isolati sopprimono le risposte obsolete di solo acknowledgement. Se il primo risultato è solo un aggiornamento di stato provvisorio e nessuna esecuzione di subagente discendente è responsabile della risposta finale, Cron ripropone una volta la richiesta per ottenere il risultato reale prima della consegna.
|
||||
|
||||
### Soppressione dei token silenziosi
|
||||
|
||||
Se un'esecuzione Cron isolata restituisce solo il token silenzioso (`NO_REPLY` o `no_reply`), Cron sopprime sia la consegna diretta in uscita sia il percorso di riepilogo accodato di fallback, quindi non viene pubblicato nulla nella chat.
|
||||
Se un'esecuzione Cron isolata restituisce solo il token silenzioso (`NO_REPLY` o `no_reply`), Cron sopprime sia la consegna diretta in uscita sia il percorso di riepilogo in coda di fallback, quindi non viene pubblicato nulla nella chat.
|
||||
|
||||
### Rifiuti strutturati
|
||||
|
||||
Le esecuzioni Cron isolate preferiscono i metadati strutturati di rifiuto dell'esecuzione dall'esecuzione incorporata, poi ripiegano sui marcatori di rifiuto noti nell'output finale, come `SYSTEM_RUN_DENIED`, `INVALID_REQUEST` e frasi di rifiuto dell'associazione di approvazione.
|
||||
Le esecuzioni Cron isolate preferiscono i metadati strutturati di rifiuto dell'esecuzione dall'esecuzione incorporata, quindi ripiegano su marker di rifiuto noti nell'output finale, come `SYSTEM_RUN_DENIED`, `INVALID_REQUEST` e frasi di rifiuto legate all'approvazione.
|
||||
|
||||
`cron list` e la cronologia delle esecuzioni mostrano il motivo del rifiuto invece di riportare un comando bloccato come `ok`.
|
||||
`cron list` e la cronologia delle esecuzioni mostrano il motivo del rifiuto invece di segnalare un comando bloccato come `ok`.
|
||||
|
||||
## Conservazione
|
||||
|
||||
Conservazione e pruning sono controllati nella configurazione:
|
||||
La conservazione e la potatura sono controllate nella configurazione:
|
||||
|
||||
- `cron.sessionRetention` (predefinito `24h`) elimina le sessioni di esecuzione isolate completate.
|
||||
- `cron.runLog.maxBytes` e `cron.runLog.keepLines` potano `~/.openclaw/cron/runs/<jobId>.jsonl`.
|
||||
|
||||
## Migrazione dei job più vecchi
|
||||
## Migrazione dei processi meno recenti
|
||||
|
||||
<Note>
|
||||
Se hai job Cron precedenti al formato corrente di consegna e archiviazione, esegui `openclaw doctor --fix`. Doctor normalizza i campi Cron legacy (`jobId`, `schedule.cron`, campi di consegna di primo livello incluso il legacy `threadId`, alias di consegna `provider` del payload) e migra i job di fallback webhook semplici `notify: true` alla consegna webhook esplicita quando `cron.webhook` è configurato.
|
||||
Se hai processi Cron precedenti all'attuale formato di consegna e archiviazione, esegui `openclaw doctor --fix`. Doctor normalizza i campi Cron legacy (`jobId`, `schedule.cron`, campi di consegna di primo livello inclusi `threadId` legacy, alias di consegna `provider` del payload) e migra i semplici processi di fallback webhook con `notify: true` alla consegna webhook esplicita quando `cron.webhook` è configurato.
|
||||
</Note>
|
||||
|
||||
## Modifiche comuni
|
||||
|
||||
Aggiorna le impostazioni di consegna senza cambiare il messaggio:
|
||||
Aggiornare le impostazioni di consegna senza modificare il messaggio:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
|
||||
```
|
||||
|
||||
Disabilita la consegna per un job isolato:
|
||||
Disabilitare la consegna per un processo isolato:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --no-deliver
|
||||
```
|
||||
|
||||
Abilita il contesto bootstrap leggero per un job isolato:
|
||||
Abilitare il contesto di bootstrap leggero per un processo isolato:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --light-context
|
||||
```
|
||||
|
||||
Annuncia a un canale specifico:
|
||||
Annunciare a un canale specifico:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
||||
```
|
||||
|
||||
Annuncia a un argomento forum Telegram:
|
||||
Annunciare a un topic di forum Telegram:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42
|
||||
```
|
||||
|
||||
Crea un job isolato con contesto bootstrap leggero:
|
||||
Creare un processo isolato con contesto di bootstrap leggero:
|
||||
|
||||
```bash
|
||||
openclaw cron add \
|
||||
@ -208,9 +208,9 @@ openclaw cron add \
|
||||
--no-deliver
|
||||
```
|
||||
|
||||
`--light-context` si applica solo ai job di turno agente isolati. Per le esecuzioni Cron, la modalità leggera mantiene vuoto il contesto bootstrap invece di iniettare l'intero set bootstrap dell'area di lavoro.
|
||||
`--light-context` si applica solo ai processi con turno dell'agente isolati. Per le esecuzioni Cron, la modalità leggera mantiene vuoto il contesto di bootstrap invece di iniettare l'intero set di bootstrap dell'area di lavoro.
|
||||
|
||||
## Comandi amministrativi comuni
|
||||
## Comandi di amministrazione comuni
|
||||
|
||||
Esecuzione manuale e ispezione:
|
||||
|
||||
@ -222,9 +222,9 @@ openclaw cron run <job-id> --due
|
||||
openclaw cron runs --id <job-id> --limit 50
|
||||
```
|
||||
|
||||
Le voci `cron runs` includono diagnostica di consegna con il target Cron previsto, il target risolto, gli invii dello strumento message, l'uso del fallback e lo stato consegnato.
|
||||
Le voci di `cron runs` includono diagnostica di consegna con il target Cron previsto, il target risolto, gli invii tramite strumento message, l'uso del fallback e lo stato consegnato.
|
||||
|
||||
Riassegnazione di agente e sessione:
|
||||
Ridirezionamento di agente e sessione:
|
||||
|
||||
```bash
|
||||
openclaw cron edit <job-id> --agent ops
|
||||
@ -233,6 +233,8 @@ openclaw cron edit <job-id> --session current
|
||||
openclaw cron edit <job-id> --session "session:daily-brief"
|
||||
```
|
||||
|
||||
`openclaw cron add` avvisa quando `--agent` viene omesso nei processi con turno dell'agente e ripiega sull'agente predefinito (`main`). Passa `--agent <id>` al momento della creazione per fissare un agente specifico.
|
||||
|
||||
Ritocchi alla consegna:
|
||||
|
||||
```bash
|
||||
|
||||
Loading…
Reference in New Issue
Block a user