Bright Data Tools
@mastra/brightdata 套件會將 Bright Data SDK 包裝為相容於 Mastra 的 Tool。它提供網頁搜尋與網頁擷取的 factory function。每個函式都會回傳以 createTool() 建立的 Tool,並包含完整的 Zod 輸入/輸出 schema。
搜尋 Tool 以 Bright Data 的 SERP API 為基礎,擷取 Tool 則使用 Web Unlocker。兩者都能避開 bot 偵測與 CAPTCHA。
安裝「安裝」的直接連結
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/brightdata zod
pnpm add @mastra/brightdata zod
yarn add @mastra/brightdata zod
bun add @mastra/brightdata zod
快速開始「快速開始」的直接連結
使用 createBrightDataTools() 以共用設定取得兩個 Tool:
import { createBrightDataTools } from '@mastra/brightdata'
const { webSearch, webFetch } = createBrightDataTools()
// Or pass an explicit API key:
// const { webSearch, webFetch } = createBrightDataTools({ apiKey: 'brd-...' })
你也可以分別建立每個 Tool:
import { createBrightDataSearchTool, createBrightDataFetchTool } from '@mastra/brightdata'
const searchTool = createBrightDataSearchTool()
const fetchTool = createBrightDataFetchTool({ apiKey: 'brd-...' })
根據預設,所有 Tool 都會從環境中讀取 BRIGHTDATA_API_TOKEN。你可以明確傳入 { apiKey } 來覆寫此值。
設定「設定」的直接連結
所有 factory function 都接受來自 @brightdata/sdk 的 BrightDataClientOptions:
apiKey?:
BRIGHTDATA_API_TOKEN 環境變數。bdclient constructor 支援的其他欄位(例如 timeout、webUnlockerZone、serpZone 與 rateLimit)也能透過同一個 options 物件傳入。
createBrightDataTools()「createbrightdatatools」的直接連結
回傳一個物件,其中包含共用設定的兩個 Tool。
import { createBrightDataTools } from '@mastra/brightdata'
const tools = createBrightDataTools({ apiKey: 'brd-...' })
// tools.webSearch, tools.webFetch
回傳值: { webSearch, webFetch }
createBrightDataSearchTool()「createbrightdatasearchtool」的直接連結
建立一個透過 Bright Data SERP API 搜尋 Google 的 Tool,並回傳解析後的自然搜尋結果。
Tool ID: brightdata-search
import { createBrightDataSearchTool } from '@mastra/brightdata'
const searchTool = createBrightDataSearchTool()
輸入「輸入」的直接連結
query:
country?:
us 或 gb)。start?:
10 會回傳每頁 10 筆結果的第二頁。輸出「輸出」的直接連結
query:
results:
link:
title:
description:
currentPage:
1。createBrightDataFetchTool()「createbrightdatafetchtool」的直接連結
建立一個透過 Bright Data Web Unlocker 擷取網頁,並以 Markdown 回傳頁面內容的 Tool。
Tool ID: brightdata-fetch
import { createBrightDataFetchTool } from '@mastra/brightdata'
const fetchTool = createBrightDataFetchTool()
輸入「輸入」的直接連結
url:
輸出「輸出」的直接連結
url:
content:
Agent 範例「Agent 範例」的直接連結
下列範例示範結合搜尋與擷取功能的研究 Agent:
import { Agent } from '@mastra/core/agent'
import { createBrightDataTools } from '@mastra/brightdata'
const { webSearch, webFetch } = createBrightDataTools()
const agent = new Agent({
id: 'research-agent',
name: 'Research Agent',
model: 'anthropic/claude-sonnet-4-6',
instructions:
'You are a research assistant. Use the search tool to find relevant pages, then use the fetch tool to read full Markdown content from the best results.',
tools: {
webSearch,
webFetch,
},
})
環境變數「環境變數」的直接連結
| 變數 | 說明 |
|---|---|
BRIGHTDATA_API_TOKEN | 你的 Bright Data API token。若未將 apiKey 傳給 factory function,則預設使用此值。 |