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

# Olostep + Vercel AI SDK Integratie

> Geef AI SDK-agenten live webzoekopdrachten, scraping, crawling en geciteerde antwoorden met kant-en-klare Olostep-tools

De Olostep AI SDK-integratie biedt agenten gebouwd met de [Vercel AI SDK](https://ai-sdk.dev) kant-en-klare tools voor live webdata. Olostep is een webzoek-, scraping- en crawling-API: een API om webdata te zoeken, te extraheren en te structureren. Geef de tools door aan `generateText` of `streamText` en het model beslist wanneer te zoeken, scrapen of crawlen.

[Installeer van npm →](https://www.npmjs.com/package/@olostep/ai-sdk)

## Functies

Het pakket biedt 6 tools:

> **Scrape**
>
> Scrape elke URL en retourneer schone markdown, met JavaScript-rendering

> **Search**
>
> Doorzoek het live web en retourneer titels, URL's en beschrijvingen

> **Answer**
>
> Beantwoord een vraag van het live web, met bron-URL's

> **Map**
>
> Lijst de URL's op een website, optioneel gerangschikt op een query

> **Crawl**
>
> Crawl een site vanaf een start-URL en retourneer de markdown van elke pagina

> **Batch**
>
> Scrape een lijst van URL's in één batch en retourneer de markdown van elk

## Installatie

```bash npm theme={null}
npm install @olostep/ai-sdk ai zod
```

```bash yarn theme={null}
yarn add @olostep/ai-sdk ai zod
```

```bash pnpm theme={null}
pnpm add @olostep/ai-sdk ai zod
```

Werkt met AI SDK 5, 6 en 7, Zod 3.25+ of 4, en Node.js 18+.

## Setup

Stel je Olostep API-sleutel in als een omgevingsvariabele:

```bash theme={null}
export OLOSTEP_API_KEY=your-api-key-here
```

Of in je `.env` bestand:

```
OLOSTEP_API_KEY=your-api-key-here
```

Verkrijg je API-sleutel van het [Olostep Dashboard](https://www.olostep.com/dashboard).

## Snelle Start

Geef alle Olostep-tools door aan het model met `olostepTools()`:

```typescript theme={null}
import { generateText, stepCountIs } from 'ai';
import { olostepTools } from '@olostep/ai-sdk';

const { text } = await generateText({
  model: 'openai/gpt-5-mini',
  tools: olostepTools(),
  stopWhen: stepCountIs(5),
  prompt: 'Lees de release-opmerkingen van Next.js 15 en lijst de breaking changes op, met bronnen.',
});

console.log(text);
```

`stopWhen` laat het model tools over meerdere stappen aanroepen, bijvoorbeeld eerst zoeken en dan het beste resultaat scrapen. De modelstring gebruikt de [Vercel AI Gateway](https://vercel.com/docs/ai-gateway). Je kunt ook elk AI SDK-provider model doorgeven, zoals `openai('gpt-5-mini')` van `@ai-sdk/openai`.

### Kies Individuele Tools

Geef het model alleen de tools die het nodig heeft:

```typescript theme={null}
import { olostepScrape, olostepSearch } from '@olostep/ai-sdk';

const tools = {
  scrape: olostepScrape(),
  search: olostepSearch(),
};
```

## Beschikbare Tools

De toolnamen hieronder zijn de sleutels die worden gebruikt door `olostepTools()`.

### scrape

`olostepScrape()`. Scrape een enkele URL en retourneer de inhoud als markdown.

**Input:**

**url** `string` *required*

De URL van de pagina om te scrapen

**waitBeforeScraping** `number`

Milliseconden wachten voor JavaScript-zware pagina's om te renderen (0 tot 10000)

**Retourneert:** `{ url, markdown }`

### search

`olostepSearch()`. Doorzoek het live web.

**Input:**

**query** `string` *required*

De zoekopdracht

**limit** `number` (default: 10)

Maximum aantal resultaten (1 tot 20)

**Retourneert:** `{ query, results: [{ title, url, description }] }`

### answer

`olostepAnswer()`. Zoek en lees het live web om een vraag te beantwoorden, met bronnen.

**Input:**

**task** `string` *required*

De vraag of onderzoekstaak

**Retourneert:** `{ answer, sources }`

### map

`olostepMap()`. Ontdek de URL's op een website.

**Input:**

**url** `string` *required*

De website om in kaart te brengen

**searchQuery** `string`

Rangschik URL's op relevantie voor deze query

**topN** `number`

Maximum aantal URL's om te retourneren (1 tot 500)

**Retourneert:** `{ url, urls }`

### crawl

`olostepCrawl()`. Crawl een website vanaf een start-URL en retourneer de markdown van elke pagina. De tool wacht tot de crawl is voltooid voordat hij retourneert.

**Input:**

**url** `string` *required*

De URL om mee te beginnen met crawlen

**maxPages** `number` (default: 5)

Maximum aantal pagina's om te crawlen (1 tot 25)

**includeUrls** `array`

Alleen URL's crawlen die overeenkomen met deze glob-patronen, bijv. `["/docs/**"]`

**Retourneert:** `{ url, pages: [{ url, markdown }] }`

### batch

`olostepBatch()`. Scrape een lijst van URL's in één batch en retourneer de markdown van elke pagina. De tool wacht tot de batch is voltooid voordat hij retourneert.

**Input:**

**urls** `array` *required*

De URL's om te scrapen (1 tot 20)

**Retourneert:** `{ pages: [{ url, markdown }] }`

> [!NOTE]
>
> De crawl- en batchtools zijn beperkt tot 25 pagina's en 20 URL's per oproep om de toolresultaten klein genoeg te houden voor het model. Voor grotere taken, roep de [Crawls](https://docs.olostep.com/features/crawls.md) en [Batches](https://docs.olostep.com/features/batches.md) API's direct aan met de [Node.js SDK](https://docs.olostep.com/sdks/node-js.md).

## Opties

Elke tool, en `olostepTools()`, accepteert dezelfde opties:

```typescript theme={null}
olostepTools({
  apiKey: 'olostep_...',   // standaard is process.env.OLOSTEP_API_KEY
  maxCharacters: 20_000,   // max pagina-inhoud geretourneerd aan het model, per pagina
  timeoutSeconds: 300,     // hoe lang crawl- en batchtools wachten tot de taak is voltooid
});
```

**apiKey** `string`

Olostep API-sleutel. Standaard ingesteld op de `OLOSTEP_API_KEY` omgevingsvariabele.

**maxCharacters** `number` (default: 20000)

Maximum aantal tekens van pagina-inhoud geretourneerd aan het model per pagina. Langere pagina's worden ingekort.

**timeoutSeconds** `number` (default: 300)

Hoe lang de crawl- en batchtools wachten tot de taak is voltooid, in seconden.

## Streaming Voorbeeld

Gebruik dezelfde tools met `streamText`, bijvoorbeeld in een Next.js route handler:

```typescript app/api/chat/route.ts theme={null}
import { convertToModelMessages, streamText, stepCountIs, type UIMessage } from 'ai';
import { olostepTools } from '@olostep/ai-sdk';

export async function POST(req: Request) {
  const { messages }: { messages: UIMessage[] } = await req.json();

  const result = streamText({
    model: 'openai/gpt-5-mini',
    system: 'Je bent een onderzoeksassistent. Gebruik de webtools en citeer je bronnen.',
    messages: await convertToModelMessages(messages),
    tools: olostepTools(),
    stopWhen: stepCountIs(5),
  });

  return result.toUIMessageStreamResponse();
}
```

## Populaire Gebruiksscenario's

> **Onderzoeksassistent**
>
> 1. Het model gebruikt `search` of `answer` om bronnen te vinden
> 2. Het gebruikt `scrape` om de meest relevante pagina's te lezen
> 3. Het retourneert een samenvatting met bron-URL's

> **Docs-bewuste Codeeragent**
>
> 1. Het model gebruikt `map` met een `searchQuery` om de juiste documentatiepagina's te vinden
> 2. Het gebruikt `batch` of `crawl` om ze te lezen
> 3. Het schrijft code tegen de huidige API in plaats van te gokken

> **Concurrentie- en Prijsbewaking**
>
> 1. Een geplande taak roept `generateText` aan met `scrape` en `batch`
> 2. Het model extraheert prijzen of wijzigingen van elke pagina
> 3. Je code vergelijkt ze met de laatste run en stuurt waarschuwingen

## Beste Praktijken

> **Geef Alleen de Nodige Tools Door**
>
> De beschrijving van elke tool wordt naar het model gestuurd. Minder tools betekent minder tokens en minder verkeerde toolkeuzes. Voor een chat die alleen pagina's leest, zijn `scrape` en `search` vaak voldoende.

> **Stel een Stappenlimiet In**
>
> Stel altijd `stopWhen` in (bijvoorbeeld `stepCountIs(5)`) zodat het model tooloproepen kan ketenen maar niet eindeloos kan blijven herhalen.

> **Verlaag maxCharacters voor Lange Pagina's**
>
> Paginainhoud is het grootste deel van de tokenrekening. Als je veel pagina's crawlt of batcht, verlaag `maxCharacters` zodat alle resultaten in het contextvenster van het model passen.

> **Verhoog timeoutSeconds voor Grote Crawls**
>
> Crawl- en batchtools wachten tot de taak is voltooid. Als je time-outs tegenkomt, verhoog `timeoutSeconds`, of verlaag `maxPages`.

## Problemen Oplossen

> **Authenticatie Mislukt**
>
> **Fout**: "Ongeldige API-sleutel"
>
> **Oplossingen**:
>
> * Controleer je API-sleutel in het [dashboard](https://www.olostep.com/dashboard)
> * Zorg ervoor dat `OLOSTEP_API_KEY` is ingesteld waar je code draait (bijvoorbeeld in de omgevingsvariabelen van je Vercel-project)
> * Of geef de sleutel direct door met `olostepTools({ apiKey })`

> **Het Model Roept de Tools Niet Aan**
>
> **Oplossingen**:
>
> * Stel `stopWhen` in, anders stopt de generatie na de eerste stap
> * Gebruik een model dat toolaanroepen ondersteunt
> * Noem het web in je prompt of systeembericht, bijvoorbeeld "gebruik de webtools en citeer je bronnen"

> **Crawl of Batch Loopt Vast**
>
> **Oplossingen**:
>
> * Verhoog `timeoutSeconds`
> * Verlaag `maxPages` of geef minder URL's door
> * Zorg ervoor dat de eigen tijdslimiet van de serverloze functie langer is dan `timeoutSeconds`

> **Contextlengte Overschreden**
>
> **Oplossingen**:
>
> * Verlaag `maxCharacters`
> * Gebruik `map` met `searchQuery` om minder, relevantere pagina's te kiezen voordat je ze leest

## Prijzen

Olostep rekent kosten op basis van API-gebruik, onafhankelijk van de AI SDK:

* **Scrapes**: Betaal per scrape
* **Zoeken en Antwoorden**: Betaal per verzoek
* **Batches**: Betaal per URL in batch
* **Crawls**: Betaal per gecrawlde pagina
* **Maps**: Betaal per kaartoperatie

Bekijk de huidige prijzen op [olostep.com/pricing](https://www.olostep.com/pricing).

## Ondersteuning

> **[GitHub](https://github.com/olostep-api/olostep-ai-sdk)**
>
> Broncode en problemen

> **[Ondersteuning Email](mailto:info@olostep.com)**
>
> Email: [info@olostep.com](mailto:info@olostep.com)

> **[AI SDK Docs](https://ai-sdk.dev/docs)**
>
> Leer over de Vercel AI SDK

> **[Documentatie](https://docs.olostep.com)**
>
> Blader door de volledige API-documentatie

## Gerelateerde Bronnen

> **[Scrapes API](https://docs.olostep.com/features/scrapes.md)**
>
> Leer over het Scrapes eindpunt

> **[Crawls API](https://docs.olostep.com/features/crawls.md)**
>
> Leer over het Crawls eindpunt

> **[Mastra Integratie](https://docs.olostep.com/integrations/mastra.md)**
>
> Bouw agenten met Mastra

> **[LangChain Integratie](https://docs.olostep.com/integrations/langchain.md)**
>
> Bouw AI-agenten met LangChain


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.