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

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

Следующие клиенты Python предоставляют доступ к встроенному инструменту:

Client Фабрика Notes
OpenAIChatClient get_computer_tool() Использует API ответов OpenAI.
FoundryChatClient get_computer_tool() Требуется azure-ai-projects 2.3.0 или более поздней версии.

FoundryChatClient.get_computer_use_tool(...) — это отдельный API предварительной версии. Сведения о параметрах конфигурации см. в разделе поставщик моделей Microsoft Foundry.

Добавьте инструмент к агенту

Создайте средство поставщика и передайте его агенту:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

client = OpenAIChatClient()
agent = Agent(
    client=client,
    tools=[client.get_computer_tool()],
)

Модель возвращает элемент Content с type="computer_tool_call". Элемент включает в себя:

  • Элемент id и отдельный call_id.
  • Упорядоченный actions список.
  • Необязательный pending_safety_checks.

Незавершенные вызовы отображаются в AgentResponse.user_input_requests. Отображение действий и предупреждений пользователю перед выполнением приложения. Платформа никогда не подтверждает автоматическую проверку безопасности.

Возврат результата

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

from agent_framework import Content, Message

result = Content.from_computer_tool_result(
    call_id=request.call_id,
    screenshot=Content.from_data(screenshot_bytes, "image/png"),
    acknowledged_safety_checks=confirmed_checks,
)

tool_message = Message(role="tool", contents=[result])
response = await agent.run(tool_message, session=session)

Используйте тот же AgentSession при отправке результата. Вы также можете предоставить скриншот с помощью Content.from_uri(...) или Content.from_hosted_file(...). Для ответов OpenAI и Foundry требуется снимок экрана, даже если общий тип результата позволяет поставщикам опустить один из них.

Тип ComputerSafetyCheck и Content.from_computer_tool_call(...)Content.from_computer_tool_result(...) конструкторы — это экспериментальные API Платформы агента. Вызовы и результаты можно сохранить с помощью Content.to_dict() и восстановить с помощью Content.from_dict().

Поведение рабочего процесса

Когда процесс приостанавливается для собственного ввода на компьютере, Agent Framework сохраняет идентификатор вызова, порядок действий и незавершённые проверки безопасности между контрольными точками. Если вызовы локальных функций завершаются в рамках того же пакета, их результаты возвращаются вместе с результатом компьютера в исходном порядке вызовов.

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