Pular para o conteúdo

Usar espaços

Este guia mostra como usar espaços. Um espaço é a superfície de mensagens do Control Center: uma sala com escopo de espaço de trabalho, com um ou mais participantes (você e/ou agentes), que mantém uma worktree copy-on-write para cada repo para o qual foi criada.

Salas individuais e salas com vários agentes são apenas espaços, diferenciados somente pela quantidade de participantes. A única exceção são os espaços que os agentes abrem para conversar entre si — veja Espaços entre agentes abaixo.

  1. Navegue até Espaços
  2. Clique no botão + ao lado do título Espaços
  3. Dê a ele um nome — obrigatório. Um nome vazio é recusado; a caixa de diálogo permanece aberta
  4. Opcionalmente, adicione agentes do espaço de trabalho
  5. Quando o espaço de trabalho tiver algum repo, escolha para quais este espaço provisiona worktrees. Todos vêm selecionados por padrão; desmarcar todos os repos cria um espaço sem nada em checkout
  6. Confirme

Os espaços têm escopo de espaço de trabalho: você só vê agentes do espaço de trabalho atual, e um espaço nunca expõe dados de outro espaço de trabalho.

Cada repo é baixado em repos/<name>/ dentro do espaço. Um repo que traz suas próprias skills de agente as contribui para o agente que estiver trabalhando nele — um conjunto de cada repo por vez, trocando conforme o agente se move. No composer, você pode alcançar qualquer uma delas com /skill:<repo>:<name>. Veja Skills com escopo de repositório.

A superfície fica em /workspaces/<id>/spaces, e um único espaço em /workspaces/<id>/spaces/<spaceId>.

Um novo espaço começa no modo padrão. Altere-o pela lista suspensa de modo na extremidade esquerda da barra de ferramentas do composer — não pela caixa de diálogo de criação (que não tem campo de modo) nem pelo cabeçalho do espaço.

Modo Efeito
Agent Acesso total. O padrão; chat internamente, exibido como “Agent” na lista suspensa
Plan Somente leitura e pesquisa; o entregável é um plano tipado
Orchestrate Leitura e pesquisa, mais um único verbo propose_orchestration; o plano só roda depois que você aprova

Shift+Tab alterna entre o modo plano e o modo agente sem abrir a lista suspensa.

Um quarto modo, review, existe, mas não é oferecido na lista suspensa — ele é aplicado automaticamente a espaços de revisão de PR.

O modo fica armazenado no espaço, então o mesmo agente pode estar em modo plano em um espaço e em modo agente em outro. Toda conversa dentro de um espaço compartilha o modo desse espaço.

Veja Modos para o modelo completo.

Clique no ícone de pessoas no cabeçalho do espaço para abrir Gerenciar participantes. Para cada agente que já está no espaço, você pode:

  • Removê-lo do espaço
  • Definir a Autonomia dele para este espaço: Padrão, Somente propor, Agir com aprovação ou Agir livremente

O dial de autonomia é por (espaço, agente), então um agente em que você confia em uma sala pode ser mantido apenas propondo em outra.

Passe o mouse sobre uma mensagem e clique no ícone de sorriso para abrir a paleta de reações. É um conjunto fixo de seis: 👍 👎 🎉 ❤️ 👀 ✅. Não há seletor livre de emoji — tocar em uma alterna a sua reação, e os chips agregados aparecem abaixo da mensagem.

Um espaço hospeda várias conversas ao mesmo tempo, e elas são pares — não há nenhuma principal. Um espaço sempre mantém pelo menos uma conversa ativa: você não pode arquivar a última ativa, e abrir um espaço que ainda não tem nenhuma cria uma conversa permanente sem título.

As conversas aparecem como abas do editor e, quando há mais de uma, como linhas aninhadas sob o espaço na barra lateral. Nova conversa fica no menu de nova aba do editor e cria uma conversa sem título, sem nenhum prompt de título — o modelo de títulos a nomeia a partir da primeira mensagem. Use uma para rodar trabalho em paralelo com o mesmo agente e a mesma worktree.

Cada conversa mantém seu próprio histórico de mensagens e suas próprias sessões de agente, ao mesmo tempo que compartilha as worktrees do espaço e o modo dele. Fechar uma aba a oculta; Arquivar conversa (na linha da barra lateral ou no menu de contexto da aba de chat) arquiva apenas aquela conversa.

Passe o mouse sobre qualquer mensagem e escolha Iniciar tópico. Isso abre uma conversa ancorada naquela mensagem: a âncora semeia o contexto do agente da nova conversa com uma linha, e o histórico da conversa mãe não é copiado.

Quando um tópico passa a ter respostas, a mensagem da qual ele pende ganha uma linha logo abaixo — os rostos de quem falou, a contagem de respostas e quando a última resposta chegou. Essa linha é o caminho de volta: clicar nela abre (ou focaliza) a aba do tópico. É o único rastro que um tópico deixa no fluxo do qual ele se ramificou, e é por isso que ela existe.

A aba de um tópico se intitula Thread: <name> e traz o glifo de branch, então duas abas no mesmo espaço nunca são confundidas uma com a outra.

Tópicos nunca se aninham — ancorar em uma mensagem que já está dentro de um tópico é recusado. O cabeçalho da conversa tem um link de volta para a mensagem âncora. Excluir a mensagem âncora exclui o tópico, e arquivar a conversa mãe não bloqueia os tópicos que ela já tem.

As marcas de leitura têm escopo do espaço, não da conversa: abrir qualquer conversa do espaço limpa a sala. As não lidas ainda se agregam em todas as conversas de um espaço, tópicos incluídos. Quando as conversas são listadas sob o espaço, o ponto de não lida fica na conversa que tem trabalho não visto, e não na linha mãe.

Os espaços que os agentes abrem para conversar entre si ficam em uma seção separada na barra lateral, sob Agentes, recolhidos por padrão e exibidos esmaecidos. Eles nunca incrementam seu badge de não lidas — a conversa entre agentes é silenciosa por construção, e não por uma configuração que você precisa encontrar.

O tipo de um espaço é um entre cinco valores: topic (o padrão para qualquer coisa que você criar), agentPeer, system (gerenciado por pipeline), pr (criado quando uma superfície de PR precisa de uma âncora de worktree, e oculto da barra lateral até ter mensagens) e slack (criado pela ponte de chat para um thread do Slack ou uma DM do bot, e tratado como uma conversa humana comum).