firecrawl-agent:讓 AI 自主翻站並按 Schema 抽出結構化數據

前言

做競品監控、價目表同步或聯繫人補全時,常見做法是寫固定選擇器抓單頁,或自己拼多步腳本翻分頁。站點結構一變、要跨多個入口彙總時,維護成本會明顯上升。Firecrawl CLI 裏的 firecrawl-agent Skill 教編碼 Agent 在終端裏跑 firecrawl agent:由 AI 自主導航網站,把結果寫成 JSON;需要穩定字段時可用 JSON Schema 約束輸出。官方說明單次任務大約需要 2–5 分鐘,比單頁 scrape 慢、也更耗 credits,但適合「沒有現成工作流、又要跨頁推理」的採集任務。

這是什麼

firecrawl-agent 是 Firecrawl CLI 倉庫 skills/firecrawl-agent 下的一份 SKILL.md 說明,由 Firecrawl 維護。Skill 元數據中的描述是:在任務需要導航網站、或沒有合適的現成工作流 / 數據提供方時,自主瀏覽並跨頁提取結構化數據。

它不替代 Firecrawl 服務本身,而是約束 Agent 何時該用 Agent、何時該先用 Alexandria 現成能力,以及如何傳參、等結果、控成本。Skill 聲明允許的工具爲 Bash(firecrawl *) 與 Bash(npx firecrawl-cli *)。

核心功能

自主提取與自然語言任務

Agent 根據自然語言指令在網站上導航並抽取數據,例如「提取所有定價檔位」「提取產品列表」。輸出可以是自由形態,也可通過 --schema 綁定 JSON Schema,得到可預測的結構(如 name、price 等字段)。

指定起始 URL

可用 --urls 把任務限定在特定頁面,減少無關跳轉,例如只在某產品頁上提取功能列表。

與 Alexandria 的配合

在啓動自主 Agent 之前,Skill 要求先查是否有現成工作流或數據提供方:

firecrawl search alexandria '<你需要的數據>'

若匹配,用 firecrawl list <provider> <capability> --pretty 查看契約,再用 firecrawl scrape --alexandria <provider>/<capability> --options '<input JSON>' 執行;字段須與契約一致。只有無合適工具或任務必須自主導航時,才繼續用 firecrawl agent。

Agent 運行本身也可掛載 Alexandria toolkits(例如 apollo、crunchbase),通過 --toolkits(最多 5 個 slug)、--alexandria、--max-calls 等標誌啓用;同一線程的後續對話會保留這些設置。

異步任務與輪詢

省略 --wait 時返回 job ID。可用 UUID 作爲位置參數查詢狀態,或 --wait 配合 --poll-interval、--timeout 等待完成;--cancel 可取消進行中的任務。

花費與審批

Skill 註明 Agent 比簡單 scrape 消耗更多 credits,可用 --max-credits 封頂。在 --require-approval(且 --mode chat)下,運行可能在付費調用前以 pendingApproval 結束,需在同一線程用 --approve 或 --decline 響應;涉及數據源條款時,組織管理員需在 Firecrawl 控制台接受條款(Skill 給出設置頁鏈接)。

安裝與啓用

CLI 全局安裝:

npm install -g firecrawl-cli

或一條命令完成安裝、認證,並向檢測到的編碼編輯器安裝 skills(含 Cursor):

npx -y firecrawl-cli@latest init -y --browser

-y 爲非交互;--browser 自動打開瀏覽器完成 Firecrawl 認證。也可只裝核心 CLI skills(含 agent 相關能力):

firecrawl setup core

單獨安裝某個 skill 時,firecrawl- 前綴可省略。僅面向 Cursor 時可加 --agent cursor,例如:

firecrawl init --agent cursor
firecrawl setup skills --agent cursor

首次無 API key 時,CLI 會提示瀏覽器登錄或手動輸入;也可設置環境變量 FIRECRAWL_API_KEY,或執行 firecrawl login --api-key fc-your-api-key。自託管實例可用 --api-url 或 FIRECRAWL_API_URL(非默認 https://api.firecrawl.dev 時可無需 API key,以官方 CLI 文檔爲準)。

Skill 文件位置:https://github.com/firecrawl/cli/tree/main/skills/firecrawl-agent。社區索引(如 awesome-agent-skills)把此類條目歸類爲教 Agent 按需加載的 SKILL.md 說明,與 Claude Code、Cursor、Codex 等 harness 兼容;具體加載方式因平臺而異,Firecrawl 側以 init / setup 寫入檢測到的編輯器爲主。

典型用法

下面示例均來自官方 Skill 文檔,可直接在已認證的環境中復現。

基礎:等待完成並寫入 JSON 文件

firecrawl agent "extract all pricing tiers" --wait --json -o .firecrawl/pricing.json

--wait 表示在當前終端等到結果;-o 指定輸出路徑。完成標準:輸出文件爲能回答請求的合法 JSON,或你刻意省略 --wait 而只拿 job ID 供後續輪詢。

用 JSON Schema 約束結構

firecrawl agent "extract products" --schema '{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}}}' --wait --json -o .firecrawl/products.json

未提供 --schema 時,Agent 返回自由形態數據,下游解析成本更高。

限定頁面

firecrawl agent "get feature list" --urls "<url>" --wait --json -o .firecrawl/features.json

將 <url> 換成目標地址。

結合 Alexandria toolkits

firecrawl agent "find the head of sales at <company>" --toolkits apollo,crunchbase --wait --json -o .firecrawl/contacts.json

異步與狀態查詢

firecrawl agent "<job-id>"
firecrawl agent "<job-id>" --wait --poll-interval 10 --timeout 300
firecrawl agent "<job-id>" --cancel

完整選項列表以 firecrawl agent --help 爲準。

適用場景與注意

更適合:

  • 需要跨頁點擊、彙總列表或詳情,且沒有 Alexandria 契約可覆蓋的任務。
  • 希望 Agent 在編碼會話裏直接產出 JSON,接入 RAG、ETL 或內部工具鏈。
  • 字段形狀已知,用 --schema 固定輸出,便於校驗與入庫。

應先考慮其他 Skill / 命令:

限制與成本:

  • 單次 Agent 通常 2–5 分鐘,不適合亞秒級實時接口。
  • Credits 消耗高於 scrape,務必用 --max-credits 設上限。
  • 有現成 provider/capability 時,先 Alexandria 再 Agent,可避免重複造輪子。

結尾

firecrawl-agent 把「自主導航 + 結構化抽取」收斂成 Agent 可執行的終端流程:先搜 Alexandria,再決定是否開 Agent,並用 Schema、URL 限定和 credits 上限控制風險。要在 Cursor 等環境裏啓用,安裝 Firecrawl CLI 後執行 init 或 setup core,並保證 API 認證就緒。官方 Skill 路徑:https://github.com/firecrawl/cli/tree/main/skills/firecrawl-agent。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜