Skip to main content
AgentQL 工具通过 AgentQL 查询 或自然语言提示,提供网页交互和从任何网页提取结构化数据的功能。AgentQL 可跨多种语言和网页使用,且不会随时间推移和变化而失效。

概述

AgentQL 提供以下三个工具:
  • ExtractWebDataTool 使用 AgentQL 查询 或数据的自然语言描述,从给定 URL 的网页中提取结构化数据(JSON 格式)。
以下两个工具也作为 AgentQLBrowserToolkit 的一部分捆绑提供,必须与 Playwright 浏览器或通过 Chrome DevTools 协议 (CDP) 连接的远程浏览器实例一起使用:
  • ExtractWebDataBrowserTool 使用 AgentQL 查询 或自然语言描述,从浏览器中当前活动的网页提取结构化数据(JSON 格式)。
  • GetWebElementBrowserTool 使用自然语言描述在浏览器中当前活动的网页上查找网页元素,并返回其 CSS 选择器以供进一步交互。

集成详情

工具特性

设置

要运行此笔记本,请安装 Playwright 浏览器并配置 Jupyter Notebook 的 asyncio 循环。

凭证

要使用 AgentQL 工具,您需要从 AgentQL 开发者门户 获取自己的 API 密钥,并设置 AgentQL 环境变量。

实例化

ExtractWebDataTool

您可以使用以下参数实例化 ExtractWebDataTool
  • api_key:来自 dev.agentql.com 的您的 AgentQL API 密钥。可选
  • timeout:请求超时前的等待秒数。如果数据提取超时,请增加此值。默认为 900
  • is_stealth_mode_enabled:是否启用实验性的反机器人规避策略。此功能可能并非对所有网站在所有时间都有效。启用此模式后,数据提取可能需要更长时间才能完成。默认为 False
  • wait_for:在提取数据前等待页面加载的秒数。默认为 0
  • is_scroll_to_bottom_enabled:是否在提取数据前滚动到页面底部。默认为 False
  • mode"standard" 使用深度数据分析,而 "fast" 以牺牲部分分析深度换取速度,对于大多数用例已足够。在此指南中了解更多关于模式的信息。 默认为 "fast"
  • is_screenshot_enabled:是否在提取数据前截取屏幕截图。以 Base64 字符串形式在 ‘metadata’ 中返回。默认为 False
ExtractWebDataTool 使用 AgentQL 的 REST API 实现,您可以在 API 参考文档 中查看有关参数的更多详细信息。

ExtractWebDataBrowserTool

要实例化 ExtractWebDataBrowserTool,您需要将工具与浏览器实例连接。 您可以设置以下参数:
  • timeout:请求超时前的等待秒数。如果数据提取超时,请增加此值。默认为 900
  • wait_for_network_idle:是否在执行前等待网络达到完全空闲状态。默认为 True
  • include_hidden:是否考虑页面上视觉隐藏的元素。默认为 True
  • mode"standard" 使用深度数据分析,而 "fast" 以牺牲部分分析深度换取速度,对于大多数用例已足够。在此指南中了解更多关于模式的信息。 默认为 "fast"
ExtractWebDataBrowserTool 使用 AgentQL 的 SDK 实现。您可以在 AgentQL 的 API 参考 中找到有关参数和函数的更多详细信息。

GetWebElementBrowserTool

要实例化 GetWebElementBrowserTool,您需要将工具与浏览器实例连接。 您可以设置以下参数:
  • timeout:请求超时前的等待秒数。如果数据提取超时,请增加此值。默认为 900
  • wait_for_network_idle:是否在执行前等待网络达到完全空闲状态。默认为 True
  • include_hidden:是否考虑页面上视觉隐藏的元素。默认为 False
  • mode"standard" 使用深度数据分析,而 "fast" 以牺牲部分分析深度换取速度,对于大多数用例已足够。在此指南中了解更多关于模式的信息。 默认为 "fast"
GetWebElementBrowserTool 使用 AgentQL 的 SDK 实现。您可以在 AgentQL 的 API 参考 中找到有关参数和函数的更多详细信息。

调用

ExtractWebDataTool

此工具底层使用 AgentQL 的 REST API,将公开可用的网页 URL 发送到 AgentQL 的端点。这不适用于私有页面或已登录的会话。对于这些用例,请使用 ExtractWebDataBrowserTool
  • url:您要从中提取数据的网页 URL。
  • query:要执行的 AgentQL 查询。如果您想提取精确结构化的数据,请使用 AgentQL 查询。在文档中了解更多关于如何编写 AgentQL 查询的信息,或在 AgentQL Playground 中进行测试。
  • prompt:要从页面提取的数据的自然语言描述。AgentQL 将根据您的提示推断数据的结构。如果您想使用自由形式的语言定义数据而不指定特定结构,请使用 prompt
注意: 您必须定义 queryprompt 才能使用 AgentQL。

ExtractWebDataBrowserTool

  • query:要执行的 AgentQL 查询。如果您想提取精确结构化的数据,请使用 AgentQL 查询。在文档中了解更多关于如何编写 AgentQL 查询的信息,或在 AgentQL Playground 中进行测试。
  • prompt:要从页面提取的数据的自然语言描述。AgentQL 将根据您的提示推断数据的结构。如果您想使用自由形式的语言定义数据而不指定特定结构,请使用 prompt
注意: 您必须定义 queryprompt 才能使用 AgentQL。 要提取数据,首先必须使用 LangChain 的 Playwright 工具导航到网页。

GetWebElementBrowserTool

  • prompt:要查找的网页元素的自然语言描述。

链式调用

您可以在链中使用 AgentQL 工具,首先将其绑定到一个工具调用模型,然后调用它:

实例化 LLM

执行工具链

在代理中使用

您可以使用 AgentQLBrowserToolkit 将 AgentQL 工具与 AI 代理一起使用。此工具包包括 ExtractDataBrowserToolGetWebElementBrowserTool。以下是将 AgentQL 工具包与 Playwright 工具结合使用的代理浏览器操作示例。

实例化工具包

与 ReAct 代理一起使用


API 参考

有关如何使用此集成的更多信息,请参阅 git 仓库langchain 集成文档