Crawl4AI 接入 Bedrock 知识库网页预处理
时间:2026 年 11 月 2 日 09:11(美国太平洋时间),对应北京时间 11 月 3 日 01:11。
地点:美国西雅图,Amazon Web Services 官方博客与 Amazon Bedrock 服务端。
人物:AWS 机器学习博客作者 Daxeshkumar Patel、Abhishek Shukla 和 Bhavesh Rathod;开源项目 Crawl4AI 由 GitHub 用户 unclecode 维护。
事件详情:AWS 在机器学习博客发布技术文章《Prepare web content for Amazon Bedrock Knowledge Bases with Crawl4AI》,并同步开源配套示例仓库 aws-samples/sample-crawl4ai-bedrock-knowledge-base。文章给的不是新服务,而是一条可部署的网页进知识库链路,并明确分成两条路线:先用托管知识库自带的 Amazon Bedrock Web Crawler 连接器,需要自定义预处理时再走 Crawl4AI。Crawl4AI 这条路径的完整流程是 Amazon EventBridge 按计划触发 Fargate 上的 ECS 任务,任务用 Crawl4AI 抓取配置的网站,以 DefaultMarkdownGenerator 配合 PruningContentFilter 剥离导航等样板内容、保留标题列表表格,也可用 CSS 选择器只抽取指定正文区域;每个成功页面写出一份 Markdown 和一份元数据 sidecar,一并上传到支撑知识库数据源的 S3 桶,随后任务调用 StartIngestionJob 触发摄取,知识库再完成解析、分块、嵌入、索引与检索。sidecar 的命名规则是完整源文件名加 .metadata.json,与文档放在同一 S3 位置,Bedrock 对单个 sidecar 限制 10 KB,超限会在写入任何文件之前报错停止;示例写入三类属性,分别是 source_url、crawled_at_epoch 和 content_category,后者取值 web。文章同时划清了边界:这套方案是对已知站点的批处理摄取,不是推理时实时访问网页,与 Nova 的 Web Grounding 不同;示例只处理公开页面,不实现登录会话。
背景:Amazon Bedrock Knowledge Bases 是 Bedrock 的全托管 RAG 能力,接上数据源后由服务负责摄取、存储、索引和检索,不需要自己运维向量库,嵌入与重排默认使用服务托管模型。Crawl4AI 则是社区维护的开源 Python 爬虫,定位是把任意网页转成干净的、LLM 可直接使用的 Markdown,在 GitHub 上已积累 8.6 万余个星标(2026 年 11 月 3 日抓取时),常被用于 RAG 与 Agent 的数据管道。此次 AWS 把它接进自家托管知识库,等于给网页内容进知识库这条链路补上了一个官方背书、可直接部署的参考实现。
影响:对需要拿公开网页喂 RAG 的团队,最直接的收益是拿到一条不需自己造轮子的替代路径——默认托管爬虫够用就直接用,不够用时,比如只抽正文、剥离样板、附加自定义元数据,就切到 Crawl4AI 预处理层。其中最实用的是 sidecar 元数据机制,它让知识库里的网页可以按来源 URL、抓取时间和内容类别做检索过滤,而不是让模型在整站语料里盲搜。不过 AWS 也明确写出元数据过滤只提升检索精度、不构成权限隔离,不同用户该看到不同页面仍要靠 S3 连接器的 ACL 文件。成本与运维上也有需要留意的细节:示例任务默认 2 vCPU 和 4 GB 内存,轮询摄取作业最长 30 分钟;账号若开启 VPC 阻断公共访问,公有子网里的任务连不上外网,需要额外配置 NAT 网关并承担小时费用。
总结:这次发布的价值不在新功能,而在于 AWS 把用开源爬虫给托管知识库做网页预处理这件事,做成了可直接部署的官方样例,事件驱动抓取、Markdown 加 sidecar 落 S3、触发摄取作业的整条链路都给了代码和最小权限的 IAM 说明。几个数字值得记住:单个 sidecar 上限 10 KB,默认分块是固定 300 token 配 20% 重叠,示例任务默认 2 vCPU 与 4 GB 内存。使用顺序上 AWS 自己的建议是先托管 Web Crawler、后 Crawl4AI,并且提醒方案里的架构和默认值按参考实现看待,不是 Bedrock 的硬性要求。
常见问题:
问:Bedrock 自带的 Web Crawler 和 Crawl4AI 怎么选?
答:先用 Web Crawler,它遵守 robots.txt、只同步变更内容;需要只抽正文、剥离样板或附自定义元数据时才改用 Crawl4AI。
问:网页进库后怎么按来源和时间过滤?
答:靠 sidecar 元数据,文件名是源文件名加 .metadata.json,示例写入来源 URL、抓取时间和内容类别。
参考来源:
AWS 官方博客原文:Prepare web content for Amazon Bedrock Knowledge Bases with Crawl4AI
https://aws.amazon.com/blogs/machine-learning/prepare-web-content-for-amazon-bedrock-knowledge-bases-with-crawl4ai/
AWS 配套示例仓库 aws-samples/sample-crawl4ai-bedrock-knowledge-base
https://github.com/aws-samples/sample-crawl4ai-bedrock-knowledge-base
AWS 官方文档:Amazon Bedrock Knowledge Bases Web Crawler 数据源连接器
https://docs.aws.amazon.com/bedrock/latest/userguide/kb-managed-ds-webcrawler.html
AWS 官方文档:知识库分块方式
https://docs.aws.amazon.com/bedrock/latest/userguide/kb-chunking.html
AWS 官方文档:Amazon S3 数据源连接器
https://docs.aws.amazon.com/bedrock/latest/userguide/s3-data-source-connector.html
Crawl4AI 开源项目仓库 unclecode/crawl4ai
https://github.com/unclecode/crawl4ai
ScopeAI 中文解读:AWS 介绍用 Crawl4AI 为 Bedrock 知识库预处理网页内容
https://scopeai.cc/stories/aws-%e4%bb%8b%e7%bb%8d%e7%94%a8-crawl4ai-%e4%b8%ba-bedrock-%e7%9f%a5%e8%af%86%e5%ba%93%e9%a2%84%e5%a4%84%e7%90%86%e7%bd%91%e9%a1%b5%e5%86%85%e5%ae%b9-mvzjv5rb







