Conversar com um agente
Este guia mostra como trabalhar com um agente em um espaço.
Criar um espaço
Seção intitulada “Criar um espaço”- Navegue até Espaços na barra lateral
- Clique no botão + ao lado do título Espaços
- Digite um nome — isso é obrigatório. Um nome vazio é recusado; a caixa de diálogo permanece aberta
- Opcionalmente, adicione agentes do espaço de trabalho
- Se o espaço de trabalho tiver algum repo, aparece um seletor de repos. Ele começa com todos os repos selecionados; restrinja-o (inclusive desmarcando um único repo) aos repos para os quais este espaço deve provisionar worktrees
- Confirme
O Control Center abre o espaço e começa a provisionar em segundo plano uma worktree copy-on-write para cada repo selecionado.
Enviar a primeira mensagem
Seção intitulada “Enviar a primeira mensagem”Digite sua mensagem no composer e pressione Enter. O agente é despachado e começa a transmitir a resposta em fluxo.
Se o espaço ainda estiver sendo provisionado, sua mensagem fica em espera em vez de se perder — o composer a guarda e a envia automaticamente assim que as worktrees estiverem prontas.
À medida que o agente trabalha, você vê a rodada dele chegar em fluxo: segmentos de raciocínio, chamadas de ferramentas (leituras e gravações de arquivos, comandos de shell) e o texto da resposta, tudo dentro de uma única mensagem de rodada do agente.
Orientar um agente em execução
Seção intitulada “Orientar um agente em execução”Enquanto um agente está trabalhando, texto de conversa comum não enfileira uma nova rodada. Ele se torna um cartão de orientação na fila, na faixa acima do composer, e é injetado na execução ao vivo no próximo limite de rodada. Não há toast nenhum — o cartão é o feedback.
Três coisas mudam esse comportamento:
- Uma mensagem que contém uma @menção é sempre enviada como mensagem, nunca como orientação
- Uma mensagem que começa com um comando slash é sempre tratada como esse comando
- Uma mensagem com um anexo é sempre enviada como mensagem — a fila de orientação é somente texto
- Se toda execução ao vivo já tiver terminado, o texto passa adiante e é enviado como uma mensagem normal
Aprovar uma ação bloqueada
Seção intitulada “Aprovar uma ação bloqueada”Quando um agente chega a uma ação que os guardrails dele barram — um comando
destrutivo, uma ferramenta privilegiada —, o servidor bloqueia a execução e
publica uma solicitação de aprovação para todos os clientes conectados. Se você
tiver essa conversa aberta, a solicitação aparece no chat, acima do composer,
como o mesmo cartão de opções numeradas usado pelo ask_user (negar, aprovar e,
opcionalmente, aprovar por oito horas). Não há como pular: um agente bloqueado
está esperando uma decisão.
Se você estiver em outro lugar do app, um painel sempre no topo, no shell, continua listando o que está esperando, para que você desbloqueie o agente sem ficar caçando o espaço. O overlay esconde uma solicitação no momento em que a conversa daquele espaço está na tela, para que você nunca responda ao mesmo pedido duas vezes.
Não há tempo limite: um agente bloqueado espera até que alguém decida. A mesma solicitação também aparece na faixa de atenção da caixa de entrada e no cliente de celular.
Responder à pergunta de um agente
Seção intitulada “Responder à pergunta de um agente”Um agente que precisa de uma preferência, de um requisito que falta ou de uma
bifurcação real deve chamar ask_user. Escrever a pergunta como mensagem de
chat encerra a rodada e você tem de pedir de novo. A ferramenta renderiza um
cartão numerado na conversa — opções, texto livre opcional, ou ambos — e a
execução espera pela sua resposta.
Toque em uma única opção para enviá-la (o número ao final vira uma seta ao passar
o mouse). Seleções múltiplas e respostas digitadas usam Continuar (⌘↵ /
Ctrl↵). Pular diz ao agente para escolher um padrão razoável e não
perguntar de novo.
É um mecanismo separado do cartão de aprovação acima: uma aprovação é “posso fazer isto?”, uma pergunta é “qual destes você quis dizer?”. Perguntar está disponível no harness integrado em todos os modos, incluindo os somente leitura (isso não altera nada), e de propósito não é envolvida em um prompt de aprovação — uma caixa de diálogo na frente de outra falharia fechada sem nenhum aprovador conectado. Uma execução que não tem uma conversa onde renderizar simplesmente não recebe a ferramenta.
Parar um agente
Seção intitulada “Parar um agente”Enquanto há execuções ao vivo, o botão de enviar do composer vira um botão Parar. Limpe o composer e pressione-o — isso para todos os agentes em execução naquela conversa.
Não há controle de parada no cabeçalho do espaço nem atalho de teclado para isso. Para parar apenas uma execução quando várias estão ao vivo, abra a aba de atividade dessa execução — o cabeçalho dela traz pausar/retomar e parar com escopo de execução (o parar pede confirmação). Observabilidade → Ao vivo lista todo agente em execução no espaço de trabalho com o mesmo controle.
Uma execução parada é marcada como parada. Envie uma nova mensagem para despachar de novo.
Usar comandos slash
Seção intitulada “Usar comandos slash”Digite / no composer para ver a lista de comandos. Os que mudam o comportamento
da conversa:
| Comando | O que faz |
|---|---|
/plan |
Coloca o espaço em modo plano. Um /plan sozinho apenas arma o modo; /plan <request> arma o modo e envia o resto como sua mensagem |
/goal <text> |
Registra a meta de trabalho da conversa |
/loop <text> |
Itera sobre uma tarefa até que ela esteja completa |
/compact |
Dobra o histórico mais antigo em um resumo ancorado e continua no contexto compactado |
/todo … |
Visualiza e edita a lista de todos persistida desta conversa |
As skills aparecem na mesma lista sob o próprio namespace skill:, então nunca
colidem com os comandos acima — uma skill chamada plan ou compact continua
alcançável:
| Comando | O que executa |
|---|---|
/skill:<name> |
Uma skill instalada no espaço de trabalho ou anexada ao agente |
/skill:<repo>:<name> |
Uma skill fornecida por um dos repos com checkout neste espaço |
Skills de repo recebem um selo com o repo de origem, porque um nome sozinho não
diz as convenções de qual serviço ela codifica e dois repos podem cada um trazer
um testing. Você não precisa digitar o prefixo para encontrar uma: digitar o
nome puro da skill também casa com as entradas com namespace.
Um agente só carrega as skills do repo em que está trabalhando no momento — consulte Skills com escopo de repo. O composer não tem esse escopo: você pode invocar a skill de qualquer repo nomeando-a.
/compact e /todo são interceptados pelo cliente e nunca persistidos como
mensagens — uma linha /compact na transcrição empurraria o corte da próxima
compactação uma rodada para trás. /plan alterna o modo armazenado do espaço em
vez de trafegar como texto. Então nenhum dos três é “uma mensagem que você envia
ao agente”; não espere vê-los no histórico.
Pedir um plano primeiro
Seção intitulada “Pedir um plano primeiro”Antes de uma mudança complexa, coloque o espaço em modo plano com /plan, a
lista suspensa de modo na barra de ferramentas do composer, ou Shift+Tab. O
agente então pesquisa em somente leitura e entrega um plano tipado que você
aprova antes de qualquer trabalho começar. Consulte
Usar o modo plano.
Alcançar um agente sem um espaço dedicado
Seção intitulada “Alcançar um agente sem um espaço dedicado”Você não precisa de um espaço por agente. Em qualquer espaço:
@alice can you look at the failing tests in src/auth_test.dart?O agente mencionado é adicionado ao espaço e despachado com o contexto daquele espaço. Consulte Mencionar agentes com @ para saber como os nomes são correspondidos.
Guias relacionados
Seção intitulada “Guias relacionados”- Usar espaços
- Mencionar agentes com @
- Usar o modo plano
- Configurar a integração com o Slack para fazer o mesmo a partir do Slack