Automatisieren von Browseraufgaben mit dem Browserautomatisierungstool (Vorschau)

Wichtig

In diesem Artikel markierte Elemente (Vorschau) befinden sich derzeit in der öffentlichen Vorschau. Diese Vorschau wird ohne Vereinbarung auf Serviceebene bereitgestellt und wird für Produktionsworkloads nicht empfohlen. Bestimmte Features werden möglicherweise nicht unterstützt oder weisen eingeschränkte Funktionen auf. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

In diesem Artikel wird erläutert, wie Sie das Tool für die Browserautomatisierung mit Foundry-Agents konfigurieren und verwenden, um Webbrowsen-Workflows zu automatisieren.

Warnung

Das Browserautomatisierungstool ist mit erheblichen Sicherheitsrisiken verbunden. Sowohl Fehler im Urteil der KI als auch das Vorhandensein böswilliger oder verwirrender Anweisungen auf Webseiten, die von der KI gefunden werden, können dazu führen, dass sie Befehle ausführt, die Sie oder andere nicht beabsichtigen. Diese Aktionen können die Sicherheit Ihres oder anderer Nutzer Browser, Computer und aller Konten, auf die der Browser oder die KI zugreifen kann, einschließlich persönlicher, finanzieller oder Unternehmenssysteme, kompromittieren. Indem Sie das Browserautomatisierungstool verwenden, erkennen Sie an, dass Sie verantwortungs- und haftungsverantwortlich für jede Verwendung dieser Tools und aller daraus resultierenden Agenten sind, die Sie damit erstellen. Diese Verantwortung erstreckt sich auf alle anderen Benutzer, denen Sie browserautomatisierungs-Toolfunktionen zur Verfügung stellen, einschließlich über resultierende Agents. Verwenden Sie das Tool "Browserautomatisierung" auf virtuellen Computern mit geringen Rechten ohne Zugriff auf vertrauliche Daten oder kritische Ressourcen.

Anleitungen zur Optimierung der Toolnutzung finden Sie unter Best-Methoden für die Verwendung von Tools in Microsoft Foundry Agent Service.

In Microsoft Foundry ermöglicht das Browserautomatisierungstool Ihrem Foundry-modellgestützten Agent, reale browserbasierte Aufgaben durch Eingaben in natürlicher Sprache auszuführen. Wenn Sie es mit dem Foundry Agent Service verwenden, werden isolierte Browsersitzungen in Ihrem bereitgestellten Playwright-Arbeitsbereich erstellt.

Mithilfe von Microsoft Arbeitsbereiche für Dramatiker können Sie browserbasierte Workflows wie Suchen, Navigieren, Ausfüllen von Formularen und Buchungen automatisieren.

Verwendungsunterstützung

Die folgende Tabelle zeigt die SDK- und Setupunterstützung.

Microsoft Foundry-Unterstützung Python SDK C# SDK JavaScript SDK Java SDK REST-API Grundlegendes Agent-Setup Standard-Agenten-Einrichtung
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Funktionsweise

Die Interaktion beginnt, wenn der Benutzer eine Abfrage an einen Agent sendet, der mit dem Browserautomatisierungstool verbunden ist. Beispiel: "Zeige mir alle verfügbaren Yogakurse in dieser Woche aus der folgenden URL <url>." Wenn der Agent die Anforderung empfängt, erstellt der Foundry Agent Service eine isolierte Browsersitzung mithilfe Ihres eingerichteten Playwright-Arbeitsbereichs. Jede Sitzung wird für Datenschutz und Sicherheit sandkasteniert.

Der Browser führt Playwright-gesteuerte Aktionen aus, z. B. navigieren zu relevanten Seiten und Anwenden von Filtern oder Parametern basierend auf Benutzereinstellungen (z. B. Zeit, Ort und Dozent). Durch die Kombination des Modells mit Playwright kann das Modell HTML oder XML in DOM-Dokumente analysieren, Entscheidungen treffen und Aktionen wie auswählen von UI-Elementen, Eingaben und Navigieren in Websites ausführen. Seien Sie vorsichtig, wenn Sie dieses Tool verwenden.

Ein Beispielfluss ist:

  1. Ein Benutzer sendet eine Anforderung an das Modell, das einen Aufruf des Browserautomatisierungstools mit der URL enthält, zu der Sie wechseln möchten.

  2. Das Browserautomatisierungstool empfängt eine Antwort vom Modell. Wenn die Antwort Aktionselemente enthält, enthalten diese Elemente vorgeschlagene Aktionen, um den Fortschritt zum angegebenen Ziel zu erzielen. Eine Aktion kann z. B. ein Screenshot sein, damit das Modell den aktuellen Zustand mit einem aktualisierten Screenshot bewerten oder mit X/Y-Koordinaten klicken kann, die angeben, wo die Maus verschoben werden soll.

  3. Das Browserautomatisierungstool führt die Aktion in einer Sandkastenumgebung aus.

  4. Nach dem Ausführen der Aktion erfasst das Browserautomatisierungstool den aktualisierten Zustand der Umgebung als Screenshot.

  5. Das Tool sendet eine neue Anforderung mit dem aktualisierten Zustand und wiederholt diese Schleife, bis das Modell keine Aktionen anfordert, oder der Benutzer entscheidet, den Vorgang zu beenden.

    Das Browserautomatisierungs-Tool unterstützt mehrstufige Unterhaltungen, sodass der Benutzer seine Anfrage verfeinern und eine Buchung abschließen kann.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:

  • Ein Azure-Abonnement. Erstellen Sie eine kostenlos.
  • Rolle "Mitwirkender" oder "Besitzer" in einer Ressourcengruppe.
  • Ein Foundry-Projekt mit einem konfigurierten Endpunkt.
  • Ein KI-Modell, das in Ihrem Projekt bereitgestellt wurde (z. B. gpt-4o).
  • Eine Playwright-Arbeitsbereichsressource.
  • Eine Projektverbindung, die für Ihren Playwright-Arbeitsbereich eingerichtet ist.

SDK-Anforderungen

Installieren Sie für Python Beispiele die erforderlichen Pakete:

pip install "azure-ai-projects>=2.0.0"

Das .NET SDK ist derzeit als Vorschauversion verfügbar. Weitere Informationen finden Sie in der Schnellstartanleitung.

Konfiguration

Rufen Sie Ihren Projektendpunkt ab: Öffnen Sie Ihr Projekt im Foundry-Portal, und kopieren Sie den Endpunkt von der Projektübersichtsseite. Das Format ist https://{account-name}.services.ai.azure.com/api/projects/{project-name}.

Connection ID format: Verwenden Sie /subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}. Dieser Wert finden Sie auf der Detailseite des Tools, nachdem Sie das Browserautomatisierungstool verbunden haben.

Einrichten der Browserautomatisierung

Schritt 1: Erstellen eines Playwright-Arbeitsbereichs

  1. Erstellen Sie im Azure-Portal eine Playwright WorkspaceRessource.
  2. Wechseln Sie nach dem Erstellen des Arbeitsbereichs zu "Einstellungen>für die Zugriffsverwaltung".
  3. Vergewissern Sie sich, dass die Authentifizierungsmethode des Playwright-Dienstzugriffstokens aktiviert ist.
  4. Wählen Sie "Token generieren" aus, geben Sie einen Namen ein (z. B foundry-connection. ), und wählen Sie einen Ablaufzeitraum aus.
  5. Kopieren Sie das Token sofort. Sie können sie nach dem Schließen der Seite nicht mehr anzeigen.
  6. Kopieren Sie auf der Seite Arbeitsbereichsübersicht den Browser-Endpunkt, der mit wss:// beginnt.
  7. Weisen Sie der Projektidentität eine Rolle "Mitwirkender" in der Ressource des Playwright-Arbeitsbereichs zu, oder konfigurieren Sie eine benutzerdefinierte Rolle.

Schritt 2: Verbinden des Browserautomatisierungstools in Foundry

  1. Wechseln Sie zum Foundry-Portal , und wählen Sie Ihr Projekt aus.
  2. Wählen Sie Build>Tools aus.
  3. Wählen Sie "Tool verbinden" aus.
  4. Wählen Sie auf der Registerkarte " Konfiguriert " die Option "Browserautomatisierung" und dann "Tool hinzufügen" aus.
  5. Füllen Sie die erforderlichen Felder aus:
    • Name: Ein eindeutiger Name für Ihre Verbindung.
    • Endpunkt des Playwright-Arbeitsbereichs: Fügen Sie den von Ihnen kopierten wss:// Endpunkt ein.
    • Zugriffstoken: Fügen Sie das von Ihnen generierte Zugriffstoken ein.
  6. Wählen Sie "Verbinden" aus.

Nachdem die Verbindung erstellt wurde, können Sie die Project-Verbindungs-ID auf der Detailseite des Tools anzeigen. Verwenden Sie diesen Wert als Browserautomatisierungs-Verbindungs-ID in Ihrem Code.

Codebeispiel

Nachdem Sie ein Beispiel ausgeführt haben, überprüfen Sie, ob das Tool mithilfe der Ablaufverfolgung in Microsoft Foundry aufgerufen wurde. Anleitungen zum Überprüfen von Toolaufrufen finden Sie unter Best Practices für die Verwendung von Tools in Microsoft Foundry Agent Service. Wenn Sie Streaming verwenden, können Sie auch nach browser_automation_preview_call Ereignissen suchen.

Hinweis

  • Das .NET SDK ist derzeit als Vorschauversion verfügbar. Weitere Informationen finden Sie in der Schnellstartanleitung.
  • In diesem Artikel wird davon ausgegangen, dass Sie die Verbindung zum Playwright-Arbeitsbereich bereits erstellt haben. Weitere Informationen finden Sie im Abschnitt "Voraussetzungen".

Verwenden des BrowserAutomationAgentTools mit einem Agentenbeispiel

Im folgenden Python-Beispiel wird veranschaulicht, wie ein KI-Agent mit Browserautomatisierungsfunktionen mithilfe des BrowserAutomationAgentTool und des synchronen Azure AI Projects-Clients erstellt wird. Der Agent kann zu Websites navigieren, mit Webelementen interagieren und Aufgaben wie die Suche nach Aktienkursen ausführen.

import json
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
    PromptAgentDefinition,
    BrowserAutomationPreviewTool,
    BrowserAutomationToolParameters,
    BrowserAutomationToolConnectionParameters,
)

# Format: "https://resource_name.ai.azure.com/api/projects/project_name"
PROJECT_ENDPOINT = "your_project_endpoint"
BROWSER_CONNECTION_ID = "your-browser-automation-connection-id"

# Create clients to call Foundry API
project = AIProjectClient(
    endpoint=PROJECT_ENDPOINT,
    credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()

tool = BrowserAutomationPreviewTool(
    browser_automation_preview=BrowserAutomationToolParameters(
        connection=BrowserAutomationToolConnectionParameters(
            project_connection_id=BROWSER_CONNECTION_ID,
        )
    )
)

agent = project.agents.create_version(
    agent_name="MyAgent",
    definition=PromptAgentDefinition(
        model="gpt-4.1-mini",
        instructions="""You are an Agent helping with browser automation tasks. 
        You can answer questions, provide information, and assist with various tasks 
        related to web browsing using the Browser Automation tool available to you.""",
        tools=[tool],
    ),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

stream_response = openai.responses.create(
    stream=True,
    tool_choice="required",
    input="""
        Your goal is to report the percent of Microsoft year-to-date stock price change.
        To do that, go to the website finance.yahoo.com.
        At the top of the page, you will find a search bar.
        Enter the value 'MSFT', to get information about the Microsoft stock price.
        At the top of the resulting page you will see a default chart of Microsoft stock price.
        Click on 'YTD' at the top of that chart, and report the percent value that shows up just below it.""",
    extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
)

for event in stream_response:
    if event.type == "response.created":
        print(f"Follow-up response created with ID: {event.response.id}")
    elif event.type == "response.output_text.delta":
        print(f"Delta: {event.delta}")
    elif event.type == "response.text.done":
        print(f"\nFollow-up response done!")
    elif event.type == "response.output_item.done":
        item = event.item
        if item.type == "browser_automation_preview_call":
            arguments_str = getattr(item, "arguments", "{}")

            # Parse the arguments string into a dictionary
            arguments = json.loads(arguments_str)
            query = arguments.get("query")

            print(f"Call ID: {getattr(item, 'call_id')}")
            print(f"Query arguments: {query}")
    elif event.type == "response.completed":
        print(f"\nFollow-up completed!")
        print(f"Full response: {event.response.output_text}")

print("\nCleaning up...")
project.agents.delete_version(agent_name=agent.name, agent_version=agent.version)
print("Agent deleted")

Funktionsweise dieses Codes

In diesem Beispiel wird eine Agent-Version mit aktiviertem Browserautomatisierungstool erstellt und dann eine Eingabeaufforderung gesendet, für die der Agent das Tool verwenden muss. Außerdem werden Streamingereignisse verarbeitet, damit Sie Fortschritts- und Toolaufrufe beobachten können.

Erforderliche Eingaben

  • Ein Foundry-Projektendpunkt und eine Browserautomatisierungs-Verbindungs-ID. Details finden Sie unter "Konfiguration ".

Erwartete Ausgabe

Wenn Sie den Agenten erstellen, wird eine Ausgabe ähnlich zu der folgenden angezeigt:

Agent created (id: ..., name: ..., version: ...)

Während des Streamings werden möglicherweise auch Deltas und Toolanrufdetails angezeigt. Die Ausgabe variiert je nach Websiteinhalt und Modellverhalten.

Verwenden von BrowserAutomationPreviewTool mit Agentenbeispiel

Bevor Sie dieses Beispiel ausführen, führen Sie die Setupschritte im Einrichten der Browserautomatisierung durch.

Im folgenden C#-Beispiel wird veranschaulicht, wie Ein KI-Agent mit Browserautomatisierungs-Funktionen mithilfe des BrowserAutomationPreviewTool und synchronen Azure AI Projects-Client erstellt wird. Der Agent kann zu Websites navigieren, mit Webelementen interagieren und Aufgaben wie die Suche nach Aktienkursen ausführen. Im Beispiel wird der Einfachheit halber das synchrone Programmiermodell verwendet. Eine asynchrone Version finden Sie im Sample für die Verwendung von BrowserAutomationPreviewTool und Agents im Azure SDK für .NET Repository auf GitHub.

using System;
using Azure.AI.Projects;
using Azure.AI.Extensions.OpenAI;
using Azure.Identity;

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
var projectEndpoint = "your_project_endpoint";
var browserConnectionId = "your-browser-automation-connection-id";

// Note that Browser automation operations can take longer than usual
// and require the request timeout to be at least 5 minutes.
AIProjectClientOptions options = new()
{
    NetworkTimeout = TimeSpan.FromMinutes(5)
};
AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential(), options: options);

// Create the Browser Automation tool using the Playwright connection.
BrowserAutomationPreviewTool playwrightTool = new(
    new BrowserAutomationToolParameters(
    new BrowserAutomationToolConnectionParameters(browserConnectionId)
    ));

// Create the Agent version with the Browser Automation tool.
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-4.1-mini")
{
    Instructions = "You are an Agent helping with browser automation tasks.\n" +
    "You can answer questions, provide information, and assist with various tasks\n" +
    "related to web browsing using the Browser Automation tool available to you.",
    Tools = { playwrightTool }
};
AgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
    agentName: "myAgent",
    options: new(agentDefinition));

// Create the response stream. Also set ToolChoice = ResponseToolChoice.CreateRequiredChoice()
// on the ResponseCreationOptions to ensure the agent uses the Browser Automation tool.
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
CreateResponseOptions responseOptions = new()
{
    ToolChoice = ResponseToolChoice.CreateRequiredChoice(),
    StreamingEnabled = true,
    InputItems =
    {
        ResponseItem.CreateUserMessageItem("Your goal is to report the percent of Microsoft year-to-date stock price change.\n" +
            "To do that, go to the website finance.yahoo.com.\n" +
            "At the top of the page, you will find a search bar.\n" +
            "Enter the value 'MSFT', to get information about the Microsoft stock price.\n" +
            "At the top of the resulting page you will see a default chart of Microsoft stock price.\n" +
            "Click on 'YTD' at the top of that chart, and report the percent value that shows up just below it.")
    }
};
foreach (StreamingResponseUpdate update in responseClient.CreateResponseStreaming(options: responseOptions))
{
    if (update is StreamingResponseCreatedUpdate createUpdate)
    {
        Console.WriteLine($"Stream response created with ID: {createUpdate.Response.Id}");
    }
    else if (update is StreamingResponseOutputTextDeltaUpdate textDelta)
    {
        Console.WriteLine($"Delta: {textDelta.Delta}");
    }
    else if (update is StreamingResponseOutputTextDoneUpdate textDoneUpdate)
    {
        Console.WriteLine($"Response done with full message: {textDoneUpdate.Text}");
    }
    else if (update is StreamingResponseErrorUpdate errorUpdate)
    {
        throw new InvalidOperationException($"The stream has failed with the error: {errorUpdate.Message}");
    }
}

// Delete the Agent version to clean up resources.
projectClient.AgentAdministrationClient.DeleteAgentVersion(agentName: agentVersion.Name, agentVersion: agentVersion.Version);

Funktionsweise dieses Codes

In diesem Beispiel wird eine Agent-Version mit aktiviertem Browserautomatisierungstool erstellt, eine Eingabeaufforderung gesendet, die die Toolverwendung erfordert, und Streamingupdates gedruckt, während der Agent die Browserschritte durchläuft.

Erforderliche Eingaben

  • Ein Foundry-Projektendpunkt und eine Browserautomatisierungs-Verbindungs-ID. Details finden Sie unter "Konfiguration ".
  • Eine Playwright-Verbindung, die in Ihrem Foundry-Projekt erstellt wurde.

Erwartete Ausgabe

Sie sehen Streamingstatusmeldungen, z. B. Textdelta und eine abgeschlossene Antwort. Die Ausgabe variiert je nach Websiteinhalt und Modellverhalten.

Zugriffstoken abrufen:

export AGENT_TOKEN=$(az account get-access-token --scope "https://ai.azure.com/.default" --query accessToken -o tsv)

Im folgenden cURL-Beispiel wird veranschaulicht, wie Sie einen Agent mit dem Browserautomatisierungstool erstellen und Webbrowsenaufgaben mithilfe der REST-API ausführen.

curl --request POST \
  --url "${FOUNDRY_PROJECT_ENDPOINT}/openai/v1/responses" \
  --header "Authorization: Bearer ${AGENT_TOKEN}" \
  --header "Content-Type: application/json" \
  --header "User-Agent: insomnia/11.6.1" \
  --data @- <<JSON
{
  "model": "${FOUNDRY_MODEL_DEPLOYMENT_NAME}",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Your goal is to report the percent of Microsoft year-to-date stock price change."
        },
        {
          "type": "input_text",
          "text": "Go to finance.yahoo.com, search for MSFT, select YTD on the chart, and report the percent value shown."
        }
      ]
    }
  ],
  "tools": [
    {
      "type": "browser_automation_preview",
      "browser_automation_preview": {
        "connection": {
          "project_connection_id": "${BROWSER_AUTOMATION_PROJECT_CONNECTION_ID}"
        }
      }
    }
  ]
}
JSON

Verwenden Sie das Werkzeug für die Browserautomatisierung mit Agenten, zum Beispiel.

Im folgenden TypeScript-Beispiel wird veranschaulicht, wie Sie einen Agent mit Browserautomatisierungstool erstellen, Webbrowsenaufgaben ausführen und Streamingantworten mit Browserautomatisierungsereignissen verarbeiten. Eine JavaScript-Version dieses Beispiels finden Sie im JavaScript-Beispiel für das Browserautomatisierungstool im Azure SDK für JavaScript-Repository auf GitHub.

import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";

// Format: "https://resource_name.ai.azure.com/api/projects/project_name"
const PROJECT_ENDPOINT = "your_project_endpoint";
const BROWSER_CONNECTION_ID = "your-browser-automation-connection-id";

const handleBrowserCall = (item: any) => {
  // TODO: support browser_automation_preview_call schema
  const callId = item.call_id;
  const argumentsStr = item.arguments;

  // Parse the arguments string into a dictionary
  let query = null;
  if (argumentsStr && typeof argumentsStr === "string") {
    try {
      const argumentsObj = JSON.parse(argumentsStr);
      query = argumentsObj.query;
    } catch (e) {
      console.error("Failed to parse arguments:", e);
    }
  }

  console.log(`Call ID: ${callId ?? "None"}`);
  console.log(`Query arguments: ${query ?? "None"}`);
};

export async function main(): Promise<void> {
  // Create clients to call Foundry API
  const project = new AIProjectClient(PROJECT_ENDPOINT, new DefaultAzureCredential());
  const openai = project.getOpenAIClient();

  console.log("Creating agent with Browser Automation tool...");

  const agent = await project.agents.createVersion("MyAgent", {
    kind: "prompt",
    model: "gpt-4.1-mini",
    instructions: `You are an Agent helping with browser automation tasks. 
            You can answer questions, provide information, and assist with various tasks 
            related to web browsing using the Browser Automation tool available to you.`,
    // Define Browser Automation tool
    tools: [
      {
        type: "browser_automation_preview",
        browser_automation_preview: {
          connection: {
            project_connection_id: BROWSER_CONNECTION_ID,
          },
        },
      },
    ],
  });
  console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);

  console.log("\nSending browser automation request with streaming...");
  const streamResponse = await openai.responses.create(
    {
      input: `Your goal is to report the percent of Microsoft year-to-date stock price change.
            To do that, go to the website finance.yahoo.com.
            At the top of the page, you will find a search bar.
            Enter the value 'MSFT', to get information about the Microsoft stock price.
            At the top of the resulting page you will see a default chart of Microsoft stock price.
            Click on 'YTD' at the top of that chart, and report the percent value that shows up just below it.`,
      stream: true,
    },
    {
      body: {
        agent: { name: agent.name, type: "agent_reference" },
        tool_choice: "required",
      },
    },
  );

  // Process the streaming response
  for await (const event of streamResponse) {
    if (event.type === "response.created") {
      console.log(`Follow-up response created with ID: ${event.response.id}`);
    } else if (event.type === "response.output_text.delta") {
      process.stdout.write(event.delta);
    } else if (event.type === "response.output_text.done") {
      console.log("\n\nFollow-up response done!");
    } else if (
      event.type === "response.output_item.done" ||
      event.type === "response.output_item.added"
    ) {
      const item = event.item as any;
      if (item.type === "browser_automation_preview_call") {
        handleBrowserCall(item);
      }
    } else if (event.type === "response.completed") {
      console.log("\nFollow-up completed!");
    }
  }

  // Clean up resources by deleting the agent version
  // This prevents accumulation of unused resources in your project
  console.log("\nCleaning up resources...");
  await project.agents.deleteVersion(agent.name, agent.version);
  console.log("Agent deleted");

  console.log("\nBrowser Automation sample completed!");
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

Funktionsweise dieses Codes

In diesem Beispiel wird eine Agent-Version mit aktiviertem Browserautomatisierungstool erstellt, eine Aufforderung gesendet, die die Verwendung von Tools erfordert, und Streamingereignisse verarbeitet, einschließlich Browserautomatisierungs-Aufrufereignissen, sobald sie eintreffen.

Erforderliche Eingaben

  • Ein Foundry-Projektendpunkt und eine Browserautomatisierungs-Verbindungs-ID. Details finden Sie unter "Konfiguration ".

Erwartete Ausgabe

Wenn das Tool aufgerufen wird, sehen Sie eine Nachricht "Agent erstellt...", Streaming-Textausgabe und optional Browseranrufdetails. Die Ausgabe variiert je nach Websiteinhalt und Modellverhalten.

Verwenden der Browserautomatisierung in einem Java-Agent

Fügen Sie die Abhängigkeit zu Ihrem pom.xml hinzu:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-ai-agents</artifactId>
    <version>2.0.0</version>
</dependency>

Erstellen eines Agents mit Browserautomatisierung

import com.azure.ai.agents.AgentsClient;
import com.azure.ai.agents.AgentsClientBuilder;
import com.azure.ai.agents.ResponsesClient;
import com.azure.ai.agents.models.*;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;

import java.util.Collections;

public class BrowserAutomationExample {
    public static void main(String[] args) {
        // Format: "https://resource_name.ai.azure.com/api/projects/project_name"
        String projectEndpoint = "your_project_endpoint";
        String browserConnectionId = "your-browser-automation-connection-id";

        AgentsClientBuilder builder = new AgentsClientBuilder()
            .credential(new DefaultAzureCredentialBuilder().build())
            .endpoint(projectEndpoint);

        AgentsClient agentsClient = builder.buildAgentsClient();
        ResponsesClient responsesClient = builder.buildResponsesClient();

        // Create browser automation tool with connection configuration
        BrowserAutomationPreviewTool browserTool = new BrowserAutomationPreviewTool(
            new BrowserAutomationToolParameters(
                new BrowserAutomationToolConnectionParameters(browserConnectionId)
            )
        );

        // Create agent with browser automation tool
        PromptAgentDefinition agentDefinition = new PromptAgentDefinition("gpt-4.1-mini")
            .setInstructions("You are a helpful assistant that can interact with web pages.")
            .setTools(Collections.singletonList(browserTool));

        AgentVersionDetails agent = agentsClient.createAgentVersion("browser-agent", agentDefinition);
        System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion());

        // Create a response
        AgentReference agentReference = new AgentReference(agent.getName())
            .setVersion(agent.getVersion());

        Response response = responsesClient.createAzureResponse(
            new AzureCreateResponseOptions().setAgentReference(agentReference),
            ResponseCreateParams.builder()
                .input("Navigate to microsoft.com and summarize the main content"));

        System.out.println("Response: " + response.output());

        // Clean up
        agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion());
    }
}

Einschränkungen

  • Nur vertrauenswürdige Websites: Verwenden Sie dieses Tool nur für Websites, denen Sie vertrauen. Vermeiden Sie Seiten, die zur Eingabe von Anmeldeinformationen, Zahlungen oder anderen vertraulichen Aktionen auffordern.
  • Seitenvolatilität: Webseiten können sich jederzeit ändern. Ihr Agent kann fehlschlagen, wenn sich das Seitenlayout, die Etiketten oder die Navigationsabläufe ändern. Erstellen Sie die Fehlerbehandlung in Ihren Workflows.
  • Komplexe Einzelseitenanwendungen: JavaScript-schwere SPAs mit dynamischem Inhalt werden möglicherweise nicht ordnungsgemäß gerendert.

Überlegungen zu Kosten

Dieses Tool verwendet eine Playwright-Arbeitsbereichsressource zum Ausführen von Browsersitzungen. Lesen Sie die Dokumentation des Playwright-Arbeitsbereichs für Preis- und Nutzungsdetails.

Problembehandlung

Der Agent verwendet das Tool nicht.

  • Vergewissern Sie sich, dass Sie den Agent mit aktivierter Browserautomatisierung erstellt haben.
  • Benötigen Sie in Ihrer Anforderung die Verwendung des Tools (z. B. tool_choice="required").
  • Verwenden Sie die Ablaufverfolgung in Microsoft Foundry, um zu bestätigen, ob ein Toolaufruf aufgetreten ist. Anleitungen finden Sie unter Best Practices für die Verwendung von Tools in Microsoft Foundry Agent Service.

Verbindungs- oder Autorisierungsfehler

  • Vergewissern Sie sich, dass die Verbindungs-ID der Browserautomatisierung mit der Ressourcen-ID der Playwright-Arbeitsbereichsverbindung in Ihrem Projekt übereinstimmt.
  • Vergewissern Sie sich, dass die Projektidentität Zugriff auf die Ressource des Playwright-Arbeitsbereichs hat.
  • Wenn Sie das Playwright-Zugriffstoken kürzlich gedreht haben, aktualisieren Sie den Verbindungsschlüssel des Foundry-Projekts.

Python SDK-Fehler

  • Arbeitsbereich nicht gefunden: Überprüfen Sie, ob Ihr Projektendpunkt das richtige Format verwendet: https://{account-name}.services.ai.azure.com/api/projects/{project-name}. Verwenden Sie nicht das ältere Azure ML-Endpunktformat.
  • Unerwartete Fehler beim Schlüsselwortargument: Stellen Sie sicher, dass Sie die neueste Version von azure-ai-projects. Führen Sie pip install "azure-ai-projects>=2.0.0" --upgrade aus, um zu aktualisieren.
  • Importfehler: Alle erforderlichen Pakete installieren: pip install "azure-ai-projects>=2.0.0".

Zeitüberschreitung bei Anfragen

Die Browserautomatisierung kann länger dauern als typische Anforderungen.

  • Erhöhen Sie das Clienttimeout (im C#-Beispiel wird ein 5-Minuten-Timeout festgelegt).
  • Verringern Sie den Umfang Ihrer Eingabeaufforderung (z. B. weniger Seiten und weniger Interaktionen).

Bereinigen

  • Löschen Sie die Agentversion, die Sie zum Testen erstellt haben.
  • Widerrufen oder erneuern Sie das Playwright-Zugriffstoken, wenn Sie es nicht mehr benötigen.
  • Entfernen Sie die Projektverbindung, wenn sie nicht mehr erforderlich ist. Weitere Informationen finden Sie unter Add a connection in Microsoft Foundry.

Beispielszenarien

  • Buchungen und Reservierungen: Automatisierung des Ausfüllens von Formularen und der Bestätigungsvorgänge über Buchungsportale.

  • Produktsuche: Navigieren Sie im E-Commerce oder auf Bewertungsseiten, suchen Sie nach Kriterien und extrahieren Sie Zusammenfassungen.

Transparenzhinweis

Überprüfen Sie die Transparenzhinweise bei Verwendung dieses Tools. Das Tool "Browserautomatisierung" ist ein Tool, mit dem praktische Browseraufgaben über Aufforderungen in natürlicher Sprache ausgeführt werden können, um automatisierte Browseraktivitäten ohne menschliche Eingriffe zu ermöglichen.

Überprüfen Sie die verantwortlichen KI-Überlegungen bei der Verwendung dieses Tools.