PrezziDocumentazione
Inizia
Automazioni

Lavoro che inizia senza che nessuno lo chieda.

Un trigger avvia una sessione senza la presenza di una persona. Una pianificazione cron la attiva all’orario stabilito; un webhook firmato la attiva in risposta a un evento. In entrambi i casi l’agente ottiene il proprio computer cloud, il proprio branch e la stessa revisione al ritorno.

Avvia una sessioneLeggi la documentazione
ora
daily-digest
invoice-sweep
oncall-handoff
prossima esecuzione
invoice-sweepEurope/Berlin

Il primo giorno del mese alle 06:30

0 30 6 1 * *

X-Kortix-Signature: sha256=<hmac>
Due tipi

Due tipi. Non ce n’è un terzo.

Un trigger è un orologio o una firma. Tutto il resto — con quale agente viene eseguito, cosa comunica e in quale sessione confluisce — è la stessa configurazione in entrambi i casi.

cron

Si attiva all’orario stabilito

Un’espressione cron a 6 campi — secondo, minuto, ora, giorno, mese, giorno della settimana — in qualsiasi fuso orario IANA. Oppure un singolo timestamp run_at, per qualcosa che deve accadere una volta sola e poi restare inattivo.

webhook

Si attiva in risposta a un evento

Un servizio esterno invia una POST all’URL del trigger. Kortix verifica la firma, inserisce il payload nel prompt e avvia la sessione. Un payload che non supera il tuo filtro viene accettato e ignorato.

  • Entrambi i tipi indicano l’agente con cui vengono eseguiti ed ereditano l’accesso deny-by-default di quell’agente.
  • Entrambi contengono un modello di prompt che diventa il primo messaggio della sessione.
  • Entrambi sono voci in kortix.yaml, quindi entrambi hanno una cronologia e un autore.
La superficie cron

Una pianificazione leggibile in un’unica colonna.

Ogni trigger di un progetto è una riga: come si chiama, quando si attiva, nel fuso orario di chi, con quale agente e in quale sessione confluisce l’attivazione. Nulla è uno stato nascosto da aprire con un clic.

TriggerCronTimezoneAgentSession
daily-digest0 0 9 * * 1-5Giorni feriali alle 09:00America/Los_Angeleskortixfresh
invoice-sweep0 30 6 1 * *Il primo giorno del mese alle 06:30Europe/Berlinfinancereuse
oncall-handoff0 0 17 * * 5Venerdì alle 17:00UTCsupportfresh
roadmap-review0 0 8 * * 1Lunedì alle 08:00America/New_Yorkplannerpinned
I fusi orari sono reali
Un trigger memorizza il nome di un fuso orario IANA, non un offset, e usa UTC per impostazione predefinita. Imposta America/Los_Angeles e resterà alle 09:00 locali anche durante il passaggio all’ora legale. Un’abbreviazione come PST viene rifiutata, non interpretata arbitrariamente.
Non devi scrivere cron
La schermata Pianificazioni è un selettore: ogni pochi minuti, nei giorni feriali, ogni mese o una volta in un momento scelto da te. Il cron grezzo è l’opzione avanzata, non un requisito di accesso.
Un solo interruttore mette tutto in pausa
Una pausa a livello di progetto arresta contemporaneamente ogni trigger, oltre al flag di abilitazione di ciascun trigger. Usala quando lo stesso repo viene eseguito su due control plane, così nulla si attiva due volte.
Un picco va in coda, non viene eliminato
Per impostazione predefinita, un progetto esegue contemporaneamente 3 sessioni attivate. Un’attivazione oltre il limite viene messa in coda e parte quando si libera uno slot, invece di fallire.
Dichiarato nel repo

Un’automazione è un file, non un’impostazione della dashboard.

I trigger risiedono in kortix.yaml insieme agli agenti e alle immagini sandbox. Ognuno indica il proprio agente, la pianificazione o il segreto e il modello di prompt che diventa il primo messaggio della sessione.

kortix.yaml
# fires on the clocktriggers:  - slug: daily-digest    type: cron    agent: kortix    cron: "0 0 9 * * 1-5"    timezone: America/Los_Angeles    session_mode: fresh    prompt: |      Summarize yesterday’s commits.      Open a change request against main. # fires on an event  - slug: new-lead    type: webhook    agent: sales    secret_env: WEBHOOK_SECRET    prompt: >-      A new lead arrived: {{ body.name }}      ({{ body.email }}). Add it to the CRM.
trigger kortix
# add it, ship it, and the schedule is live$ kortix triggers add daily-digest --type cron \    --cron "0 0 9 * * 1-5" \    --timezone America/Los_Angeles \    --prompt "Summarize yesterday. Open a CR."$ kortix ship→ kortix.yaml pushed. daily-digest is scheduled. # see every trigger and when it last fired$ kortix triggers ls # do not wait for 09:00 to find out$ kortix triggers fire daily-digest→ session started

Il prompt è un modello

Un prompt interpreta {{ token.dotted.path }} rispetto al payload che lo ha attivato. Un webhook fornisce {{ body.* }} e gli header della richiesta; un’attivazione cron fornisce {{ cron.schedule }}, {{ cron.timezone }} e {{ cron.scheduled_for }}. Un valore assente viene interpretato come nulla: nessun errore e nessuna parentesi residue nel messaggio letto dall’agente.

Webhook

Firmato, altrimenti non si attiva.

Ogni trigger webhook indica un segreto di progetto con cui firmarlo. Un trigger senza segreto viene rifiutato durante la validazione: non esiste un webhook non autenticato da dimenticare di proteggere in seguito.

POST /v1/webhooks/projects/{projectId}/{slug}

X-Kortix-Signature: sha256=<hmac>

HMAC-SHA256 calcolato sul corpo grezzo della richiesta e confrontato in tempo costante. Funziona anche l’header X-Hub-Signature-256 compatibile con GitHub, quindi un webhook del repo non richiede alcun adapter.

202
Firma valida. La sessione è stata avviata, accodata dietro il limite di concorrenza o deduplicata rispetto a una consegna già vista da Kortix.
200
Valido, ma deliberatamente ignorato: il progetto è in pausa oppure il payload non corrispondeva al filtro del trigger.
401
Firma e token mancanti o errati. Non viene eseguito nulla.
404
Trigger inesistente, disabilitato o non di tipo webhook.
409
Il secret indicato da secret_env non ha alcun valore impostato. L'operazione fallisce esplicitamente invece di avviarsi senza protezione.

Un filtro è un percorso puntato confrontato con lo stesso payload visualizzato dal prompt. Serve a interrompere i loop: una sorgente che segnala entrambi i lati di una conversazione altrimenti avvierebbe l'agente sulla propria risposta.

Strategia della sessione

In quale sessione confluisce un avvio.

Per impostazione predefinita, ogni avvio parte da zero. Quando il lavoro è un thread in corso anziché un'attività nuova, un trigger può inviare un nuovo prompt a una sessione che già possiede. Kortix prova le modalità in ordine e passa alla successiva in caso di errore, così un avvio non scompare mai semplicemente.

  1. 01

    pinned

    Invia un nuovo prompt a una sessione specifica, indicata dall'id. Se la sessione non esiste più o ha avuto esito negativo, passa alla modalità successiva.

  2. 02

    con chiave

    Genera una chiave dal payload, poi invia un nuovo prompt alla sessione sana più recente contrassegnata con quella chiave esatta. Un cliente, un thread. Non passa mai alla sessione di un'altra chiave.

  3. 03

    reuse

    Invia un nuovo prompt alla sessione sana più recente creata da questo trigger. Un trigger appuntato ripiega qui prima di passare oltre.

  4. 04

    fresh

    Crea un nuovo ramo e avvia un nuovo computer cloud. È l'impostazione predefinita e l'ultima risorsa per ogni altra modalità.

Una sessione attivata è visibile all'intero progetto, non è privata di chi ha configurato il trigger. Si arresta dopo 5 minuti di inattività, così un'automazione avviata alle 3 di notte non continua a generare costi fino al mattino.

Durante la notte

Si avvia alle 3. Decide comunque una persona.

Un'automazione non riceve privilegi che una persona non avrebbe. La stessa separazione, lo stesso accesso limitato, l'unica stessa strada verso main.

Viene eseguita come agente
Un trigger indica un agente ed eredita esattamente le autorizzazioni di quell'agente: connettori, secret e skill elencati dal suo blocco in kortix.yaml, e nient'altro. Un agente senza autorizzazioni non ottiene alcun accesso.
Ha il proprio computer
Un nuovo avvio crea la propria macchina isolata sul proprio ramo, proprio come una sessione avviata manualmente. Nulla di ciò che installa o danneggia tocca un'altra sessione.
Nulla viene unito da solo
Il lavoro raggiunge main solo tramite una change request che una persona esamina e approva. Leggi il diff davanti al caffè. La macchina non ha mai l'ultima parola.
Anche l'automazione ha una cronologia
Un trigger è un blocco YAML nel repository. Chi ha aggiunto l'attività delle 3, quando e cosa gli è stato detto di fare sono tutti nel log, come per qualsiasi altra modifica.

Gestisci l'intera azienda da un unico repo che possiedi.

Inizia da un'attività e cresci da lì.

Inizia

Prodotto

  • Computer dell’agente
  • Azienda come codice
  • Connettori
  • Automazioni
  • Canali
  • Agenti e skill
  • Sicurezza
  • Self-hosted
  • Enterprise
  • Prezzi
  • Scarica

Soluzioni

  • Vendite
  • Marketing
  • Engineering
  • Prodotto
  • Finanza
  • Persone
  • IT
  • Data Science

Sviluppatori

  • Documentazione
  • AI Operating System
  • CLI
  • SDK
  • Avvio rapido
  • Per sviluppatori
  • Marketplace
  • GitHub

Azienda

  • Informazioni
  • Lavora con noi
  • Blog
  • Registro delle modifiche
  • Casi d'uso
  • Brand

Connetti

  • X
  • LinkedIn
  • Discord
  • Stato
  • Supporto
  • Termini
  • Privacy
©2026 Kortix