メインコンテンツへスキップ
Olostep Mastra統合は、Mastra.aiエージェントに強力なウェブデータ抽出機能をもたらします。Olostepはウェブ検索、スクレイピング、クロールAPIであり、ウェブデータを検索、抽出、構造化するためのAPIです。どのウェブサイトからでも自律的に検索、スクレイピング、分析、データ構造化を行うインテリジェントなAIエージェントを構築できます。 npmからインストール →

機能

この統合は、ウェブデータを自動的に抽出するための4つの強力なAPIを提供します:

ウェブサイトをスクレイプ

任意の単一URLから複数の形式(Markdown、HTML、JSON、テキスト)でコンテンツを抽出

URLを一括スクレイプ

最大100,000のURLを並行して処理。大規模なデータ抽出に最適

クロールを作成

リンクをたどって自律的にウェブサイト全体を発見しスクレイプ

マップを作成

サイト構造分析とコンテンツ発見のためにウェブサイトからすべてのURLを抽出

インストール

npm install @olostep/mastra-tools

セットアップ

1. パッケージをインストール

npm install @olostep/mastra-tools @mastra/core

2. 統合をインポートして登録

Mastraの設定ファイルにて:
import { Mastra } from '@mastra/core';
import { createOlostepIntegration } from '@olostep/mastra-tools';

// Olostep統合を作成
const olostep = createOlostepIntegration();

// APIを登録(これによりエージェントで利用可能になります)
olostep.registerApis();

// Mastra設定に追加
export const mastra = new Mastra({
  config: {
    integrations: [olostep],
    // ... 他の設定
  },
});

3. APIキーを設定

Olostep APIキーを環境変数として設定:
export OLOSTEP_API_KEY=your-api-key-here
または.envファイルにて:
OLOSTEP_API_KEY=your-api-key-here
APIキーはOlostepダッシュボードから取得できます。

利用可能なAPI

この統合は、Mastraエージェントが使用できる4つのAPIを公開しています:

scrapeWebsite

単一のURLからコンテンツを抽出します。複数の形式とJavaScriptレンダリングをサポート。 使用例:
  • 特定のページの変更を監視
  • eコマースサイトから商品情報を抽出
  • ニュース記事やブログ投稿からデータを収集
  • コンテンツ集約のためのコンテンツを取得
スキーマパラメータ:
apiKey
string
必須
Olostep APIキー
url_to_scrape
string
必須
スクレイプするウェブサイトのURL(http://またはhttps://を含む必要があります)
formats
array
デフォルト:"['markdown']"
出力形式: [‘html’, ‘markdown’, ‘json’, ‘text’]
country
string
ロケーション特有のコンテンツのための国コード(例:“US”, “GB”, “CA”)
wait_before_scraping
number
JavaScriptレンダリングのための待機時間(ミリ秒)(0-10000)
parser
string
特殊な抽出のためのオプションのパーサーID(例:“@olostep/amazon-product”)
レスポンス:
  • id - スクレイプID
  • url_to_scrape - スクレイプされたURL
  • result.markdown_content - Markdownコンテンツ
  • result.html_content - HTMLコンテンツ
  • result.json_content - JSONコンテンツ
  • result.text_content - テキストコンテンツ
  • result.screenshot_hosted_url - スクリーンショットURL(利用可能な場合)
  • result.markdown_hosted_url - ホストされたMarkdown URL
  • object - オブジェクトタイプ(“scrape”)
  • created - Unixタイムスタンプ
使用例:
// エージェントまたはワークフロー内で
const result = await mastra.callApi({
  integrationName: 'olostep',
  api: 'scrapeWebsite',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      url_to_scrape: 'https://example.com',
      formats: ['markdown'],
      country: 'US',
    }
  }
});

batchScrape

複数のURLを並行して処理(最大100,000件まで)。大規模なデータ抽出に最適。 使用例:
  • 商品カタログ全体をスクレイプ
  • 複数の検索結果からデータを抽出
  • スプレッドシートからのURLリストを処理
  • 大量コンテンツの抽出
スキーマパラメータ:
apiKey
string
必須
Olostep APIキー
batch_array
array
必須
urlとオプションのcustom_idフィールドを持つオブジェクトの配列例: [{"url":"https://example.com","custom_id":"site1"}]
formats
array
デフォルト:"['markdown']"
すべてのURLの出力形式
country
string
ロケーション特有のスクレイピングのための国コード
wait_before_scraping
number
JavaScriptレンダリングのための待機時間
parser
string
特殊な抽出のためのオプションのパーサーID
レスポンス:
  • batch_id - バッチID(後で結果を取得するために使用)
  • status - 処理ステータス
  • object - オブジェクトタイプ(“batch”)
使用例:
const result = await mastra.callApi({
  integrationName: 'olostep',
  api: 'batchScrape',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      batch_array: [
        { url: 'https://example.com', custom_id: 'site1' },
        { url: 'https://test.com', custom_id: 'site2' },
      ],
      formats: ['markdown'],
    }
  }
});

createCrawl

リンクをたどって自律的にウェブサイト全体を発見しスクレイプ。ドキュメントサイト、ブログ、コンテンツリポジトリに最適。 使用例:
  • ドキュメントサイト全体をクロールしてアーカイブ
  • ウェブサイトからすべてのブログ投稿を抽出
  • ウェブコンテンツからナレッジベースを構築
  • ウェブサイト構造の変化を監視
スキーマパラメータ:
apiKey
string
必須
Olostep APIキー
start_url
string
必須
max_pages
number
デフォルト:"10"
クロールする最大ページ数
ページ上のリンクをたどるかどうか
formats
array
デフォルト:"['markdown']"
スクレイプされたコンテンツの形式
country
string
ロケーション特有のクロールのためのオプションの国コード
parser
string
特殊なコンテンツ抽出のためのオプションのパーサーID
レスポンス:
  • id - クロールID(後で結果を取得するために使用)
  • object - オブジェクトタイプ(“crawl”)
  • status - クロールステータス
  • created - Unixタイムスタンプ
使用例:
const result = await mastra.callApi({
  integrationName: 'olostep',
  api: 'createCrawl',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      start_url: 'https://docs.example.com',
      max_pages: 50,
      follow_links: true,
      formats: ['markdown'],
    }
  }
});

createMap

コンテンツ発見とサイト構造分析のためにウェブサイトからすべてのURLを抽出。 使用例:
  • サイトマップとサイト構造図を構築
  • 一括スクレイプ前にすべてのページを発見
  • 壊れたページや欠落ページを発見
  • SEO監査と分析
スキーマパラメータ:
apiKey
string
必須
Olostep APIキー
url
string
必須
リンクを抽出するウェブサイトのURL(http://またはhttps://を含む必要があります)
search_query
string
URLをフィルタリングするためのオプションの検索クエリ(例:“blog”)
top_n
number
返されるURLの数を制限
include_urls
array
特定のパスを含めるためのグロブパターン(例:[ “/blog/**” ])
exclude_urls
array
特定のパスを除外するためのグロブパターン(例:[ “/admin/**” ])
レスポンス:
  • id - マップID
  • object - オブジェクトタイプ(“map”)
  • url - ウェブサイトURL
  • total_urls - 発見されたURLの総数
  • urls - 発見されたURLの配列
使用例:
const result = await mastra.callApi({
  integrationName: 'olostep',
  api: 'createMap',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      url: 'https://example.com',
      search_query: 'blog',
      top_n: 100,
      include_urls: ['/blog/**'],
    }
  }
});

エージェントでの使用

基本的なエージェント例

ウェブサイトをスクレイプできるエージェントを作成:
import { Agent } from '@mastra/core';
import { createOlostepIntegration } from '@olostep/mastra-tools';

const olostep = createOlostepIntegration();
olostep.registerApis();

const agent = new Agent({
  name: 'web-researcher',
  instructions: `
    あなたはウェブリサーチアシスタントです。ユーザーがウェブサイトから情報を取得するように依頼した場合、
    Olostep scrapeWebsite APIを使用してコンテンツを抽出し、それを要約して提供してください。
  `,
  model: 'openai/gpt-4',
});

// エージェントはMastraのAPIシステムを通じてOlostep APIを使用できます

エージェントワークフロー例

コンテンツを発見しスクレイプするリサーチワークフローを構築:
// 1. ウェブサイトをマッピングしてURLを発見
const mapResult = await mastra.callApi({
  integrationName: 'olostep',
  api: 'createMap',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      url: 'https://example.com',
      include_urls: ['/blog/**'],
    }
  }
});

// 2. 発見されたURLを一括スクレイプ
const batchResult = await mastra.callApi({
  integrationName: 'olostep',
  api: 'batchScrape',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      batch_array: mapResult.urls.slice(0, 10).map(url => ({ url })),
      formats: ['markdown'],
    }
  }
});

// 3. エージェントで結果を処理
const summary = await agent.generate({
  messages: [{
    role: 'user',
    content: `このコンテンツを要約してください: ${batchResult.result.markdown_content}`
  }]
});

人気のユースケース

リサーチエージェント

自律的にトピックをリサーチするエージェントを構築:
ワークフロー:
  1. ユーザーが尋ねる: “AIトレンドをリサーチ”
  2. エージェントがcreateMapを使用して関連ページを発見
  3. エージェントがbatchScrapeを使用してコンテンツを抽出
  4. エージェントが分析し、発見を要約
  5. 構造化されたリサーチレポートを返す
ワークフロー:
  1. 毎日のモニタリングをスケジュール
  2. scrapeWebsiteを使用して競合ページを確認
  3. 前回のデータと比較
  4. 重要な変更をアラート
  5. 週次レポートを生成
ワークフロー:
  1. createCrawlを使用してすべてのブログ投稿を発見
  2. batchScrapeを使用してコンテンツを抽出
  3. AIで処理して主要トピックを抽出
  4. ナレッジベースに保存
  5. コンテンツカレンダーを生成

Eコマースインテリジェンス

商品と価格をモニタリング:
エージェントワークフロー:
1. 商品ページをスクレイプ(scrapeWebsite)
2. 構造化データを抽出(パーサーを使用)
3. 価格変動を追跡
4. アラートを生成
5. データベースを更新

SEO分析

ウェブサイトの構造とコンテンツを分析:
エージェントワークフロー:
1. ウェブサイト構造をマッピング(createMap)
2. 重要なセクションをクロール(createCrawl)
3. コンテンツの質を分析
4. SEOの機会を特定
5. 推奨事項を生成

専門パーサー

Olostepは人気のあるウェブサイト向けの事前構築されたパーサーを提供しています。parserパラメータで使用:

Google検索

@olostep/google-search抽出: 検索結果、タイトル、スニペット、URL

Googleマップ

@olostep/google-maps抽出: ビジネス情報、レビュー、評価、場所

パーサーの使用

parserパラメータにパーサーIDを追加:
const result = await mastra.callApi({
  integrationName: 'olostep',
  api: 'scrapeWebsite',
  payload: {
    data: {
      apiKey: process.env.OLOSTEP_API_KEY,
      url_to_scrape: 'https://www.amazon.com/dp/PRODUCT_ID',
      formats: ['json'],
      parser: '@olostep/amazon-product',
    }
  }
});
パーサーはそのウェブサイトタイプに特有の構造化データを自動的に抽出します。

ベストプラクティス

3〜5以上のURLをスクレイプする場合は、複数のscrapeWebsite呼び出しの代わりにbatchScrapeを使用してください。バッチ処理は:
  • より高速(並列処理)
  • よりコスト効果が高い
  • 管理が容易
  • レート制限に対してより良い
JavaScriptが多用されているサイトの場合、wait_before_scrapingパラメータを使用:
  • シンプルなサイト: 0-1000ms
  • 動的なサイト: 2000-3000ms
  • JavaScriptが多用されている場合: 5000-8000ms
最適な待機時間を見つけるために異なる値でテストしてください。
人気のあるウェブサイト(Amazon、LinkedIn、Google)には事前構築されたパーサーを使用:
  • 構造化データを自動的に取得
  • より信頼性の高い抽出
  • カスタムパーシングの必要なし
  • Olostepによって維持管理
バッチ、クロール、マップ操作は非同期です:
  • 返されたID(batch_id、crawl_id、map_id)を保存
  • 完了をポーリングするか、Webhookを使用
  • 取得のための別のワークフローを設定
常にAPI呼び出しをtry-catchブロックでラップ:
try {
  const result = await mastra.callApi({
    integrationName: 'olostep',
    api: 'scrapeWebsite',
    payload: { data: {...} }
  });
} catch (error) {
  // 認証、レート制限、またはネットワークエラーを処理
  console.error('スクレイピングに失敗しました:', error.message);
}
レート制限に注意してください:
  • リクエストを遅延で間隔を空ける
  • 可能な場合はバッチ処理を使用
  • Olostepダッシュボードで使用状況を監視
  • 必要に応じてプランをアップグレード

完全な例

リサーチエージェントを構築する完全な例はこちら:
import { Mastra } from '@mastra/core';
import { Agent } from '@mastra/core';
import { createOlostepIntegration } from '@olostep/mastra-tools';

// Olostep統合を作成して登録
const olostep = createOlostepIntegration();
olostep.registerApis();

// Mastraを初期化
export const mastra = new Mastra({
  config: {
    integrations: [olostep],
    // ... 他の設定
  },
});

// リサーチエージェントを作成
const researchAgent = new Agent({
  name: 'research-assistant',
  instructions: `
    あなたは検索、抽出、構造化されたウェブデータを扱うリサーチアシスタントです。
    ユーザーがトピックをリサーチするように依頼した場合:
    1. OlostepのcreateMapを使用して関連ページを発見
    2. batchScrapeを使用して複数のソースからコンテンツを抽出
    3. 発見を分析し要約
    4. 構造化されたリサーチレポートを提示
  `,
  model: 'openai/gpt-4',
});

// エージェントを使用
async function researchTopic(topic: string) {
  // ステップ1: 関連ページを発見
  const mapResult = await mastra.callApi({
    integrationName: 'olostep',
    api: 'createMap',
    payload: {
      data: {
        apiKey: process.env.OLOSTEP_API_KEY!,
        url: `https://example.com/search?q=${topic}`,
        top_n: 20,
      }
    }
  });

  // ステップ2: 発見されたページをスクレイプ
  const batchResult = await mastra.callApi({
    integrationName: 'olostep',
    api: 'batchScrape',
    payload: {
      data: {
        apiKey: process.env.OLOSTEP_API_KEY!,
        batch_array: mapResult.urls.slice(0, 10).map(url => ({ url })),
        formats: ['markdown'],
      }
    }
  });

  // ステップ3: エージェントで分析
  const summary = await researchAgent.generate({
    messages: [{
      role: 'user',
      content: `このリサーチデータに基づいて、${topic}の包括的な要約を提供してください`
    }]
  });

  return summary;
}

トラブルシューティング

エラー: “無効なAPIキー”解決策:
  • ダッシュボードからAPIキーを確認
  • APIキーが環境変数に設定されていることを確認
  • APIキーがアクティブであることを確認
  • APIキーに余分なスペースがないか確認
エラー: “APIが見つかりません”または”統合が登録されていません”解決策:
  • 統合を作成した後にregisterApis()が呼び出されていることを確認
  • 統合がMastra設定に追加されていることを確認
  • 統合名が’olostep’であることを確認
  • 変更後にMastraサーバーを再起動
エラー: コンテンツフィールドが空解決策:
  • wait_before_scraping時間を増やす
  • ウェブサイトがログインを必要としているか確認
  • 異なる形式(HTML対Markdown)を試す
  • URLがアクセス可能であることを確認
  • サイトが自動アクセスをブロックしていないか確認
エラー: “レート制限を超過しました”解決策:
  • リクエストを遅延で間隔を空ける
  • 個別のスクレイプの代わりにバッチ処理を使用
  • Olostepプランをアップグレード
  • ダッシュボードでレート制限を確認
エラー: モジュールが見つからないまたは型エラー解決策:
  • @mastra/coreがインストールされていることを確認
  • TypeScriptバージョンの互換性を確認
  • すべての依存関係がインストールされていることを確認
  • 再ビルド: npm run build

価格

OlostepはAPI使用量に基づいて課金され、Mastraとは独立しています:
  • スクレイプ: スクレイプごとに課金
  • バッチ: バッチ内のURLごとに課金
  • クロール: クロールしたページごとに課金
  • マップ: マップ操作ごとに課金
現在の価格はolostep.com/pricingで確認できます。

サポート

Mastra統合に関するヘルプが必要ですか?

関連リソース

始めましょう

ウェブスクレイピング機能を持つAIエージェントを構築する準備はできましたか?

パッケージをインストール

npmから@olostep/mastra-toolsをインストール
OlostepとMastraを使用して、ウェブデータを検索、抽出、構造化できるインテリジェントなAIエージェントを構築しましょう!