Satuan 9 / 11

Agen AI dan Penggunaan Alat

Keuntungan:

  • Mendefinisikan agen sebagai 'model + alat + loop' dan memutuskan kapan diperlukan
  • Menulis definisi alat dengan nama, deskripsi dan skema_input
  • Memantau aliran dan penanganan kesalahan pada loop tool_use dan tool_result

Hingga saat ini, model selalu melakukan satu tugas: menerima masukan teks, menghasilkan respons teks. Namun pekerjaan nyata seringkali membutuhkan lebih dari sekedar teks; melakukan perhitungan, menanyakan database, memanggil API, mencari tahu nilai tukar saat ini. Model tidak dapat melakukan hal-hal ini sendiri — namun dia dapat memutuskan kapan hal tersebut perlu dilakukan dan meminta seseorang untuk melakukannya. Inilah yang diberikan oleh penggunaan alat pada modelnya, dan inilah dasar dari agen AI. Pada unit ini, kita akan mempelajari apa itu agen, bagaimana alat didefinisikan, dan bagaimana loop tool_use bekerja.

Apa itu Agen? Model + Alat + Lingkaran

Agen AI terdiri dari tiga bagian: model (otak yang membuat keputusan), alat (fungsi yang dapat dipanggil oleh model: cuaca, kueri basis data, mengirim email), dan perulangan (perulangan; model memanggil alat, mendapatkan hasilnya, memutuskan lagi apa yang harus dilakukan, dan seterusnya).

Perbedaan penting: Panggilan pola tunggal bukanlah agen. Agen adalah proses di mana model berjalan langkah demi langkah, pada setiap langkah memilih langkah selanjutnya berdasarkan hasil alat. “Berpikirlah seperti manusia, gunakan tanganmu, lihat hasilnya, pikirkan lagi.”

Fakta penting: Model itu sendiri tidak mengoperasikan kendaraan. Model hanya mengatakan "Saya ingin memanggil alat ini dengan masukan ini". Aplikasi Anda (disebut harness) menjalankan alat dan mengembalikan hasilnya ke model. Ini penting untuk keamanan: model tidak menyentuh sistem Anda secara langsung; Setiap tindakan berada di bawah kendali Anda.

Tip: Jangan mencoba menyelesaikan setiap masalah dengan agen. Agen; meningkatkan risiko penundaan, biaya, dan kesalahan. Tanyakan terlebih dahulu: “Apakah masalah ini dapat diselesaikan dengan satu panggilan atau alur kerja tetap?” Jika jawabannya ya, tidak perlu ada agen. Agen ditujukan untuk tugas terbuka yang langkah-langkahnya tidak dapat diketahui sebelumnya.

Definisi Alat: nama, deskripsi, skema_input

Untuk memasukkan alat ke dalam model, Anda memberikan tiga hal:

  • nama: Identitas kendaraan, mis. dapatkan_cuaca.
  • deskripsi: Apa yang dilakukan alat tersebut dan kapan harus memanggilnya. Ini adalah area terpenting yang memungkinkan model memilih alat yang tepat pada waktu yang tepat. Tulis tidak hanya "apa fungsinya" tetapi juga "menelepon kapan".
  • input_schema (skema input): Skema JSON yang menentukan parameter apa yang diharapkan alat, dan jenisnya.

# Definisi kendaraan (konseptual — skema JSON){ "name": "get_order_status", "description": "Mengambil status pengiriman pesanan saat ini. Hubungi saat pengguna menanyakan di mana nomor pesanan atau kapan pesanan akan tiba.", "input_schema": { "type": "object", "properties": { "order_no": {"type": "string", "description": "Nomor pesanan, misalnya SP-1024"} }, "wajib": ["tidak_pesanan"] }}

Aturan untuk deskripsi alat yang baik: nama yang jelas dan ringkas, deskripsi dengan "kapan digunakan", deskripsi untuk setiap parameter, memasukkan yang benar-benar wajib di wajib. Jaga agar jumlah kendaraan tetap fokus; Puluhan model kendaraan serupa memang mengejutkan.

daerah

Apa fungsinya?

contoh yang baik

contoh yang buruk

nama

ID Kendaraan

pesanan_status_getir

membawa

deskripsi

Apa fungsinya + kapan harus menelepon

"Mengembalikan status kargo; menelepon ketika pengguna menanyakan di mana pesanannya"

"mengambil data"

masukan_skema

Jenis dan persyaratan parameter

{order_no: string, diberi anotasi}

tidak ada diagram / tidak ada deskripsi

alat_penggunaan → perulangan hasil_alat

Siklusnya bekerja seperti ini, langkah demi langkah:

  1. Anda mengirimkan pertanyaan pengguna + deskripsi alat ke model.
  2. Model akan merespons secara langsung atau menghasilkan blok tool_use: "panggil order_durumu_getir dengan order_no=SP-1024."
  3. Aplikasi Anda benar-benar menjalankan alat tersebut (menanyakan database).
  4. Anda mengirimkan hasilnya kembali ke model sebagai tool_result.
  5. Dengan hasil ini, model akan menghasilkan jawaban akhir atau memanggil alat lain. Siklus ini berlanjut hingga model mengatakan "Saya selesai".

# Agen loop (konseptual)messages = [pertanyaan_pengguna]sementara Benar: respon = model.uret(pesan, alat=tool_definitions) if respon.tur == "tool_use": result = harness.run(response.tool_name, respon.entries) # APLIKASI menjalankan pesan += [response, tool_result(result)] # mengembalikan hasil yang lain: break # respon akhir; lingkaran berakhir

SDK modern menawarkan pelari alat yang menjalankan putaran ini untuk Anda; Anda tinggal menulis fungsi alatnya. Namun itulah yang terjadi di balik layar.

Manajemen Kesalahan

Alat mungkin gagal: pesanan tidak ditemukan, waktu API habis, masukan tidak valid. Jika Anda tidak dapat menjalankan alat tersebut, kembalikan kesalahan ke model sebagai tool_result deskriptif ("kesalahan: Nomor pesanan SP-9999 tidak ditemukan") dan tanda kesalahan. Model dapat melihat ini dan menjelaskannya dengan lembut kepada pengguna, atau mencoba cara lain. Jangan menelan kesalahan dan mengembalikan hasil yang kosong; Model harus mengetahui apa yang salah.

Deskripsi Kendaraan Lemah/Kuat

Lemah (kata benda tidak terbatas, tidak ada "kapan"):

nama: "data", deskripsi: "mengambil data"# Model tidak mengetahui kapan dan bagaimana memanggil; Entah itu tidak menelepon sama sekali atau salah menelepon.

Kuat (nama bersih + kapan + deskripsi parameter):

name: "musteri_bakiyesi_getir"description: "Mengembalikan saldo rekening pelanggan saat ini. Telepon ketika pengguna meminta debit, kredit atau saldo. TIDAK melakukan pembayaran."input_schema: {custeri_id: string ("ID Pelanggan")}# Model memanggil pada waktu yang tepat, dengan parameter yang tepat, mengetahui batasnya.

Tiga Kasus Mini

Kasus 1 — Agen yang tidak diperlukan. Satu tim membangun bisnis “ringkas teks” dengan agen multi-alat; Setiap rekap membutuhkan 4 panggilan model dan 9 detik. Pekerjaan itu sebenarnya adalah pekerjaan sekali panggilan. Saat kami menghapus agen dan menguranginya menjadi satu panggilan, waktu berkurang menjadi 1,5 detik dan biaya berkurang menjadi seperempat. Hikmahnya: gunakan agen tersebut bila memang diperlukan.

Kasus 2 — Penjelasan lemah, panggilan salah. Di agen dukungan, alat tidak jelas yang disebut pengambilan dipanggil secara acak oleh model dalam pertanyaan keseimbangan dan pertanyaan pengiriman. Ketika kendaraan dibagi menjadi balance_getir dan cargo_durumu_getir dan penjelasan "panggil kapan" ditambahkan, pemilihan kendaraan yang salah berkurang dari 18 menjadi 1 dalam 50 contoh.

Kasus 3 — Kesalahan tertelan. Seorang agen mengembalikan hasil kosong ketika pesanan tidak ditemukan; Model menafsirkan ini sebagai "pesanan telah terkirim" dan menyesatkan pelanggan. Ketika pesan kesalahan ditulis secara eksplisit ke tool_result ("pesanan tidak ditemukan"), model dengan benar mengatakan "Saya tidak dapat menemukan nomor ini, dapatkah Anda memeriksanya?" dia mulai berkata.

Kesalahan umum

  • Menyerahkan segalanya kepada agen: Meskipun satu panggilan saja sudah cukup, agen menambah biaya dan penundaan.
  • Deskripsi kendaraan yang tidak jelas: Model tidak tahu kapan harus menelepon; memilih salah.
  • Berpikir bahwa model menjalankan kendaraan: Tali pengaman menjalankan kendaraan; model itu hanya menginginkannya.
  • Menelan kesalahan: Model harus mengetahui apa yang salah; Berikan kesalahan sebagai open tool_result.
  • Terlalu banyak kendaraan serupa: Model menjadi bingung; Jaga agar perangkat tetap fokus dan minimal.
Perhatian: Hanya karena model mengatakan "panggil kendaraan itu" tidak berarti tindakan harus diambil. Pada alat yang merusak (hapus, checkout, email), aplikasi Anda tidak boleh mengeksekusi panggilan secara membabi buta — ini adalah inti dari topik keamanan di unit berikutnya.

Singkatnya

  • Agen = model (keputusan) + alat (fungsi) + loop (panggil alat, dapatkan hasil, putuskan lagi).
  • Panggilan pola tunggal bukanlah agen; agen adalah proses langkah demi langkah.
  • Model tidak menjalankan kendaraan; Aplikasi Anda berjalan (harness) dan mengembalikan hasilnya sebagai tool_result.
  • Alat ini diidentifikasi berdasarkan nama, deskripsi (khususnya "panggilan kapan"), dan skema_input.
  • Perulangan berlanjut saat tool_use → harness berjalan → tool_result → model berlanjut hingga model mengatakan "selesai"; kesalahan secara eksplisit dilaporkan ke model.

Tugas aplikasi

Rancang 3 alat dari bisnis Anda sendiri yang bisa diberikan kepada agen. (1) Tulis nama, deskripsi dengan "panggil kapan", dan skema_input untuk masing-masing; Biarkan setidaknya satu menjadi alat membaca non-destruktif dan satu lagi perhitungan. (2) Pilih pertanyaan pengguna yang realistis dan tulis secara manual langkah demi langkah (dalam satu lingkaran) alat mana yang akan dipanggil oleh model dengan masukan apa dan apa yang akan dilakukannya setelah hasil_alat tiba. (3) Siapkan skenario di mana salah satu alat gagal dan tunjukkan bagaimana pesan kesalahan akan kembali ke model.

daftar periksa

  • [] Saya dapat mendefinisikan agen sebagai "model + alat + loop" dan memutuskan kapan diperlukan.
  • [ ] Saya tahu bahwa harness menjalankan kendaraan, model hanya menginginkannya.
  • Saya dapat menulis deskripsi kendaraan yang solid dengan nama [], deskripsi ("panggilan kapan") dan skema_input.
  • Saya dapat mengikuti siklus [ ] tool_use → tool_result langkah demi langkah.
  • [] Saya melaporkan kesalahan alat ke model sebagai hasil_alat terbuka.