Použití nativního počítače

Nativní používání počítače umožňuje modelu Responses vyžádat si uspořádané akce na ploše nebo v prohlížeči. Vaše aplikace vlastní spouštěcí prostředí, prezentuje bezpečnostní kontroly schválení, provede akce, zachytí snímek obrazovky a vrátí výsledek modelu.

Následující klienti Python zpřístupňují nativní nástroj:

Client Továrna Poznámky
OpenAIChatClient get_computer_tool() Používá rozhraní API odpovědí OpenAI.
FoundryChatClient get_computer_tool() Vyžaduje azure-ai-projects verzi 2.3.0 nebo novější.

FoundryChatClient.get_computer_use_tool(...) je samostatné rozhraní API ve verzi Preview. Možnosti konfigurace najdete v poskytovateli modelu Microsoft Foundry.

Přidejte nástroj k agentovi

Vytvořte nástroj zprostředkovatele a předejte ho agentu:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

Model vrací položku Content s type="computer_tool_call". Položka obsahuje:

  • Položka id a odlišná call_id.
  • Seřazený actions seznam.
  • Volitelnépending_safety_checks.

Nezodpovězená volání se zobrazují v AgentResponse.user_input_requests Před spuštěním aplikace můžete uživateli zobrazit akce a upozornění. Architektura nikdy nepotvrzuje bezpečnostní kontroly automaticky.

Vrácení výsledku

Jakmile vaše aplikace spustí schválené akce, vraťte snímek obrazovky ve zprávě nástroje. Následující fragment předpokládá, že se jedná request o požadavek na počítač, screenshot_bytes je png zachycený vaším spouštěcím prostředím a confirmed_checks obsahuje pouze kontroly, které uživatel explicitně schválil:

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)

Při odesílání výsledku znovu použijte stejný AgentSession. Můžete také poskytnout snímek obrazovky s Content.from_uri(...) nebo Content.from_hosted_file(...). OpenAI a Foundry Responses vyžadují snímek obrazovky, i když sdílený typ výsledku umožňuje poskytovatelům snímek obrazovky vynechat.

Typ ComputerSafetyCheck a konstruktory Content.from_computer_tool_call(...) a Content.from_computer_tool_result(...) jsou experimentální rozhraní API architektury Agent Framework. Volání a výsledky mohou být zachovány Content.to_dict() a obnoveny pomocí Content.from_dict().

Chování pracovního postupu

Když se pracovní postup pozastaví pro vstup nativního počítače, rozhraní Agent Framework zachová ID volání, pořadí akcí a čekající bezpečnostní kontroly napříč kontrolními body. Pokud se volání lokálních funkcí dokončí ve stejné dávce, jejich výsledky jsou vráceny společně s výsledkem počítače v původním pořadí volání.

Pokud je zrušen jeden požadavek na počítač v nevyřízené dávce agenta, zruší se také zbývající požadavky v této dávce. Již dokončené výsledky zůstávají ve výstupu terminálu a další krok začíná s novou relací agenta.