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

# Verouderde sandbox-kloon

export const SandboxBetaVersionWarning = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    return <Warning>The following legacy features require the legacy SDK and CLI versions listed in <Link href="/docs/nl/guides/sandbox-legacy-e2b-compatible" target="self">Legacy SDKs & CLI</Link>. Please note that legacy features may be less stable than production releases. If you encounter any issues while using these features, please <Link href="https://meetings-na2.hubspot.com/junyu" target="_blank">contact us</Link>.</Warning>;
  }
};

<Warning>
  Deze verouderde pagina wordt behouden voor gebruikers die nog steeds de 1.x- of beta-SDK-lijn gebruiken. Nieuwe SDK 2.x-integraties moeten de huidige sandboxdocumentatie volgen.
</Warning>

In de huidige fase hebben AI-agents te maken met een fundamentele beperking bij het uitvoeren van complexe taken: het "n of 1"-probleem — AI en ontwikkelaars zijn beperkt tot één enkele werkomgeving voor seriële redenering. Dit patroon leidt tot verschillende belangrijke problemen:

1. **Experimentconflicten en omgevingsvervuiling**. Wanneer een AI-agent meerdere oplossingen probeert, kunnen experimentele codewijzigingen de hoofdworkflow van de ontwikkelaar verstoren of de huidige runtime-omgeving vervuilen. Zodra een experiment misgaat, is herstel vaak alleen mogelijk via een rollback, en waardevolle verkenningspaden kunnen niet worden behouden.

2. **Onvermogen om meerdere oplossingen parallel te verkennen**. Omdat de AI-agent beperkt is tot één enkele omgeving, kan deze alleen sequentieel verschillende benaderingen testen. Deze seriële modus is niet alleen inefficiënt, maar beperkt vooral ook de breedte van AI-verkenning — het is niet mogelijk om meerdere parallelle hypotheses of implementatiebenaderingen gelijktijdig te valideren.

3. **Beperkte schaalbaarheid van rekenkracht**. Bij taken die "Wide-Research" vereisen (bijv. 100 oplossingen gelijktijdig vergelijken, meerdere implementatieversies in batch genereren), beperkt de architectuur met één enkele omgeving fundamenteel de mogelijkheid om taakverwerking te parallelliseren.

De functie **"Sandbox Clone"** maakt de overgang van "Deep-Research" naar "Wide-Research" mogelijk:

1. **Multi-tijdlijnverkenningsarchitectuur**: Net als bij een beslissingsboom kan de AI-agent vanuit dezelfde basistoestand starten en meerdere onafhankelijke sandboxkopieën maken, die elk een ander oplossingspad verkennen zonder elkaar te verstoren.
2. **Echte parallelle rekencapaciteit**: Door grote taken op te splitsen in batch-subtaken kan de AI-agent zijn rekenkracht met tientallen of zelfs honderden keren opschalen, en tegelijkertijd tientallen of honderden verkenningstakken verwerken.
3. **Experimentomgeving zonder risico**: Gekloonde sandboxes zijn volledig geïsoleerd, waardoor de AI vrij kan experimenteren en verschillende mogelijkheden kan testen zonder de oorspronkelijke omgeving of de hoofdworkflow van de ontwikkelaar te beïnvloeden.
4. **Efficiënt gebruik van resources**: Hoewel meerdere sandboxinstanties gelijktijdig kunnen worden gestart, kan het totale verbruik van rekenresources binnen redelijke grenzen worden gehouden door takken (sandboxinstanties) die niet langer waardevol zijn dynamisch te beheren en tijdig te beëindigen.

Deze mogelijkheid stelt AI-agents in staat om huidige prestatieknelpunten te doorbreken, en over te gaan van het geven van theoretische suggesties naar het leveren van betrouwbare oplossingen die parallel zijn geverifieerd en daadwerkelijk zijn getest, waarmee het vermogen om autonomoom te verkennen, te itereren en complexe problemen op te lossen echt wordt bereikt.

<SandboxBetaVersionWarning />

## Terminologie

* **Oorspronkelijke sandbox**: De oorspronkelijke sandboxinstantie die wordt gekloond.
* **Nieuwe sandbox**: De nieuwe sandboxinstantie die via de kloonbewerking wordt gemaakt.

## Functieoverzicht

De sandbox-kloonfunctie ondersteunt momenteel de volgende twee scenario's:

* Een sandbox in de status Running klonen
* Een sandbox in de status Paused klonen

### Een Running-sandbox klonen

**Tijdens het kloonproces:**

* De oorspronkelijke sandbox wordt tijdens het klonen kort onderbroken;
* De sandboxinstantie is tijdens de onderbreking niet beschikbaar;
* De duur van de onderbreking ligt dicht bij de tijd die nodig is voor één pause-bewerking.

**Nadat het klonen is voltooid:**

**Oorspronkelijke sandbox:**

* Status wordt hersteld naar running;
* De bestaande pause-record wordt vernieuwd naar een nieuwe pause-record, gebaseerd op de huidige sandboxstatus;
* Er wordt een nieuwe snapshottemplate-record gegenereerd (om deze snapshottemplate te verwijderen, moet je eerst zowel de oorspronkelijke sandbox als de gekloonde sandboxes beëindigen);

**Nieuwe sandbox:**

* Status is running;
* Direct klaar voor gebruik.

### Een Paused-sandbox klonen

**Tijdens het kloonproces:**

Wanneer de oorspronkelijke sandbox zich in een paused-status bevindt:

* Het kloonproces zal de oorspronkelijke sandbox niet starten;
* De oorspronkelijke sandbox blijft in de paused-status.

**Nadat het klonen is voltooid:**

**Oorspronkelijke sandbox:**

* De bestaande pause-record wordt niet gewist;
* Er wordt een nieuwe snapshottemplate-record gegenereerd (om deze snapshottemplate te verwijderen, moet je eerst zowel de oorspronkelijke sandbox als de gekloonde sandboxes beëindigen);

**Nieuwe sandbox:**

* Status is running;
* Direct klaar voor gebruik.

### Overervingsregels voor attributen van de nieuwe sandbox

| Attribuut   | Overgenomen |
| ----------- | ----------- |
| auto resume | Ja          |
| auto pause  | Nee         |

## Parameterbeschrijving

* `count`: Het aantal sandboxinstanties dat moet worden gekloond. De minimumwaarde is 1, en de maximumwaarde mag de limiet voor gelijktijdig draaiende sandboxinstanties van het platform niet overschrijden (zie: [Limiet voor sandboxquota](/docs/nl/guides/sandbox-quota-limit));
* `strict`: Of er strikt moet worden gekloond volgens het aantal dat is opgegeven in de parameter `count`; standaard is dit false.
  * `true`: Als het aantal succesvol gekloonde instanties kleiner is dan `count`, wordt een kloonfout geretourneerd; succesvol aangemaakte sandboxes worden automatisch vrijgegeven.
  * `false`: Retourneert het daadwerkelijke aantal succesvol gekloonde sandboxinstanties.
* `timeout`(`timeoutMs`): De timeout voor het klonen van sandboxinstanties.
  * Indien niet opgegeven:
    * Wanneer de oorspronkelijke sandbox zich in de status running bevindt, neemt deze de timeoutconfiguratie daarvan over;
    * Wanneer de oorspronkelijke sandbox zich in de status paused bevindt, wordt de standaardwaarde van 5 minuten gebruikt.

## Retourwaarde

Na een succesvolle kloonbewerking wordt een object geretourneerd met de volgende eigenschappen:

| Eigenschap             | Beschrijving                                                   |
| ---------------------- | -------------------------------------------------------------- |
| `sandboxes`            | Lijst met succesvol gekloonde sandboxinstanties                |
| `count`                | Aantal succesvol gekloonde sandboxes                           |
| `snapshot_template_id` | Snapshottemplate-ID die tijdens het kloonproces is gegenereerd |

## Codevoorbeelden

<CodeGroup>
  ```python Python icon="python" theme={"system"}
  from novita_sandbox.core import Sandbox

  # Create a sandbox
  sandbox = Sandbox.create(template="base")
  # clone
  clones = Sandbox.clone(sandbox.sandbox_id, 2)

  print("snapshot:", clones.snapshot_template_id)
  for sbx in clones:
      print("clone sandbox:", sbx.sandbox_id)
  ```

  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from '@novita-sandbox/core'

  // Create a sandbox
  const sandbox = await Sandbox.create('base')

  // clone
  const sbxClones = await Sandbox.clone(sandbox.sandboxId, { count: 2 })

  console.log("snapshot:", sbxClones.snapshotTemplateId)
  for (const idx in sbxClones.sandboxes) {
      console.log("clone sandboxID[" + idx + "]:", sbxClones.sandboxes[idx].sandboxId)
  }
  ```
</CodeGroup>

Daarnaast kun je ook de Novita Sandbox CLI gebruiken om een opgegeven sandboxinstantie te klonen:

```bash Bash icon="terminal" theme={"system"}
# novita-sandbox-cli sandbox clone [sandboxID] -c [count] -s [strict] -t [timeout]
novita-sandbox-cli sandbox clone 0r0efkbfwzfp9p7qpc1c -c 2
```
