Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El uso nativo del ordenador permite que un modelo Responses solicite acciones secuenciales en el escritorio o el navegador. La aplicación posee el entorno de ejecución, presenta comprobaciones de seguridad para su aprobación, realiza las acciones, captura una captura de pantalla y devuelve el resultado al modelo.
Los siguientes Python clientes exponen la herramienta nativa:
| Client | Fábrica | Notes |
|---|---|---|
OpenAIChatClient |
get_computer_tool() |
Usa la API de respuestas de OpenAI. |
FoundryChatClient |
get_computer_tool() |
Requiere azure-ai-projects la versión 2.3.0 o posterior. |
FoundryChatClient.get_computer_use_tool(...) es una API de versión preliminar independiente. Para conocer sus opciones de configuración, consulte el proveedor de modelos Microsoft Foundry.
Añade la herramienta a un agente
Cree la herramienta de proveedor y pásela al agente:
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient
client = OpenAIChatClient()
agent = Agent(
client=client,
tools=[client.get_computer_tool()],
)
El modelo devuelve un Content elemento con type="computer_tool_call". El elemento incluye:
- Un elemento
idy un elemento distintocall_id. - Una lista ordenada
actions. -
pending_safety_checksopcional.
Las llamadas sin respuesta aparecen en AgentResponse.user_input_requests. Muestra las acciones y advertencias al usuario antes de que la aplicación ejecute cualquier cosa.
El marco nunca reconoce las comprobaciones de seguridad automáticamente.
Devolver el resultado
Una vez que la aplicación ejecute las acciones aprobadas, devuelva una captura de pantalla en un mensaje de herramienta. El fragmento siguiente supone request que es la solicitud del equipo, screenshot_bytes es un PNG capturado por el entorno de ejecución y confirmed_checks solo contiene comprobaciones que el usuario ha aprobado explícitamente:
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)
Vuelva a usar lo mismo AgentSession cuando envíe el resultado. También puede proporcionar la captura de pantalla con Content.from_uri(...) o Content.from_hosted_file(...). Las respuestas de OpenAI y Foundry requieren una captura de pantalla a pesar de que el tipo de resultado compartido permite a los proveedores omitirla.
El tipo ComputerSafetyCheck y los constructores Content.from_computer_tool_call(...) y Content.from_computer_tool_result(...) son API experimentales de Agent Framework. Las llamadas y los resultados se pueden conservar con Content.to_dict() y restaurar con Content.from_dict().
Comportamiento del flujo de trabajo
Cuando un flujo de trabajo se detiene para permitir una entrada nativa del ordenador, Agent Framework conserva el ID de la llamada, el orden de las acciones y las comprobaciones de seguridad pendientes entre los distintos puntos de control. Si las llamadas a funciones locales se completan en el mismo lote, sus resultados se devuelven junto con el resultado del ordenador en el orden original de las llamadas.
Si se cancela una solicitud de equipo en el lote pendiente de un agente, también se cancelan las solicitudes restantes de ese lote. Los resultados ya finalizados siguen apareciendo en la salida de la terminal, y la siguiente interacción comienza con una nueva sesión del agente.