安装
复制
npm install firecrawl-aisdk ai @ai-sdk/openai
复制
FIRECRAWL_API_KEY=fc-your-key
OPENAI_API_KEY=sk-your-key
这些示例使用的是 OpenAI,但 Firecrawl 工具适用于 Vercel AI SDK 支持的任意提供商,包括 Anthropic、Google、Mistral 等。请参阅支持的提供商完整列表。
快速上手
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '抓取 https://firecrawl.dev 并总结其功能',
tools: { scrape: scrapeTool },
});
可用工具
复制
import {
scrapeTool, // Scrape single URL
searchTool, // Search the web
browserTool, // 交互式浏览器会话
agentTool, // Autonomous web agent
mapTool, // Discover URLs on a site
crawlTool, // Crawl multiple pages
batchScrapeTool, // Scrape multiple URLs
extractTool, // Extract structured data
pollTool, // Poll async jobs
statusTool, // Check job status
cancelTool, // Cancel jobs
} from 'firecrawl-aisdk';
示例
爬取
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '抓取 https://firecrawl.dev 并总结它的作用',
tools: { scrape: scrapeTool },
});
console.log(text);
搜索
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { searchTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '搜索 Firecrawl 并总结你的发现',
tools: { search: searchTool },
});
console.log(text);
映射
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { mapTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: 'Map https://docs.firecrawl.dev and list the main sections',
tools: { map: mapTool },
});
console.log(text);
Crawl
pollTool 以检查任务状态。
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { crawlTool, pollTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '爬取 https://docs.firecrawl.dev(限制 3 页)并总结',
tools: { crawl: crawlTool, poll: pollTool },
});
console.log(text);
批量抓取
pollTool 轮询检查任务状态。
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { batchScrapeTool, pollTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: 'Scrape https://firecrawl.dev and https://docs.firecrawl.dev, then compare',
tools: { batchScrape: batchScrapeTool, poll: pollTool },
});
console.log(text);
提取
pollTool 来检查任务状态。
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { extractTool, pollTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '从 https://firecrawl.dev 提取主要功能',
tools: { extract: extractTool, poll: pollTool },
});
console.log(text);
搜索 + 抓取
复制
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { searchTool, scrapeTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: '搜索 Firecrawl,抓取首个结果,并说明其功能',
tools: { search: searchTool, scrape: scrapeTool },
});
console.log(text);
流式
复制
import { streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { scrapeTool } from 'firecrawl-aisdk';
const result = streamText({
model: openai('gpt-5-mini'),
prompt: '抓取 https://firecrawl.dev 并解释它的功能',
tools: { scrape: scrapeTool },
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
浏览器
browserTool 与 ToolLoopAgent 搭配使用,以实现交互式网页浏览。该 agent 可以在页面之间跳转、点击元素、填写表单并提取数据。
复制
import { ToolLoopAgent, stepCountIs } from 'ai';
import { openai } from '@ai-sdk/openai';
import { browserTool } from 'firecrawl-aisdk';
const { text } = await new ToolLoopAgent({
model: openai('gpt-5-mini'),
tools: { browserTool },
stopWhen: stepCountIs(25),
}).generate({
prompt: 'Go to https://news.ycombinator.com, get the top 3 stories with their titles, points, and links.',
});
console.log(text);
浏览器 + 搜索
browserTool 与 searchTool 结合,适用于从搜索起步并通过交互式浏览继续的工作流。
复制
import { ToolLoopAgent, stepCountIs } from 'ai';
import { openai } from '@ai-sdk/openai';
import { browserTool, searchTool } from 'firecrawl-aisdk';
const { text } = await new ToolLoopAgent({
model: openai('gpt-5-mini'),
tools: { browserTool, searchTool },
stopWhen: stepCountIs(25),
}).generate({
prompt: '搜索本周顶级 AI 论文,浏览并总结其核心发现。',
});
console.log(text);
Agent
agentTool 实现自动化网页数据采集。该 Agent 能自行搜索、浏览并提取数据。
复制
import { generateText, stepCountIs } from 'ai';
import { openai } from '@ai-sdk/openai';
import { agentTool, pollTool } from 'firecrawl-aisdk';
const { text } = await generateText({
model: openai('gpt-5-mini'),
prompt: 'Find the founders of Firecrawl, their roles, and their backgrounds',
tools: { agent: agentTool, poll: pollTool },
stopWhen: stepCountIs(10),
});
console.log(text);

