Firecrawl Skill
Firecrawl 是这批 Agent 工具类 skill 里唯一用真实 API Key 验证过的一个——不是转录文档,是真实调用查出的两个静默失败陷阱:JSON 格式抽取漏传 schema 会显示成功却拿不到数据,已废弃的 /extract 端点调用不报错但被扣 4 倍的钱。5 场景 with/without-skill 对照实验:3 个完胜,2 个打平(如实记录,没有夸大成全胜)。
fc-... 开头)Agent 工具更新 2026-09-21安装
选你用的 Agent,复制命令。
npx -y skills add fxp/skillify --skill firecrawl --agent claude-code --yes装到项目的 .claude/skills/;加 -g 装到全局。装完需要你手动执行 /reload-plugins,这一步 Agent 代劳不了。
npx -y skills add fxp/skillify --skill firecrawl --agent codex --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent cursor --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent opencode --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent gemini-cli --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent github-copilot --yes装到项目的 .agents/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent trae --yes装到项目的 .trae/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent windsurf --yes装到项目的 .windsurf/skills/;加 -g 装到全局。
npx -y skills add fxp/skillify --skill firecrawl --agent qwen-code --yes把 --agent 换成你用的 Agent 标识,可以一次写多个。skills CLI 1.5.25 共支持 79 个,例如 qwen-code、kimi-code-cli、trae-cn、qoder、lingma、cline、roo。
或者让 Agent 自己装
读 https://github.com/fxp/skillify/blob/main/skills/firecrawl/prompt.md 并照它执行装对了的标志:references/ 下有 5 份文档。
装好后,可以这样问你的 Agent
这份 Skill 覆盖的典型任务。点一下复制。
5 类能力
每类能力对应一份 reference,Agent 按任务只打开需要的那份。
单页抓取
17 种输出格式(markdown/HTML/JSON/截图/问答/媒体提取等),JSON 格式的静默失败陷阱、maxAge 缓存加速
批量抓取与整站爬取
异步任务的提交-轮询模式,分页游标,webhook 通知替代轮询
URL 发现与网页搜索
map 不会自动扩到全站;search 默认抓正文,和一般搜索 API 的直觉不一样
结构化抽取该走哪条路
/scrape JSON 格式 vs 已废弃的 /extract vs 未覆盖的 /agent,三选一的决策表
鉴权、错误码与计费
403 vs 401 的区别、v1/v2 差异、真实实测过的 credits 计费表
当前事实
整理自官方文档(抓取于 2026-09-21),核心端点已用真实 API Key 验证过。
| 项 | 值 |
|---|---|
| Base URL | https://api.firecrawl.dev/v2——v1 还能用但文档只讲 v2,本 skill 全篇按 v2 写 |
| 不带 Key / Key 错 | 不带 key 是 403,key 错是 401——两种不同状态码,别用同一段逻辑处理 |
| JSON 抽取头号陷阱 | formats 里传裸字符串 "json"(不带 schema)会 success:true 但 data.json 是 null,照样扣 5 credits |
| /extract 已废弃 | 运行时 warnings 字段说改用 /scrape,文档页却说该迁到 /agent——两处权威来源互相矛盾,成本还贵 4 倍(21 vs 5 credits) |
| map 不会自动扩到全站 | 传子路径只返回这个路径下的链接,覆盖不足时响应带 warning 字段提示换根域名 |
照通用经验写容易错的 6 件事
多数来自官方文档;关键几条已用真实调用验证。
- success:true 不等于拿到了你要的东西。JSON 格式抽取失败时
success依然是true,真实失败信号在data.json === null+ 容易被忽略的data.warning字段里。 search默认会把每条结果的正文也抓一遍。不是只给标题摘要——scrapeOptions.formats默认就是['markdown'],数据量和成本都比想象中大得多。crawl/batch/scrape是异步任务。提交只返回 job id,不含任何页面内容,必须轮询GET /crawl/{id}直到完成,结果在轮询响应自己的data字段里。- credits 按有没有返回一份 document 算,不按目标站的 HTTP 状态码算。目标站 403/404,只要 Firecrawl 把这个响应抓回来了照样计费。
- v1 仍在响应,但不代表和 v2 行为一致。v2 独有 batch/scrape、map、question/highlights/audio/video 等 7 种以上 v1 没有的输出格式——本 skill 只验证了 v2。
- 结构化抽取有三条路,选错代价不小。默认用
/scrape的 JSON 格式;已废弃的/extract能用但贵 4 倍;不知道 URL、要自主发现的场景才轮到/agent(本 skill 未覆盖)。
验证状态
文档版:核心端点已用真实 API Key 调用验证过(含装/不装 Skill 的对照测试,见仓库 data/comparison-report.md),但测试方法和「已实测」档要求的多轮统计显著性框架不同,这里仍归入文档版。
真实凭证探测
- 真实调用验证过 /scrape(成功/401/403/400/JSON 静默失败)、/map、/search、/crawl(提交+轮询)、/extract(发现已废弃)