Utilisation de l’ordinateur natif

L’utilisation de l’ordinateur natif permet à un modèle Réponses de demander des actions de bureau ou de navigateur ordonnées. Votre application possède l’environnement d’exécution, présente des vérifications de sécurité pour approbation, effectue les actions, capture une capture d’écran et retourne le résultat au modèle.

Les clients Python suivants exposent l’outil natif :

Client Usine Notes
OpenAIChatClient get_computer_tool() Utilise l’API Réponses OpenAI.
FoundryChatClient get_computer_tool() Nécessite azure-ai-projects la version 2.3.0 ou ultérieure.

FoundryChatClient.get_computer_use_tool(...) est une API en préversion distincte. Pour connaître ses options de configuration, consultez le fournisseur de modèles Microsoft Foundry.

Ajouter l’outil à un agent

Créez l’outil fournisseur et transmettez-le à l’agent :

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

Le modèle renvoie un élément Content avec type="computer_tool_call". L’élément inclut :

  • Un élément id et un call_id distinct.
  • Une liste actions ordonnée.
  • Facultatifpending_safety_checks.

Les appels sans réponse apparaissent dans AgentResponse.user_input_requests. Affichez les actions et les avertissements à l’utilisateur avant que votre application n’exécute quoi que ce soit. Le framework ne reconnaît jamais automatiquement les contrôles de sécurité.

Retourner le résultat

Une fois que votre application a exécuté les actions approuvées, retournez une capture d’écran dans un message d’outil. Le fragment suivant suppose que la demande screenshot_bytes d’ordinateur est une PNG capturée par votre environnement d’exécution et confirmed_checks contient uniquement des vérifications request que l’utilisateur a explicitement approuvées :

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)

Réutilisez le même AgentSession lorsque vous envoyez le résultat. Vous pouvez également fournir la capture d’écran avec Content.from_uri(...) ou Content.from_hosted_file(...). Les réponses OpenAI et Foundry nécessitent une capture d’écran, même si le type de résultat partagé permet aux fournisseurs d’en omettre un.

Le type ComputerSafetyCheck ainsi que les constructeurs Content.from_computer_tool_call(...) et Content.from_computer_tool_result(...) sont des API expérimentales du framework Agent. Les appels et les résultats peuvent être conservés avec Content.to_dict() et restaurés avec Content.from_dict().

Comportement du flux de travail

Lorsqu’un flux de travail est mis en pause pour une saisie native sur l’ordinateur, Agent Framework conserve l’identifiant d’appel, l’ordre des actions et les contrôles de sécurité en attente d’un point de contrôle à l’autre. Si les appels de fonction local se terminent dans le même lot, leurs résultats sont retournés avec le résultat de l’ordinateur dans l’ordre d’appel d’origine.

Si une demande d’ordinateur dans le lot en attente d’un agent est annulée, les requêtes restantes de ce lot sont également annulées. Les résultats déjà obtenus restent affichés dans la sortie du terminal, et le tour suivant commence avec une nouvelle session de l’agent.