Native Computernutzung

Die native Computernutzung ermöglicht es einem Responses-Modell, geordnete Desktop- oder Browseraktionen anzufordern. Ihre Anwendung besitzt die Ausführungsumgebung, stellt Sicherheitsprüfungen zur Genehmigung dar, führt die Aktionen aus, erfasst einen Screenshot und gibt das Ergebnis an das Modell zurück.

Die folgenden Python Clients machen das systemeigene Tool verfügbar:

Client Fabrik Notizen
OpenAIChatClient get_computer_tool() Verwendet die OpenAI-Antwort-API.
FoundryChatClient get_computer_tool() Erfordert azure-ai-projects 2.3.0 oder höher.

FoundryChatClient.get_computer_use_tool(...) ist eine separate Vorschau-API. Die Konfigurationsoptionen finden Sie unter Microsoft Foundry-Modellanbieter.

Fügen Sie das Tool zu einem Agenten hinzu

Erstellen Sie das Anbietertool, und übergeben Sie es an den Agent:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

Das Modell gibt ein Content Element mit type="computer_tool_call". Der Artikel umfasst:

  • Ein Element id und ein separates call_id Element.
  • Eine sortierte actions Liste.
  • Optionalpending_safety_checks.

Nicht beantwortete Anrufe werden in AgentResponse.user_input_requestsangezeigt. Zeigen Sie die Aktionen und Warnungen für den Benutzer an, bevor Ihre Anwendung etwas ausführt. Das Framework erkennt niemals automatisch Sicherheitskontrollen an.

Zurückgeben des Ergebnisses

Nachdem Ihre Anwendung die genehmigten Aktionen ausgeführt hat, geben Sie einen Screenshot in einer Toolnachricht zurück. Das folgende Fragment geht davon aus, dass es sich um request die Computeranforderung handelt, eine PNG-Datei, screenshot_bytes die von Ihrer Ausführungsumgebung erfasst wird, und confirmed_checks enthält nur Überprüfungen, die der Benutzer explizit genehmigt hat:

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)

Verwenden Sie dieselbe AgentSession wieder, wenn Sie das Ergebnis senden. Sie können den Screenshot auch mit Content.from_uri(...) oder Content.from_hosted_file(...) einreichen. OpenAI- und Foundry-Antworten erfordern einen Screenshot, obwohl der freigegebene Ergebnistyp es Anbietern ermöglicht, eine auszulassen.

Die ComputerSafetyCheck Typen und Content.from_computer_tool_call(...)Content.from_computer_tool_result(...) Konstruktoren sind experimentelle Agent Framework-APIs. Anrufe und Ergebnisse können mit Content.to_dict() gespeichert und mit Content.from_dict() wiederhergestellt werden.

Workflowverhalten

Wenn ein Workflow für systemeigene Computereingaben angehalten wird, behält das Agent Framework die Aufruf-ID, die Aktionsreihenfolge und ausstehende Sicherheitsprüfungen zwischen Checkpoints hinweg bei. Wenn lokale Funktionsaufrufe im selben Batch abgeschlossen werden, werden ihre Ergebnisse zusammen mit dem Computerergebnis in der ursprünglichen Aufrufreihenfolge zurückgegeben.

Wenn eine Computeranforderung im ausstehenden Batch eines Agents abgebrochen wird, werden die verbleibenden Anforderungen in diesem Batch ebenfalls abgebrochen. Bereits abgeschlossene Ergebnisse verbleiben in der Terminalausgabe, und der nächste Schritt beginnt mit einer neuen Agentsitzung.