代理
从网络上的任意位置获取数据。
选择合适的工具。 当你不知道 URL,或需要在网页上进行自主导航时,代理就是正确的选择。
- 对于单个已知 URL,
/scrape的 JSON 模式成本更低,而且是同步的。 - 完整对比见:选择数据提取器。
Firecrawl /agent 是一个魔法般的 API,它可以在最广泛的网站范围内进行搜索、导航并收集数据,在难以触及的角落中找到数据,并以其他任何 API 都无法做到的方式发掘信息。它可以在几分钟内完成原本需要人类耗费数小时的工作——从端到端的数据采集,全程无需脚本或人工操作。
无论你只需要一个数据点,还是需要大规模的完整数据集,Firecrawl /agent 都能为你获取这些数据。
把 /agent 想象成:无论数据藏在哪里,它都能替你做深度调研!
Research Preview:代理目前处于早期访问阶段。可能会有不完善之处,但它会随着时间显著变好。分享反馈 →
代理构建于 /extract 的全部优势之上,并在此基础上更进一步:
- 无需提供 URL:只需通过
prompt参数描述你的需求,URL 是可选的。 - 深度网页搜索:自主搜索并深入浏览站点以找到所需数据
- 可靠且准确:适用于多种类型的查询和使用场景
- 更快:并行处理多个数据源以更快返回结果
在 Playground 中体验
在交互式 Playground 中测试该 Agent,无需编写代码。
唯一必需的参数是 prompt。只需描述你想要提取的数据。要获得结构化输出,请提供一个 JSON schema。SDK 支持使用 Pydantic (Python) 和 Zod (Node) 来定义类型安全的 schema:
from firecrawl import Firecrawl
from pydantic import BaseModel, Field
from typing import List, Optional
app = Firecrawl(api_key="fc-YOUR_API_KEY")
class Founder(BaseModel):
name: str = Field(description="Full name of the founder")
role: Optional[str] = Field(None, description="Role or position")
background: Optional[str] = Field(None, description="专业背景")
class FoundersSchema(BaseModel):
founders: List[Founder] = Field(description="List of founders")
result = app.agent(
prompt="Find the founders of Firecrawl",
schema=FoundersSchema,
model="spark-1-mini",
max_credits=100
)
print(result.data){
"success": true,
"status": "completed",
"data": {
"founders": [
{
"name": "Eric Ciarla",
"role": "Co-founder",
"background": "Previously at Mendable"
},
{
"name": "Nicolas Camara",
"role": "Co-founder",
"background": "Previously at Mendable"
},
{
"name": "Caleb Peffer",
"role": "Co-founder",
"background": "Previously at Mendable"
}
]
},
"expiresAt": "2024-12-15T00:00:00.000Z",
"creditsUsed": 15
}你可以选择提供 URL,让 agent 专注于特定页面:
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR_API_KEY")
result = app.agent(
urls=["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
prompt="比较这些页面的功能和定价信息"
)
print(result.data)Agent 任务以异步方式运行。提交任务后,你会收到一个 Job ID,用于检查任务状态:
- 默认方式:
agent()会阻塞等待,并返回最终结果 - 先启动再轮询:使用
start_agent(Python) 或startAgent(Node) 立即获取 Job ID,然后通过get_agent_status/getAgentStatus进行轮询
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR_API_KEY")
# 启动一个 Agent 任务
agent_job = app.start_agent(
prompt="Find the founders of Firecrawl"
)
# Check the status
status = app.get_agent_status(agent_job.id)
print(status)
# Example output:
# status='completed'
# success=True
# data={ ... }
# expires_at=datetime.datetime(...)
# credits_used=15| 状态 | 描述 |
|---|---|
processing | 代理仍在处理你的请求 |
completed | 提取已成功完成 |
failed | 提取过程中发生错误 |
cancelled | 用户取消了该任务 |
取消是协作式的。 当你调用取消端点时,请求会立即登记,但任何已经在进行中的步骤 (如 LLM 推理步骤、工具调用或浏览器操作) 都会先运行到可安全停止的节点,然后任务才会转为 cancelled。在这段短暂时间内,额度仍可能继续累积,因此最终的 creditsUsed 可能高于你点击取消时显示的数值。
{
"success": true,
"status": "processing",
"expiresAt": "2024-12-15T00:00:00.000Z"
}{
"success": true,
"status": "completed",
"data": {
"founders": [
{
"name": "Eric Ciarla",
"role": "Co-founder"
},
{
"name": "Nicolas Camara",
"role": "Co-founder"
},
{
"name": "Caleb Peffer",
"role": "Co-founder"
}
]
},
"expiresAt": "2024-12-15T00:00:00.000Z",
"creditsUsed": 15
}你可以直接在 Agent playground 中分享代理运行记录。共享链接是公开的,任何拥有链接的人都可以查看运行输出和活动;你也可以随时撤销访问权限以停用该链接。共享页面不会被搜索引擎收录。
Firecrawl Agent 提供两种模型。Spark 1 Mini 成本低 60%,并且是默认选项——适用于大多数使用场景。当你在复杂任务上需要最高准确率时,再升级到 Spark 1 Pro。
| Model | Cost | Accuracy | Best For |
|---|---|---|---|
spark-1-mini | 成本低 60% | 标准 | 大多数任务 (默认) |
spark-1-pro | 标准 | 更高 | 复杂调研、关键数据抽取 |
从 Spark 1 Mini 开始使用 (默认) ——在成本降低 60% 的前提下,它就能很好地完成大部分抽取任务。仅在进行复杂的多领域调研或对准确性要求极高时,再切换到 Pro。
spark-1-mini 是我们的高效模型,非常适合简单直接的数据提取任务。
在以下情况下使用 Mini:
- 提取简单数据点 (联系方式、价格信息等)
- 处理结构清晰的网站
- 需要优先考虑成本效率
- 运行大批量提取任务时
spark-1-pro 是我们的旗舰模型,专为在复杂数据提取任务中实现最高准确率而设计。
在以下场景使用 Pro:
- 进行复杂的竞品分析
- 提取需要深入推理的数据
- 你的用例对准确性要求极高
- 处理模糊或难以获取的数据
通过传入 model 参数来选择要使用的模型:
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR_API_KEY")
# 使用 Spark 1 Mini(默认,可省略)
result = app.agent(
prompt="Find the pricing of Firecrawl",
model="spark-1-mini"
)
# Using Spark 1 Pro for complex tasks
result = app.agent(
prompt="Compare all enterprise features and pricing across Firecrawl, Apify, and ScrapingBee",
model="spark-1-pro"
)
print(result.data)| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
prompt | string | 是 | 用自然语言描述你想要提取的数据 (最多 10,000 个字符) |
model | string | 否 | 要使用的模型:spark-1-mini (默认) 或 spark-1-pro |
urls | array | 否 | 可选的 URL 列表,用于聚焦提取 |
schema | object | 否 | 用于结构化输出的可选 JSON schema |
maxCredits | number | 否 | 此代理任务中可花费的最大额度数。如果未设置,默认值为 2,500。Dashboard 最高支持 2,500;如需更高上限,请通过 API 设置 maxCredits (高于 2,500 的值始终按付费请求处理) 。如果达到上限,任务会失败,并且不会返回任何数据。失败的运行不会计费:用于 AI 推理的额度在失败时绝不会收费,运行期间任何用于工具调用的额度 (scraping、search、mapping 等) 都会退还,并且响应会返回 creditsUsed: 0。 |
| 特性 | Agent (新) | Extract |
|---|---|---|
| 是否需要提供 URL | 否 | 是 |
| 速度 | 更快 | 标准 |
| 成本 | 更低 | 标准 |
| 可靠性 | 更高 | 标准 |
| 查询灵活性 | 高 | 中等 |
- 调研: “找出前 5 家 AI 初创公司及其融资金额”
- 竞品分析: “比较 Slack 和 Microsoft Teams 的定价方案”
- 数据收集: “从公司网站中提取联系方式”
- 内容摘要: “总结关于网页抓取的最新博客文章”
Agent Playground 支持通过上传 CSV 进行批量处理。你的 CSV 可以包含一列或多列输入数据。例如:一列公司名称,或者多列数据,如公司名称、产品和网站 URL。每一行都代表一个需要由 Agent 处理的条目。
上传你的 CSV,然后使用表头中的 ”+” 按钮添加输出列。每一列都有自己的 prompt——点击列表头,描述 Agent 应为该字段查找什么内容 (例如,“CEO 或创始人姓名”、“融资总额”) 。点击 Run,Agent 会并行处理每一行并填充结果。
如果你的代理任务失败或返回了异常结果,请使用 Ask API 进行代理式调试。描述问题,即可获取经过验证的答案以及可直接应用的修复参数:
curl -X POST https://api.firecrawl.dev/v2/support/ask \
-H "Authorization: Bearer fc-YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "my agent returned incomplete results"
}'请参见 Ask 文档,了解完整详情和集成示例。
请参阅 Agent API Reference 以了解更多详情。
有反馈或需要帮助?请发送邮件至 [email protected]。
Firecrawl Agent 使用 动态计费 模式,费用会随你的数据提取请求复杂度而变化。你根据 Agent 实际完成的工作量付费,无论是提取简单的数据点,还是从多个来源获取复杂的结构化信息,都能享受公平的定价。
在 Research Preview 阶段,Agent 的计费是动态的、基于 credit 的:
- 简单抽取任务 (例如从单个页面提取联系方式) 通常消耗更少的 credits,成本更低
- 复杂研究任务 (例如对多个域名进行竞品分析) 会消耗更多 credits,但更能体现整体投入的工作量
- 用量透明会清楚展示每个请求具体消耗了多少 credits
- Credit 换算会自动将 Agent 的 credit 使用量换算为 credits,便于计费
Credit 使用量会因 prompt 的复杂度、处理的数据量以及期望输出的结构而有所不同。大致来说,大多数 Agent 运行会消耗数百个 credits,更简单的单页任务可能会用得更少,而复杂的多域名研究可能会用得更多。
如果你使用 Spark-1 Fast 并行运行多个 agent,费用会更加可预测:每个 cell 消耗 10 个积分。
所有用户每天都会获得5 次免费运行,可以通过 playground 或 API 使用,用于在无需付费的情况下体验 Agent 的功能。
额外用量会根据 credit 消耗计费,并换算为 credits。
代理可能会比较昂贵,但有一些方法可以降低成本:
- 从免费运行开始:利用你每天 5 次免费请求来了解定价
- 设置
maxCredits参数:通过设置你愿意花费的最大额度数来限制支出。Dashboard 将此上限设为 2,500 额度;若要设置更高的上限,请直接通过 API 使用maxCredits参数 (注意:高于 2,500 的值始终按付费请求计费) - 优化 prompt:更具体的 prompt 通常会消耗更少的额度
- 将大型任务拆分为更小的运行:单次代理运行的输出上限取决于底层模型的生成能力 (约 150-200 行结构化数据) 。对于大型提取任务,可按类别、地区或 URL 批次 (每次运行 3-5 个 URL) 进行拆分,再合并结果。这也能让每次运行都保持在
maxCredits限制之下。 - 监控用量:通过 Dashboard 追踪你的使用情况
- 设定预期:跨多个站点/领域的复杂研究会比简单的单页提取消耗更多额度
现在访问 firecrawl.dev/app/agent 试用代理,看看在你的具体用例下额度的使用如何随规模变化。
随着我们从 Research Preview 过渡到正式开放,定价可能会发生变化。现有用户将在任何价格更新前提前收到通知。
你是需要 Firecrawl API 密钥的 AI 代理吗?请参阅 firecrawl.dev/agent-onboarding/SKILL.md 了解自动化引导说明。