跳到主要内容
Anchor 是一个用于 AI 代理浏览器自动化的平台,它解决了自动化缺乏 API 或 API 覆盖范围有限的 Web 应用程序工作流程的挑战。它简化了基于浏览器的自动化的创建、部署和管理,将复杂的 Web 交互转换为简单的 API 端点。 本指南提供了 Anchor 浏览器工具的快速入门概述。有关 Anchor 浏览器更多信息,请访问 Anchorbrowser.ioAnchor 浏览器文档

概览

集成详情

LangChain 的 Anchor 浏览器包是 langchain-anchorbrowser,当前最新版本是 PyPI - 版本

工具特性

工具名称描述参数
AnchorContentToollangchain-anchorbrowser从网页中提取文本内容url, format
AnchorScreenshotToollangchain-anchorbrowser截取网页截图url, width, height, image_quality, wait, scroll_all_content, capture_full_height, s3_target_address
AnchorWebTaskToolKitlangchain-anchorbrowser使用 AI 执行智能 Web 任务(简单和高级模式)见下文
langchain-anchorbrowser 中允许的参数只是 Anchor 浏览器 API 参考中列出的参数的子集:获取网页内容截取网页截图执行 Web 任务 信息: Anchor 目前为 langchain 实现了 SimpleAnchorWebTaskToolAdvancedAnchorWebTaskTool 工具,并带有 browser_use 代理。

AnchorWebTaskToolKit 工具

此工具包中每个工具的区别在于 pydantic 配置结构。
工具名称参数
SimpleAnchorWebTaskToollangchain-anchorbrowser提示,url
AdvancedAnchorWebTaskToollangchain-anchorbrowser提示,url,输出模式

设置

该集成位于 langchain-anchorbrowser 包中。
pip install --quiet -U langchain-anchorbrowser pydantic

凭据

使用您的 Anchor 浏览器凭据。根据需要从 Anchor 浏览器 API 密钥页面获取。
import getpass
import os

if not os.environ.get("ANCHORBROWSER_API_KEY"):
    os.environ["ANCHORBROWSER_API_KEY"] = getpass.getpass("ANCHORBROWSER API key:\n")

实例化

轻松实例化 Anchor 浏览器工具实例。
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-4o", 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 参考


以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.