Membangun Agen AI yang Efektif
(anthropic.com)- Tim yang berhasil mengimplementasikan agen berbasis LLM cenderung menggunakan pola yang sederhana dan dapat dikombinasikan alih-alih framework yang rumit
- Perlu memahami perbedaan struktural antara workflow dan agen, serta disarankan untuk selalu memperkenalkan kompleksitas seminimal mungkin demi solusi yang optimal
- Berbagai pola agen (prompt chaining, routing, paralelisasi, orchestrator-workers, loop evaluasi-optimasi, dll.) digunakan di lingkungan produksi nyata, dan masing-masing memiliki kasus penggunaan serta kelebihan dan kekurangan
- Saat mengimplementasikan agen, kesederhanaan, transparansi, dan desain antarmuka adalah prinsip utama, serta perlu memberi perhatian pada desain alat dan prompt engineering
- Semakin banyak contoh di mana agen benar-benar memberikan nilai dalam dukungan pelanggan maupun lingkungan pengembangan perangkat lunak
Gambaran umum
Selama satu tahun terakhir, Anthropic telah membangun agen berbasis large language model (LLM) bersama tim-tim dari berbagai industri. Dalam praktiknya, contoh adopsi agen yang berhasil cenderung didasarkan pada pola yang sederhana dan dapat dikombinasikan, bukan framework yang kompleks atau library yang sangat khusus. Postingan ini membagikan insight dari kolaborasi dengan pelanggan dan pengalaman pengembangan internal, serta saran praktis untuk membangun agen yang efektif.
Apa itu agen
Agen dapat didefinisikan dengan berbagai cara
- Sebagian mendefinisikannya sebagai sistem yang sepenuhnya otonom, yang menggunakan alat eksternal untuk menyelesaikan tugas kompleks secara mandiri
- Sebagian lain memahaminya sebagai implementasi preskriptif yang mengikuti workflow terbatas atau proses yang telah ditentukan sebelumnya
Anthropic mengelompokkan keduanya sebagai sistem agentic, tetapi tetap membedakan arsitektur penting antara workflow dan agen
- Workflow: struktur di mana LLM dan alat diorkestrasi melalui jalur kode yang telah ditentukan sebelumnya
- Agen: LLM secara dinamis menentukan sendiri penggunaan alat dan proses, serta memiliki kendali atas cara menyelesaikan tugas
Postingan ini menjelaskan kedua bentuk sistem tersebut secara rinci, dan contoh penerapan praktis dibahas dalam lampiran 1
Kapan (dan kapan tidak) sebaiknya menggunakan agen
Saat mengembangkan aplikasi, sebaiknya menjadikan kompleksitas minimum sebagai prinsip, lalu menambahkan kompleksitas secara bertahap hanya bila diperlukan
- Sistem agentic dapat meningkatkan kinerja tugas meski harus mengorbankan sebagian latensi/biaya
- Jika kompleksitas memang tidak diperlukan, sering kali satu panggilan LLM tunggal, penyisipan contoh, atau integrasi pencarian sudah cukup untuk menyelesaikan masalah
- Workflow cocok untuk situasi yang menuntut prediktabilitas dan konsistensi, sedangkan agen cocok untuk situasi yang membutuhkan fleksibilitas dan skala
Kapan dan bagaimana menggunakan framework
Ada berbagai framework yang mempermudah implementasi sistem agentic
- LangGraph (LangChain)
- Amazon Bedrock AI Agent framework
- Rivet, Vellum, dan lainnya
Framework-framework ini menyederhanakan pekerjaan tingkat rendah seperti pemanggilan LLM, definisi/parsing alat, dan penyusunan rantai pemanggilan. Namun, abstraksi yang berlebihan dapat membuat alur prompt dan respons yang sebenarnya menjadi kurang transparan, atau meningkatkan kompleksitas secara tidak perlu
- Pengembang disarankan untuk memulai sebisa mungkin dari penggunaan langsung API LLM
- Bahkan saat menggunakan framework, cara kerja internalnya harus dipahami dengan tepat
Contoh implementasi dapat dilihat di anthropic-cookbook
Building block, workflow, dan pola agen
Anthropic memperkenalkan pola sistem agentic yang sering digunakan di lingkungan operasional nyata
Building block: LLM yang diperkuat
Inti dari sistem agentic adalah LLM yang diperkuat dengan kemampuan seperti pencarian, alat, dan memori
- Model dapat secara mandiri melakukan pembuatan kueri pencarian, memilih alat yang sesuai, dan menyimpan informasi
- Hal penting dalam implementasi inti adalah menyesuaikan kemampuan dengan kasus penggunaan dan menyediakan antarmuka yang jelas serta terdokumentasi untuk LLM
Melalui Model Context Protocol yang baru dirilis, integrasi dengan berbagai alat pihak ketiga dapat dilakukan dengan mudah
Penjelasan menurut jenis workflow
Prompt chaining
- Tugas dipecah menjadi serangkaian langkah, dan setiap panggilan LLM memproses hasil dari langkah sebelumnya
- Proses dapat dikelola dengan menambahkan validasi terprogram (gate) pada setiap tahap
- Contoh penerapan: membuat copy pemasaran lalu menerjemahkannya, menyusun garis besar dokumen → validasi → penulisan isi
Routing
- Mengklasifikasikan input lalu mengarahkannya ke tugas lanjutan yang disesuaikan
- Prompt dan alat yang terspesialisasi dapat digunakan untuk tiap kategori
- Contoh penerapan: percabangan pertanyaan pelanggan (refund, dukungan teknis, dll.), pemilihan model berdasarkan tingkat kesulitan
Paralelisasi
- Tugas dipecah menjadi unit-unit kecil, diproses secara paralel, lalu hasilnya digabungkan
- Sectioning: setiap bagian diproses secara independen
- Voting: tugas yang sama diulang dengan beberapa sudut pandang atau prompt, lalu memanfaatkan suara mayoritas dan sebagainya
- Contoh penerapan: pemfilteran pertanyaan pengguna dan pemisahan jawaban, evaluasi otomatis, code review, dll.
Orchestrator-workers
- LLM pusat memecah dan menugaskan tugas secara dinamis, lalu beberapa worker LLM memproses masing-masing bagian dan menggabungkannya
- Cocok untuk subtugas yang tidak ditentukan sebelumnya dan bervariasi menurut input
- Contoh penerapan: coding yang melibatkan perubahan banyak file, penelusuran informasi yang kompleks, dll.
Loop evaluasi-optimasi
- Memanfaatkan LLM respons dan LLM evaluator dalam loop berulang
- Cocok untuk situasi di mana kriteria evaluasi yang jelas dan perbaikan berbasis umpan balik memberikan nilai tinggi
- Contoh penerapan: menilai nuansa halus dalam terjemahan sastra, penelusuran informasi multi-putaran, dll.
Agen
-
Seiring perkembangan LLM, muncul agen di layanan nyata yang mampu menangani input kompleks, penalaran/perencanaan, penggunaan alat, dan pemulihan kesalahan
-
Dimulai dari perintah/percakapan pengguna → memperjelas tugas lalu mengeksekusi secara otonom → memungkinkan umpan balik di checkpoint tengah → berakhir saat selesai atau ketika memenuhi kondisi penghentian
-
Implementasi nyata berjalan secara iteratif dengan LLM yang merujuk pada umpan balik lingkungan (hasil alat, eksekusi kode), dan set alat serta dokumentasi menjadi kunci
-
Contoh penerapan: agen coding untuk menyelesaikan tugas SWE-bench, otomatisasi penggunaan komputer berbasis Claude
-
Cakupan penerapan: masalah open-ended yang jalur atau langkahnya tidak bisa diprediksi sebelumnya, serta situasi yang memerlukan kepercayaan pada pengambilan keputusan
-
Perlu mempertimbangkan biaya dan potensi error majemuk akibat meningkatnya otonomi, sehingga pengujian sandbox dan guardrail wajib ada
Menggabungkan dan menyesuaikan pola
- Building block yang diperkenalkan bukan aturan baku, melainkan dapat dikombinasikan sesuai berbagai situasi
- Yang penting adalah memilih struktur optimal melalui pengukuran hasil/perbaikan berulang dan menambahkan kompleksitas secara bertahap
Ringkasan dan prinsip yang direkomendasikan
Keberhasilan sistem LLM bukan ditentukan oleh kompleksitas atau teknologi baru, melainkan oleh menemukan pendekatan yang tepat sesuai tujuan
-
Mulai dari prompt yang sederhana, evaluasi hasil dan optimasi berulang, lalu perluas kompleksitas secara bertahap
-
Tiga prinsip utama dalam desain agen
- Menjaga kesederhanaan
- Mengutamakan transparansi (memperjelas pada tahap perancangan)
- Menekankan dokumentasi/pengujian alat dan antarmuka
-
Framework memang memungkinkan mulai lebih cepat, tetapi dalam praktiknya kemampuan meminimalkan lapisan abstraksi dan melakukan implementasi langsung sangat menentukan keandalan serta kemudahan pemeliharaan
Lampiran 1: contoh penerapan agen di dunia kerja
Dukungan pelanggan
Bidang dukungan pelanggan secara alami cocok untuk penerapan agen karena menggabungkan antarmuka chatbot dan integrasi alat
- Antarmuka berbasis percakapan dan kebutuhan akan data eksternal serta pemrosesan pekerjaan hadir bersamaan
- Alat dapat dihubungkan ke informasi pelanggan, riwayat pesanan, basis pengetahuan, dan lain-lain
- Mengotomatiskan pekerjaan seperti refund/pemrosesan tiket
- Kriteria penyelesaian dapat ditetapkan dengan jelas
Kasus yang berhasil diterapkan memverifikasi efektivitas agen melalui model penagihan berbasis penggunaan (dengan kriteria penyelesaian yang berhasil)
Agen coding
Di lingkungan pengembangan perangkat lunak, pemanfaatan agen seperti penyelesaian masalah otomatis juga meningkat pesat
- Kode dapat diverifikasi hasilnya melalui pengujian otomatis
- Perbaikan berulang dapat dilakukan dengan memanfaatkan hasil pengujian
- Definisi masalah jelas, dan kualitas output juga bisa diukur secara objektif
Contoh implementasi internal Anthropic: pada benchmark SWE-bench Verified, isu GitHub nyata diselesaikan hanya dengan deskripsi pull request. Di luar pengujian otomatis, peninjauan manusia tetap penting untuk memastikan kesesuaian dengan kebutuhan sistem secara keseluruhan
Lampiran 2: cara melakukan prompt engineering untuk alat
Dalam semua sistem agentic, alat adalah elemen inti
- LLM seperti Claude dapat berinteraksi dengan layanan eksternal melalui API sesuai struktur dan definisi yang tepat
- Respons dapat mencakup tool use block
- Definisi dan spesifikasi alat juga perlu dirancang seteliti prompt engineering
Tips merancang format alat
-
Sediakan token yang cukup agar model tidak terjebak dalam ‘jebakan’ penulisan
-
Disarankan menggunakan format alami yang sering ditemui di internet
-
Minimalkan overhead formatting yang tidak perlu (misalnya menghitung jumlah baris kode, string escaping, dll.)
-
Sebagaimana kita berinvestasi saat merancang human-computer interface (HCI), perhatian yang sama juga perlu diberikan pada agent-computer interface (ACI)
-
Dari sudut pandang model, cara memahami dan menggunakan alat harus ‘jelas’, termasuk contoh penggunaan, kondisi batas, format input, dan sebagainya
-
Nama parameter dan deskripsinya juga perlu dirancang seperti menulis dokumentasi (docstring), dengan istilah yang intuitif
-
Uji cara penggunaan sebenarnya dengan berbagai nilai input, lalu lakukan perbaikan berulang
-
Rancang argumen untuk mengurangi kemungkinan kesalahan (Poka-yoke)
Saat membangun agen SWE-bench yang sebenarnya, waktu yang diinvestasikan untuk mengoptimalkan desain alat lebih banyak daripada keseluruhan prompt. Contoh: untuk mengurangi kesalahan jalur file setelah keluar dari folder root, input diubah agar hanya menerima absolute path, dan setelah itu sistem bekerja sempurna.
1 komentar
Opini Hacker News
Ada pendapat bahwa yang paling mengesankan dari tulisan ini adalah karena dimulai dengan memperjelas definisi tentang "AI agents". Definisi yang digunakan di sini adalah "sistem di mana LLM secara mandiri mengelola proses dan penggunaan alat secara dinamis, serta mengendalikan sendiri cara menyelesaikan tugas". Mereka juga menyukai bagian yang membedakan ‘agent’ dan ‘workflow’, serta cara tulisan ini memperkenalkan berbagai pola workflow yang praktis. Ada juga catatan ringkasan yang ditulis sendiri saat artikel ini pertama kali terbit: catatan building-effective-agents. Selain itu, tulisan terbaru Anthropic tentang membangun sistem riset multi-agent juga menarik, dan ada catatan tambahan tentang hal itu: catatan multi-agent research system
Ada pendapat bahwa definisi workflow dalam tulisan ini tidak tepat. Mesin workflow modern sering kali tidak mengikuti jalur kode yang sudah ditentukan sebelumnya, dan dalam banyak kasus beroperasi nyaris sama dengan agent. Penulis tampaknya mendefinisikan ulang workflow untuk membuat pembedaan, tetapi pada kenyataannya agent juga hanyalah workflow berbentuk loop yang dipanggil secara dinamis berdasarkan respons LLM. Klaimnya, mesin workflow modern juga sangat dinamis
Salah satu co-author Building Effective Agents juga pernah membawakan ceramah tentang tulisan tersebut di AIE, dan dibagikan pengalaman bahwa responsnya sangat baik: video YouTube
Ada pendapat bahwa tulisan tentang riset multi-agent itu benar-benar bagus, tetapi mereka tidak setuju dengan klaim dalam artikel Building Effective AI Agents bahwa "membangun sistem dari nol tanpa framework itu baik dari sudut pandang pendidikan". Argumennya, keuntungan pertama memakai framework yang baik adalah bisa dengan mudah bereksperimen dengan berbagai LLM, termasuk yang tidak terikat vendor tertentu
Ada pertanyaan tentang framework AI agent apa yang digunakan Anthropic. Pendapatnya, sepertinya mereka belum pernah merilis framework internal mereka
Ada respons yang berterima kasih atas catatan tambahannya, dan topik ini belakangan juga menjadi isu yang sangat penting bagi dirinya
Di bidang AI, setengah tahun terasa sangat panjang. Ada kesan bahwa beberapa bulan lalu mereka berulang kali membaca tulisan ini, tetapi sekarang pengembangan agent tampak jelas telah mencapai bottleneck. Bahkan Gemini terbaru pun terasa justru mengalami kemunduran performa
Menjalankan beberapa agent sekaligus sangat mahal dan menurunkan RoI. Misalnya, DeepSearch agent untuk saham memakai 6 agent dan menghabiskan sekitar 2 dolar per kueri. Orkestrasi multi-agent sulit dikendalikan, dan jika modelnya lebih kuat maka kebutuhan akan multi-agent berkurang. Sebaliknya, makin lemah modelnya, makin tinggi nilai bisnis AI sempit yang terspesialisasi; ini dibagikan sebagai pengalaman nyata
Ada pertanyaan mengapa terasa seperti agent mengalami kemunduran. Mereka juga penasaran kenapa agent tidak bisa begitu saja membuat banyak salinan dirinya sendiri lalu bekerja paralel 24/7 sambil terus memverifikasi dan meningkatkan diri
Ada pendapat bahwa menyelesaikan masalah prompt injection sangat sulit, dan hal ini menjadi bottleneck yang serius
Ada rasa penasaran tentang bagaimana agent menangani task queueing, race condition, dan masalah konkurensi lainnya. Dalam banyak artikel tentang membangun workflow multi-agent, sering disebut bahwa orchestrator agent mengelola semuanya, tetapi selalu timbul pertanyaan apakah pada praktiknya dibutuhkan desain yang lebih kompleks dan glue code yang cerdas. Atau apakah semua ini benar-benar bekerja seperti “sihir otomatis”
Dijelaskan bahwa standar pada agent adalah alat dijalankan secara berurutan, jadi tidak perlu terlalu mengkhawatirkan masalah konkurensi. Kini beberapa model sudah mendukung parallel tool calls, sehingga saat model meminta “jalankan tiga alat ini”, harness dapat menjalankannya secara paralel atau berurutan lalu meneruskan hasilnya ke langkah berikutnya. Anthropic lebih agresif memanfaatkan konfigurasi multi-agent, dengan struktur agent tingkat atas mendelegasikan pekerjaan ke agent bawah secara paralel. Trik ini diterapkan pada Claude Code, dan dijelaskan lebih lanjut dalam catatan reverse engineering terkait (claude-trace) serta tulisan tentang cara kerja Claude Research (multi-agent-research-system). Tahap menemukan pola penggunaan alat oleh LLM masih sangat awal, dan model baru benar-benar menjadi sangat baik dalam penggunaan alat dalam 6 bulan terakhir, jadi masih banyak ruang untuk berkembang
Karena itu, ada preferensi untuk membiarkan LLM langsung membuat code untuk menangani tool call, alih-alih memaksakan semuanya dalam JSON. Library smolagents dari Hugging Face menggunakan pendekatan di mana LLM menghasilkan code pemanggilan fungsi python. Jika ingin parallel tool calls, cukup nyatakan di prompt, dan LLM juga harus menangani sinkronisasinya. Tentu ada isu dalam mengeksekusi code yang dibuat LLM, tetapi ada berbagai solusi untuk itu
Dibagikan kasus penggunaan antarmuka web Codex. Ada rencana refactoring yang terlalu panjang untuk diselesaikan sekaligus, lalu melalui fitur “ask” pekerjaan dipecah menjadi beberapa tugas dan dikelompokkan mana yang bisa diproses paralel. LLM membaginya dengan cara yang mirip tim nyata membagi pekerjaan, tetapi karena tidak ada asumsi komunikasi antar-tugas, kehilangan konteksnya sangat besar. Meskipun butuh waktu lebih lama daripada mengerjakannya sendiri, mereka tetap mencobanya, lalu beralih ke pemrosesan berurutan dengan memberi setiap sesi prompt rinci untuk tiap tugas, seperti tujuan, metode, verifikasi, dokumentasi, dan lain-lain. Singkatnya, pengalaman nyata ini menunjukkan bahwa orchestrator agent bisa dipakai untuk tugas yang sangat sederhana, tetapi cakupan penerapannya lebih terbatas daripada yang dibayangkan
Ada pandangan bahwa tidak ada yang berjalan otomatis seperti sihir. Karakteristik operasional yang harus diperhatikan dalam sistem tradisional tetap wajib dibangun juga pada AI agent. Jika hanya melihat demo AI agent lalu berpikir bisa “mengganti kode tim spaghetti code dengan beberapa prompt AI yang rapi”, orang bisa tertipu. Memang dalam sejumlah kecil kasus itu bisa berhasil, tetapi pada akhirnya semua kode ada alasannya dalam sistem, dan jika sampai seluruh kode itu sekalian diterjemahkan ke dalam LLM, itu menjadi tanda bahwa arah pendekatannya sudah melenceng
Untuk coding agent, pola yang sedang muncul adalah mengisolasi pekerjaan memakai container, lalu meninjau dan me-merge hasil kerja dengan git. Contohnya ada pada penggunaan container dan MCP (container-use), yang berguna untuk pekerjaan kode paralel. Untuk pekerjaan lain, workflow builder seperti n8n, Zapier, dan CrewAI juga masih sering digunakan
Tulisan ini mengingatkan pesan untuk memulai dari “hal yang paling sederhana” dan hanya menambahkan kompleksitas nyata ketika memang dibutuhkan. Disebutkan bahwa dengan pemanggilan LLM yang didefinisikan dengan jelas dan sedikit glue logic sederhana, tetap memungkinkan membangun sistem yang lebih andal, lebih mudah di-debug, dan lebih murah. Sebaliknya, sistem agent yang terlihat mewah justru sering menimbulkan lebih banyak masalah
Ada ungkapan harapan agar AI menjadi sesuatu yang benar-benar membantu manusia secara nyata
Ada pendapat bahwa bagus Anthropic membagikan informasi teknis seperti ini, tetapi mereka juga seharusnya menyediakan versi panduan yang mudah untuk non-spesialis. Misalnya, meskipun tim pemasaran ingin mengadopsi agent, mereka tetap membutuhkan panduan untuk mendefinisikan spesifikasi pada level dasar. Memang ada isi terkait di bagian akhir tulisan dan lampiran, tetapi tetap dikritik karena masih berhenti di sisi implementasi dari pertanyaan “bagaimana membangunnya”
(Desember 2024 - refleksi bahwa sekarang itu terasa seperti masa yang sudah sangat lama berlalu)
Ada pendapat bahwa tulisan ini bertahan sangat baik. Secara pribadi mereka terus memakainya sebagai referensi, dan bahkan seiring waktu tidak terasa usang. Tulisan ini dinilai memberi kesan baru bahwa Anthropic adalah "mitra praktis dalam pengembangan alat AI"
Ada pandangan bahwa hype berlebihan seputar agent kini sudah banyak mereda
Dibagikan informasi bahwa tulisan ini juga pernah didiskusikan saat itu: diskusi HN asli
Ada pendapat bahwa mereka menyukai pendekatan tulisan ini yang realistis, tidak berlebihan, dan tidak sekadar mengikuti tren. Mereka kritis terhadap kecenderungan banyak orang yang membuat sistem agent hanya karena sedang tren, tanpa benar-benar memikirkan apakah pekerjaan tersebut memang membutuhkan agent sungguhan