Conecte o Slack a um projeto e uma mensagem em uma thread inicia uma sessão. O agente ativa seu próprio computador na nuvem, realiza o trabalho e responde na mesma thread. Ninguém precisa abrir uma nova ferramenta para pedir algo.
Abrir uma solicitação de mudança contra 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.
Ativo por padrão, sem flag. Conecte pelo dashboard ou pela CLI, convide o bot para um canal e mencione-o. Todo o restante desta página descreve o Slack.
Ativo em todos os projetos, sem flag. Um administrador do tenant dá o consentimento uma vez, ou um projeto usa seu próprio app de bot. As mesmas sessões e as mesmas regras de identidade do Slack.
Uma caixa de entrada do projeto: uma mensagem enviada para um endereço inicia uma sessão e uma resposta dá continuidade a ela. Ative por projeto em Customize → Feature flags. É real, mas ainda não está finalizado.
Telegram, WhatsApp, SMS e Discord não são canais, e esta página não vai insinuar que estão em um roadmap que não podemos prometer. Também não existe uma API para criar seu próprio canal — a lista de plataformas é um enum fechado. O que existe é um gatilho de webhook assinado, e preferimos contar seus limites a vender a palavra "extensível".
A alternativa honesta →A primeira mensagem em uma thread cria uma sessão. Toda mensagem posterior nessa thread chega à mesma sessão — depois que o sandbox para durante a noite, depois que a pessoa que a iniciou vai embora. Esse mapeamento é um índice exclusivo no banco de dados, não uma convenção que dois serviços concordam em respeitar.
Abrir uma solicitação de mudança contra main?
launch-note.md · +64 −0
Em um canal para o qual ele foi convidado ou em uma mensagem direta. Uma menção sem tarefa recebe um lembrete para adicionar uma, em vez de criar uma sessão que ninguém pediu.
O Kortix cria uma ramificação e inicializa seu próprio computador isolado na nuvem, exatamente como faria para uma sessão iniciada pelo dashboard ou pela CLI. Você recebe uma reação à sua própria mensagem, não uma postagem do bot dizendo “já estou fazendo”.
Ele tem um shell, um sistema de arquivos, a rede e os conectores e segredos concedidos pelo bloco do agente. A thread é onde você acompanha. A máquina é onde o trabalho acontece.
A resposta é transmitida para a mensagem que a iniciou, na thread onde a pergunta foi feita. Duas pessoas podem acompanhar. Nenhuma precisou abrir outra coisa.
Dois eventos da mesma thread recém-criada chegando ao mesmo tempo não produzem duas sessões: o segundo se junta ao primeiro e é entregue como acompanhamento. Um workspace do Slack vinculado a mais de um projeto mostra um seletor de projeto na primeira menção, em vez de tentar adivinhar.
Em um host com o app compartilhado do Slack configurado, kortix channels connect exibe um link de instalação e você fica a três cliques de concluir. Em uma implantação sem app compartilhado, o mesmo comando muda automaticamente para o modo manual e fornece um manifesto do app para colar.
# gerenciado: um link de instalação e depois escolha o workspace$ kortix channels connect --wait→ conectado: slack workspace acme-hq # usando self-hosting? o mesmo comando muda para o modo manual$ kortix channels manifest > slack-app.json$ kortix channels connect --manual \--bot-token xoxb-... --signing-secret ... # verifique ou remova$ kortix channels status$ kortix channels disconnectSó vale a pena conectar um canal se a resposta chegar onde a pergunta foi feita. Os arquivos vão nos dois sentidos, e as decisões de que um agente precisa são botões na thread, não um link para outro lugar.
A resposta chega à thread como uma única mensagem que vai sendo preenchida, não como uma parede de atualizações. O agente finaliza essa mensagem em vez de publicar uma segunda logo abaixo.
Um arquivo enviado na thread é transferido para o computador em nuvem do agente. Um arquivo produzido pelo agente é enviado de volta à mesma thread. A apresentação chega onde você pediu que ela chegasse.
Quando o agente precisa de uma decisão, ele publica um cartão com botões em vez de bloquear uma execução indefinidamente. Seu clique é o veredito, e a sessão continua a partir dele na mesma thread.
Um limite honesto: o cartão contém a decisão e um link de volta para o Kortix. A leitura do diff real de uma solicitação de alteração acontece no app web, onde um diff deve estar — o Slack não é uma ferramenta de revisão de código, e não vamos fingir que é.
Digite /kortix <command> no Slack ou use texto simples em uma mensagem direta. A maior parte do que você abriria no dashboard pode ser feita com uma linha no canal.
Uma mensagem no Slack não recebe privilégios que uma sessão no dashboard não receberia. A interface muda. Nada por trás dela muda.
Não existe uma API para criar seu próprio canal — a lista de plataformas é um enum fechado, e não vamos disfarçar uma lacuna como um sistema de plug-ins. O que oferecemos é um gatilho de webhook assinado que inicia uma sessão por conversa. Ele resolve bem a parte de entrada, e diremos exatamente o que ele não faz.
# qualquer fonte conversacional, sem código específico do canaltriggers:- slug: suporte-caixa-de-entrada type: webhook agent: support secret_env: WEBHOOK_SECRET # uma sessão por conversa, não uma por mensagem session_mode: keyed session_key: "{{ body.data.conversation_id }}" # ignore as próprias mensagens de saída do agente filter: "body.data.direction": "inbound" prompt: "{{ body.data.text }}"Uma sessão por conversa. session_key é renderizado a partir do payload, então um único gatilho se distribui em uma sessão por chat, cliente ou repositório — threads separadas, em vez de uma transcrição misturada.
Uma fonte que informa os dois lados de uma conversa acionaria o agente novamente na própria resposta. filter descarta essas entregas com 200 e sem sessão. Assinado com HMAC-SHA256, como todo webhook do Kortix.
Nenhuma retransmissão de resposta. Um canal real transmite a resposta de volta para você; aqui, o agente precisa enviar a mensagem de saída por conta própria, por meio de um conector que você autorizou. A entrada está resolvida. A saída depende da sua configuração.
Comece com uma tarefa e cresça a partir daí.