Desain Berbasis Kontrak: Bagaimana Saya Membuat Agen AI Bekerja Lebih Cepat Tanpa Mengganggu Satu Sama Lain
Saat bekerja dengan agen AI, kita sering menghadapi masalah ketika mereka bekerja secara paralel. Agen satu mengganggu agen lain, dan kita harus menghabiskan waktu untuk memperbaiki kesalahan-kesalahan yang terjadi.
Masalah yang Tidak Banyak Dibicarakan
Semua orang bersemangat tentang agen AI. Kita memberikan mereka tugas, dan mereka menjalankannya. Tapi, apa yang sebenarnya terjadi ketika kita membangun sesuatu yang nyata, seperti aplikasi chatbot AI?
Kita meluncurkan agen untuk membangun antarmuka pengguna, agen lain untuk menangani riwayat pesan, agen lain untuk autentikasi, dan agen lain untuk backend respons AI.
Dan kemudian, mereka mulai menunggu satu sama lain. Agen antarmuka pengguna terhenti karena tidak tahu seperti apa respons API. Agen autentikasi memblokir agen chat. Agen backend AI membuat asumsi tentang format input yang tidak sesuai dengan apa yang dikirim oleh agen antarmuka pengguna.
Desain Berbasis Kontrak
Saya telah memikirkan masalah ini selama beberapa waktu, dan saya telah mengembangkan praktik yang saya sebut Desain Berbasis Kontrak.
Apa itu Desain Berbasis Kontrak?
Ideanya sederhana. Sebelum agen menulis satu baris kode, satu agen melakukan satu pekerjaan saja: memahami persyaratan penuh dan mendefinisikan kontrak.
Kontrak adalah file .md kecil yang mendefinisikan secara tepat:
- Apa yang masuk (input)
- Apa yang keluar (output)
- Apa batasan dari bagian ini
Contoh Nyata: Membangun Aplikasi Chatbot AI
Mari kita ambil contoh membangun aplikasi chatbot AI dengan autentikasi pengguna, antarmuka pengguna, riwayat pesan, respons AI, dan pengaturan pengguna.
Tanpa kontrak, ini akan menjadi kekacauan. Setiap bagian menyentuh bagian lain. Agen memblokir agen lain secara konstan.
Dengan Desain Berbasis Kontrak, berikut yang terjadi:
- Fase 1 — Fase Definisi Kontrak
Sebelum meluncurkan agen implementasi, saya pertama-tama menginstruksikan satu agen untuk melakukan satu pekerjaan saja: "Memahami persyaratan penuh. Membagi tugas. Untuk tugas yang dapat dijalankan secara independen, mendefinisikan mereka dengan jelas. Untuk tugas yang bergantung pada tugas lain, mendefinisikan input dan output yang tepat sehingga mereka dapat dijalankan secara paralel."
Agen tersebut menghasilkan folder kontrak:
/contracts
auth.contract.md
chat-ui.contract.md
message-history.contract.md
ai-response.contract.md
user-settings.contract.md
Fitur Utama
- Kontrak yang Jelas: Kontrak mendefinisikan secara tepat apa yang masuk, apa yang keluar, dan apa batasan dari setiap bagian.
- Kerja Paralel: Agen dapat dijalankan secara paralel tanpa mengganggu satu sama lain.
- Tidak Ada Asumsi: Agen tidak membuat asumsi tentang input atau output.
Pendapat Geek
Desain Berbasis Kontrak adalah cara yang efektif untuk membuat agen AI bekerja lebih cepat dan efisien. Dengan menggunakan kontrak, kita dapat mendefinisikan secara tepat apa yang diharapkan dari setiap agen dan membuat mereka bekerja secara paralel tanpa mengganggu satu sama lain.
Saya telah menggunakan praktik ini dalam pekerjaan sehari-hari saya, dan telah mengubah cara saya memikirkan tentang membangun dengan AI. Tapi, saya ingin membuat jelas bahwa ini hanya pemikiran saya saat ini. Saya masih belajar, masih bereksperimen, dan saya yakin ada cara yang lebih baik untuk melakukan beberapa bagian dari ini.
Jika Anda telah mencoba sesuatu yang serupa, atau Anda pikir saya salah tentang sesuatu, atau Anda memiliki pendekatan yang lebih baik — saya sangat ingin mendengarnya. Tinggalkan komentar. Mari kita pecahkan ini bersama-sama.



