---
title: "Sessões"
description: "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.

<a id="stop-resume-and-idle-auto-stop"></a>

## 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.


<a id="what-stop-and-delete-keep"></a>

## O que a parada e a exclusão preservam

:::warning[A exclusão é permanente]
Excluir uma sessão destrói seu sandbox permanentemente. O Beeuni mantém o registro da sessão e a ramificação do Git, então você ainda pode recuperar o trabalho enviado. Tudo o que não foi enviado será perdido.
:::

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.

<a id="labels"></a>

## 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](/docs/pt/work/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.

<a id="session-access"></a>

## 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](/docs/pt/project/models#provider-keys-and-member-access).

**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.

<a id="admins-can-open-every-session"></a>

### 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.

<a id="find-a-session-by-owner-or-access"></a>

### 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.

:::warning[Uma sessão mantém seu proprietário]
Remover alguém da conta não transfere as sessões dessa pessoa para outra. A política de acesso permanece como estava. Um gerente de projeto ainda pode parar ou excluir essas sessões — excluí-las é a maneira de revogar uma sessão que não tem mais proprietário.
:::

<a id="sharing-a-preview"></a>

## 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](/docs/pt/work/runtime). Para saber como uma sessão seleciona seu agente, consulte [Agentes](/docs/pt/project/agents). Para sessões iniciadas por um agendamento ou webhook, consulte [Gatilhos](/docs/pt/connect/triggers). Para aplicar o trabalho da sessão à ramificação padrão, consulte [Solicitações de alteração](/docs/pt/work/change-requests).
