06/Documentation
Durable agents no telefone
Como são a seção, as conversas, as perguntas e os recibos de um durable agent
Experimental. O que um durable agent exibe no celular pode mudar, ou o recurso pode ser removido, em uma versão secundária futura. Durable agents descreve o critério que define se ele permanece.
Esta página mostra todos os locais em que um durable agent aparece no seu celular: sua linha no dashboard, sua lista de conversas, suas perguntas, o chat, seus starters e seus pushes. Durable agents conecta um durable agent primeiro.
Um durable agent desenha um controle apenas para o que declarou ser capaz de fazer no hello. Uma linha abaixo que mencione um controle pressupõe que o durable agent o tenha declarado.
A seção Durable agents no dashboard
Cada durable agent ocupa uma linha na seção Durable agents, separada dos seus spaces.

| parte da linha | o que mostra |
|---|---|
| Linha 1 | O nome do agente durável a partir de sources.json e um selo de Experimental |
| Linha 2 | Seu runtime, o nome que o agente durável dá a si mesmo em seu hello, caso contrário durable. Depois local ou remote |
| Borda direita, pronto | A contagem de suas conversas abertas e, na cor de precisa-de-você, a contagem das que aguardam você. A segunda contagem fica oculta quando for zero |
| Borda direita, não pronto | A palavra Iniciando, Inalcançável ou Incompatibilidade de versão, e sem contagens |
Um agente durável acessado pelo seu socket, ou por http://127.0.0.1 ou http://localhost, é local. Qualquer outra URL é remote.
A seção fica abaixo dos seus spaces. Ela se move para cima deles enquanto qualquer agente durável tiver uma conversa que aguarda você, e volta para baixo quando a última for respondida. Sem nenhum agente durável anexado, a seção não é exibida.
Com "Mostrar apenas painéis que precisam de você" ativo, a seção lista apenas os agentes duráveis que aguardam você. Toque em uma linha em qualquer estado para abrir a lista de conversas daquele agente durável.
A lista de conversas
A tela inicial de um agente durável lista suas conversas da mesma forma que um aplicativo de mensagens lista seus chats.

O que aguarda você vem primeiro, depois as outras conversas abertas, da mais recente para a mais antiga. As encerradas vêm a seguir, sob o rótulo Encerradas. Cada linha mostra o título, sua marca de estado, a hora de sua última atividade e uma linha abaixo: a pergunta pendente, caso contrário o subtítulo do agente durável. Uma linha aguardando também conta suas perguntas abertas. Uma linha sem título exibe "Conversa sem título".
Toque em uma linha aberta para abri-la no Chat. Toque em uma linha encerrada para visualizá-la, em modo somente leitura. Uma conversa encerrada tem um botão Reabrir quando o agente durável puder reabri-la.
As linhas abertas vêm dos dados do próprio painel, portanto são exibidas imediatamente. As encerradas vêm do agente durável, que o Collie consulta uma vez por visita e novamente quando uma conversa é aberta ou encerrada, nunca em cada verificação periódica.
| no rodapé da lista | quando |
|---|---|
| Carregar mais | O agente durável tem mais de 100 conversas. Cada toque lê as próximas 100 |
| "Este agente durável não mantém uma lista de suas conversas." | O agente durável respondeu que não mantém uma lista |
| "O agente durável não respondeu. Tente novamente em instantes." | O agente durável não respondeu à leitura |
| "O agente durável usa wire v2, este Collie usa v1. Atualize o Collie ou o SDK do agente." | O Collie recusou o agente durável por sua versão de wire (Recibos) |
| "Não foi possível carregar as conversas. Tente novamente." | A leitura falhou no caminho |
Um agente durável que não mantém histórico mostra apenas as conversas abertas, sem o grupo Fechadas e sem nota. Uma lista já desenhada permanece visível quando uma leitura posterior falha.
Uma pergunta no telefone
A pergunta de um agente durável é um card no chat, abaixo da chamada de ferramenta à qual se refere.

A legenda indica o nome do agente durável, "Precisa da sua resposta · desk". Quando o agente durável define uma expiração, a linha abaixo do título faz a contagem regressiva: "Expira em 4 min", depois "Expira em 40 s", e "Expirado". Após a expiração, os botões continuam visíveis, e o próprio agente durável responde caso você toque neles com atraso.
| tipo | o que o card mostra | limites |
|---|---|---|
permission | Um botão por opção, nas palavras do Collie: Permitir, Sempre permitir, Negar ou Cancelar. O rótulo original do agente durável fica na segunda linha, de forma discreta | Até 6 opções |
choice | Uma linha por opção. Um toque envia a escolha. Com multiple, as linhas alternam sob "Escolha qualquer quantidade" e Enviar transmite a seleção | Até 8 opções |
text | Uma linha para digitação, uma contagem como "12 de 500" e Enviar | 500 caracteres, ou o limite do agente durável de até 2000 |
form | Seus campos empilhados sob um único Enviar: uma linha de texto, uma escolha em lista ou um alternador. Um campo obrigatório exibe Obrigatório | Até 6 campos |
"Sempre permitir" exige dois toques. O primeiro muda o botão para "Toque novamente para sempre permitir" e o nome da ferramenta. O segundo envia. O Collie não oferece essa opção quando a pergunta não cita nenhuma ferramenta.
Quando o Collie precisa cortar ou limpar o texto do agente durável, o card exibe "Texto encurtado" e não oferece "Sempre permitir", já que você não viu o texto completo.
Um card de tipo desconhecido por este Collie exibe o texto original e informa "Esta solicitação não pode ser respondida pelo telefone." Uma conversa desenha as primeiras 5 perguntas como cards, e uma linha "Mostrar mais N" abre o restante.
O que acontece após um toque
Cada toque transporta um request id, e apenas um toque envia uma resposta.
| o que aconteceu | o que o card diz | o que fazer |
|---|---|---|
| O agente durável aceitou a resposta | Nada: o card fecha | Nada |
| O agente durável decidiu primeiro | "Decidido no agente durável." | Nada. O chat mantém uma linha para isso |
| A pergunta expirou antes | "Expirou antes de uma resposta." | Nada. O chat mantém uma linha para isso |
| Outra resposta chegou primeiro | "Já respondida. Este card sumirá na próxima atualização." | Nada |
| A pergunta não estava aberta, e o durable agent não informou o motivo | "Não aceita. A pergunta pode reaparecer em instantes." | Aguarde. Um durable agent reiniciado pergunta de novo |
| A pergunta mudou enquanto você a lia | "Esta solicitação mudou. Leia novamente e toque em uma resposta." | Leia a nova versão e toque de novo |
| A resposta pode não ter chegado | "Não há certeza se a resposta chegou. Tentar novamente envia mais uma vez." | Toque em Tentar novamente. O mesmo ID de requisição é enviado, portanto o durable agent é avisado uma única vez |
| Uma nova tentativa encontrou a pergunta fechada ou alterada | "Pode já ter sido aplicada. Verifique o chat." | Verifique o chat |
| O Collie recusou a resposta | O motivo do Collie, caso contrário "A resposta foi recusada." | Leia o motivo |
| A máquina do durable agent executa uma versão mais antiga do Collie | "Esta máquina executa uma versão mais antiga do Collie e não pode receber respostas aqui. Atualize-a ou responda no durable agent." | Atualize essa máquina |
Recibos
O Collie informa como uma pergunta foi encerrada quando você não a respondeu, e por que um durable agent foi recusado.

| caso | o que você vê |
|---|---|
| A pergunta tem um prazo de expiração | O card exibe o tempo restante abaixo do título |
| Você tocou depois que o durable agent decidiu ou após a expiração | O card congela e exibe "Decidido no durable agent." ou "Expirou antes de uma resposta." |
| Uma pergunta expirou, ou o durable agent decidiu sobre ela, sem nenhum toque seu | Uma linha no chat: "Timed out before an answer:" ou "Decided in the durable agent:", seguida pelo título da pergunta |
| O Collie recusou o durable agent por causa da versão de protocolo | Uma caixa de aviso na página inicial do durable agent e as palavras Version mismatch na linha do painel |
Uma pergunta respondida pelo celular, ou que terminou porque você interrompeu o turno, não deixa essa linha. Seu toque já tinha o próprio cartão.

A caixa de aviso informa qual versão de protocolo cada lado usa, por exemplo "Program speaks wire v2, this Collie speaks v1. Update Collie, or the durable agent's SDK." Atualize o lado mais antigo. Versões contém a regra.
O chat
A conversa de um durable agent abre no Chat, sua única visualização.
| item do durable agent | o que o Chat exibe |
|---|---|
user | Sua própria linha |
reply | A resposta do agente |
thinking | O pensamento do agente |
notice | Uma nota curta na conversa |
markdown | Markdown renderizado: títulos, listas, ênfase, código e links. HTML puro aparece como texto |
code | Um bloco de código, com a linguagem indicada quando o durable agent informou uma |
link | Uma linha de link com seu rótulo ou, caso contrário, o endereço. Apenas links https:// |
tool | Uma chamada de ferramenta: em execução, concluída com saída, com falha ou negada |
Um item de reply, thinking, notice ou markdown que ainda está crescendo tem um cursor no final e nenhum horário. O cursor desaparece quando o texto final chega. Um turno que você interrompeu deixa a nota "stopped".
Sua própria linha
Sua linha aparece na conversa no momento em que você toca em Send, com um relógio pequeno. Quando a cópia do próprio durable agent chega, ela assume o lugar da linha.
| estado | o que a linha mostra |
|---|---|
| Enviando ou enviado | O relógio. O compositor mostra "Sent" quando o durable agent recebeu a mensagem |
| A resposta nunca chegou | "Sending, not confirmed". Send again tenta novamente com o mesmo request id |
| Recusado, ou o turno seguiu em frente | "Not sent", e suas palavras voltam para o campo |
Um durable agent que não repete o request id é associado pelo mesmo texto dentro de 30 segundos. Uma linha que o durable agent nunca responde para de ser exibida após 10 minutos.
Enquanto sua linha for o item mais recente da conversa e o durable agent não tiver respondido, uma linha de três pontos indica que ele está trabalhando.
O cabeçalho
O cabeçalho tem duas linhas. A linha 1 mostra o título da conversa e o selo Experimental.
| a linha 2 mostra | quando |
|---|---|
| "Etapa 2 de 3: Salvar uma nota" | O durable agent relata etapas e uma delas está em execução |
| "42%: enviando" | O durable agent relata uma porcentagem, acompanhada de seu rótulo |
| O subtítulo do durable agent | Sem progresso, ou todas as etapas foram concluídas |
| O workspace | O durable agent não define nenhum destes |
O progresso só aparece enquanto a conversa trabalha ou espera por você.
A faixa
A faixa contém Steer e Stop, seguidos por até 4 botões próprios do durable agent.
O Steer envia seu texto para o turno em andamento em vez de iniciar um novo. O Stop encerra o turno em andamento. Botões indisponíveis no momento ficam esmaecidos no mesmo lugar, sem mover nada.
| botão do durable agent | a regra |
|---|---|
| Rótulo | No máximo 16 caracteres |
| Ícone | Um de 12: play, pause, check, x, refresh, archive, flag, star, send, note, search, more. Qualquer outro nome não renderiza nenhum ícone |
| Ocupado | Um indicador giratório, sem resposta ao toque |
| Desativado | Esmaecido, sem resposta ao toque |
Um toque indica o turno mais recente que o celular registrou. Se a conversa já tiver avançado, nada é executado e o celular avisa: "A conversa avançou, portanto a ação não foi executada." Verifique a situação e toque no botão novamente se ainda quiser executá-la.
O que o painel de um durable agent não tem
Um durable agent não tem tela, portanto seu painel não tem exibição de Terminal, barras de guias ou painéis, nem botões Keys, Type ou Quick. O menu não inclui History, Pane settings nem Pin to top row. A opção Close no menu muda para "Fechar conversa".
Nova conversa e inicializadores
A página Novo de um durable agent se chama Nova conversa e lista os inicializadores do durable agent.
Um inicializador não recebe pastas nem texto: o durable agent decide onde trabalhar. Toque em um, e o durable agent abre uma nova conversa. A página não oferece opções de agent, shell ou comando da máquina. Um durable agent sem inicializadores exibe "O durable agent desta máquina ainda não oferece inicializadores."
Push
Uma pergunta pode enviar um push para seu telefone, dentro dos limites definidos para cada durable agent.
| limite | limite | acima do limite |
|---|---|---|
| Um painel | 3 pushes por minuto | A pergunta aparece no telefone e não envia push |
| Um durable agent em uma máquina | 10 pushes por minuto | O mesmo |
| Um durable agent em uma máquina | 30 pushes por hora | Um push, "Um durable agent em {host} está fazendo muitas solicitações", depois nenhum push desse durable agent por uma hora |
O push diz "Permissão necessária em" e o nome do painel. Um durable agent pode adicionar seu próprio título, com no máximo 60 caracteres, e uma linha, com no máximo 120. O Collie envia um push para uma pergunta apenas uma vez por máquina, durable agent e chamada de ferramenta; portanto, uma pergunta feita novamente após uma reinicialização é exibida e não envia push. Pushes de um durable agent contém o restante.
Mascaramento
Com o mascaramento de segredos ativado (COLLIE_REDACT, ativado por padrão), o Collie mascara segredos nos títulos e subtítulos da lista de conversas de um durable agent.
Em uma crew
O painel do lead tem uma seção Durable agents para cada máquina da crew. O durable agent de um membro adiciona o nome do membro à linha 2, por exemplo pi-durable, local, workshop, e os durable agents do próprio lead não mencionam nenhuma máquina. Uma pergunta em qualquer máquina move essa seção para cima dos espaços. Durable agents em uma crew indica quem responde pelo quê.