Menggunakan agen AG2

Selain petunjuk umum untuk menggunakan agen, halaman ini menjelaskan fitur yang khusus untuk AG2Agent.

Sebelum memulai

Tutorial ini mengasumsikan bahwa Anda telah membaca dan mengikuti petunjuk dalam:

Mendapatkan instance agen

Untuk membuat kueri AG2Agent, Anda harus membuat instance baru atau mendapatkan instance yang ada terlebih dahulu.

Untuk mendapatkan AG2Agent yang sesuai dengan ID resource tertentu:

Vertex AI SDK untuk Python

Jalankan kode berikut:

import vertexai

client = vertexai.Client(  # For service interactions via client.agent_engines
    project="PROJECT_ID",
    location="LOCATION",
)

agent = client.agent_engines.get(name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID")

print(agent)

di mana

Library permintaan Python

Jalankan kode berikut:

from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests

def get_identity_token():
    credentials, _ = google_auth.default()
    auth_request = google_requests.Request()
    credentials.refresh(auth_request)
    return credentials.token

response = requests.get(
f"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
    headers={
        "Content-Type": "application/json; charset=utf-8",
        "Authorization": f"Bearer {get_identity_token()}",
    },
)

REST API

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID

Saat menggunakan Vertex AI SDK untuk Python, objek agent sesuai dengan class AgentEngine yang berisi hal berikut:

  • agent.api_resource dengan informasi tentang agen yang di-deploy. Anda juga dapat memanggil agent.operation_schemas() untuk menampilkan daftar operasi yang didukung agen. Lihat Operasi yang didukung untuk mengetahui detailnya.
  • agent.api_client yang memungkinkan interaksi layanan sinkron
  • agent.async_api_client yang memungkinkan interaksi layanan asinkron

Bagian selanjutnya mengasumsikan bahwa Anda memiliki instance AgentEngine, yang diberi nama agent.

Operasi yang didukung

Operasi berikut didukung untuk AG2Agent:

  • query: untuk mendapatkan respons terhadap kueri secara sinkron.

Metode query mendukung argumen:

  • input: pesan yang akan dikirim ke agen.
  • max_turns: jumlah maksimum giliran percakapan yang diizinkan. Saat menggunakan alat, diperlukan minimal max_turns=2: satu putaran untuk membuat argumen alat dan yang kedua untuk menjalankan alat.

Membuat kueri agen

Metode query() menyediakan cara yang lebih sederhana untuk berinteraksi dengan agen. Panggilan umum terlihat seperti ini:

response = agent.query(input="What is the exchange rate from US dollars to Swedish currency?", max_turns=2)

Metode ini menangani komunikasi yang mendasarinya dengan agen dan menampilkan respons akhir agen sebagai kamus. Setara dengan berikut (dalam bentuk lengkap):

from autogen import ConversableAgent
import dataclasses
import json

input_message: str = "What is the exchange rate from US dollars to Swedish currency?"
max_turns: int = 2

with agent._runnable._create_or_get_executor(
    tools=agent._ag2_tool_objects,            # Use the agent's existing tools
    agent_name="user",                        # Default
    agent_human_input_mode="NEVER",           # query() enforces this
) as executor:
    chat_result = executor.initiate_chat(
        agent._runnable,
        message=input_message,
        max_turns=max_turns,
        clear_history=False,                  # Default
        summary_method="last_msg"             # Default
    )

response = json.loads(
  json.dumps(dataclasses.asdict(chat_result)) # query() does this conversion
)

Anda dapat menyesuaikan perilaku agen di luar input dan max_turns dengan meneruskan argumen kata kunci tambahan ke query().

response = agent.query(
    input="What is the exchange rate from US dollars to Swedish currency?",
    max_turns=2,
    msg_to="user"  # Start the conversation with the "user" agent
)
print(response)

Lihat dokumentasi ConversableAgent.run untuk mengetahui daftar lengkap parameter yang tersedia. Namun, perlu diingat bahwa user_input akan selalu diganti menjadi False oleh template AG2Agent.

Langkah berikutnya