Konsep Framework Agen

Halaman ini memberikan ringkasan konseptual tentang Framework Agen, yang menjelaskan elemen penyusun utama untuk mengembangkan agen yang efektif.

Apa yang dimaksud dengan Agen?

Agen AI Generatif seperti program komputer cerdas yang bertindak seperti asisten independen. AI diberi sasaran, dapat memahami dunia di sekitarnya (melalui data atau informasi), dan dapat menggunakan berbagai alat untuk mencapai sasaran tersebut tanpa pengawasan manusia yang konstan. AI bahkan dapat merencanakan langkah berikutnya untuk lebih dekat dengan tujuannya.

Secara teknis, agen AI Generatif adalah abstraksi software yang secara mandiri mengejar sasaran yang ditentukan dengan mengamati lingkungannya, bernalar tentang tindakan terbaik, dan menjalankan tindakan menggunakan alat yang tersedia. AI ini beroperasi secara independen dari petunjuk langsung manusia untuk setiap langkah dan dapat secara proaktif menentukan tindakan selanjutnya untuk mencapai tujuan utamanya. Hal ini mungkin dilakukan melalui model AI Generatif, yang mendukung kemampuan penalaran dan pengambilan keputusan agen.

Apa yang bukan merupakan Agen?

Di sinilah kita mengidentifikasi kesalahan umum yang mungkin terlihat seperti agen, tetapi tidak berhasil:

Chatbot "If-Then" yang Di-Hard Code (Anti-Pola):

Chatbot yang dibuat dengan LLM tempat Anda menentukan terlebih dahulu setiap kemungkinan input pengguna dan respons LLM. Meskipun Anda menggunakan panggilan fungsi, jika logika sepenuhnya di-hardcode, logika tersebut bukan agen. Ini adalah pohon keputusan yang canggih, bukan sistem penalaran.

Contoh: Jika pengguna mengucapkan "pesan penerbangan", panggil fungsi book_flight(). Ini bukan agen; ini adalah sistem berbasis aturan.

Terlalu Bergantung pada Perintah ReAct (Potensi Anti-Pola):

Perintah ReAct (Reason + Act) adalah teknik yang Anda gunakan untuk menyusun perintah guna mendorong LLM untuk berpikir langkah demi langkah, lalu bertindak. Hal ini lebih dekat dengan perilaku agen, tetapi dapat menjadi anti-pola jika: Anda, developer, masih membuat perintah ReAct secara manual untuk setiap kemungkinan skenario. Agen harus dapat membuat penalaran gaya ReAct-nya sendiri, bukan hanya mengikuti template yang telah ditulis sebelumnya. Bagian tindakan dibatasi untuk panggilan fungsi sederhana, dan tidak ada perencanaan atau adaptasi tingkat tinggi.

Rantai Pemikiran (CoT) tanpa Tindakan (Anti-Pola):

Menggunakan perintah CoT untuk membuat LLM menjelaskan penalarannya sangatlah berharga, tetapi LLM tidak merupakan agen jika tidak bertindak berdasarkan penalaran tersebut. Ini hanyalah LLM yang lebih transparan, bukan entitas otonom.

Agen versus LLM

Perintah Tunggal:

Meminta LLM, "Tulis ringkasan sejarah Kekaisaran Romawi". Ini adalah interaksi tunggal. Gemini memproses perintah dan menghasilkan respons. Tidak ada memori interaksi sebelumnya, tidak ada sasaran jangka panjang, dan tidak ada interaksi dengan alat eksternal. Ini murni input-output.

Rantai Perintah:

Kemudian, Anda dapat melanjutkan dengan, "Sekarang, cantumkan penyebab utama kemunduran Kekaisaran". Ini adalah rantai perintah. Anda, sebagai manusia, memberikan perilaku seperti agen dengan memandu percakapan dan menguraikan tugas. Gemini masih hanya merespons setiap perintah satu per satu, tanpa pemahaman yang lebih luas tentang sasaran keseluruhan (kecuali jika Anda secara eksplisit menyatakannya berulang kali). Anda adalah agen, bukan Gemini.

Agen:

Agen yang menggunakan LLM akan berbeda secara mendasar.

Bayangkan "Agen Riset Sejarah Romawi" yang tujuannya adalah:

"Buat laporan komprehensif tentang Kekaisaran Romawi, termasuk sejarahnya, tokoh utama, dampak budaya, dan alasan kemunduran Kekaisaran Romawi. Laporan harus diperbarui setiap minggu dengan informasi baru dari sumber ilmiah."

Perbedaan Utama:

  • Sasaran Persisten: Agen memiliki tujuan jangka panjang yang berkelanjutan, bukan hanya tugas satu giliran.
  • Perencanaan: Agen dapat membaginya menjadi:
    • Riset awal menggunakan Gemini (merumuskan histori, mengidentifikasi tokoh penting).
    • Menelusuri database akademis (menggunakan alat terpisah).
    • Mengolah informasi dari beberapa sumber.
    • Membuat laporan.
    • Menjadwalkan tugas mingguan untuk mengulangi langkah 2-4.
  • Penggunaan Alat: Agen secara aktif menggunakan alat di luar Gemini (misalnya, API penelusuran, database).
  • Otonomi: Agen beroperasi secara independen, membuat keputusan tentang informasi yang akan dikumpulkan dan cara menyajikannya.
  • Memori: Agen menyimpan memori yang sedang berlangsung (mungkin dalam database) untuk mengatur temuan, dan meningkatkan perintahnya sendiri.

Poin penting adalah dalam skenario perintah tunggal/rantai, Anda adalah orkestrator. Dalam skenario agen, agen itu sendiri adalah orkestrator, yang menggunakan Gemini sebagai salah satu alat.

Membedakan beban kerja agen dengan beban kerja LLM standar

Perbedaan paling penting antara agen dan beban kerja LLM standar adalah perilaku otonom yang berorientasi pada sasaran dengan peningkatan dan perencanaan iteratif. Tanyakan pertanyaan-pertanyaan berikut kepada diri Anda:

  • Sasaran Persisten
    • Apakah sistem memiliki tujuan jangka panjang yang ditentukan dengan jelas yang sedang diupayakan, selain merespons setiap perintah?
  • Tindakan Otonom
    • Dapatkah sistem mengambil tindakan (menggunakan alat, membuat keputusan) tanpa petunjuk eksplisit langkah demi langkah dari manusia untuk setiap tindakan?
  • Perencanaan & Penalaran
    • Apakah sistem menunjukkan bukti perencanaan (memecah tujuan yang kompleks menjadi langkah-langkah yang lebih kecil) dan penalaran (membuat keputusan berdasarkan pemahamannya tentang situasi)?
  • Peningkatan Iteratif
    • Apakah sistem tersebut belajar dan meningkatkan pendekatannya? Hal ini tidak perlu berupa pemelajaran mesin. Peningkatan ini dapat berupa peningkatan mandiri berdasarkan pengamatan.
  • Statefulness
    • Apakah sistem mempertahankan dan menggunakan informasi status untuk terus maju menuju sasarannya?

Jika jawaban untuk semua pertanyaan ini adalah "ya", Anda mungkin sedang menggunakan agen AI. Jika ada yang "tidak", Anda mungkin memiliki aplikasi LLM yang lebih canggih, tetapi bukan agen yang sepenuhnya. Kombinasi faktor-faktor ini, bukan hanya satu faktor secara terpisah, yang menentukan agen. Agen tidak hanya melakukan hal-hal; agen juga memutuskan apa yang harus dilakukan dan alasannya, serta menyesuaikan pendekatannya untuk mencapai sasaran yang ditentukan.

Komponen Penting Agen:

Diagram arsitektur komponen runtime agen 

  • Model: Model bahasa (LM) berfungsi sebagai pengambil keputusan utama, yang menggunakan framework logika dan penalaran berbasis petunjuk.
  • Alat: Alat menjembatani kesenjangan antara kemampuan internal agen dan dunia eksternal, sehingga membuka berbagai kemungkinan yang lebih luas. API ini memungkinkan interaksi dengan data dan layanan eksternal.
  • Lapisan Orkestrasi: Lapisan ini mengatur cara agen mengambil informasi, melakukan penalaran internal, dan menggunakan penalaran tersebut untuk menginformasikan tindakan atau keputusan berikutnya.

Agen versus Panggilan Fungsi

Panggilan fungsi LLM adalah langkah yang efektif untuk perilaku agen, tetapi tidak setara dengan agen lengkap.

LLM + Panggilan Fungsi: Anda menentukan fungsi yang dapat dipanggil LLM (misalnya, get_weather(location), search_wikipedia(topic)). Saat respons LLM menunjukkan bahwa respons tersebut perlu menggunakan fungsi, kode Anda akan mengeksekusi fungsi tersebut dan memberikan hasilnya kembali ke LLM. Hal ini memungkinkan model mengakses data eksternal atau melakukan tindakan.

LLM + Agen:

Agen dibuat berdasarkan panggilan fungsi. Panggilan fungsi adalah mekanisme yang dapat digunakan agen, tetapi agen menambahkan:

  • Pengambilan Keputusan Strategis: Agen memutuskan kapan dan mengapa harus memanggil fungsi, berdasarkan sasaran dan rencana keseluruhannya. Model ini tidak hanya bereaksi terhadap satu perintah.
  • Penalaran Multi-Langkah: Agen dapat merangkai beberapa panggilan fungsi dan interaksi Gemini, berdasarkan proses penalaran internalnya. Fungsi ini tidak terbatas pada satu panggilan fungsi per perintah.
  • Penanganan & Adaptasi Error: Agen yang baik akan menangani kasus saat panggilan fungsi gagal atau menampilkan hasil yang tidak terduga. Rencananya dapat disesuaikan.
  • Pengelolaan Status: Agen mempertahankan status internal (memori) yang tetap ada di beberapa interaksi, sehingga memungkinkannya melacak progres dan membuat keputusan yang lebih tepat.

Anggap panggilan fungsi sebagai memberikan kemampuan kepada LLM untuk berinteraksi dengan dunia. Agen adalah hal yang memberi LLM kecerdasan dan otonomi untuk menggunakan kemampuan tersebut secara efektif guna mencapai sasaran yang kompleks.

Pipeline & Rantai LLM

Subbagian ini akan membahas cara LLM dapat disusun dan diatur dalam agen menggunakan pipeline dan rantai. Kita akan membahas berbagai pola untuk menghubungkan panggilan LLM, interaksi alat, dan komponen agen lainnya untuk mencapai tugas yang kompleks. Dapatkan penjelasan tentang arsitektur pipeline dan rantai umum yang relevan dengan desain agen.

Anti-pola saat mem-build agen

Bagian ini akan berfokus pada kesalahan umum dan jebakan yang harus dihindari saat mengembangkan agen. Kami akan mengidentifikasi dan mendeskripsikan "anti-pola" – pilihan desain atau strategi penerapan yang dapat menghambat performa, kemampuan pemeliharaan, atau skalabilitas agen. Mempelajari anti-pola ini akan membantu developer membuat agen yang lebih andal dan efektif.

Agen multi-langkah versus multi-agen - manakah yang harus Anda pilih?

Bagian ini akan membandingkan dan membedakan dua pendekatan yang berbeda terhadap kompleksitas agen: agen multi-langkah (agen yang melakukan tugas dalam urutan langkah) dan sistem multi-agen (sistem yang terdiri dari beberapa agen yang berinteraksi). Kami akan membahas kelebihan dan kekurangan setiap pendekatan serta memberikan panduan tentang kapan harus memilih salah satunya berdasarkan kasus penggunaan dan perilaku agen yang diinginkan.

Kapan harus menggunakan alur multi-agen?

Memperluas sistem multi-agen, bagian ini akan secara khusus mempelajari skenario saat menggunakan "alur" multi-agen menjadi menguntungkan. Kita akan mempelajari kasus penggunaan yang mendapatkan manfaat dari kolaborasi, delegasi, atau pemecahan masalah terdistribusi di antara beberapa agen. Tujuannya adalah untuk menggambarkan aplikasi praktis dan manfaat alur multi-agen dalam sistem agen yang kompleks.

Agen dengan beberapa alat versus multi-agen?

Bagian ini akan membahas pilihan desain antara melengkapi satu agen dengan beberapa alat versus membuat sistem multi-agen. Kita akan menganalisis situasi saat meningkatkan rangkaian alat satu agen sudah cukup, dan saat mendistribusikan tugas dan kemampuan di beberapa agen menjadi pendekatan yang lebih efektif. Hal ini akan membantu developer menentukan arsitektur yang optimal berdasarkan kompleksitas dan persyaratan fungsional.

Agen dengan alur yang telah ditentukan sebelumnya versus agen otonom?

Di sini, kita akan membedakan antara agen dengan alur kerja terstruktur yang telah ditentukan sebelumnya ("alur") dan agen yang lebih otonom yang menunjukkan fleksibilitas dan pengambilan keputusan yang lebih besar dalam operasinya. Kita akan membahas kompromi antara kontrol dan kemampuan adaptasi, serta kapan setiap jenis agen paling sesuai untuk berbagai aplikasi.

Memori jangka pendek dan jangka panjang

Bagian ini akan menjelaskan konsep memori jangka pendek dan jangka panjang dalam Agent Framework. Kita akan membahas cara agen mengelola konteks percakapan (memori jangka pendek) dan mempertahankan pengetahuan atau data di seluruh sesi (memori jangka panjang). Memahami mekanisme memori ini sangat penting untuk membuat agen yang dapat mempertahankan status dan belajar dari waktu ke waktu.

Perencanaan satu langkah versus beberapa langkah

Kita akan mempelajari kemampuan perencanaan agen, yang membandingkan perencanaan satu langkah (membuat keputusan langsung) dengan perencanaan multi-langkah (merencanakan strategi dan memecah tugas kompleks menjadi urutan). Bagian ini akan membahas manfaat dan kompleksitas setiap pendekatan perencanaan serta pengaruhnya terhadap perilaku agen dan kemampuan pemecahan masalah.

Satu alat versus beberapa alat versus AgentTools

Bagian ini akan memberikan ringkasan komparatif tentang berbagai konfigurasi alat untuk agen. Kita akan memeriksa penggunaan satu alat, agen yang dilengkapi dengan beberapa alat, dan "AgentTools" khusus (alat yang memanggil agen lain). Tujuannya adalah untuk memperjelas tujuan dan skenario penggunaan untuk setiap jenis dan konfigurasi alat.

Alat versus memori

Bagian ini akan membahas interaksi dan hubungan antara alat dan memori dalam desain agen. Kita akan mempelajari cara agen menggunakan memori untuk menginformasikan penggunaan alat, menyimpan output alat, dan mengoptimalkan pemilihan alat dari waktu ke waktu. Memahami interaksi ini adalah kunci untuk membuat agen yang secara efektif memanfaatkan alat dan memori untuk meningkatkan performa.

Pengujian & QA Agen

Bagian ini akan berfokus pada aspek penting pengujian dan jaminan kualitas (QA) untuk agen. Kita akan membahas strategi dan metodologi untuk menguji perilaku agen, integrasi alat, dan performa sistem secara menyeluruh. Tujuannya adalah untuk memberikan panduan tentang cara memastikan keandalan dan kebenaran agen sebelum deployment.

Evaluasi Agen

Berdasarkan pengujian, bagian ini akan secara khusus membahas evaluasi agen. Kita akan mempelajari metode untuk mengukur dan menilai performa agen secara sistematis berdasarkan metrik dan tolok ukur yang ditentukan. Nantikan diskusi tentang kerangka evaluasi, metrik seperti akurasi dan efisiensi, serta cara menggunakan evaluasi untuk meningkatkan desain agen.

Multi-Agen

Bagian ini akan memberikan pembahasan mendalam tentang konsep sistem multi-agen dalam framework. Artikel ini akan menggabungkan dan memperluas referensi sebelumnya tentang konsep multi-agen, yang menawarkan ringkasan komprehensif tentang arsitektur, manfaat, dan tantangannya. Ini akan berfungsi sebagai referensi utama untuk memahami dan mendesain aplikasi multi-agen.

Flows

Bagian ini akan memberikan penjelasan khusus tentang "alur" di Framework Agent. Bagian ini akan menjelaskan berbagai jenis alur standar (berurutan, loop, otomatis, dll.) dan cara alur tersebut mengatur perilaku dan interaksi agen dengan agen turunan. Dapatkan penjelasan yang jelas dan terstruktur tentang mekanisme alur dan opsi penyesuaian.

Komunikasi

Bagian ini akan membahas komunikasi dalam Framework Agen, terutama dalam sistem multi-agen. Kita akan membahas cara agen bertukar informasi, mengkoordinasikan tindakan, dan berkolaborasi untuk mencapai sasaran bersama. Fokusnya akan pada mekanisme dan pola untuk komunikasi yang efektif antar-agen.

Perencanaan

Bagian ini akan menawarkan eksplorasi perencanaan yang lebih mendalam dalam agen. Modul ini akan membahas berbagai algoritma perencanaan, strategi untuk menguraikan tugas yang kompleks, dan cara agen menggunakan perencanaan untuk memandu tindakan dan penggunaan alat mereka. Nantikan diskusi metodologi perencanaan yang lebih teknis dan relevan dengan pengembangan agen.

Sesi dan status

Bagian ini akan memberikan penjelasan komprehensif tentang sesi dan manajemen status di Framework Agen. Bagian ini akan menjelaskan cara sesi dibuat dan dipertahankan, cara variabel status digunakan untuk menyimpan dan mengakses informasi, serta siklus proses data sesi. Memahami sesi dan status sangat penting untuk mem-build agen yang dapat mengelola konteks dan mempertahankan kontinuitas di seluruh interaksi.

Callbacks

Terakhir, bagian ini akan menawarkan penjelasan khusus dan mendetail tentang callback dalam Framework Agen. Artikel ini akan membahas berbagai jenis callback (sebelum/setelah agen, model, alat), tujuannya, dan cara developer menggunakannya untuk menyesuaikan dan memperluas perilaku agen di berbagai tahap pemrosesan. Nantikan panduan menyeluruh untuk memanfaatkan callback guna penyesuaian agen lanjutan.