---
title: "Slack e canali"
description: "Collega Slack a un progetto e controlla le sessioni da un canale."
---

Un canale collega una piattaforma di chat a un progetto. Un messaggio in un canale collegato avvia una [sessione](/docs/it/work/sessions). L'agente risponde nello stesso thread.

<a id="live-channels"></a>

## Canali disponibili

Al momento Beeuni supporta quattro piattaforme di canale:

- **Slack** — collega con un clic tramite l'app gestita da Beeuni oppure usa il tuo token bot.
- **Microsoft Teams** — collega tramite OAuth con consenso dell'amministratore dell'organizzazione oppure usa il tuo Azure Bot (sperimentale; abilitalo in [Impostazioni → Flag delle funzionalità](/docs/it/feature-flags)).
- **Email** — un canale basato su AgentMail (sperimentale; abilitalo in [Impostazioni → Flag delle funzionalità](/docs/it/feature-flags)).
- **Voce** — un canale vocale in tempo reale (sperimentale; abilitalo in [Impostazioni → Flag delle funzionalità](/docs/it/feature-flags)). Parla con un agente in tempo reale.

Solo Slack e Microsoft Teams si collegano tramite CLI e dashboard. Email e voce si gestiscono dalla dashboard. Questa pagina tratta Slack. Teams segue le stesse regole per sessioni, collegamento delle identità e credenziali.

<a id="how-a-channel-starts-a-session"></a>

## Come un canale avvia una sessione

Il primo messaggio in un thread Slack o in una conversazione Teams crea una sessione. Il thread mantiene la sessione anche dopo l'arresto e la ripresa della sandbox.

In un canale Slack, un messaggio successivo raggiunge la sessione solo se menziona il bot. Le risposte senza menzione sono rivolte alle persone nel thread. L'agente le legge la volta successiva che qualcuno lo menziona. In un messaggio diretto, ogni messaggio raggiunge la sessione.

In un'area di lavoro Slack collegata a più di un progetto, alla prima menzione viene mostrato un selettore di progetto.

<a id="identity-linking"></a>

## Collegamento delle identità

Beeuni collega ogni mittente della chat a un account Beeuni prima che l'agente operi per suo conto. Esegui `/beeuni login` in Slack e segui il link per accedere. Teams prevede lo stesso requisito. A un mittente non collegato viene chiesto di collegare il proprio account, anziché avviare una sessione.

Un link di accesso funziona una sola volta e scade dopo 10 minuti. Un account Slack collegato a un account Beeuni non può essere collegato a un altro: esegui prima `/beeuni logout`. Se la tua organizzazione richiede l'autenticazione a due fattori, Beeuni ti chiede il secondo fattore prima di collegarti; la chat viene eseguita con il fattore usato per il collegamento.

Ogni azione viene eseguita con l'account collegato della persona che l'ha intrapresa, usando il ruolo di quell'account nel progetto. I proprietari e gli amministratori degli account sono considerati responsabili del progetto.

| Azione | Chi può eseguirla |
|---|---|
| Menzionare il bot, in un nuovo messaggio o nel suo thread | Un account collegato con accesso al progetto, nel rispetto dei criteri del canale |
| Interrompere un'esecuzione | La persona che ha inviato il messaggio a cui si sta rispondendo, oppure chiunque sia stato approvato per la sessione e possa ancora usare il progetto |
| Modificare il progetto, l'agente, il modello o i criteri del canale | Un responsabile del progetto; in un messaggio diretto con il bot, qualsiasi membro del progetto |
| Intervenire su una revisione | Un responsabile del progetto |
| Approvare o negare una chiamata al connettore | Un responsabile del progetto o la persona che ha avviato la sessione |
| Approvare qualcuno in un thread `owner_approval` | Il proprietario della sessione |
| `link-bot` | Un responsabile del progetto |

<a id="where-credentials-live"></a>

## Dove risiedono le credenziali

Il token bot di un canale collegato è un [segreto](/docs/it/project/secrets) associato al connettore. Non compare nella pagina Secrets del progetto. Beeuni non lo inietta mai in una sandbox. Beeuni recupera il token lato server quando l'agente invia o legge un messaggio in chat.

<a id="connect-slack"></a>

## Collegare Slack

1. **Avvia la connessione**

    Dalla CLI, esegui:

    ```
    beeuni channels connect
    ```

    Su un host con l'app Slack condivisa configurata (ad esempio Beeuni Cloud), viene stampato un link per l'installazione con un clic. Apri il link e scegli l'area di lavoro. Fai clic su **Consenti**. Aggiungi `--wait` per fare in modo che il comando attenda fino al completamento dell'installazione.

    In alternativa, apri la pagina Channels del progetto nella dashboard e collega Slack da lì. Verrà usato lo stesso flusso di installazione.

2. <a id="use-your-own-slack-app"></a>

    ### Usa la tua app Slack

    Per usare la tua app Slack, esegui `beeuni channels manifest` per stampare un manifest dell'app. Crea l'app da quel manifest su `api.slack.com/apps`. Installa l'app nella tua area di lavoro. Poi esegui:

    ```
    beeuni channels connect --manual --bot-token xoxb-... --signing-secret ...
    ```

3. **Verifica la connessione**

    ```
    beeuni channels status
    ```

    Esegui `beeuni channels disconnect` per rimuovere la connessione. Consulta il [riferimento della CLI](/docs/it/cli) per tutti i flag.

Collegando Slack viene aggiunta per te una voce `channel` [connettore](/docs/it/connect/connectors) a `beeuni.yaml`. Non devi mai scrivere questa voce manualmente.

<a id="use-slack"></a>

## Usare Slack

Menziona il bot con un'attività in qualsiasi canale a cui ha accesso, oppure apri un messaggio diretto. Come descritto sopra, il thread mantiene la sessione. Per continuare, menziona di nuovo il bot nel thread del canale. Una menzione senza attività genera un promemoria che ti invita ad aggiungerne una, invece di avviare una sessione.

<a id="what-the-agent-can-read"></a>

## Cosa può leggere l'agente

L'agente legge Slack tramite il [connettore](/docs/it/connect/connectors) Slack del progetto (`beeuni_slack` oppure il comando `slack` nella sandbox). Tutti i progetti collegati alla stessa area di lavoro Slack usano lo stesso bot, quindi Beeuni limita ogni lettura alle conversazioni del progetto interessato:

| Conversazione | Lettura |
|---|---|
| Un canale o un messaggio diretto collegato a questo progetto | Consentita |
| Un thread avviato o a cui ha partecipato una sessione di questo progetto, in qualsiasi canale | Consentita |
| Un canale, messaggio diretto o thread di un altro progetto | Rifiutata |
| Una conversazione non collegata ad alcun progetto | Consentita solo se all'area di lavoro non è collegato nessun altro progetto |

Una lettura rifiutata restituisce `403` con il motivo `conversation_not_in_project` e un messaggio che identifica la conversazione. Per leggere una conversazione non collegata ad alcun progetto, collegala prima: esegui `/beeuni switch` nella conversazione e scegli questo progetto.

- La cronologia del canale esclude i messaggi appartenenti al thread di un altro progetto.
- `get_history` e `get_thread` aggiungono `user_name` a ogni messaggio il cui autore può essere identificato da Slack, accanto all'id `user`. Ogni lettura identifica al massimo 25 persone; i nomi che Slack non restituisce entro 2 secondi vengono omessi.
- `list_channels` elenca tutti i canali pubblici e i canali privati e messaggi diretti che l'agente può leggere.
- `channel_info` risponde per qualsiasi canale pubblico. Per un canale privato o un messaggio diretto, si applica la tabella sopra.
- `file_info` risponde se il file è condiviso in una conversazione che l'agente può leggere o in un thread di questo progetto. `slack download` segue la stessa regola: se un file è condiviso solo nella conversazione di un altro progetto, restituisce `403`. Il download si interrompe a 50 MB e restituisce `413`.
- `search_messages` viene eseguito solo se all'area di lavoro non è collegato nessun altro progetto, perché la ricerca non può essere limitata alle conversazioni di un singolo progetto.
- `list_users`, `user_info` e `auth_test` leggono la directory dell'area di lavoro e non sono soggetti a limitazioni.

Le scritture seguono la regola descritta di seguito.

<a id="what-the-agent-can-post"></a>

## Cosa può pubblicare l'agente

Pubblicare, inviare un file, modificare, eliminare, aggiungere una reazione, accedere a un canale e associare un thread seguono un'unica regola: l'agente non opera mai all'interno del canale o del thread di un altro progetto.

| Destinazione | Scrittura |
|---|---|
| Un canale di questo progetto oppure un thread avviato o a cui ha partecipato una delle sue sessioni | Consentita |
| Un canale non collegato ad alcun progetto | Consentita. Un nuovo messaggio avvia il thread di questo progetto, quindi una risposta che menziona il bot torna alla sessione |
| Un messaggio diretto con una persona | Consentita, anche se il messaggio diretto di quella persona con il bot è gestito da un altro progetto |
| Un canale o un messaggio diretto di gruppo di un altro progetto | Rifiutata |
| Un thread di un altro progetto, in qualsiasi conversazione | Rifiutata: nesbeeuni risposta, modifica, eliminazione o reazione |

Una scrittura rifiutata restituisce `403` con il motivo `conversation_not_in_project` e un messaggio che identifica la conversazione. `slack send --file` e `slack bind-thread` seguono la stessa regola.

`channel` deve essere l'id della conversazione o dell'utente, ad esempio `C0123ABCD` o `U0123ABCD`, non il nome di un canale. Slack pubblica in base a un nome, che non può essere verificato rispetto alla regola. Se Slack pubblica comunque un messaggio in una conversazione diversa da quella verificata, Beeuni lo elimina e rifiuta la pubblicazione.

Per pubblicare in un canale gestito da un altro progetto, esegui `/beeuni switch` nel canale e scegli questo progetto, oppure pubblica da quel progetto.

<a id="control-a-session-with-slash-commands"></a>

## Controllare una sessione con i comandi slash

Digita questi comandi come `/beeuni <command>` in Slack o come testo normale in un messaggio diretto. I comandi slash non vengono eseguiti nel pannello dei messaggi diretti dell'Assistente, quindi Beeuni interpreta lì le stesse parole come testo normale.

| Comando | Funzione |
|---|---|
| `login`, `logout` | Collega o scollega la tua identità Slack |
| `switch`, `unbind` | Ricollega o scollega questo canale dal progetto |
| `projects` | Elenca i progetti a cui puoi collegarti |
| `sessions` | Elenca le sessioni recenti avviate in questa area di lavoro |
| `whoami` | Mostra il pannello del canale: progetto, agente, modello, criteri e identità collegata |
| `models` | Sceglie il modello per questo canale — vedi [Modelli e chiavi](#models-and-keys) |
| `agent <name>`, `model <id>` | Imposta l'agente o il modello usato da questo canale |
| `policy <mode>` | Imposta chi può avviare sessioni qui |
| `help` | Elenca tutti i comandi |

`policy` accetta `project_open` (impostazione predefinita: qualsiasi membro del progetto che menzioni il bot avvia una sessione), `owner_approval` o `owner_only`. È un'impostazione per singola risorsa, applicata a un canale, non un ruolo. Non concede alcun permesso negato dalla decisione sul ruolo: vedi [Account e accesso](/docs/it/accounts#per-feature-access-settings).

<a id="models-and-keys"></a>

## Modelli e chiavi

`/beeuni models` elenca tutti i modelli che puoi usare qui, come nel selettore web: i modelli Beeuni e quelli accessibili tramite una chiave API del provider o un abbonamento ChatGPT. Per ciascuno indica come viene pagato. Se l'elenco è lungo, puoi digitare nel menu a discesa. Scegli un modello oppure digita `/beeuni model <id>`; `/beeuni model default` ripristina il valore predefinito del progetto.

Le chiavi disponibili dipendono dalla conversazione:

- **Un messaggio diretto con il bot** — le tue chiavi personali e il tuo abbonamento ChatGPT, oltre alle chiavi condivise con il progetto. Le sessioni sono private.
- **Un canale o un messaggio diretto di gruppo** — solo le chiavi condivise con l'intero progetto. Per usare un modello che si basa sulle tue chiavi personali, scegli un messaggio diretto.

Un modello che usa chiavi utilizza tutte le chiavi disponibili per il relativo provider, alternandole in caso di limiti di frequenza. Il modello del canale viene usato per avviare ogni nuovo thread; un thread mantiene il modello con cui è stato avviato. Se un thread non può più usare il proprio modello, per quel messaggio viene usato un modello sostitutivo invece di interromperlo. Vedi [Chiavi dei provider e accesso dei membri](/docs/it/project/models#provider-keys-and-member-access).

Un messaggio di continuazione con un'immagine viene elaborato da un modello in grado di leggere immagini. Se nessun modello disponibile può farlo, il prompt informa l'agente che non riesce a vedere l'immagine e gli chiede di fornire il testo, invece di indovinare.

<a id="channel-and-people-names"></a>

## Nomi di canali e persone

Slack invia ID, come `C0123ABCD` e `U0123ABCD`. Beeuni mostra i nomi visibili alle persone in Slack e conserva gli ID per le operazioni.

| Dove | Cosa viene mostrato |
|---|---|
| La pagina Channels, `beeuni channels bindings` | `#channel` per un canale pubblico o privato, la persona per un messaggio diretto, i membri per un messaggio diretto di gruppo |
| Un messaggio Slack in una sessione | Il nome del mittente e `#channel` |
| Una risposta `slack send` in una sessione | `#channel` oppure la persona in un messaggio diretto |
| Il titolo della sessione | Le menzioni come appaiono in Slack: `@Beeuni`, non `<@U0123ABCD>` |
| Il prompt dell'agente | Nomi accanto agli ID: `Sam Rivera (U0123ABCD)`, `#general (C0123ABCD)` |
| I passaggi del piano dell'agente in Slack | Una persona come `@Sam Rivera`, un canale come `#general`. Un passaggio non invia mai notifiche |
| Una scheda di approvazione in Slack | Un parametro di canale come link al canale, denominato da Slack in base ai tuoi accessi. Un parametro utente con il nome della persona |

Se Slack non riesce a trovare un canale, viene indicato come **Canale non disponibile** e l'ID viene conservato. Succede se il canale è stato eliminato o il bot è stato rimosso. I nomi che Slack non restituisce entro 2 secondi vengono omessi dal messaggio. Il prompt riporta solo gli ID e il turno non attende.

<a id="approvals"></a>

## Approvazioni

Quando l'agente ha bisogno della decisione di una persona prima di procedere, crea un elemento di revisione. Se la sessione è stata avviata da questo thread, qui viene mostrata una scheda con il titolo, un riepilogo, un livello di rischio e le opzioni **Approva**, **Richiedi modifiche** e **Nega**.

**Richiedi modifiche** apre un campo per specificare cosa cambiare. Il testo inserito viene salvato insieme alla decisione e trasmesso all'agente, che non dovrà chiedertelo una seconda volta. È facoltativo: se invii il campo vuoto, all'agente viene detto di chiedere. Per approvare o negare basta un clic.

Per intervenire su una revisione serve un account Beeuni collegato con accesso in scrittura al progetto.

<a id="stopping-a-run"></a>

## Interrompere un'esecuzione

Mentre l'agente lavora, il suo messaggio in tempo reale mostra un pulsante **Interrompi**. Arresta l'esecuzione nell'ambiente runtime, non solo nel messaggio: se l'esecuzione resta attiva, assorbe il messaggio successivo nel thread invece di rispondervi.

Può interromperla la persona che ha inviato il messaggio a cui si sta rispondendo, così come chiunque sia stato approvato per la sessione, purché possa ancora usare il progetto. Chiunque altro nel canale non può farlo e riceve una nota privata che lo informa.

<a id="what-does-not-work"></a>

## Funzionalità non disponibili

- I comandi slash non vengono eseguiti nel pannello dei messaggi diretti dell'Assistente. Lì digita invece `/beeuni <command>` come testo normale.
- Al momento non sono supportate altre piattaforme di chat, incluso Telegram. Solo Slack e Microsoft Teams si collegano tramite CLI e dashboard; email e voce si collegano tramite dashboard.
