Penggunaan komputer asli

Penggunaan komputer secara native memungkinkan model Responses meminta serangkaian tindakan di desktop atau browser secara berurutan. Aplikasi Anda memiliki lingkungan eksekusi, menyajikan pemeriksaan keamanan untuk persetujuan, melakukan tindakan, mengambil cuplikan layar, dan mengembalikan hasilnya ke model.

Klien Python berikut mengekspos alat asli:

Client Pabrik Notes
OpenAIChatClient get_computer_tool() Menggunakan API Respons OpenAI.
FoundryChatClient get_computer_tool() Memerlukan azure-ai-projects 2.3.0 atau yang lebih baru.

FoundryChatClient.get_computer_use_tool(...) adalah API pratinjau terpisah. Untuk opsi konfigurasinya, lihat penyedia model Microsoft Foundry.

Menambahkan alat ke agen

Buat alat penyedia dan teruskan ke agen:

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

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

Model mengembalikan Content item dengan type="computer_tool_call". Item tersebut meliputi:

  • Sebuah item id dan call_id yang berbeda.
  • Daftar berurutan actions.
  • pending_safety_checks opsional.

Panggilan yang tidak terjawab muncul di AgentResponse.user_input_requests. Tampilkan tindakan dan peringatan kepada pengguna sebelum aplikasi Anda menjalankan apa pun. Kerangka kerja tidak pernah mengakui pemeriksaan keamanan secara otomatis.

Mengembalikan hasil

Setelah aplikasi Anda menjalankan tindakan yang disetujui, kembalikan cuplikan layar dalam pesan alat. Fragmen berikut mengasumsikan request adalah permintaan komputer, screenshot_bytes adalah PNG yang diambil oleh lingkungan eksekusi Anda, dan confirmed_checks hanya berisi pemeriksaan bahwa pengguna secara eksplisit disetujui:

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)

Gunakan kembali AgentSession yang sama saat mengirim hasil. Anda juga dapat memberikan cuplikan layar dengan Content.from_uri(...) atau Content.from_hosted_file(...). Respons OpenAI dan Foundry memerlukan cuplikan layar meskipun jenis hasil bersama memungkinkan penyedia untuk menghilangkannya.

Tipe ComputerSafetyCheck serta konstruktor Content.from_computer_tool_call(...) dan Content.from_computer_tool_result(...) adalah API eksperimental Agent Framework. Panggilan dan hasil dapat dipertahankan dengan Content.to_dict() dan dipulihkan dengan Content.from_dict().

Perilaku alur kerja

Saat alur kerja dijeda untuk input bawaan komputer, Agent Framework menyimpan ID panggilan, urutan tindakan, dan pemeriksaan keamanan yang masih tertunda pada setiap checkpoint. Jika panggilan fungsi lokal selesai dalam batch yang sama, hasilnya akan dikembalikan bersama hasil komputasi dalam urutan panggilan asli.

Jika satu permintaan untuk komputer tertentu dalam batch tertunda milik agen dibatalkan, permintaan lainnya dalam batch tersebut juga akan dibatalkan. Hasil yang telah selesai tetap ditampilkan di output terminal, dan giliran berikutnya dimulai dengan sesi agen baru.