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

# Configuratie

Configureer modellen, verbind externe berichtenkanalen, stel on-demandmodus in en begrijp de functies voor servicebetrouwbaarheid van je NovitaClaw-instantie.

## On-demandmodus

On-demandmodus pauzeert je sandbox automatisch na een configureerbare periode van inactiviteit en hervat deze bij toegang. Ideaal voor AI-assistenten met weinig verkeer, webhook-gebaseerde IM-integraties en geplande taken. Geen facturering terwijl de sandbox is gepauzeerd.

### Een on-demand-sandbox starten

```bash Bash icon="terminal" theme={"system"}
# Default idle timeout: 300 seconds
novitaclaw launch --type on-demand

# Custom idle timeout (60–86400 seconds)
novitaclaw launch --type on-demand --idle-timeout 600
```

<Warning>
  On-demandmodus kan niet worden gecombineerd met `--mode node`.
</Warning>

### Handmatig pauzeren en hervatten

```bash Bash icon="terminal" theme={"system"}
# Pause a sandbox (zero billing while paused)
novitaclaw pause <SANDBOX_ID>

# Resume a sandbox (~1s to restore to pre-pause state)
novitaclaw resume <SANDBOX_ID>
```

### Runtimeconfiguratie

```bash Bash icon="terminal" theme={"system"}
# Update idle timeout (60–86400 seconds)
novitaclaw config set <SANDBOX_ID> idle-timeout 600

# Update sandbox lifetime timeout (300–2592000 seconds)
novitaclaw config set <SANDBOX_ID> timeout 3600
```

Wijzigingen worden onmiddellijk van kracht. De agent in de sandbox pikt de nieuwe configuratie op tijdens de volgende controlecyclus.

### Hoe het werkt

1. **Inactiviteitsdetectie** — Een agent-daemon in de sandbox controleert periodiek de OpenClaw-sessieactiviteit en schrijft de status naar `/tmp/.novitaclaw-status.json`.
2. **Automatisch pauzeren** — De server-side inactiviteitsmonitor leest de agentstatus. Na 2 opeenvolgende inactiviteitscontroles wordt de sandbox automatisch gepauzeerd.
3. **Automatisch hervatten** — Inkomende webhook-aanvragen of toegang via de Web-UI hervatten automatisch een gepauzeerde sandbox.
4. **Cron pre-wakeup** — De scheduler scant gepauzeerde sandboxes op aankomende cron-schema's en hervat ze \~120 seconden voordat de volgende taak wordt uitgevoerd, zodat cron-taken op tijd draaien.

### Status controleren

```bash Bash icon="terminal" theme={"system"}
# View sandbox status (does not trigger resume when paused)
novitaclaw status <SANDBOX_ID>

# List shows sandbox_type and state columns
novitaclaw list
```

Terwijl de sandbox is gepauzeerd, retourneert de opdracht `status` nog steeds volledige URL-informatie (gelezen uit de database zonder verbinding te maken met de sandbox), zodat scripts adressen kunnen opslaan zonder een hervatting te activeren.

## Modellen configureren

Je instantie is standaard vooraf geconfigureerd met een door Novita gehost model. Als je de modellen wilt wijzigen die je agent gebruikt, ga je naar `Settings → Config`, klik je op **Raw** om over te schakelen naar de Raw JSON5-weergave en klik je vervolgens op de knop voor weergeven naast "secrets redacted" om de volledige configuratie te tonen.

Werk de volgende twee secties bij:

### Stap 1: Registreer het model onder je provider

Voeg een nieuw object toe aan de array `models` binnen `models.providers.novita`:

```json theme={"system"}
{
  "models": {
    "providers": {
      "novita": {
        "models": [
          {
            "id": "model-id",
            "name": "display name",
            "reasoning": true,
            "input": ["text"],
            "contextWindow": 200000,
            "maxTokens": 50000
          }
        ]
      }
    }
  }
}
```

### Stap 2: Stel het in als primair model of fallback

Werk het veld `model` onder `agents.defaults` bij om naar je model te verwijzen met de indeling `provider/model-id`:

```json theme={"system"}
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "novita/model-id",
        "fallbacks": ["novita/fallback-model-id"]
      }
    }
  }
}
```

Klik op **Update** om op te slaan. Elke LLM die beschikbaar is op het [Novita-platform](https://novita.ai/model-api/product/llm-api) wordt ondersteund. Providers van derden kunnen ook worden geconfigureerd — wanneer je je eigen LLM meebrengt, betaal je alleen voor de runtime van de sandbox, niet voor het gebruik van Novita-modellen.

<Frame>
  <img src="https://mintcdn.com/novitaai/boSLMxY3k06MQY9D/nl/guides/images/openclaw-cli/model-config.png?fit=max&auto=format&n=boSLMxY3k06MQY9D&q=85&s=018f92682b243c2932acec2990300405" alt="NovitaClaw-modelconfiguratie" width="1280" height="920" data-path="nl/guides/images/openclaw-cli/model-config.png" />
</Frame>

## Kanalen verbinden

OpenClaw ondersteunt externe berichtenkanalen, zodat je agent buiten de Web-UI bereikbaar is. Kanalen zijn standaard uitgeschakeld en moeten worden geconfigureerd.

### Telegram

Verbind je agent met Telegram als berichtenkanaal. Er worden twee verbindingsmodi ondersteund: **Polling** (standaard, long-poll — geen openbare URL nodig) en **Webhook** (HTTP-push — het beste voor on-demand-sandboxes).

**Stap 1: Maak een Telegram-bot**

1. Open Telegram en zoek [@BotFather](https://t.me/BotFather).
2. Stuur `/newbot` en volg de prompts om je bot een naam te geven.
3. Kopieer de bottoken die BotFather verstrekt.

#### Modus 1: Polling

Pollingmodus gebruikt long-poll-verbindingen. Geen openbare URL vereist — het eenvoudigst te configureren.

<Warning>
  Pollingmodus wordt niet aanbevolen voor on-demand-sandboxes. Wanneer de sandbox automatisch pauzeert, valt de verbinding weg en gaan inkomende berichten verloren. Gebruik Webhook-modus voor on-demand-sandboxes.
</Warning>

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair telegram <SANDBOX_ID> \
  --bot-token <BOT_TOKEN>
```

#### Modus 2: Webhook

Webhookmodus vereist dat de sandbox een HTTP-poort beschikbaar stelt voor het ontvangen van Telegram-push-events. Het meest geschikt voor on-demand-sandboxes — inkomende webhook-aanvragen activeren automatisch hervatten.

<Tip>
  De `--webhook-url` is de openbare URL die aan je sandbox is toegewezen. Voer de volgende opdracht uit om deze op te halen:

  ```bash Bash icon="terminal" theme={"system"}
  novitaclaw status <SANDBOX_ID> --json | jq -r '.telegram_webhook_url'
  ```
</Tip>

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair telegram <SANDBOX_ID> \
  --bot-token <BOT_TOKEN> \
  --mode webhook \
  --webhook-url <WEBHOOK_URL> \
  --webhook-secret <SECRET>
```

#### Optionele webhookparameters

| Parameter        | Standaard           | Beschrijving                    |
| ---------------- | ------------------- | ------------------------------- |
| `--webhook-host` | `0.0.0.0`           | Bind-adres van de webhookserver |
| `--webhook-port` | `8787`              | Luisterpoort van de webhook     |
| `--webhook-path` | `/webhook/telegram` | URL-pad van de webhook          |
| `--dm-policy`    | `pairing`           | DM-beleid                       |

#### Koppelingsflow

Bij het eerste gesprek antwoordt de bot met een koppelingscode:

```bash Bash icon="terminal" theme={"system"}
# List pending pairing requests
novitaclaw pair list <SANDBOX_ID> --channel telegram

# Approve a pairing request
novitaclaw pair approve <SANDBOX_ID> --channel telegram --code <CODE>
```

#### Modusvergelijking

|                                 | Polling                                             | Webhook                                   |
| ------------------------------- | --------------------------------------------------- | ----------------------------------------- |
| Verbinding                      | Uitgaand (long-poll)                                | Inkomend (HTTP-push)                      |
| Openbare poort                  | Niet vereist                                        | Vereist                                   |
| Installatiecomplexiteit         | Laag                                                | Gemiddeld (aanvullende secrets)           |
| On-demand automatisch hervatten | Niet ondersteund (verbinding valt weg bij pauzeren) | Ondersteund (webhook activeert hervatten) |
| Aanbevolen voor                 | Always-on-sandboxes, ontwikkeling                   | On-demand-sandboxes, productie-IM         |

### Slack

Verbind je agent met Slack als berichtenkanaal. Er worden twee verbindingsmodi ondersteund: **Socket** (standaard, WebSocket — geen openbare URL nodig) en **HTTP** (Events API-webhook — het beste voor on-demand-sandboxes).

#### Modus 1: Socket

Socketmodus gebruikt een WebSocket-verbinding. Geen openbare URL vereist — het eenvoudigst te configureren.

<Warning>
  Socketmodus wordt niet aanbevolen voor on-demand-sandboxes. Wanneer de sandbox automatisch pauzeert, valt de WebSocket-verbinding weg en gaan inkomende berichten verloren. Gebruik HTTP-modus voor on-demand-sandboxes.
</Warning>

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair slack <SANDBOX_ID> \
  --bot-token xoxb-... \
  --app-token xapp-...
```

#### Modus 2: HTTP

HTTP-modus gebruikt Slack Events API-webhooks. Het meest geschikt voor on-demand-sandboxes — inkomende webhook-aanvragen activeren automatisch hervatten.

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair slack <SANDBOX_ID> \
  --bot-token xoxb-... \
  --mode http \
  --signing-secret <SECRET>
```

#### Optionele HTTP-parameters

| Parameter        | Standaard        | Beschrijving                    |
| ---------------- | ---------------- | ------------------------------- |
| `--webhook-host` | `0.0.0.0`        | Bind-adres van de webhookserver |
| `--webhook-port` | `8788`           | Luisterpoort van de webhook     |
| `--webhook-path` | `/webhook/slack` | URL-pad van de webhook          |

#### Koppelingsflow

Bij het eerste gesprek antwoordt de bot met een koppelingscode:

```bash Bash icon="terminal" theme={"system"}
# List pending pairing requests
novitaclaw pair list <SANDBOX_ID> --channel slack

# Approve a pairing request
novitaclaw pair approve <SANDBOX_ID> --channel slack --code <CODE>
```

#### Modusvergelijking

|                                 | Socket                                              | HTTP                                      |
| ------------------------------- | --------------------------------------------------- | ----------------------------------------- |
| Verbinding                      | WebSocket (uitgaand)                                | HTTP-push (inkomend)                      |
| Openbare poort                  | Niet vereist                                        | Vereist                                   |
| Installatiecomplexiteit         | Laag                                                | Gemiddeld (aanvullende secrets)           |
| On-demand automatisch hervatten | Niet ondersteund (verbinding valt weg bij pauzeren) | Ondersteund (webhook activeert hervatten) |
| Aanbevolen voor                 | Always-on-sandboxes, ontwikkeling                   | On-demand-sandboxes, productie-IM         |

### Kanaalstatus

`novitaclaw status` toont webhook-URL's voor alle geconfigureerde kanalen:

```bash Bash icon="terminal" theme={"system"}
novitaclaw status <SANDBOX_ID>
# Shows: Feishu Webhook, Telegram Webhook, Slack Webhook (when configured)

# JSON mode
novitaclaw status <SANDBOX_ID> --json | jq -r '.feishu_webhook_url'
novitaclaw status <SANDBOX_ID> --json | jq -r '.telegram_webhook_url'
novitaclaw status <SANDBOX_ID> --json | jq -r '.slack_webhook_url'
```

### Feishu

Verbind je agent met Feishu (Lark) als berichtenkanaal. Er worden twee verbindingsmodi ondersteund: **Webhook** (HTTP-push) en **Event** (WebSocket long-poll).

#### Vereisten: Maak een Feishu-app

1. Open het [Feishu Open Platform](https://open.feishu.cn/app), log in en klik op **Create Custom App**.

2. Kopieer op de pagina **Credentials & Basic Info**:
   * **App ID** (indeling: `cli_xxx`)
   * **App Secret**

3. Ga naar **Permission Management**, klik op **Batch Import** en plak de volgende machtigingen:

   ```json theme={"system"}
   {
     "scopes": {
       "tenant": [
         "im:message", "im:message:send_as_bot", "im:message:readonly",
         "im:message.p2p_msg:readonly", "im:message.group_at_msg:readonly",
         "im:resource", "im:chat.access_event.bot_p2p_chat:read",
         "im:chat.members:bot_access"
       ],
       "user": ["im:chat.access_event.bot_p2p_chat:read"]
     }
   }
   ```

4. Ga naar **App Capabilities > Bot** en schakel de botfunctionaliteit in.

5. Maak een versie en publiceer de app.

#### Modus 1: Webhook

Webhookmodus vereist dat de sandbox een HTTP-poort beschikbaar stelt voor het ontvangen van Feishu-push-events. Het meest geschikt voor on-demand-sandboxes — inkomende webhook-aanvragen activeren automatisch hervatten.

**Aanvullende referenties:** Ga op het Feishu Open Platform naar **Development Configuration > Events & Callbacks > Encryption Strategy** en kopieer:

* **Verification Token**
* **Encrypt Key**

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair feishu <SANDBOX_ID> \
  --app-id cli_xxx \
  --app-secret secret_xxx \
  --mode webhook \
  --verification-token tok_xxx \
  --encrypt-key key_xxx
```

Op de pagina **Event Subscription** van het Feishu Open Platform:

1. Selecteer **Request URL Configuration**
2. Voer de Webhook-URL in — haal deze op via:
   ```bash Bash icon="terminal" theme={"system"}
   novitaclaw status <SANDBOX_ID> --json | jq -r '.feishu_webhook_url'
   ```
3. Voeg event toe: `im.message.receive_v1`

#### Modus 2: Event

Eventmodus gebruikt een Feishu WebSocket long-poll-verbinding. Geen openbare URL vereist — het eenvoudigst te configureren.

<Warning>
  Eventmodus wordt niet aanbevolen voor on-demand-sandboxes. Wanneer de sandbox automatisch pauzeert, valt de WebSocket-verbinding weg en gaan inkomende berichten verloren. Gebruik Webhook-modus voor on-demand-sandboxes.
</Warning>

```bash Bash icon="terminal" theme={"system"}
novitaclaw pair feishu <SANDBOX_ID> \
  --app-id cli_xxx \
  --app-secret secret_xxx
```

Na de configuratie, op de pagina **Event Subscription** van het Feishu Open Platform:

1. Selecteer **Use Long Connection to Receive Events**
2. Voeg event toe: `im.message.receive_v1`

<Note>
  Zorg ervoor dat de gateway actief is (`novitaclaw status <SANDBOX_ID>`) voordat je opslaat, anders kan Feishu de long-connection-configuratie mogelijk niet opslaan.
</Note>

#### Optionele webhookparameters

| Parameter        | Standaard        | Beschrijving                    |
| ---------------- | ---------------- | ------------------------------- |
| `--webhook-host` | `0.0.0.0`        | Bind-adres van de webhookserver |
| `--webhook-port` | `3000`           | Luisterpoort van de webhook     |
| `--webhook-path` | `/feishu/events` | URL-pad van de webhook          |

#### Koppelingsflow

Feishu gebruikt standaard een `pairing`-strategie. Bij het eerste gesprek antwoordt de bot met een koppelingscode die via de CLI moet worden goedgekeurd:

```bash Bash icon="terminal" theme={"system"}
# List pending pairing requests
novitaclaw pair list <SANDBOX_ID> --channel feishu

# Approve a pairing request
novitaclaw pair approve <SANDBOX_ID> --channel feishu --code <CODE>
```

#### Modusvergelijking

|                                 | Event                             | Webhook                                   |
| ------------------------------- | --------------------------------- | ----------------------------------------- |
| Verbinding                      | WebSocket long-poll (uitgaand)    | HTTP-push (inkomend)                      |
| Openbare poort                  | Niet vereist                      | Vereist (standaard 3000)                  |
| Installatiecomplexiteit         | Laag (alleen App ID + Secret)     | Gemiddeld (aanvullende Token + Key)       |
| On-demand automatisch hervatten | Niet ondersteund                  | Ondersteund (webhook activeert hervatten) |
| Aanbevolen voor                 | Always-on-sandboxes, ontwikkeling | On-demand-sandboxes, productie-IM         |

## Servicebetrouwbaarheid

Alle kernservices in de sandbox worden beheerd door systemd voor betrouwbaarheid op productieniveau:

| Service                     | Beschrijving                      | Automatisch herstarten |
| --------------------------- | --------------------------------- | ---------------------- |
| OpenClaw Gateway            | Agent-runtime en WebSocket-server | ✅                      |
| Web Terminal (ttyd)         | Browsergebaseerde terminaltoegang | ✅                      |
| File Manager (gohttpserver) | Webgebaseerd bestandsbeheer       | ✅                      |

**Automatisch herstel na crash:** Als de Gateway herhaaldelijk crasht, voert het systeem automatisch diagnostiek uit, probeert het herstel uit en zet het de laatst bekende werkende configuratie terug vanuit een back-up — zonder dat handmatige tussenkomst nodig is.

**Automatische configuratieback-up:** Elke configuratieschrijfactie maakt een automatische back-up. Als een slechte configuratie een crash veroorzaakt, herstelt het herstelproces vanuit de meest recente geldige back-up.
