Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Natywna obsługa komputera pozwala modelowi Responses żądać uporządkowanych działań na pulpicie lub w przeglądarce. Aplikacja jest właścicielem środowiska wykonawczego, przedstawia kontrole bezpieczeństwa w celu zatwierdzenia, wykonuje akcje, przechwytuje zrzut ekranu i zwraca wynik do modelu.
Następujący klienci Python udostępniają natywne narzędzie:
| Client | Fabryka | Notes |
|---|---|---|
OpenAIChatClient |
get_computer_tool() |
Korzysta z interfejsu API Responses firmy OpenAI. |
FoundryChatClient |
get_computer_tool() |
Wymaga azure-ai-projects wersji 2.3.0 lub nowszej. |
FoundryChatClient.get_computer_use_tool(...) to oddzielny interfejs API w wersji zapoznawczej. Aby zapoznać się z opcjami konfiguracji, zobacz dostawcę modelu Microsoft Foundry.
Dodaj narzędzie do agenta
Utwórz narzędzie dostawcy i przekaż je do agenta:
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient
client = OpenAIChatClient()
agent = Agent(
client=client,
tools=[client.get_computer_tool()],
)
Model zwraca element Content, zawierający type="computer_tool_call". Element zawiera:
- Element
idi odrębnycall_id. - Uporządkowana
actionslista. - Opcjonalny
pending_safety_checks.
Nieodebrane połączenia pojawiają się w AgentResponse.user_input_requests. Wyświetl użytkownikowi działania i ostrzeżenia, zanim aplikacja cokolwiek wykona.
Struktura nigdy nie potwierdza automatycznie kontroli bezpieczeństwa.
Zwracanie wyniku
Gdy aplikacja wykona zatwierdzone akcje, zwróć zrzut ekranu w komunikacie narzędzia. Poniższy fragment zakłada, że request oznacza żądanie komputera, screenshot_bytes to obraz PNG zarejestrowany przez środowisko wykonawcze, a confirmed_checks zawiera wyłącznie sprawdzenia, które użytkownik wyraźnie zatwierdził:
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)
Użyj ponownie tego samego AgentSession podczas wysyłania wyniku. Możesz również podać zrzut ekranu z elementem Content.from_uri(...) lub Content.from_hosted_file(...). Odpowiedzi OpenAI i Foundry wymagają zrzutu ekranu, mimo że współdzielony typ wyniku pozwala dostawcom na jego pominięcie.
Typ ComputerSafetyCheck oraz konstruktory Content.from_computer_tool_call(...) i Content.from_computer_tool_result(...) to eksperymentalne interfejsy API struktury Agent Framework. Wywołania i wyniki można zapisywać za pomocą Content.to_dict() i przywracać za pomocą Content.from_dict().
Zachowanie przepływu pracy
Gdy przepływ pracy zostaje wstrzymany z powodu natywnych danych wejściowych komputera, Agent Framework zachowuje identyfikator wywołania, kolejność działań i oczekujące kontrole bezpieczeństwa między punktami kontrolnymi. Jeśli wywołania funkcji lokalnej zakończą się w tej samej partii, ich wyniki są zwracane z wynikiem komputera w oryginalnej kolejności wywołań.
Jeśli jedno żądanie dotyczące komputera w oczekującej partii żądań agenta zostanie anulowane, pozostałe żądania w tej partii również zostaną anulowane. Wyniki już zakończonych operacji pozostają widoczne w terminalu, a następna tura rozpoczyna się z nową sesją agenta.