> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ciclo de vida do Sandbox

export const SandboxConfigHint = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    return <Note>Before running the example code in this document, please ensure you have properly configured environment variables. For details, please refer to <a href="/docs/pt-BR/guides/sandbox-your-first-agent-sandbox#configure-environment-variables">Configure Environment Variables</a>.</Note>;
  }
};

Uma sandbox continua em execução até que seu tempo limite expire ou até que você a interrompa manualmente. Por padrão, uma nova sandbox permanece ativa por 5 minutos. Você pode definir um tempo limite diferente ao criar a sandbox, atualizar o tempo limite enquanto ela está em execução, inspecionar informações da sandbox ou encerrá-la quando terminar.

<SandboxConfigHint />

## Criar uma sandbox com um tempo limite

Defina o tempo limite no momento da criação quando souber por quanto tempo o trabalho deve ser executado.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  // Timeout is in milliseconds.
  const sandbox = await Sandbox.create({ timeoutMs: 60_000 })

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  # Timeout is in seconds.
  sandbox = Sandbox.create(timeout=60)

  sandbox.kill()
  ```
</CodeGroup>

## Atualizar o tempo limite

Você pode usar o método `setTimeout` para redefinir por quanto tempo a sandbox deve permanecer ativa. Isso é útil quando a atividade do usuário continua após o tempo limite original ter expirado.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.create({ timeoutMs: 60_000 })

  await sandbox.setTimeout(300_000)

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create(timeout=60)

  sandbox.set_timeout(300)

  sandbox.kill()
  ```
</CodeGroup>

## Obter informações da sandbox

Você pode usar o método `getInfo` em JavaScript ou o método `get_info` em Python para inspecionar o ID da sandbox, o template, os metadados, o estado atual e o tempo de expiração.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.create({ timeoutMs: 60_000 })

  const info = await sandbox.getInfo()

  console.log(info.sandboxId)
  console.log(info.templateId)
  console.log(info.state)
  console.log(info.startedAt)
  console.log(info.endAt)

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create(timeout=60)

  info = sandbox.get_info()

  print(info.sandbox_id)
  print(info.template_id)
  print(info.state)
  print(info.started_at)
  print(info.end_at)

  sandbox.kill()
  ```
</CodeGroup>

## Encerrar uma sandbox

Você pode usar o método `kill` para desligar uma sandbox antes que seu tempo limite expire quando você não precisar mais dela.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.create({ timeoutMs: 60_000 })
  const sandboxId = sandbox.sandboxId

  await sandbox.kill()

  // Or kill by ID.
  await Sandbox.kill(sandboxId)
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create(timeout=60)
  sandbox_id = sandbox.sandbox_id

  sandbox.kill()

  # Or kill by ID.
  Sandbox.kill(sandbox_id)
  ```
</CodeGroup>

## Próximas etapas

* Para manter o estado de uma sandbox para uso posterior, consulte [Persistência de Sandbox](/docs/pt-BR/guides/sandbox-persistence).
* Para criar estados salvos reutilizáveis, consulte [Snapshot de Sandbox](/docs/pt-BR/guides/sandbox-snapshot).
