Collega Slack a un progetto e un messaggio in un thread avvia una sessione. L’agente attiva il proprio computer cloud, svolge il lavoro e risponde nello stesso thread. Nessuno deve aprire un nuovo strumento per chiedere qualcosa.
Aprire una richiesta di modifica verso main?
launch-note.md · +64 −0
A channel is a chat platform bound to a project — a closed set of three, not an open field. Here is the real state of each one, including the parts a marketing page usually leaves out.
Attivo per impostazione predefinita, senza flag. Collegati dalla dashboard o dalla CLI, invita il bot in un canale e menzionalo. Tutto il resto di questa pagina descrive Slack.
Attivo per ogni progetto, senza flag. Un amministratore del tenant dà il consenso una volta, oppure un progetto usa la propria app bot. Le stesse sessioni e le stesse regole di identità di Slack.
Una casella di posta del progetto: un messaggio a un indirizzo avvia una sessione e una risposta la continua. Attiva per progetto in Customize → Feature flags. Funziona, ma non è ancora completo.
Telegram, WhatsApp, SMS e Discord non sono canali, e questa pagina non farà intendere che siano in una roadmap che non possiamo promettere. Non esiste nemmeno un’API per creare il proprio canale: l’elenco delle piattaforme è un enum chiuso. Esiste invece un trigger webhook firmato, e preferiamo dichiararne i limiti invece di venderti la parola "estensibile".
L’alternativa onesta →Il primo messaggio in un thread crea una sessione. Ogni messaggio successivo nello stesso thread raggiunge la stessa sessione, anche dopo che la sandbox si ferma durante la notte o la persona che l’ha avviata torna a casa. Questa associazione è un indice univoco nel database, non una convenzione che due servizi scelgono di rispettare.
Aprire una richiesta di modifica verso main?
launch-note.md · +64 −0
In un canale a cui è stato invitato o in un messaggio diretto. Una semplice menzione senza attività riceve un promemoria di aggiungerne una, invece di creare una sessione che nessuno ha richiesto.
Kortix crea un ramo e avvia il proprio computer cloud isolato, esattamente come per una sessione iniziata dalla dashboard o dalla CLI. Ricevi una reazione al tuo messaggio, non un post del bot che dice “ci penso io”.
Ha una shell, un filesystem, la rete e i connettori e segreti concessi dal blocco dell’agente. Il thread è il luogo in cui osservi. Il lavoro avviene sulla macchina.
La risposta viene trasmessa nel messaggio da cui è partita, nel thread in cui è stata posta la domanda. Due persone possono guardare. Nessuna ha dovuto aprire altro.
Due eventi per lo stesso thread appena creato, arrivati contemporaneamente, non producono due sessioni: il secondo si unisce al primo e viene consegnato come follow-up. Un workspace Slack associato a più di un progetto mostra un selettore di progetto alla prima menzione invece di indovinare.
Su un host con l'app Slack condivisa configurata, kortix channels connect stampa un link di installazione e bastano tre clic. In una distribuzione senza app condivisa, lo stesso comando passa automaticamente alla modalità manuale e fornisce un manifest dell'app da incollare.
# gestito: un link di installazione, poi scegli il workspace$ kortix channels connect --wait→ connesso: workspace Slack acme-hq # self-hosting? lo stesso comando passa alla modalità manuale$ kortix channels manifest > slack-app.json$ kortix channels connect --manual \--bot-token xoxb-... --signing-secret ... # controlla lo stato o rimuovilo$ kortix channels status$ kortix channels disconnectVale la pena connettere un canale solo se la risposta arriva dove è stata posta la domanda. I file viaggiano in entrambe le direzioni e le decisioni di cui l'agente ha bisogno da parte tua diventano pulsanti nel thread, non un link verso un altro posto.
La risposta arriva nel thread come un unico messaggio che si completa, non come una parete di aggiornamenti. L'agente finalizza quel messaggio invece di pubblicarne un secondo sotto.
Un file inserito nel thread viene trasferito al cloud computer dell'agente. Un file prodotto dall'agente viene caricato di nuovo nello stesso thread. La presentazione arriva dove hai chiesto che arrivasse.
Quando l'agente ha bisogno di una decisione, pubblica una scheda con pulsanti invece di bloccare per sempre un turno. Il tuo clic è il verdetto e la sessione riprende da lì nello stesso thread.
Un limite, senza ipocrisie: la scheda contiene la decisione e un link a Kortix. Per leggere il diff effettivo di una richiesta di modifica devi usare la web app, dove è giusto che stia un diff — Slack non è uno strumento di code review e non faremo finta che lo sia.
In Slack inseriscili come /kortix <command>, oppure come testo semplice in un messaggio diretto. Gran parte di ciò per cui altrimenti apriresti la dashboard è una sola riga nel canale.
Un messaggio in Slack non ottiene privilegi che una sessione nella dashboard non avrebbe. Cambia la superficie. Sotto non cambia nulla.
Non esiste un'API per creare il proprio canale: l'elenco delle piattaforme è un enum chiuso e non travestiremo una lacuna da sistema di plugin. Ciò che offriamo è un trigger webhook firmato che avvia una sessione per conversazione. Risolve bene la parte in ingresso e ti diremo esattamente cosa non fa.
# qualsiasi fonte conversazionale, senza codice specifico per il canaletriggers:- slug: support-inbox type: webhook agent: support secret_env: WEBHOOK_SECRET # una sessione per conversazione, non una per messaggio session_mode: keyed session_key: "{{ body.data.conversation_id }}" # ignora i messaggi in uscita dell'agente filter: "body.data.direction": "inbound" prompt: "{{ body.data.text }}"Una sessione per conversazione. session_key viene generata dal payload, quindi un singolo trigger distribuisce il lavoro in una sessione per chat, cliente o repository — thread separati invece di una trascrizione mescolata.
Una fonte che segnala entrambi i lati di una conversazione altrimenti attiverebbe l'agente sulla propria risposta. filter scarta queste consegne con un 200 e senza sessione. Firmato con HMAC-SHA256, come ogni webhook Kortix.
Nessun inoltro della risposta. Un canale reale trasmette la risposta al posto tuo; qui l'agente deve inviare autonomamente il messaggio in uscita, tramite un connettore che gli hai concesso. L'ingresso è risolto. L'uscita dipende da te.