Anchor 是一个用于 AI 代理浏览器自动化的平台,它解决了自动化缺乏 API 或 API 覆盖有限的 Web 应用程序工作流程的挑战。它简化了基于浏览器的自动化创建、部署和管理,将复杂的 Web 交互转换为简单的 API 端点。
本指南提供了 Anchor Browser 工具快速入门概述。有关 Anchor Browser 的更多信息,请访问 Anchorbrowser.io 或 Anchor Browser 文档
概述
集成详情
LangChain 的 Anchor Browser 包是 langchain-anchorbrowser,当前最新版本是 !PyPI - 版本.
工具特性
| 工具名称 | 包 | 描述 | 参数 |
|---|---|---|---|
AnchorContentTool | langchain-anchorbrowser | 从网页提取文本内容 | url, format |
AnchorScreenshotTool | langchain-anchorbrowser | 对网页进行截图 | url, width, height, image_quality, wait, scroll_all_content, capture_full_height, s3_target_address |
AnchorWebTaskToolKit | langchain-anchorbrowser | 使用 AI 执行智能 Web 任务(简单和高级模式) | 见下文 |
中允许的参数只是 Anchor Browser API 参考中列出的参数子集: langchain-anchorbrowser 中允许的参数只是相应 Anchor Browser API 参考中列出的参数子集: 获取网页内容, 网页截图和 执行 Web 任务.
Info: Anchor 目前为 langchain 实现了 SimpleAnchorWebTaskTool 和 AdvancedAnchorWebTaskTool 工具。对于 browser_use 工具。对于
AnchorWebTaskToolKit 工具
此工具包中每个工具的区别在于 pydantic 配置结构。
| 工具名称 | 包 | 参数 |
|---|---|---|
SimpleAnchorWebTaskTool | langchain-anchorbrowser | prompt, url |
AdvancedAnchorWebTaskTool | langchain-anchorbrowser | prompt, url, output_schema |
设置
集成位于 langchain-anchorbrowser package.
pip install --quiet -U langchain-anchorbrowser pydantic
凭据
使用您的 Anchor Browser 凭据。在 Anchor Browser 获取它们 API 密钥页面 根据需要。
if not os.environ.get("ANCHORBROWSER_API_KEY"):
os.environ["ANCHORBROWSER_API_KEY"] = getpass.getpass("ANCHORBROWSER API key:\n")
实例化
轻松实例化 Anchor Browser 工具。
from langchain_anchorbrowser import (
AnchorContentTool,
AnchorScreenshotTool,
AdvancedAnchorWebTaskTool,
)
anchor_content_tool = AnchorContentTool()
anchor_screenshot_tool = AnchorScreenshotTool()
anchor_advanced_web_task_tool = AdvancedAnchorWebTaskTool()
调用
使用参数直接调用
完整的可用参数列表出现在上方的工具特性表中。
# Get Markdown Content for https://www.anchorbrowser.io
anchor_content_tool.invoke(
{"url": "https://www.anchorbrowser.io", "format": "markdown"}
)
# Get a Screenshot for https://docs.anchorbrowser.io
anchor_screenshot_tool.invoke(
{"url": "https://docs.anchorbrowser.io", "width": 1280, "height": 720}
)
# Define a Pydantic model for the web task output schema
from pydantic import BaseModel
from typing import List
class NodeCpuUsage(BaseModel):
node: str,
cluster: str,
cpu_avg_percentage: float
class OutputSchema(BaseModel):
nodes_cpu_usage: List[NodeCpuUsage]
# Run a web task to collect data from a web page
anchor_advanced_web_task_tool.invoke(
{
"prompt": "Collect the node names and their CPU average %",
"url": "https://play.grafana.org/a/grafana-k8s-app/navigation/nodes?from=now-1h&to=now&refresh=1m",
"output_schema": OutputSchema.model_json_schema()
}
)
使用 ToolCall 调用
我们也可以使用模型生成的 ToolCall 来调用工具,在这种情况下将返回 ToolMessage:
# This is usually generated by a model, but we'll create a tool call directly for demo purposes.
model_generated_tool_call = {
"args": {"url": "https://www.anchorbrowser.io", "format": "markdown"},
"id": "1",
"name": anchor_content_tool.name,
"type": "tool_call",
}
anchor_content_tool.invoke(model_generated_tool_call)
链接
我们可以通过首先将其绑定到 工具调用模型 然后调用它来在链中使用我们的工具:
在代理中使用
pip install -qU langchain langchain-openai
from langchain.chat_models import init_chat_model
model = init_chat_model(model="gpt-5.5", model_provider="openai")
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass("OPENAI API key:\n")
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableConfig, chain
prompt = ChatPromptTemplate(
[
("system", "You are a helpful assistant."),
("human", "{user_input}"),
("placeholder", "{messages}"),
]
)
# specifying tool_choice will force the model to call this tool.
model_with_tools = model.bind_tools(
[anchor_content_tool], tool_choice=anchor_content_tool.name
)
model_chain = prompt | model_with_tools
@chain
def tool_chain(user_input: str, config: RunnableConfig):
input_ = {"user_input": user_input}
ai_msg = model_chain.invoke(input_, config=config)
tool_msgs = anchor_content_tool.batch(ai_msg.tool_calls, config=config)
return model_chain.invoke({**input_, "messages": [ai_msg, *tool_msgs]}, config=config)
tool_chain.invoke(input())
API 参考
- - PyPI
- - GitHub
- - Anchor 浏览器文档
- - Anchor 浏览器 API 参考