Saltar para o conteúdo

Conversar com um agente

Este guia mostra-lhe como trabalhar com um agente num espaço.

  1. Navegue até Espaços na barra lateral
  2. Clique no botão + junto ao título Espaços
  3. Escreva um nome — é obrigatório. Um nome vazio é recusado; a caixa de diálogo mantém-se aberta
  4. Opcionalmente, adicione agentes do espaço de trabalho
  5. Se o espaço de trabalho tiver algum repo, aparece um seletor de repos. Começa com todos os repos selecionados; restrinja-o (incluindo desmarcar um único repo) aos repos para os quais este espaço deve aprovisionar worktrees
  6. Confirme

O Control Center abre o espaço e começa a aprovisionar em segundo plano um worktree copy-on-write por cada repo selecionado.

Escreva a sua mensagem no compositor e prima Enter. O agente é despachado e começa a transmitir a resposta em fluxo.

Se o espaço ainda estiver a ser aprovisionado, a sua mensagem fica em espera em vez de se perder — o compositor guarda-a e envia-a automaticamente assim que os worktrees estiverem prontos.

À medida que o agente trabalha, vê o turno a chegar em fluxo: segmentos de raciocínio, chamadas de ferramentas (leituras e escritas de ficheiros, comandos de shell) e texto de resposta, tudo dentro de uma única mensagem de turno do agente.

Enquanto um agente está a trabalhar, o texto de conversa simples não coloca um novo turno em fila. Transforma-se num cartão de orientação em fila, na faixa acima do compositor, e é injetado na execução em curso no limite do turno seguinte. Não há nenhuma notificação temporária — o cartão é o feedback.

Há três coisas que alteram este comportamento:

  • Uma mensagem que contenha uma menção com @ é sempre enviada como mensagem, nunca como orientação
  • Uma mensagem que comece com um comando slash é sempre tratada como esse comando
  • Uma mensagem com um anexo é sempre enviada como mensagem — a fila de orientação é só de texto
  • Se todas as execuções em curso já tiverem terminado, o texto segue o caminho normal e é enviado como mensagem normal

Quando um agente encontra uma ação que as suas barreiras intercetam — um comando destrutivo, uma ferramenta com privilégios —, o servidor bloqueia a execução e publica um pedido de aprovação para todos os clientes ligados. Se tiver essa conversa aberta, o pedido aparece no chat, acima do compositor, como o mesmo cartão de opções numeradas usado para ask_user (negar, aprovar e, opcionalmente, aprovar durante oito horas). Não é possível ignorar: um agente bloqueado está à espera de uma decisão.

Se estiver noutro ponto da aplicação, um painel sempre no topo, no shell da aplicação, continua a listar o que está à espera, para que possa desbloquear o agente sem andar à procura do espaço. A sobreposição esconde um pedido no momento em que a conversa desse espaço está no ecrã, para que nunca responda duas vezes ao mesmo pedido.

Não há limite de tempo: um agente bloqueado espera até que alguém decida. O mesmo pedido também aparece na faixa de atenção da caixa de entrada e no cliente de telemóvel.

Um agente que precise de uma preferência, de um requisito em falta ou de uma bifurcação genuína tem de chamar ask_user. Escrever a pergunta como mensagem de chat termina o turno e obriga a voltar a pedir. A ferramenta apresenta um cartão numerado na conversa — opções, texto livre opcional, ou ambos — e a execução fica à espera da sua resposta.

Toque numa única opção para a enviar (o número no fim transforma-se numa seta ao passar o cursor). As respostas de seleção múltipla e as respostas escritas usam Continuar (⌘↵ / Ctrl↵). Saltar indica ao agente que escolha uma predefinição razoável e que não volte a perguntar.

É um mecanismo separado do cartão de aprovação acima: uma aprovação é «posso fazer isto?», uma pergunta é «qual destas quis dizer?». Perguntar está disponível no harness integrado em todos os modos, incluindo os só de leitura (não altera nada), e é deliberadamente não envolvido num pedido de aprovação — uma caixa de diálogo à frente de outra caixa de diálogo fecharia em caso de falha sem nenhum aprovador ligado. Uma execução sem conversa onde apresentar o cartão simplesmente não recebe a ferramenta.

Enquanto houver execuções em curso, o botão de enviar do compositor passa a ser um botão de parar. Limpe o compositor e prima-o — isto para todos os agentes em execução nessa conversa.

Não existe nenhum controlo de paragem no cabeçalho do espaço nem nenhum atalho de teclado para isso. Para parar apenas uma execução quando há várias em curso, abra o separador de atividade dessa execução — o respetivo cabeçalho tem uma pausa/retoma e uma paragem com o âmbito da execução (a paragem pede confirmação). Observabilidade → Ao vivo lista todos os agentes em execução no espaço de trabalho com o mesmo controlo.

Uma execução parada fica marcada como parada. Envie uma nova mensagem para voltar a despachar.

Escreva / no compositor para ver a lista de comandos. Estes são os que alteram o comportamento da conversa:

Comando O que faz
/plan Coloca o espaço em modo plano. Um /plan isolado apenas ativa o modo; /plan <request> ativa-o e envia o resto como a sua mensagem
/goal <text> Regista o objetivo de trabalho da conversa
/loop <text> Itera uma tarefa até estar concluída
/compact Dobra o histórico mais antigo num resumo ancorado e continua sobre o contexto compactado
/todo … Vê e edita a lista de tarefas persistida desta conversa

As skills aparecem na mesma lista sob o seu próprio espaço de nomes skill:, para que nunca colidam com os comandos acima — uma skill chamada plan ou compact continua acessível:

Comando O que executa
/skill:<name> Uma skill instalada no espaço de trabalho ou associada ao agente
/skill:<repo>:<name> Uma skill fornecida por um dos repos com checkout neste espaço

As skills de repo ostentam um distintivo com o repo de origem, porque um nome por si só não diz as convenções de que serviço codifica e dois repos podem ambos fornecer uma skill testing. Não é preciso escrever o prefixo para encontrar uma: escrever apenas o nome da skill também corresponde às entradas com espaço de nomes.

Um agente transporta apenas as skills do repo em que está a trabalhar no momento — consulte Skills com âmbito de repo. O compositor não tem esse âmbito: pode invocar a skill de qualquer repo nomeando-a.

O /compact e o /todo são intercetados pelo cliente e nunca são persistidos como mensagens — uma linha /compact na transcrição faria o corte da compactação seguinte recuar um turno. O /plan alterna o modo guardado do espaço em vez de viajar como texto. Por isso, nenhum dos três é «uma mensagem que envia ao agente»; não conte com eles no histórico.

Antes de uma alteração complexa, coloque o espaço em modo plano com /plan, com a lista pendente de modos na barra de ferramentas do compositor ou com Shift+Tab. O agente investiga então só de leitura e apresenta um plano tipado que aprova antes de começar qualquer trabalho. Consulte Usar o modo plano.

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 desse espaço. Consulte Mencionar agentes com @ para saber como os nomes são emparelhados.