Saltar para o conteúdo
BeeuniBeeuni
Português
Esc
↑↓navegar↵abrir⌘Jpré-visualizar
Nesta página

Sessões

Uma sessão é uma ramificação do Git e uma sandbox onde o agente trabalha.

Uma sessão é uma unidade de trabalho do agente. O Beeuni cria uma ramificação do Git e provisiona um sandbox para ela. O ID da sessão, o nome da ramificação e o ID do sandbox são o mesmo valor.

Status

Na prática, uma sessão assume um de 4 estados.

Status Significado
provisioning O Beeuni cria a ramificação e solicita o sandbox.
running O sandbox está ativo e acessível.
stopped A sessão está pausada, por você ou pela parada automática por inatividade.
failed O provisionamento falhou.

O banco de dados define mais 3 valores (queued, branching, completed). O Beeuni não os grava em uma sessão atualmente.

Parar, retomar e parada automática por inatividade

Você pode parar uma sessão. Retomar reativa o mesmo sandbox, com o mesmo sistema de arquivos e a mesma identidade de runtime. Apenas os processos em execução e a memória são redefinidos. A conversa do harness padrão continua vinculada à sessão.

O Beeuni também para uma sessão inativa por você:

  • Após 15 minutos de inatividade, em uma sessão normal ou execução de gatilho.
  • Após 2 minutos de inatividade, em uma sessão de trabalho iniciada por outra sessão.

Uma rodada ativa do agente impede a parada. A verificação de manutenção é executada a cada 5 minutos. Portanto, uma parada automática normal ocorre aproximadamente 15 a 20 minutos após a rodada no terminal.

Uma rodada que aguarda uma pessoa não realiza nenhum trabalho: o agente fez uma pergunta ou pede permissão para executar uma ferramenta. Essa rodada mantém o computador ativo por no máximo 2 horas após o Beeuni detectar a espera pela primeira vez. Em uma execução de gatilho ou agendamento, ninguém recebe a solicitação, e o limite é de 30 minutos. Em seguida, o Beeuni encerra a rodada e para o computador. Envie uma mensagem para continuar. Uma chamada de modelo ou a página da sessão aberta conta como atividade e mantém o computador ativo como de costume.

Uma página de sessão que você está usando mantém a sessão ativa. Ela conta como em uso enquanto a guia está visível e você clicou, digitou, rolou ou interagiu com ela nos últimos 10 minutos, e somente quando você pode iniciar sessões no projeto. Uma guia deixada aberta sem nenhuma interação deixa de contar após 10 minutos, então a sessão para aproximadamente 15 a 20 minutos depois. Uma guia aberta por um visualizador somente leitura nunca mantém a sessão ativa. Usar apenas a página mantém uma sessão ativa por no máximo 2 horas após a última rodada do agente; uma nova mensagem inicia uma rodada e reinicia esse limite.

O que a parada e a exclusão preservam

Parar e retomar preservam a identidade e o sistema de arquivos do sandbox. Excluir destrói o sandbox. O Git é o único registro duradouro: o trabalho que o agente confirmar e enviar será preservado; todo o resto, não.

Marcadores

Um marcador classifica uma sessão: bug, customer: eu, worker. Abra o menu ⋯ de uma sessão e escolha Edit labels. O filtro Labels na lista de sessões mostra apenas as sessões que contêm todos os marcadores selecionados. Os marcadores são textos livres, de 1 a 64 caracteres, com no máximo 20 por sessão.

Agentes e scripts também definem marcadores: beeuni sessions new --label worker, beeuni sessions update --label needs-review (dentro de uma sessão, sem um ID, aplica o marcador a essa sessão) ou labels na API e no SDK. Uma sessão também contém um objeto metadata de texto livre para suas próprias chaves — consulte Sessões do SDK.

Runtime

Uma sessão executa um harness, harness padrão ou harness experimental. Consulte Harnesses. O Beeuni armazena o agente e o modelo selecionados quando a sessão é iniciada. Uma sessão em execução mantém seu harness até ser reiniciada ou retomada.

Acesso à sessão

Uma sessão é privada para a pessoa que a criou. O proprietário abre Session access e escolhe uma das 3 opções.

Opção Quem pode abrir a sessão
Only you Somente o proprietário. Esta é a opção padrão.
Specific people O proprietário, além dos membros e grupos escolhidos por ele.
Whole project Todos os membros do projeto.

Todos que têm acesso podem ler a conversa e continuá-la.

Uma sessão compartilhada usa chaves compartilhadas. Depois de compartilhada, uma sessão usa apenas chaves de provedores compartilhadas com todo o projeto, nunca as chaves pessoais de alguém ou a conexão do ChatGPT. Se o modelo usava suas próprias chaves, o compartilhamento o muda para as chaves do projeto daquele provedor. Se o projeto não compartilhar nenhuma chave que execute o modelo, o compartilhamento será recusado e a sessão continuará privada. Consulte Chaves de provedores e acesso de membros.

Somente o proprietário pode alterar isso. Um gerente de projeto que não criou a sessão pode abri-la quando ela for compartilhada com ele, além de pará-la, reiniciá-la ou excluí-la. Ele não pode alterar quem mais pode abri-la. Compartilhar uma sessão com um gerente não lhe transfere a lista de acesso.

Um tipo de sessão não tem proprietário humano: as sessões criadas por um gatilho, que são executadas com a identidade do agente do gatilho. Os gerentes de projeto administram essas sessões. Defina a política para todas elas no próprio gatilho, em Session access — salvar ali também atualiza as sessões que o gatilho já criou.

Administradores podem abrir todas as sessões

O proprietário de uma conta pode permitir que proprietários e administradores da conta abram todas as sessões da conta, inclusive as que os membros mantêm privadas. Ative a opção em Account → Settings → Security → Admins can open every session. Ela vem desativada por padrão.

  • Somente o proprietário da conta pode alterar isso. Um administrador vê a opção, mas não pode ativá-la, então nenhum administrador pode conceder acesso a si mesmo ao trabalho de todos.
  • Os administradores encontram essas sessões na página Sessions do projeto. A barra lateral continua mostrando apenas as sessões que você iniciou ou que foram compartilhadas com você.
  • O acesso é completo. Um administrador pode abrir, ler e continuar a sessão, assim como uma sessão compartilhada com todo o projeto.
  • Os membros podem ver isso. Enquanto a opção estiver ativada, a caixa de diálogo Session access informa que proprietários e administradores podem abrir todas as sessões.
  • Tudo é auditado. Cada alteração é registrada como iam.session_oversight.enable ou iam.session_oversight.disable, e cada sessão que um administrador abre por meio desse recurso é registrada como project.admin_oversight_session_read (no máximo uma vez por administrador e sessão a cada hora).
  • Os tokens de agente e de sandbox nunca recebem esse acesso, mesmo quando iniciados por um administrador.

Encontrar uma sessão pelo proprietário ou pelo acesso

A página Sessions do projeto mostra o proprietário e o acesso de cada sessão na respectiva linha: o avatar e o nome do proprietário (You para as suas sessões), seguidos de um ícone que indica quem pode abri-la: um cadeado para Only the owner, pessoas para Specific people e um globo para Whole project.

Abra Filter na página Sessions para restringir a lista:

  • Owner — uma entrada por pessoa, com uma contagem.
  • Access — Only the owner, Specific people ou Whole project.
  • Grouping → Owner — uma seção por pessoa, com as suas primeiro.

Os filtros combinam com Status, Source e a pesquisa. Reset limpa todos.

Compartilhar uma prévia

Você pode compartilhar a prévia ao vivo de uma sessão por meio de um link público, em modo somente leitura ou interativo. A criação desse link cabe ao proprietário da sessão, pelo mesmo motivo: o link não exige autenticação, então qualquer pessoa que o tenha pode ler a sessão sem entrar. Um gerente de projeto pode listar e revogar os links de uma sessão sem ser seu proprietário — revogar sempre apenas remove o acesso.

Para obter a enumeração completa de status, as variáveis de ambiente injetadas e os endpoints do daemon, consulte Runtime. Para saber como uma sessão seleciona seu agente, consulte Agentes. Para sessões iniciadas por um agendamento ou webhook, consulte Gatilhos. Para aplicar o trabalho da sessão à ramificação padrão, consulte Solicitações de alteração.

Esta página foi útil?