Alexandria 的目标是提供一条通往结构化数据的直接路径,把现成的网站工作流、API 提供商和专用索引带入 Firecrawl 的搜索与抓取能力中。
用途
Alexandria 用于发现和执行能够返回结构化数据的工具。它的语义发现功能可以按你所需的数据来定位能力,域名匹配则把网页结果连接到可能获取更丰富结构化数据的工具,从而减少自行浏览、解析和重复请求来拼装数据的工作。
主要能力
- 语义发现:根据所需数据发现能力。
- 域名匹配:把网页结果与可能检索到更丰富结构化数据的工具关联起来。
- 搜索与抓取结合:先搜索网页结果和相关工具,再检查任务所需的契约,然后抓取以执行选定工具或读取 URL。
- 大型结果处理:对于大型保留结果,可按照其远程 Bash 指引选择所需数据。
- 使用判断:当普通网页结果足以回答问题时使用网页结果;当某提供商工具的覆盖范围和输入条件合适时使用该工具。
使用方式
典型流程为:搜索发现网页结果和相关工具,检查任务所需的契约,抓取以执行选定工具或读取 URL。是否使用网页结果还是提供商工具,取决于普通网页结果能否回答该问题,以及提供商工具的覆盖范围与输入是否匹配任务需求。
Alexandria 反馈
Alexandria 的覆盖范围来自代理的反馈。你需要在最后一次 Alexandria 调用之后,针对每个需要数据的网站发送一次 firecrawl alexandria feedback。无需 job ID。每条反馈退还 1 积分,每个网站每 UTC 日最多 10 积分,每个团队每 UTC 日最多 100 积分。
反馈可以描述以下结果:某个工具完全或部分满足了需求;某个工具运行了但返回错误或不完整数据,或者失败;没有提供商覆盖该网站,或虽有提供商但缺少所需能力,于是回退到网页搜索、抓取或 Agent。
如果设置了 FIRECRAWL_NO_ENDPOINT_FEEDBACK=1(或 FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1),CLI 会静默跳过该调用,不发送任何内容,应尊重这一设置,不要尝试绕过。团队管理员也可以在服务端禁用,此时 API 返回 feedbackErrorCode: "TEAM_OPTED_OUT",CLI 静默退出且退出码为 0。
调用前需了解的规则:
- 时间窗口:必须在团队最近一次 Alexandria 搜索、发现或执行后的 20 分钟内发送。每次 Alexandria 调用都会重启该窗口。迟到的反馈会被拒绝(feedbackErrorCode: "FEEDBACK_WINDOW_EXPIRED")。
- --url 是用户需要数据的网站,而不是提供商,也不是 Firecrawl 页面。--requested-functionality 是用一句话描述用户需要从该网站获得的功能。这两个字段最重要:它们跨团队汇总,用于决定接下来添加哪些网站和工作流。
- --objective 是会话背后的底层目标,即你或用户最终想完成的事情,用一句话描述(例如 "Shortlist federal IT contracts to bid on this quarter")。它比 --requested-functionality 更宽泛,后者只覆盖该网站。
- --rationale 解释基于观察结果给出的评级:哪个提供商或能力满足或未满足需求,以及如何满足或失败的。两三句话,不要粘贴原始结果。
- --provider-feedback 是 JSON 数组,元素为 {name, issue, why},用于描述缺失、单薄或不可用的提供商。issue 取值:missing_provider(没有提供商覆盖该网站)、insufficient_coverage(存在,但对该市场或细分领域的数据单薄、过时或不完整)、provider_unavailable(无法调用)、other。
- --capability-feedback 是 JSON 数组,元素为 {name, provider, issue, why, requestedFunctionality?},用于描述缺失、错误或失败的能力。issue 取值:new_capability_request(请求提供商新增一项,requestedFunctionality 必填)、missing_capability(提供商存在但缺少该能力)、insufficient_functionality(存在但无法接受你需要的输入或筛选条件)、incorrect_result、execution_error、other。name 和 provider 需与发现结果返回的完全一致;对于尚不存在的能力,写明它应该叫什么。
诚实评级:工具满足了需求评 good,部分满足或有缺口评 partial,没有可用能力满足或运行结果错误、失败评 bad。每个评级都获得相同退款。
网站退款上限:每个网站每 UTC 日默认 10 积分。超过后,该网站的反馈仍会被记录但不退款,响应会设置 websiteCapReached: true。关于其他网站的反馈仍会退款。
每日退款上限:每个团队每 UTC 日默认 100 积分。超过上限后,反馈仍会被记录但不退款。响应会包含 creditsRefundedToday、dailyRefundCap 和 dailyCapReached。当 dailyCapReached: true 时,应在当日剩余时间内停止发送 Alexandria 反馈。
--silent & 是推荐模式:即使失败退出码也为 0,这样被拒绝的调用不会导致你的流水线崩溃。
示例:每个网站发送一次,且在上次 Alexandria 调用后 20 分钟内。用实际发生的情况替换占位符;当某一层级没有可报告内容时,去掉 --provider-feedback 或 --capability-feedback。
firecrawl alexandria feedback \
--rating "<good|partial|bad>" \
--url "https://sam.gov" \
--requested-functionality "Active contracts by agency with their attachments" \
--objective "Shortlist federal IT contracts to bid on this quarter" \
--rationale "sam-gov/contracts returned the contract list, but no capability exposes attachment links, so those were scraped from the web instead." \
--capability-feedback '[{"name":"attachments","provider":"sam-gov","issue":"new_capability_request","why":"Attachments were the point of the task","requestedFunctionality":"Given a contract ID, return attachment URLs and document text"}]' \
--silent &
如果你报告的网站没有提供商覆盖,使用 --provider-feedback '[{"name":"<site or provider>","issue":"missing_provider","why":"<what was needed>"}]' 并评 bad;这是用于引入新提供商的信号。
--silent 抑制输出,& 使其在后台运行,因此反馈永远不会阻塞你。运行 firecrawl alexandria feedback --help 查看所有选项。
适用场景
适用于需要从网站获取结构化数据、并希望借助现成工作流、API 提供商或专用索引来减少自行浏览和解析的场景。当普通网页结果已经能回答问题时,仍使用普通网页结果;当提供商工具的覆盖和输入条件匹配时,才使用该工具。
限制
反馈有严格的时间窗口,必须在团队最近一次 Alexandria 调用后 20 分钟内发送,且存在网站级和团队级的每日退款上限。提供商覆盖范围和能力可能不足,部分网站可能没有提供商覆盖,或提供商缺少所需能力。具体支持的网站、提供商和功能未在资料中完整列出。