AgentQL¶
AgentQL MCP Server 将你的 ADK 智能体连接到 AgentQL。AgentQL 是一个语义提取引擎,它根据网页元素的含义而不是 CSS 或 XPath 选择器来查询网页元素。此功能允许智能体使用自然语言定义从网页、PDF 和经过身份验证的会话中检索特定数据点。
用例¶
-
弹性网页提取: 使用自然语言描述从动态网站提取数据。此功能允许你的智能体可靠地从频繁更新布局或 CSS 的网站收集信息,而不会中断。
-
数据规范化: 将非结构化网页转换为干净、可预测的 JSON 格式。此功能使你的智能体能够立即将来自不同来源 (如多个招聘网站或购物网站) 的数据规范化为单一模式。
先决条件¶
与智能体一起使用¶
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' 作为要提取的实际数据及其字段的描述 |
最佳实践¶
为确保准确提取,在提示智能体时请遵循以下准则:
-
描述数据,而不是元素: 避免视觉描述 (例如"蓝色按钮")。相反,描述数据实体 (例如"提交按钮"或"产品价格")。
-
定义层次结构: 如果提取列表,请明确指示智能体查找项目集合并定义每个项目所需的字段。
-
语义过滤: 你可以在提示本身中指示工具忽略特定数据类型 (例如"排除广告和导航链接")。