Lokaal computergebruik

Met native computerinteractie kan een Responses-model opeenvolgende bureaublad- of browseracties aanvragen. Uw toepassing is eigenaar van de uitvoeringsomgeving, toont veiligheidscontroles voor goedkeuring, voert de acties uit, legt een schermopname vast en retourneert het resultaat aan het model.

De volgende Python-clients stellen het native hulpprogramma beschikbaar:

Client Fabriek Notes
OpenAIChatClient get_computer_tool() Maakt gebruik van de OpenAI-antwoorden-API.
FoundryChatClient get_computer_tool() Vereist azure-ai-projects 2.3.0 of hoger.

FoundryChatClient.get_computer_use_tool(...) is een afzonderlijke preview-API. Zie de Microsoft Foundry-modelprovider voor de configuratieopties.

De tool toevoegen aan een agent

Maak het providerhulpprogramma en geef het door aan de agent:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

Het model retourneert een Content item met type="computer_tool_call". Het item bevat:

  • Een item id en een afzonderlijk call_iditem.
  • Een geordende actions lijst.
  • Optioneel pending_safety_checks.

Onbeantwoorde oproepen worden weergegeven in AgentResponse.user_input_requests. De acties en waarschuwingen voor de gebruiker weergeven voordat uw toepassing iets uitvoert. Het framework erkent nooit automatisch veiligheidscontroles.

Het resultaat retourneren

Nadat uw toepassing de goedgekeurde acties heeft uitgevoerd, retourneert u een schermopname in een bericht van het hulpprogramma. In het volgende fragment wordt ervan uitgegaan dat request het de computeraanvraag is, screenshot_bytes een PNG is die is vastgelegd door uw uitvoeringsomgeving en confirmed_checks alleen controles bevat die de gebruiker expliciet heeft goedgekeurd:

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)

Gebruik hetzelfde AgentSession wanneer u het resultaat verzendt. U kunt ook de schermafbeelding via Content.from_uri(...) of Content.from_hosted_file(...) verstrekken. Voor OpenAI- en Foundry-antwoorden is een schermopname vereist, ook al kunnen providers er een weglaten met het gedeelde resultaattype.

Het ComputerSafetyCheck type en Content.from_computer_tool_call(...) de Content.from_computer_tool_result(...) constructors zijn experimentele Agent Framework-API's. Oproepen en resultaten kunnen worden bewaard met Content.to_dict() en hersteld met Content.from_dict().

Werkstroomgedrag

Wanneer een werkstroom wordt onderbroken voor systeemeigen computerinvoer, behoudt Agent Framework de aanroep-id, actievolgorde en wachtende veiligheidscontroles op controlepunten. Als lokale functie-aanroepen in dezelfde batch zijn voltooid, worden de resultaten geretourneerd met het computerresultaat in de oorspronkelijke aanroepvolgorde.

Als één computeraanvraag in de in behandeling zijnde batch van een agent wordt geannuleerd, worden de resterende aanvragen in die batch ook geannuleerd. Reeds voltooide resultaten blijven in de terminaluitvoer staan en de volgende interactie begint met een nieuwe agentsessie.