Skip to content

AgentQL

AgentQL MCP Server 将你的 ADK 智能体连接到 AgentQL。AgentQL 是一个语义提取引擎,它根据网页元素的含义而不是 CSS 或 XPath 选择器来查询网页元素。此功能允许智能体使用自然语言定义从网页、PDF 和经过身份验证的会话中检索特定数据点。

用例

  • 弹性网页提取: 使用自然语言描述从动态网站提取数据。此功能允许你的智能体可靠地从频繁更新布局或 CSS 的网站收集信息,而不会中断。

  • 数据规范化: 将非结构化网页转换为干净、可预测的 JSON 格式。此功能使你的智能体能够立即将来自不同来源 (如多个招聘网站或购物网站) 的数据规范化为单一模式。

先决条件

  • 在 AgentQL 中创建一个 API 密钥。有关更多信息,请参阅文档

与智能体一起使用

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters

AGENTQL_API_KEY = "YOUR_AGENTQL_API_KEY"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="agentql_agent",
    instruction="Help users get information from AgentQL",
    tools=[
        McpToolset(
            connection_params=StdioConnectionParams(
                server_params = StdioServerParameters(
                    command="npx",
                    args=[
                        "-y",
                        "agentql-mcp",
                    ],
                    env={
                        "AGENTQL_API_KEY": AGENTQL_API_KEY,
                     }
                ),
                timeout=300,
            ),
        )
    ],
)

可用工具

工具 描述
extract-web-data 从给定的 'url' 提取结构化数据,使用 'prompt' 作为要提取的实际数据及其字段的描述

最佳实践

为确保准确提取,在提示智能体时请遵循以下准则:

  • 描述数据,而不是元素: 避免视觉描述 (例如"蓝色按钮")。相反,描述数据实体 (例如"提交按钮"或"产品价格")。

  • 定义层次结构: 如果提取列表,请明确指示智能体查找项目集合并定义每个项目所需的字段。

  • 语义过滤: 你可以在提示本身中指示工具忽略特定数据类型 (例如"排除广告和导航链接")。

其他资源