本页内容
Mastra 是一个 TypeScript 优先的 AI agent 框架,专为构建可投入生产的 AI 应用而设计。CrawlForge 则赋予这些 agent 抓取、提取和分析实时网页数据的能力。两者结合,你便能构建出可以研究主题、监控竞品、并从任意网站提取结构化数据的 agent。
本指南将通过可运行的 TypeScript 示例,向你展示如何把 CrawlForge 工具接入 Mastra agent。
目录
- 什么是 Mastra?
- 前置条件
- 步骤 1:设置 Mastra 项目
- 步骤 2:创建 CrawlForge 工具定义
- 步骤 3:构建一个 web 研究 agent
- 步骤 4:构建数据提取工作流
- 步骤 5:添加错误处理与重试
- credits 成本参考
- 架构概览
- 后续步骤
什么是 Mastra?
Mastra 是面向 AI 应用与 agent 的现代 TypeScript 框架。它提供了用于 agent 创建、工具集成、工作流和记忆的基础组件 —— 全部具备完整的类型安全。可以把它看作 AI agent 领域的 Express.js:精简、可组合、面向生产。
Mastra agent 可以通过标准化的工具接口使用外部工具。CrawlForge 工具能直接映射到该接口,让你的 agent 无需编写 HTTP 客户端代码即可拥有 20 项 web scraping 能力。
前置条件
- Node.js 18+ 与 TypeScript 5+
- 一个带 API key 的 CrawlForge 账户(1,000 个免费 credits)
- 对 TypeScript 和 async/await 的基本了解
步骤 1:设置 Mastra 项目
创建一个新的 Mastra 项目并安装依赖:
将你的 CrawlForge API key 添加到 .env:
步骤 2:创建 CrawlForge 工具定义
创建一个工具文件,将 CrawlForge 的 API 封装为与 Mastra 兼容的工具:
步骤 3:构建一个 web 研究 agent
创建一个能够搜索网页并提取内容以完成研究任务的 agent:
运行该 agent:
步骤 4:构建数据提取工作流
Mastra 工作流让你能够把多个工具串联成确定性的流水线。下面是一个竞品价格监控器:
步骤 5:添加错误处理与重试
生产环境的 agent 需要稳健的错误处理。下面是一个用于 CrawlForge 工具调用的模式:
credits 成本参考
| Credits | 工具 | Mastra 使用场景 |
|---|---|---|
| 1 | fetch_url、extract_text、extract_links、extract_metadata | agent 工具中的快速数据抓取 |
| 2 | scrape_structured、extract_content、map_site、process_document、localization | 工作流提取、站点审计、文档处理 |
| 3 | track_changes、analyze_content | 变更检测、内容分析 |
| 4 | summarize_content、crawl_deep | 摘要生成、多页面爬取 |
| 5 | search_web、batch_scrape、scrape_with_actions、stealth_mode | 研究 agent、批量操作 |
| 10 | deep_research | 综合分析 agent |
架构概览
| 组件 | 职责 |
|---|---|
| Mastra Agent | 编排工具调用,维护对话上下文 |
| Mastra Tools | 围绕 CrawlForge API 端点的带类型封装 |
| Mastra Workflow | 用于批量操作的确定性多步骤流水线 |
| CrawlForge API | 执行 web scraping,返回结构化数据 |
| Credit System | 按 API key 跟踪用量,强制执行限额 |
Mastra agent 会根据任务决定调用哪个 CrawlForge 工具。工具封装负责处理 HTTP 通信,CrawlForge 则执行实际的抓取。每次工具调用成功后,credits 都会被原子性地扣除。
后续步骤
- Mastra 快速上手指南 —— Mastra 官方文档
- CrawlForge API 参考 —— 完整的端点文档
- 构建一个研究助手 —— 直接使用 Claude 的类似模式
- 深度研究自动化 —— 进阶研究工作流
今天就构建你的第一个具备网络感知能力的 AI agent。 注册 CrawlForge(1,000 个免费 credits),脚手架生成一个 Mastra 项目,让你的 agent 拥有抓取整个网络的能力。