Utilização nativa de computadores

O uso nativo do computador permite que um modelo de Respostas solicite ações ordenadas no ambiente de trabalho ou navegador. A sua aplicação é dona do ambiente de execução, apresenta verificações de segurança para aprovação, executa as ações, captura uma captura de ecrã e devolve o resultado ao modelo.

Os seguintes clientes Python expõem a ferramenta nativa:

Client Fábrica Notes
OpenAIChatClient get_computer_tool() Utiliza a API OpenAI Responses.
FoundryChatClient get_computer_tool() Requer azure-ai-projects a versão 2.3.0 ou posterior.

FoundryChatClient.get_computer_use_tool(...) é uma API de pré-visualização separada. Para as opções de configuração, consulte o fornecedor de modelos Microsoft Foundry.

Adicionar a ferramenta a um agente

Crie a ferramenta do fornecedor e envie-a ao agente:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

O modelo devolve um Content item com type="computer_tool_call". O item inclui:

  • Um item id e outro distinto call_id.
  • Uma lista ordenada actions .
  • Opcionalpending_safety_checks.

Chamadas não atendidas aparecem em AgentResponse.user_input_requests. Mostre as ações e avisos ao utilizador antes de a sua aplicação executar qualquer coisa. O framework nunca reconhece automaticamente as verificações de segurança.

Devolver o resultado

Depois de a sua aplicação executar as ações aprovadas, devolve uma captura de ecrã numa mensagem de ferramenta. O fragmento seguinte assume request que é o pedido do computador, screenshot_bytes é um PNG capturado pelo seu ambiente de execução, e confirmed_checks contém apenas verificações que o utilizador aprovou explicitamente:

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)

Reutilize o mesmo AgentSession quando enviar o resultado. Também pode fornecer a captura de ecrã com Content.from_uri(...) ou Content.from_hosted_file(...). O OpenAI e o Foundry Responses exigem uma captura de ecrã, embora o tipo de resultado partilhado permita aos fornecedores omitir uma.

O tipo ComputerSafetyCheck e os construtores Content.from_computer_tool_call(...) e Content.from_computer_tool_result(...) são APIs experimentais do Agent Framework. Chamadas e resultados podem ser persistidos com Content.to_dict() e restaurados com Content.from_dict().

Comportamento do fluxo de trabalho

Quando um fluxo de trabalho é interrompido para entrada nativa no computador, o Agent Framework preserva o ID da chamada, a ordem das ações e as verificações de segurança pendentes entre os pontos de controlo. Se as chamadas a funções locais forem concluídas no mesmo lote, os respetivos resultados são devolvidos juntamente com o resultado computacional, pela ordem original das chamadas.

Se um pedido informático no lote pendente de um agente for cancelado, os pedidos restantes desse lote também são cancelados. Os resultados já concluídos permanecem na saída do terminal, e o turno seguinte começa com uma sessão de agente nova.