Firecrawl /agent 是一个魔法般的 API,它可以搜索、导航并收集来自即便是最复杂的网站的数据,在难以触及的角落里找到数据,并在整个互联网中发现数据。它在几分钟内完成原本需要人类耗费数小时的工作,让传统的网页抓取方式显得过时。
只需描述你想要什么数据,其余交给 /agent。
研究预览版:Agent 目前处于早期访问阶段。可能会有不完善之处,但它会随着时间显著变好。分享反馈 →
Agent 构建于 /extract 的全部优势之上,并在此基础上更进一步:
- 无需提供 URL:只需通过
prompt 参数描述你的需求,URL 是可选的。
- 深度网页搜索:自主搜索并深入浏览站点以找到所需数据
- 可靠且准确:适用于多种类型的查询和使用场景
- 更快:并行处理多个数据源以更快返回结果
- 更便宜:对于复杂用例,Agent 比
/extract 更具性价比
唯一必需的参数是 prompt。只需描述你想要提取的数据。要获得结构化输出,请提供一个 JSON schema。SDK 支持使用 Pydantic(Python)和 Zod(Node)来定义类型安全的 schema:
from firecrawl import FirecrawlApp
from pydantic import BaseModel, Field
from typing import List, Optional
app = FirecrawlApp(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="Professional background")
class FoundersSchema(BaseModel):
founders: List[Founder] = Field(description="List of founders")
result = app.agent(
prompt="Find the founders of Firecrawl",
schema=FoundersSchema
)
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 FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
result = app.agent(
urls=["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
prompt="Compare the features and pricing information from these pages"
)
print(result.data)
Agent 任务以异步方式运行。提交任务后,你会收到一个 Job ID,用于检查任务状态:
- 默认方式:
agent() 会阻塞等待,并返回最终结果
- 先启动再轮询:使用
start_agent(Python)或 startAgent(Node)立即获取 Job ID,然后通过 get_agent_status / getAgentStatus 进行轮询
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# 启动一个 Agent 任务
agent_job = app.start_agent(
prompt="Find the founders of Firecrawl"
)
# 检查任务状态
status = app.get_agent_status(agent_job.id)
print(status)
# 示例输出:
# status='completed'
# success=True
# data={ ... }
# expires_at=datetime.datetime(...)
# credits_used=15
| 状态 | 描述 |
|---|
processing | 代理仍在处理你的请求 |
completed | 提取已成功完成 |
failed | 提取过程中发生错误 |
{
"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
}
| 参数 | 类型 | 必填 | 描述 |
|---|
prompt | string | 是 | 以自然语言描述你想要提取的数据(最多 10,000 个字符) |
urls | array | 否 | 可选的 URL 列表,用于限定提取范围 |
schema | object | 否 | 可选的 JSON schema,用于定义结构化输出 |
| 特性 | Agent(新) | Extract |
|---|
| 是否需要提供 URL | 否 | 是 |
| 速度 | 更快 | 标准 |
| 成本 | 更低 | 标准 |
| 可靠性 | 更高 | 标准 |
| 查询灵活性 | 高 | 中等 |
- 调研: “找出前 5 家 AI 初创公司及其融资金额”
- 竞品分析: “比较 Slack 和 Microsoft Teams 的定价方案”
- 数据收集: “从公司网站中提取联系方式”
- 内容摘要: “总结关于网页抓取的最新博客文章”
请参阅 Agent API Reference 以了解更多详情。
有反馈或需要帮助?请发送邮件至 [email protected]。
Firecrawl Agent 使用 动态计费 模式,费用会随你的数据提取请求复杂度而变化。你根据 Agent 实际完成的工作量付费,无论是提取简单的数据点,还是从多个来源获取复杂的结构化信息,都能享受公平的定价。
在 Research Preview 阶段,Agent 的计费是动态的、基于 credit 的:
- 简单抽取任务(例如从单个页面提取联系方式)通常消耗更少的 credits,成本更低
- 复杂研究任务(例如对多个域名进行竞品分析)会消耗更多 credits,但更能体现整体投入的工作量
- 用量透明会清楚展示每个请求具体消耗了多少 credits
- Credit 换算会自动将 Agent 的 credit 使用量换算为 credits,便于计费
Credit 使用量会因 prompt 的复杂度、处理的数据量以及期望输出的结构而有所不同。
所有用户每天都会获得5 次免费运行,可以在无需付费的情况下体验 Agent 的功能。
额外用量会根据 credit 消耗计费,并换算为 credits。
掌控你的 Agent 开销:
- 从免费运行开始:利用你每天 5 次免费请求来了解定价
- 设置
maxCredits 参数:通过设置你愿意花费的最⼤ credits 数来限制支出
- 优化提示词:更具体的提示词通常会消耗更少的 credits
- 监控用量:通过仪表盘追踪你的使用情况
- 设定预期:跨多个站点/领域的复杂研究会比简单的单页抽取消耗更多 credits
现在访问 firecrawl.dev/app/agent 试用 Agent,看看在你的具体用例下 credits 的使用如何随规模变化。
随着我们从 Research Preview 过渡到正式开放,定价可能会发生变化。现有用户将在任何价格更新前提前收到通知。