全部集成

AI 开发
在 Mastra 中使用 AdsCrawl
通过明确的输入和输出 schema,将 AdsCrawl 封装为 Mastra 工具。Agent 可传入 URL 并获取渲染后的 Markdown 与来源,浏览器 API 调用保留在服务端代码中。
能做什么
01
由 schema 定义输入
通过 Mastra 的 createTool 接口接收经过校验的 URL。
02
结构化工具结果
使用 outputSchema 声明 source 和 markdown 字段,供下游处理结果。
03
可复用的 Agent 工具
将同一工具注册到 Mastra Agent,或从应用代码中直接调用。
准备工作
- 具有 API Key 和可用积分的 AdsCrawl 账号。
- Node.js 22.22 或更高版本,在服务端或本地开发环境中运行。
接入方式 01
定义 Mastra 工具
组合 createTool、Zod schema 与 AdsCrawl JavaScript SDK,先验证工具,再连接模型。
安装依赖
在应用目录中运行以下命令。
npm install adscrawl @mastra/core zod配置 API Key
在服务端环境或本地终端设置变量,用自己的密钥替换占位符,不要将其放入前端构建产物或提交到代码仓库。
export ADSCRAWL_API_KEY="your_adscrawl_api_key"保存为 mastra-web.mjs
execute 处理函数直接接收校验后的输入。此独立示例调用工具并打印结构化结果。
import AdsCrawl from "adscrawl"; import { createTool } from "@mastra/core/tools"; import { z } from "zod"; const browser = new AdsCrawl({ apiKey: process.env.ADSCRAWL_API_KEY }); export const readWebPage = createTool({ id: "read-web-page", description: "Read a public web page as browser-rendered Markdown.", inputSchema: z.object({ url: z.string().url() }), outputSchema: z.object({ source: z.string().url(), markdown: z.string() }), execute: async ({ url }) => { const markdown = await browser.markdown({ url, waitUntil: "domcontentloaded", }); if (!markdown.trim()) throw new Error("The page returned no text"); return { source: url, markdown }; }, }); const result = await readWebPage.execute({ url: "https://example.com" }, {}); console.log(result);运行并接入下一步
预期输出包含 source 的对象,以及标题为 Example Domain 的 Markdown。将 readWebPage 加入 Mastra Agent 的 tools 对象,例如 tools: { readWebPage },并单独配置 Agent 使用的模型。
node mastra-web.mjs
用量与限制
- 示例直接运行工具,不会创建 Mastra Agent、模型服务或持久化工作流,这些需在应用中单独配置。
- 每次页面请求消耗 AdsCrawl 积分。示例读取单个公开 URL;动态页面可能需要调整 waitUntil,或增加浏览器交互步骤。
- 保留内容的来源 URL。处理长页面时,在传入模型前选择合适的分块方式或上下文长度策略。