Автоматизация задач браузера с помощью средства автоматизации браузера (предварительная версия)

Важно

Элементы, помеченные (предварительная версия) в этой статье, в настоящее время находятся в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или могут иметь ограниченные возможности. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.

В этой статье объясняется, как настроить и использовать средство автоматизации браузера с агентами Foundry для автоматизации рабочих процессов просмотра в Интернете.

Предупреждение

Средство автоматизации браузера имеет значительные риски безопасности. Обе ошибки в решении ИИ и наличие вредоносных или запутанных инструкций на веб-страницах, с которыми сталкивается ИИ, могут привести к выполнению команд, которые вы или другие не намерены. Эти действия могут скомпрометировать безопасность браузеров, компьютеров и любых учетных записей, к которым имеет доступ браузер или ИИ, включая персональные, финансовые или корпоративные системы. Используя средство автоматизации браузера, вы признаете, что несете ответственность за любое его использование и любых агентов, созданных с его помощью. Эта ответственность распространяется на всех других пользователей, которым вы предоставляете доступ к функциям средства автоматизации браузера, в том числе через результирующий агент. Используйте средство автоматизации браузера на виртуальных машинах с низким уровнем привилегий без доступа к конфиденциальным данным или критически важным ресурсам.

Рекомендации по оптимизации использования средств см. в статье Best practices for using tools in Microsoft Foundry Agent Service.

В Microsoft Foundry инструмент автоматизации браузера позволяет агенту, основанному на модели Foundry, выполнять задачи браузера с помощью подсказок на естественном языке. Когда вы используете его с службой агента Foundry, это создает изолированные сеансы браузера в предоставленной рабочей области Playwright.

Используя Microsoft Playwright Workspaces, вы можете автоматизировать рабочие процессы на основе браузера, такие как поиск, навигация, заполнение форм и резервирование.

Поддержка использования

В следующей таблице показана поддержка пакета SDK и настройки.

поддержка Microsoft Foundry пакет SDK Python C# SDK JavaScript SDK пакет SDK Java REST API Базовая настройка агента Настройка стандартного агента
✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Принцип работы

Взаимодействие начинается, когда пользователь отправляет запрос агенту, подключенного к средству автоматизации браузера. Например, "Показать мне все доступные занятия йоги на этой неделе с помощью следующего URL-адреса <url>." Когда агент получает запрос, служба агента Foundry создает изолированный сеанс браузера в подготовленной рабочей области Playwright. Каждый сеанс выполняется в изолированной среде для обеспечения конфиденциальности и безопасности.

Браузер выполняет действия, управляемые Playwright, такие как переход к соответствующим страницам и применение фильтров или параметров на основе пользовательских предпочтений (например, времени, локации и инструктора). Сочетая модель с Playwright, модель может анализировать HTML или XML в документы DOM, принимать решения и выполнять такие действия, как выбор элементов пользовательского интерфейса, ввод и навигация веб-сайтов. Соблюдайте осторожность при использовании этого средства.

Пример потока:

  1. Пользователь отправляет запрос в модель, включающую вызов средства автоматизации браузера с URL-адресом, на который вы хотите перейти.

  2. Средство автоматизации браузера получает ответ от модели. Если ответ содержит элементы действия, эти элементы содержат предлагаемые действия для достижения прогресса в достижении указанной цели. Например, действие может быть снимком экрана, чтобы модель могла оценить текущее состояние, обновляя его, или щелчком с координатами X/Y, указывающими, где должна быть перемещена мышь.

  3. Средство автоматизации браузера выполняет действие в изолированной среде.

  4. После выполнения действия средство автоматизации браузера записывает обновленное состояние среды на снимке экрана.

  5. Средство отправляет новый запрос с обновленным состоянием и повторяет этот цикл, пока модель не перестанет запрашивать действия или пользователь решит остановиться.

    Средство автоматизации браузера поддерживает многоэтапные беседы, позволяя пользователю уточнить свой запрос и завершить резервирование.

Необходимые условия

Прежде чем начать, убедитесь, что у вас есть:

  • Подписка Azure. Создайте его бесплатно.
  • Роль участника или владельца в группе ресурсов.
  • Проект Foundry с настроенной конечной точкой.
  • Модель искусственного интеллекта, развернутая в проекте (например, gpt-4o).
  • Ресурс рабочего пространства Playwright.
  • Настройка соединения проекта для рабочей области Playwright.

Требования к пакету SDK

Для Python примеров установите необходимые пакеты:

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

Пакет SDK .NET в настоящее время находится в предварительной версии. Дополнительные сведения см. в кратком руководстве.

Конфигурации

Получите конечную точку проекта: откройте проект на портале Foundry и скопируйте конечную точку на странице обзора проекта. Формат https://{account-name}.services.ai.azure.com/api/projects/{project-name}.

формат идентификатора Connection ID: используйте /subscriptions/{{subscriptionID}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.CognitiveServices/accounts/{{foundryAccountName}}/projects/{{foundryProjectName}}/connections/{{foundryConnectionName}}. Это значение можно найти на странице сведений о средстве после подключения средства автоматизации браузера.

Настройка службы автоматизации браузера

Шаг 1. Создание рабочей области Playwright

  1. На портале Azure создайте ресурс Playwright Workspace.
  2. После создания рабочей области перейдите в раздел Параметры>Управление доступом.
  3. Убедитесь, что включен метод проверки подлинности маркера доступа службы Playwright .
  4. Выберите "Создать маркер", введите имя (например, foundry-connection) и выберите период истечения срока действия.
  5. Скопируйте маркер немедленно. Вы не можете снова просмотреть его после закрытия страницы.
  6. На странице обзора рабочей области скопируйте конечную точку браузера (начинается с wss://).
  7. Предоставьте идентификатору проекта роль участника в ресурсе рабочей области Playwright или настройте пользовательскую роль.

Шаг 2. Подключение средства автоматизации браузера в Foundry

  1. Перейдите на портал Foundry и выберите проект.
  2. Выберите"Средства сборки>".
  3. Выберите "Подключить инструмент".
  4. На вкладке "Настроено" выберите "Автоматизация браузера", а затем нажмите кнопку "Добавить".
  5. Заполните обязательные поля:
    • Имя: уникальное имя подключения.
    • Конечная точка области рабочей области Playwright: вставьте скопированную конечную точку wss:// .
    • Маркер доступа: вставьте созданный маркер доступа.
  6. Выберите "Подключиться".

После создания подключения можно просмотреть идентификатор подключения Project на странице сведений о средстве. Используйте это значение в качестве идентификатора подключения службы автоматизации браузера в коде.

Пример кода

После запуска тестового примера убедитесь, что инструмент был активирован при помощи отслеживания в Microsoft Foundry. Рекомендации по проверке вызова средства см. в статье Best practices for using tools in Microsoft Foundry Agent Service. При использовании потоковой передачи можно также искать browser_automation_preview_call события.

Примечание

  • Пакет SDK .NET в настоящее время находится в предварительной версии. Дополнительные сведения см. в кратком руководстве.
  • В этой статье предполагается, что вы уже создали соединение с рабочей областью Playwright. См. раздел предварительных требований.

Использование BrowserAutomationAgentTool с использованием примеров агентов

В следующем примере Python показано, как создать агента ИИ с возможностями автоматизации браузера с использованием клиента BrowserAutomationAgentTool и синхронного клиента Azure AI Projects. Агент может перейти к веб-сайтам, взаимодействовать с веб-элементами и выполнять такие задачи, как поиск цен на акции.

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")

Что делает этот код

В этом примере создается версия агента с включенным средством автоматизации браузера, а затем отправляет запрос, который требует от агента использовать это средство. Он также обрабатывает события потоковой передачи, чтобы наблюдать за ходом выполнения и вызовами инструментов.

Обязательные входные данные

  • Конечная точка проекта Foundry и идентификатор подключения службы автоматизации браузера. Дополнительные сведения см. в разделе "Конфигурация ".

Ожидаемые выходные данные

При создании агента вы увидите следующие выходные данные:

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

Во время потоковой передачи также могут отображаться дельты и сведения о вызове инструментов. Выходные данные зависят от поведения веб-сайта и модели.

Использование BrowserAutomationPreviewTool с примером агентов

Перед выполнением этого примера выполните действия по настройке в разделе "Настройка службы автоматизации браузера".

В следующем примере C# показано, как создать AI-агента с возможностями автоматизации браузера, используя клиент BrowserAutomationPreviewTool и синхронный клиент Azure AI Projects. Агент может перейти к веб-сайтам, взаимодействовать с веб-элементами и выполнять такие задачи, как поиск цен на акции. В этом примере для простоты используется синхронная модель программирования. Асинхронную версию см. в примере использования BrowserAutomationPreviewTool и Агентов в репозитории Azure SDK для .NET на 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);

Что делает этот код

Этот пример создаёт версию агента с активированным инструментом автоматизации браузера, затем отправляет команду, которая требует использования этого инструмента, и отображает этапные обновления, пока агент проходит через последовательные шаги работы с браузером.

Обязательные входные данные

  • Конечная точка проекта Foundry и идентификатор подключения службы автоматизации браузера. Дополнительные сведения см. в разделе "Конфигурация ".
  • В вашем проекте Foundry создано соединение Playwright.

Ожидаемые выходные данные

Отображаются сообщения о ходе потоковой передачи, такие как текстовые дельты и завершенный ответ. Выходные данные зависят от поведения веб-сайта и модели.

Получение токена доступа:

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

В следующем примере cURL показано, как создать агент с помощью средства автоматизации браузера и выполнять задачи просмотра веб-страниц с помощью REST API.

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

Использование средства автоматизации браузера с примером агентов

В следующем примере TypeScript показано, как создать агент с помощью средства автоматизации браузера, выполнять задачи просмотра в Интернете и обрабатывать ответы потоковой передачи с помощью событий автоматизации браузера. Сведения о версии примера на JavaScript можно найти в примере на JavaScript для средства автоматизации браузера в репозитории Azure SDK для JavaScript на 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);
});

Что делает этот код

В этом примере создается версия агента с включенным средством автоматизации браузера, отправляет запрос, требующий использования средства, а также обрабатывает события потоковой передачи, включая события вызова службы автоматизации браузера по мере их поступления.

Обязательные входные данные

  • Конечная точка проекта Foundry и идентификатор подключения службы автоматизации браузера. Дополнительные сведения см. в разделе "Конфигурация ".

Ожидаемые выходные данные

Появляется сообщение "Агент создан ...", потоковая передача текстовых данных и, при необходимости, детали звонка через браузер при запуске инструмента. Выходные данные зависят от поведения веб-сайта и модели.

Использование автоматизации браузера в агенте Java

Добавьте зависимость в вашу pom.xml:

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

Создание агента с помощью автоматизации браузера

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());
    }
}

Ограничения

  • Только надежные сайты: используйте это средство только с сайтами, которыми вы доверяете. Избегайте страниц, которые запрашивают учетные данные, платежи или другие конфиденциальные действия.
  • Волатильность страниц: веб-страницы могут изменяться в любое время. Ваш агент может дать сбой, если изменится макет страницы, метки или навигационные потоки. Создайте обработку ошибок в рабочих процессах.
  • Сложные одностраничные приложения: JavaScript-насыщенные SPA с динамическим содержимым могут не отображаться правильно.

Рекомендации по затратам

Это средство использует ресурс рабочей области Playwright для запуска сеансов браузера. Ознакомьтесь с документацией по рабочей области Playwright для получения сведений о ценах и использовании.

Устранение неполадок

Агент не использует средство

  • Убедитесь, что вы создали агент с включенным средством автоматизации браузера.
  • В запросе требуется использование инструмента (например, tool_choice="required").
  • Используйте трассировку в Microsoft Foundry, чтобы проверить, произошл ли вызов средства. Инструкции см. в статье Best practices for using tools in Microsoft Foundry Agent Service.

Ошибки подключения или авторизации

  • Убедитесь, что идентификатор подключения службы автоматизации браузера соответствует идентификатору ресурса подключения рабочей области Playwright в проекте.
  • Убедитесь, что идентификатор проекта имеет доступ к ресурсу рабочей области Playwright.
  • Если вы недавно изменили токен доступа Playwright, обновите ключ подключения проекта Foundry.

Ошибки пакета SDK Python

  • Рабочая область не найдена. Убедитесь, что конечная точка проекта использует правильный формат: https://{account-name}.services.ai.azure.com/api/projects/{project-name} Не используйте устаревший формат эндпоинта Azure ML.
  • Непредвиденные ошибки аргументов ключевых слов: убедитесь, что используется последняя версия azure-ai-projects. Запустите pip install "azure-ai-projects>=2.0.0" --upgrade, чтобы обновить.
  • Ошибки импорта: установите все необходимые пакеты: pip install "azure-ai-projects>=2.0.0"

Время ожидания запросов

Автоматизация браузера может занять больше времени, чем типичные запросы.

  • Увеличьте время ожидания клиента (пример C# задает 5-минутное время ожидания).
  • Уменьшите область запроса (например, меньше страниц и меньше взаимодействий).

Очистка

  • Удалите версию агента, созданную для тестирования.
  • Отмените или измените маркер доступа Playwright, если он больше не нужен.
  • Удалите подключение проекта, если оно больше не требуется. Дополнительные сведения см. в разделе Добавить подключение в Microsoft Foundry.

Примеры сценариев

  • Бронирование и резервирование: автоматизация заполнения форм и подтверждение расписания на всех порталах бронирования.

  • Обнаружение продуктов: навигация по электронной коммерции или просмотр сайтов, поиск по критериям и извлечение сводок.

Примечание по прозрачности

Просмотрите примечание о прозрачности при использовании этого средства. Средство автоматизации браузера — это средство, которое может выполнять реальные задачи браузера с помощью запросов естественного языка, что позволяет автоматически просматривать действия без вмешательства человека.

Ознакомьтесь с рекомендациями по ответственному использованию ИИ при использовании этого средства.