> ## 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 統合

> AI SDK エージェントにライブウェブ検索、スクレイピング、クロール、引用付き回答を提供するための Olostep ツール

Olostep AI SDK 統合は、[Vercel AI SDK](https://ai-sdk.dev) で構築されたエージェントにライブウェブデータ用の準備済みツールを提供します。Olostep はウェブ検索、スクレイピング、クロールの API です：ウェブデータを検索、抽出、構造化するための API です。`generateText` または `streamText` にツールを渡すと、モデルが検索、スクレイピング、クロールのタイミングを決定します。

[npm からインストール →](https://www.npmjs.com/package/@olostep/ai-sdk)

## 機能

このパッケージは6つのツールを提供します：

> **スクレイプ**
>
> 任意の URL をスクレイプし、JavaScript レンダリングを伴うクリーンなマークダウンを返します

> **検索**
>
> ライブウェブを検索し、タイトル、URL、説明を返します

> **回答**
>
> ライブウェブからの質問に、ソース URL と共に回答します

> **マップ**
>
> ウェブサイト上の URL をリストし、オプションでクエリによってランク付けします

> **クロール**
>
> 開始 URL からサイトをクロールし、各ページのマークダウンを返します

> **バッチ**
>
> 一括で URL のリストをスクレイプし、各ページのマークダウンを返します

## インストール

```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
```

AI SDK 5, 6, 7、Zod 3.25+ または 4、Node.js 18+ で動作します。

## セットアップ

Olostep API キーを環境変数として設定します：

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

または `.env` ファイルに：

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

API キーは [Olostep ダッシュボード](https://www.olostep.com/dashboard) から取得してください。

## クイックスタート

すべての Olostep ツールを `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: 'Next.js 15 のリリースノートを読み、破壊的変更をソースと共にリストしてください。',
});

console.log(text);
```

`stopWhen` を使用すると、モデルは複数のステップにわたってツールを呼び出すことができ、たとえば最初に検索し、次に最良の結果をスクレイプします。モデル文字列は [Vercel AI Gateway](https://vercel.com/docs/ai-gateway) を使用します。また、`@ai-sdk/openai` の `openai('gpt-5-mini')` など、任意の AI SDK プロバイダーモデルを渡すこともできます。

### 個別ツールの選択

必要なツールだけをモデルに与えます：

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

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

## 利用可能なツール

以下のツール名は `olostepTools()` で使用されるキーです。

### scrape

`olostepScrape()`。単一の URL をスクレイプし、その内容をマークダウンとして返します。

**入力:**

**url** `string` *required*

スクレイプするページの URL

**waitBeforeScraping** `number`

JavaScript が多いページのレンダリングを待つミリ秒数 (0 から 10000)

**返り値:** `{ url, markdown }`

### search

`olostepSearch()`。ライブウェブを検索します。

**入力:**

**query** `string` *required*

検索クエリ

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

最大結果数 (1 から 20)

**返り値:** `{ query, results: [{ title, url, description }] }`

### answer

`olostepAnswer()`。質問に答えるためにライブウェブを検索し、読み、ソースを提供します。

**入力:**

**task** `string` *required*

質問または調査タスク

**返り値:** `{ answer, sources }`

### map

`olostepMap()`。ウェブサイト上の URL を発見します。

**入力:**

**url** `string` *required*

マッピングするウェブサイト

**searchQuery** `string`

このクエリに関連する URL をランク付け

**topN** `number`

返す URL の最大数 (1 から 500)

**返り値:** `{ url, urls }`

### crawl

`olostepCrawl()`。開始 URL からウェブサイトをクロールし、各ページのマークダウンを返します。このツールはクロールが完了するまで待機します。

**入力:**

**url** `string` *required*

クロールを開始する URL

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

クロールする最大ページ数 (1 から 25)

**includeUrls** `array`

これらのグロブパターンに一致する URL のみをクロールします。例：`["/docs/**"]`

**返り値:** `{ url, pages: [{ url, markdown }] }`

### batch

`olostepBatch()`。一括で URL のリストをスクレイプし、各ページのマークダウンを返します。このツールはバッチが完了するまで待機します。

**入力:**

**urls** `array` *required*

スクレイプする URL (1 から 20)

**返り値:** `{ pages: [{ url, markdown }] }`

> [!NOTE]
>
> クロールとバッチツールは、モデルの結果が小さくなるように、1 回の呼び出しで 25 ページと 20 URL に制限されています。より大きなジョブの場合は、[Crawls](https://docs.olostep.com/features/crawls.md) および [Batches](https://docs.olostep.com/features/batches.md) API を [Node.js SDK](https://docs.olostep.com/sdks/node-js.md) で直接呼び出してください。

## オプション

すべてのツール、および `olostepTools()` は同じオプションを受け入れます：

```typescript theme={null}
olostepTools({
  apiKey: 'olostep_...',   // デフォルトは process.env.OLOSTEP_API_KEY
  maxCharacters: 20_000,   // モデルに返されるページごとの最大コンテンツ文字数
  timeoutSeconds: 300,     // クロールとバッチツールがジョブの完了を待つ時間
});
```

**apiKey** `string`

Olostep API キー。デフォルトは `OLOSTEP_API_KEY` 環境変数です。

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

ページごとにモデルに返される最大コンテンツ文字数。長いページは切り捨てられます。

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

クロールとバッチツールがジョブの完了を待つ時間（秒）。

## ストリーミング例

`streamText` を使用して同じツールを使用します。例えば、Next.js のルートハンドラーで：

```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: 'あなたはリサーチアシスタントです。ウェブツールを使用し、ソースを引用してください。',
    messages: await convertToModelMessages(messages),
    tools: olostepTools(),
    stopWhen: stepCountIs(5),
  });

  return result.toUIMessageStreamResponse();
}
```

## 人気のユースケース

> **リサーチアシスタント**
>
> 1. モデルは `search` または `answer` を使用してソースを見つけます
> 2. `scrape` を使用して最も関連性の高いページを読みます
> 3. ソース URL と共に要約を返します

> **ドキュメント対応のコーディングエージェント**
>
> 1. モデルは `map` を `searchQuery` と共に使用して適切なドキュメントページを見つけます
> 2. `batch` または `crawl` を使用してそれらを読みます
> 3. 現在の API に対してコードを書きます

> **競合他社と価格の監視**
>
> 1. スケジュールされたジョブが `scrape` と `batch` を使用して `generateText` を呼び出します
> 2. モデルは各ページから価格や変更を抽出します
> 3. あなたのコードは前回の実行と比較し、アラートを送信します

## ベストプラクティス

> **必要なツールだけを渡す**
>
> 各ツールの説明がモデルに送信されます。ツールが少ないほどトークンが少なく、誤ったツール選択が少なくなります。ページを読むだけのチャットには、`scrape` と `search` だけで十分です。

> **ステップ制限を設定する**
>
> 常に `stopWhen` を設定します（例：`stepCountIs(5)`）。これにより、モデルはツール呼び出しを連鎖できますが、永遠にループすることはできません。

> **長いページに対して maxCharacters を下げる**
>
> ページコンテンツはトークンの最大部分です。多くのページをクロールまたはバッチ処理する場合、`maxCharacters` を下げて、すべての結果がモデルのコンテキストウィンドウに収まるようにします。

> **大規模なクロールには timeoutSeconds を上げる**
>
> クロールとバッチツールはジョブの完了を待ちます。タイムアウトが発生した場合は、`timeoutSeconds` を上げるか、`maxPages` を下げます。

## トラブルシューティング

> **認証に失敗しました**
>
> **エラー**: "無効な API キー"
>
> **解決策**:
>
> * [ダッシュボード](https://www.olostep.com/dashboard) で API キーを確認してください
> * `OLOSTEP_API_KEY` がコードが実行される場所に設定されていることを確認してください（例：Vercel プロジェクトの環境変数）
> * または、`olostepTools({ apiKey })` で直接キーを渡します

> **モデルがツールを呼び出さない**
>
> **解決策**:
>
> * `stopWhen` を設定してください。そうしないと、生成が最初のステップで停止します
> * ツール呼び出しをサポートするモデルを使用してください
> * プロンプトやシステムメッセージでウェブを言及してください。例えば、「ウェブツールを使用し、ソースを引用してください」

> **クロールまたはバッチがタイムアウトする**
>
> **解決策**:
>
> * `timeoutSeconds` を上げる
> * `maxPages` を下げるか、URL を少なくする
> * サーバーレス関数では、関数自体の時間制限が `timeoutSeconds` より長いことを確認してください

> **コンテキスト長を超えました**
>
> **解決策**:
>
> * `maxCharacters` を下げる
> * `map` を `searchQuery` と共に使用して、読む前により関連性の高いページを選択します

## 料金

Olostep は AI SDK とは独立して、API 使用量に基づいて課金されます：

* **スクレイプ**: スクレイプごとに課金
* **検索と回答**: リクエストごとに課金
* **バッチ**: バッチ内の URL ごとに課金
* **クロール**: クロールされたページごとに課金
* **マップ**: マップ操作ごとに課金

現在の料金は [olostep.com/pricing](https://www.olostep.com/pricing) で確認してください。

## サポート

> **[GitHub](https://github.com/olostep-api/olostep-ai-sdk)**
>
> ソースコードと問題

> **[サポートメール](mailto:info@olostep.com)**
>
> メール: [info@olostep.com](mailto:info@olostep.com)

> **[AI SDK ドキュメント](https://ai-sdk.dev/docs)**
>
> Vercel AI SDK について学ぶ

> **[ドキュメント](https://docs.olostep.com)**
>
> 完全な API ドキュメントを閲覧

## 関連リソース

> **[スクレイプ API](https://docs.olostep.com/features/scrapes.md)**
>
> スクレイプエンドポイントについて学ぶ

> **[クロール API](https://docs.olostep.com/features/crawls.md)**
>
> クロールエンドポイントについて学ぶ

> **[Mastra 統合](https://docs.olostep.com/integrations/mastra.md)**
>
> Mastra でエージェントを構築

> **[LangChain 統合](https://docs.olostep.com/integrations/langchain.md)**
>
> LangChain で AI エージェントを構築


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