安装
官方 PHP SDK 在 Firecrawl 的 monorepo 中维护,位于 apps/php-sdk。 要安装 Firecrawl PHP SDK,请通过 Composer 添加此依赖:需要 PHP 8.1 或更高版本。
Laravel 集成
该 SDK 提供对 Laravel 的原生支持,并支持自动发现。安装该软件包后,请发布配置文件:.env 文件中:
使用方式
- 从 firecrawl.dev 获取 API 密钥
- 将 API 密钥设置为名为
FIRECRAWL_API_KEY的环境变量,或通过FirecrawlClient::create(apiKey: ...)传入 API 密钥
使用 Laravel 门面
在 Laravel 应用中,可以使用Firecrawl 门面,或通过依赖注入:
抓取 URL
如需抓取单个 URL,请使用scrape 方法。
JSON 提取
通过scrape 端点,使用 JsonFormat 提取结构化 JSON:
爬取网站
要爬取网站并等待其完成,请使用crawl。
开始爬取
使用startCrawl 启动任务,无需等待。
查看爬取状态
使用getCrawlStatus 查看爬取进度。
取消爬取
使用cancelCrawl 取消正在进行中的爬取。
爬取错误
使用getCrawlErrors 获取爬取过程中的错误 (如有) 。
网站映射
使用map 发现网站中的链接。
搜索网页
使用search 并可选配搜索设置进行搜索。
批量抓取
使用batchScrape 并行抓取多个 URL。
startBatchScrape、getBatchScrapeStatus 和 cancelBatchScrape:
代理
使用agent 运行 AI 代理。
startAgent、getAgentStatus 和 cancelAgent:
使用方式与指标
查看并发数和剩余额度:Laravel AI SDK 工具
该 SDK 内置了适用于 Laravel AI SDK (laravel/ai) 的原生工具类,因此代理无需 MCP 服务器 或手动发起 HTTP 调用,即可抓取、搜索、映射和爬取网页。
需要
firecrawl/firecrawl-sdk 1.9.0 或更高版本,以及 laravel/ai 0.9 或更高版本 (PHP 8.3+、Laravel 12+) 。这些工具类仅在安装了 laravel/ai 后才会加载。FirecrawlClient,因此你现有的 config/firecrawl.php 和 FIRECRAWL_API_KEY 配置可直接原样复用:
可用工具
这些工具名称与 Firecrawl MCP 服务器一致,因此代理在不同入口看到的术语也保持统一。可使用 spread helper 一次性注册这四个工具:
FirecrawlTools::all() 会将该客户端传给全部四个工具:
工具参数
每个工具都会提供一个面向模型的小型 schema。以下是代理可传递的参数:
超出范围的
limit 值不会被拒绝,而是会自动调整到最近的边界值,因此当模型请求 99 个搜索结果时,返回的是 20 个,而不是报错。
工具行为
限流、超时和无效 URL 等工具故障不会以抛出异常的形式处理,而是作为可读的错误字符串返回给模型,因此代理运行可以优雅降级。为保持在模型上下文范围内,输出大小会受到限制:scrape 结果会截断至 80,000 个字符;crawl 结果在总结果预算为 100,000 个字符的前提下,每页截断至 15,000 个字符;search 和 map 结果则会移除末尾条目,并用明确的标记说明有内容被省略。firecrawl_search 和 firecrawl_map 返回 JSON 结果数组。firecrawl_scrape 以 markdown 格式返回页面。
抓取结果
firecrawl_crawl 最多会等待 55 秒让抓取完成,随后返回一个明确体现结果的 JSON 对象。失败、已取消或部分完成的抓取结果会通过 status 字段继续对模型可见,而不会被静默截断:
omittedPages 表示为控制在输出预算内而省略的页面数,note 则会告知模型服务器上还有更多页面,并提示它使用更小的 limit,或通过 firecrawl_scrape 抓取特定页面。该工具会报告分页信息,而不会继续跟随分页,因此需要获取大型爬取全部页面的代理应直接使用 FirecrawlClient。
如果 wait 到期时爬取仍在进行中,工具会明确说明,并提醒模型该爬取仍可能在服务器端继续完成。启动爬取时会附带一个 UUID 幂等键,因此 HTTP 层面的重试绝不会创建重复的爬取。
如果你的代理运行在排队任务中,请将爬取 limit 保持得较小,或提高 worker 的任务超时时间。wait、poll 频率和每页上限都是受保护属性,因此请通过继承该类来调整它们:
浏览器
PHP SDK 提供了 浏览器 Sandbox 辅助函数。创建会话
执行代码
与抓取任务绑定的交互式会话
使用抓取任务 ID,在同一重放上下文中运行后续浏览器代码:interact(...)会在与抓取任务绑定的浏览器会话中运行代码 (首次使用时会自动初始化该会话) 。stopInteractiveBrowser(...)会在你使用完毕后显式停止该交互式会话。
列出并关闭会话
配置
FirecrawlClient::create() 支持以下选项:
自定义 HTTP 客户端
你可以传入一个预先配置的GuzzleHttp\ClientInterface 实现,用于控制连接池、中间件、代理设置及其他 HTTP 功能。提供该实现后,timeoutSeconds 设置将被忽略,改为以客户端自身的配置为准。
错误处理
SDK 会抛出位于Firecrawl\Exceptions 命名空间下的运行时异常。
你是需要 Firecrawl API 密钥的 AI 代理吗?请参见 firecrawl.dev/agent-onboarding/SKILL.md 了解自动化接入说明。

