Tool Vs Workflow
Perbedaan cara kerja antara Tool Oriented dengan Workflow Oriented.

Arsitektur merupakan bagian yang paling penting saat kita membangun sebuah sistem AI Agent. Karena dengan arsitektur yang baik, maka dapat menghemat pengeluaran token, mempersingkat response time, dan meningkatkan kualitas Agent. Selain itu, arsitektur juga dapat menentukan karakteristik setiap Agent. Karakteristik seperti Agent yang kuat pada reasoning, Agent yang patuh terhadap safety, itu tergantung dengan tujuan kita pada sistem terkait. Sehingga, pemilihan arsitektur dapat ditentukan sesuai dengan kegunaan dari AI Agent itu sendiri.
Saya selalu menggunakan langgraph untuk membangun sebuah sistem AI Agent. Karena dengan menggunakan langgraph jauh lebih fleksibel untuk memodelkan alur kerja AI Agentnya. Alur tersebut dapat terdiri dari node-node dan edge (transisi) yang memungkinkan sistem dapat melakukan looping dan percabangan yang kompleks. Sehingga dapat menghasilkan workflow AI Agent secara utuh untuk melakukan tugas tugas yang sesuai dengan tujuan.
Setiap sistem yang dibangun menggunakan langgraph maka akan menghasilkan sebuah workflow. Didalam workflow tersebut terdapat mekanisme pemanggilan LLM, baik melalui API maupun secara local. Tetapi tidak semua node yang didefinisikan didalam workflow harus mengandung pemanggilan LLM. Pemanggilan LLM biasanya digunakan hanya untuk menghasilkan sebuah output dari hasil reasoning sesuai dengan kebutuhan. Selain itu, LLM dapat dilengkapi dengan tool-tool yang dapat kita berikan. Tool tersebut berfungsi supaya LLM dapat mengakses lingkungan eksternal tergantung sebagaimana fungsi tools tersebut.
Pada setiap project yang saya bangun, terdapat dua pendekatan yang sering saya pakai yaitu workflow oriented dan tools oriented. Dengan pendekatan ini, saya dapat merancang arsitektur AI Agent sesuai dengan kebutuhan project. Namun, kedua pendekatan tersebut memiliki kelebihan dan kekurangannya masing masing, sehingga harus dilakukan penyesuaian tergantung pada setiap tugas yang akan diselesaikan Agent tersebut.
Misalnya, ketika kita ingin membuat Agent yang kuat terhadap reasoning dan memberikan peran decision maker secara penuh, maka arsitektur yang sesuai yaitu Tools Oriented. Karena, dengan hanya memberikan akses penuh terhadap tools dan tidak terlalu terikat terhadap worklflow, maka secara penuh telah memberikan peran decision maker kepada Agent. Dengan metode ini, Agent akan melakukan tools calling berkali-kali untuk menghasilkan output yang sesuai. Jika Agent sudah mendapatkan apa yang dia inginkan, maka dia akan memutuskan untuk lanjut ke langkah berikutnya (jika ada). Walaupun, dalam arsitektur Tools Oriented masih terdapat mekanisme workflow. Akan tetapi, mekanisme tidak terlalu kompleks dan hanya dijadikan sebagai alur untuk agent bekerja.

Pada gambar tersebut bisa dilihat bahwa Agent dapat menggunakan ketiga tools secara bergantian maupun paralel. Tools tersebut akan mengembalikan response kepada Agent. Apabila response yang dihasilkan masih belum cukup, maka Agent tersebut akan memutuskan untuk pemanggilan tools lain ataupun ulang namun dengan input yang berbeda. Proses tersebut bekerja secara berulang sampai agent memutuskan untuk tidak menggunakan tools lagi. Melalui pendekatan ini, maka secara penuh memberikan decision maker kepada agent. Namun, perlu diingat bahwa jika tools selalu tidak memberikan jawaban yang relevan, maka proses perulangan akan terjadi sampai tak hingga. Hal tersebut cukup merugikan dari segi penggunaan token karena agent terus bekerja tanpa henti. Sebagai solusi, maka bisa diatur untuk maksimal pemanggilan tools ulang supaya ketika melebihi batas maksimal, maka Agent dipaksa untuk berhenti melakukan panggilan tools dan proses akan berlanjut ke step berikutnya.
Lain halnya dengan arsitektur Workflow Oriented yang artinya kita mengatur bagaimana Agent membuat keputusan dalam bentuk workflow. Agent hanya berperan sebagai penghasil output, sedangkan yang menentukan yaitu workflow. Dengan kata lain, yang menjadi decision maker yaitu workflow itu sendiri. Metode ini, biasanya diawali dengan structured output yang dihasilkan oleh Agent, kemudian hasil tersebut dijadikan patokan oleh workflow untuk menentukan langkah selanjutnya sesuai dengan validasi yang dilakukan. Dengan metode tersebut, maka workflow yang dihasilkan terbilang cukup kompleks dibandingkan dengan menggunakan metode Tools Oriented. Namun, tidak menutup kemungkinan walaupun menggunakan metode Workflow Oriented, masih terdapat mekanisme tools calling didalamnya. Karena sesuai dengan fungsi dari tools calling itu sendiri yaitu untuk mendapatkan resource eksternal sesuai dengan kebutuhan Agent.

Pada gambar tersebut bisa dilihat bahwa Agent akan men-generate structured output terlebih dahulu. kemudian workflow akan memvalidasi berdasarkan structured output yang telah dihasilkan untuk menentukan step selanjutnya. Dengan kata lain, workflow memiliki kontrol penuh terhadap cara kerja Agent itu sendiri.
Sebagai perbandingan, kedua arsitektur tersebut memiliki kekurangan dan kelebihan masing masing. Penggunaan Tools Oriented dapat menghasilkan Agent yang memiliki kontrol penuh dalam mengambil keputusan. Sehingga mampu memaksimalkan kemampuan reasoning yang dimiliki oleh model. Tetapi sebagai konsekuensinya Agent yang dihasilkan mempunyai peluang error/halusinasi lebih tinggi. Sedangkan penggunaan Workflow Oriented menghasilkan Agent yang memperkecil kemungkinan kesalahan Agent dan menghasilkan alur yang lebih terstruktur. Sebagai konsekuensinya, Agent yang dihasilkan tidak fleksibel karena terlalu terikat dengan workflow sehingga tidak mempunyai kebebasan secara utuh. Oleh karena itu, dalam menentukan arsitektur, saya selalu mempertimbangkan terlebih dahulu pemilihan arsitektur dan penyesuaian terhadap project yang akan dikembangkan.