Membangun Agent Harness Kustom yang Fleksibel dengan LangChain

Membangun Agent Harness Kustom yang Fleksibel dengan LangChain

By Reggi, 05 Jun 2026

Pernahkah kamu bertanya-tanya bagaimana cara membuat agen AI lebih pintar dan lebih relevan dengan tugas spesifik? Jawabannya ada pada bagaimana kamu mengkoneksikan model tersebut ke "dunia nyata." Di sinilah konsep harness menjadi sangat penting. Artikel ini akan membahas How to Build a Custom Agent Harness menggunakan LangChain, sebuah kerangka kerja yang sangat membantu.

Apa Itu Agent Harness?

Bayangkan sebuah model AI sebagai otak yang cerdas. Otak ini perlu terhubung ke tangan, mata, telinga, dan juga lingkungan sekitarnya untuk bisa melakukan sesuatu. Nah, harness adalah semacam kerangka atau perancah yang membungkus model tersebut, menjadi jembatan antara model dan dunia nyata. Seberapa baik harness ini sesuai dengan tugas yang diberikan akan menentukan seberapa berguna agen AI tersebut.

Intinya, membangun agen yang berguna sebagian besar bergantung pada bagaimana kita menghubungkan agen tersebut ke konteks, data, dan lingkungan yang tepat untuk tugas yang dihadapi. Sebuah agen, pada dasarnya, adalah sebuah model yang memanggil alat (tools) dalam sebuah siklus (loop) sampai tugas selesai dan mengembalikan hasil.

Agen AI hanya akan sebaik konteks yang kamu berikan kepada modelnya. Tugas utama harness adalah menyediakan konteks tersebut kepada model di setiap langkah. Jadi, untuk membangun agen yang benar-benar berguna, kamu memerlukan harness yang sangat baik dalam menyampaikan konteks yang tepat kepada model untuk tugas yang diberikan.

Mengapa Harness Kustom Penting?

LangChain memiliki AgentExecutor, sebuah primitif untuk membangun harness. Cukup dengan memberinya model, tools, dan system prompt, kamu sudah memiliki agen yang berfungsi. AgentExecutor hadir dengan tumpukan middleware siap pakai yang sudah diatur (seperti manajemen memori, konteks, sandboxing, dan lainnya). Ini dirancang untuk membuat agen produksi kamu siap dengan cepat dan bekerja dengan baik untuk sebagian besar kasus.

Namun, banyak agen memerlukan penyesuaian yang lebih detail dari yang bisa didukung oleh harness ini. Misalnya, kamu mungkin butuh custom prompting, business logic tertentu, atau guardrails yang ketat. Di sinilah langchain.runnable.Agent mengambil pendekatan yang berbeda. Ini adalah pendekatan yang minimalis, mirip dengan filosofi OpenDevin. Ia hanya mengimplementasikan loop inti agen dan mengekspos middleware sebagai primitif untuk penyesuaian.

Memahami Middleware

Middleware adalah kunci untuk menyesuaikan harness kamu. Ini bekerja dengan menyisipkan "hook" ke dalam loop agen di setiap langkah, yaitu sebelum dan sesudah panggilan model, sebelum dan sesudah panggilan tool, serta saat agen dimulai dan diakhiri. Setiap bagian middleware menangani satu kekhawatiran spesifik dan bisa digabungkan secara bebas dengan middleware lainnya.

Middleware memungkinkan kamu menambahkan penyesuaian ke agen melalui beberapa cara yang seringkali bekerja bersama:

  • Logika Kustom (Custom Logic): Ini adalah tempat untuk business logic, penegakan kebijakan, kontrol agen dinamis, atau apa pun yang perlu dieksekusi pada titik tertentu dalam loop. Ini mencakup kontrol saat runtime atas agen itu sendiri, seperti mengganti model berdasarkan kompleksitas tugas, menyesuaikan prompt, dan memperbarui riwayat pesan agen. Ini ideal untuk hal-hal yang tidak dapat atau tidak seharusnya berada di dalam prompt.
  • Tools Dinamis (Dynamic Tools): Daripada mendaftarkan tools secara langsung pada agen, middleware dapat menangani seluruh siklus hidup tools (pengaturan, pembongkaran, pendaftaran), dan memberikan agen satu set tools yang bersih untuk bekerja. Ini penting ketika tools memiliki dependensi, memerlukan inisialisasi, atau perlu diakhiri dengan bersih di akhir proses. Ini juga menjaga konfigurasi tools dekat dengan logika yang mengaturnya.
  • State yang Diperluas (Extended State): Jika middleware kamu perlu melacak state di seluruh hook, middleware dapat memperluas state agen dengan properti kustom. Ini memungkinkan middleware melacak state sepanjang eksekusi (memelihara penghitung, flag, atau nilai lain yang bertahan sepanjang eksekusi agen) dan berbagi data antar hook.
  • Intersepsi Aliran Output (Output Stream Interception): Middleware dapat mencegat dan mengubah aliran output agen. Ini bisa berupa memfilter event, menyuntikkan metadata, atau merutekan berbagai jenis event ke konsumen yang berbeda. Ini berguna ketika berbagai bagian dari stack kamu perlu bereaksi terhadap hal-hal berbeda yang dilakukan agen. Misalnya, UI yang mengonsumsi token deltas, log audit yang menangkap panggilan tool, atau sistem pemantauan yang melacak latensi.

Keindahan middleware adalah ia memungkinkan penyesuaian di setiap titik dalam loop agen, menggabungkan logika terkait dalam unit kode yang dapat disusun dan dibagikan. LangChain menyediakan banyak middleware siap pakai untuk pola umum. Apa pun yang khusus untuk kasus penggunaan kamu hanya berjarak satu Middleware saja. Karena setiap bagian terisolasi, middleware yang sama dapat digunakan kembali di setiap agen dalam organisasi, sehingga agen baru mewarisi perilaku yang sudah teruji tanpa perlu membangunnya dari awal lagi.

Tugas utama harness adalah memberikan konteks yang tepat kepada model pada waktu yang tepat untuk tugas yang diberikan. Tabel di bawah ini memetakan kemampuan umum ke middleware yang mendukungnya:

Kemampuan UmumMiddleware yang Mendukung
ObservabilityEvent Streaming
CachingCaching
User FeedbackHuman in the Loop
GuardrailsCustom Logic
Cost OptimizationCustom Logic, Event Streaming
Logging & AuditingEvent Streaming
State ManagementExtended State
Tool Discovery & RoutingDynamic Tools
Advanced MemoryCustom Logic
Custom PromptingCustom Logic
Runtime ControlCustom Logic

Pentingnya 'Task-Harness Fit'

Task-harness fit adalah seberapa baik harness kamu cocok dengan tuntutan tugas yang sebenarnya. Ini meliputi konteks yang dibutuhkan, kegagalan yang mungkin terjadi, kebijakan yang harus ditegakkan, dan lingkungan operasinya. Sebuah harness untuk agen layanan pelanggan akan terlihat sangat berbeda dari yang dibangun untuk agen pengkodean yang berjalan lama.

Setiap agen yang LangChain bangun, termasuk AgentExecutors mereka, dirancang dengan tumpukan middleware yang disesuaikan dengan misi agen tersebut. Agen terbaik tidak hanya dibangun dengan model yang cakap, tetapi juga dengan harness yang sangat pas dengan tugasnya. Cara termudah untuk membangun harness kustom adalah dengan langchain.runnable.Agent.

LangSmith, platform agent engineering dari LangChain, juga membantu para pengembang untuk men-debug setiap keputusan agen, mengevaluasi perubahan, dan menerapkan deployment hanya dengan satu klik.

Referensi


🔥 Sedang Ramai Dibaca